主要内容

原质谱数据预处理

本实例说明了如何提高原始质谱数据的质量。特别地,本例说明了蛋白质表面增强激光解吸/电离飞行时间质谱(SELDI-TOF)预处理的典型步骤。

加载数据

质谱数据可以以不同的格式存储。如果数据存储在有两列的文本文件中(质量/电荷(M/Z)比和相应的强度值),您可以使用以下MATLAB®I/O函数之一:importdatadlmread,或textscan.另外,如果数据存储在JCAMP-DX格式的文件中,则可以使用该函数jcampread.如果数据包含在Excel®工作簿的电子表格中,则可以使用该函数xlsread如果数据存储在mzXML格式的文件中,则可以使用该函数mzxmlread,最后,如果数据存储在SPC格式的文件中,您可以使用tgspcread

这个例子使用了来自NCI/FDA低分辨率卵巢癌数据集的光谱图FDA-NCI临床蛋白质组学项目数据库.这些光谱是使用WCX2蛋白结合芯片产生的,其中两个用手工样品处理,两个用机器人样品分配器/处理器。

示例= importdata (“mspec01.csv”
sample = struct with fields: data: [15154x2 double] textdata: {'M/Z' 'Intensity'} colheaders: {'M/Z' 'Intensity'}

M/Z比率在表的第一列数据电场和离子强度在第二。

MZ = sample.data (: 1);Y = sample.data (:, 2);

为了更好地处理数据,可以加载多个光谱图并将它们连接到一个矩阵中。使用dlmread函数读取逗号分隔的值文件。注意:本示例假设这四个文件的M/Z比相同。对于具有不同M/Z比的数据集,使用msresample创建一个统一的M/Z向量。

文件= {“mspec01.csv”“mspec02.csv”“mspec03.csv”“mspec04.csv”};i = 1:4 Y(:,i) = dlmread(files{i},”、“, 1, 1);%跳过第一行(标题)结束

使用情节命令检查加载的光谱图。

图(MZ,Y)轴([0 20000 -20 105])xlabel(“质量/电荷(M / Z)”) ylabel (的相对强度)标题(“四个低分辨率质谱示例”

重采样的光谱

重采样质谱数据有几个优点。它均匀化了质量/电荷(M/Z)矢量,允许您在相同的参考和相同的分辨率下比较不同的光谱。在高分辨率数据集中,文件的大尺寸导致计算密集的算法。然而,高分辨率光谱可能是多余的。通过重采样,可以将信号抽取为一个更易于管理的M/Z向量,保留光谱的信息内容。的msresample函数允许您选择新的M/Z矢量,并应用抗混叠滤波器,防止高频噪声折叠成较低频率。

加载从NCI/FDA高分辨率卵巢癌数据集中获取的高分辨率光谱。为了方便起见,频谱被包含在一个mat格式的文件中。

负载sample_hi_res元素个数(MZ_hi_res)
ans = 355760

向下采样光谱到10000个M/Z点,介于2000和11000之间。使用SHOWPLOT属性来创建定制的图形,以便跟踪和评估预处理操作的质量。

(MZH, YH) = msresample (MZ_hi_res Y_hi_res, 10000年,“范围”(2000 11000),“SHOWPLOT”,真正的);

放大缩小的区域可以显示下采样过程的细节。

轴([3875 3895 0 90])

基线校正

质谱数据通常显示由基质中的化学噪声或离子过载引起的变化基线。的msbackadj函数估计一个低频基线,它隐藏在高频噪声和信号峰值之间。然后从光谱图中减去基线。

调整光谱图的基线,只显示第二幅图及其估计的背景。

YB = msbackadj (MZ, Y,“WINDOWSIZE”, 500,分位数的, 0.20,“SHOWPLOT”2);

剖面的光谱对准

质谱仪的错误校准导致观测到的M/Z矢量和离子的真实飞行时间之间的关系发生变化。因此,在重复实验中会出现系统的位移。当光谱图中期望有已知的峰轮廓时,可以使用该函数msalign标准化M/Z值。

为了使谱图对齐,提供一组预计会出现参考峰的M/Z值。还可以定义一个具有相对权重的向量,用于对齐算法强调面积小的峰值。

P = [3991.4 4598 7964 9160];参考峰的M/Z位置W = [60 100 60 100];参考峰的权重

显示热图,观察光谱在应用校准算法前后的校准情况。

msheatmap (MZ, YB,“标记”、磷、“范围”10000年[3000])标题(“之前对齐”

使光谱图集与所给的参考峰对齐。

丫= msalign (MZ, YB, P,“重量”, W);msheatmap (MZ,是的,“标记”、磷、“范围”10000年[3000])标题(调整后的

归一化

在反复的实验中,通常会发现脱附和电离蛋白质的总量存在系统性差异。的msnorm函数实现了典型规范化(或标准化)方法的几种变体。

例如,许多标准化谱图值的方法之一是将每个信号的最大强度调整到特定值,例如100。忽略有问题的地区也是可能的;例如,在血清样本中,你可能想要忽略低质量区域(M/Z < 1000 Da.)。

YN1 = msnorm (MZ,是的,分位数的, 1“限制”, 1000年正无穷,“马克斯”, 100);图图(MZ,YN1)轴([0 10000 -20 150])“质量/电荷(M / Z)”) ylabel (的相对强度)标题(“归一化到最大峰值”

msnorm函数也可以通过使用曲线下面积(AUC)进行标准化,然后重新缩放光谱图,使其相对强度低于100。

YN2 = msnorm (MZ,是的,“限制”, 1000年正无穷,“马克斯”, 100);图图(MZ,YN2)轴([0 10000 -20 150])“质量/电荷(M / Z)”) ylabel (的相对强度)标题(“使用曲线下面积(AUC)归一化”

保峰降噪

标准化光谱通常包含噪声和信号的混合物。有些应用需要对谱图进行去噪处理,以提高谱峰所观测到的质量/电荷值的有效性和精度。出于同样的原因,去噪也进一步改进了峰值检测算法。然而,尽可能保留峰值的锐度(或高频成分)是很重要的。为此,你可以使用Lowess平滑(mslowess)和多项式滤波器(mssgolay).

用二阶多项式滤波器平滑谱图。

y = mssgolay (MZ YN2,“跨越”, 35岁,“SHOWPLOT”3);

放大缩小的区域显示平滑算法的细节。

轴([8000 9000 -1 8])

小波去噪寻峰方法

寻找假定峰值的一个简单方法是观察平滑信号的一阶导数,然后对其中一些位置进行填充,以避免小的离子强度峰值。

P1 = mspeaks (MZ, y,“去噪”假的,“HEIGHTFILTER”,2,“SHOWPLOT”, 1)
P1 = 4x1单元数组{164x2 double} {171x2 double} {169x2 double} {147x2 double}

mspeaks函数也可以用小波去噪来估计噪声。这种方法通常更健壮,因为峰值检测可以直接在噪声光谱上实现。该算法能适应信号的不同噪声条件,即使存在低分辨率或过分割的情况下也能提取出峰值。

P2 = mspeaks (MZ YN2,“基地”12“乘数”10“HEIGHTFILTER”, 1“SHOWPLOT”, 1)
P2 = 4x1单元阵列{322x2 double} {370x2 double} {324x2 double} {295x2 double}

消除低质量区域的额外峰值

P3 = cellfun(@(x) x(x(:,1)>1500,:),“统一”假)
P3 = 4x1 cell array {81x2 double} {93x2 double} {57x2 double} {53x2 double}

分簇:基于层次聚类的峰值聚类

与类似化合物相对应的峰仍然可能报告有轻微的质量/电荷差异或漂移。假设这四个光谱图对应的是可比较的生物/化学样品,比较来自不同光谱的峰可能是有用的,这需要峰分箱(又称峰合并)。数据分类的关键任务是创建一个通用的质量/电荷参考向量(或箱)。理想情况下,bin应该从每个信号中收集一个峰值,而应该避免从同一个bin中收集多个相关的峰值。

这个例子使用层次聚类来计算公共质量/电荷参考向量。当使用低分辨率光谱时,该方法是充分的;然而,对于高分辨率光谱或具有许多光谱图的数据集,函数mspalign提供其他可扩展的方法来估计公共质量/电荷参考并执行数据绑定。

将所有的峰放在一个数组中,用每个峰的谱图索引构造一个向量。

allPeaks = cell2mat (P3);numPeaks = cellfun(@(x) length(x),P3);Sidx = accumarray (cumsum (numPeaks), 1);Sidx = cumsum (Sidx) -Sidx;

创建一个自定义距离函数,惩罚包含来自同一光谱图的峰值的簇,然后执行分层聚类。

Distfun = @(x,y) (x(:,1)-y(:,1))^ 2 + (x (:, 2) = = y(:, 2)) * 10 ^ 6树=连杆(pdist ([allPeaks (: 1), Sidx], distfun));集群=集群(树,“截止”, 75,“标准”“距离”);
distfun = function_handle价值:@ (x, y) (x (: 1) - y(: 1))。^ 2 + (x (:, 2) = = y (:, 2)) * 10 ^ 6

通过计算每个团簇的质心,得到了共同的质量/电荷参考向量(CMZ)。

CMZ = accumarray(集群,刺激(allPeaks 2)。/ accumarray(集群,allPeaks (:, 2));

同样,还计算了每个簇的最大峰值强度。

公关= accumarray(集群,allPeaks (:, 2), [], @max);(CMZ h) = (CMZ)进行排序;公关=公关(h);图保存盒子情节([CMZ CMZ) (-10 100),“- k”图(MZ,YN2)轴([7200 8500 -10 100])“质量/电荷(M / Z)”) ylabel (的相对强度)标题(“聚类发现的常见质量/电荷(M/Z)位置”

动态编程装箱

samplealign函数允许您使用动态规划算法将每个谱图中的观测峰值分配给公共质量/电荷参考向量(CMZ).

当使用更简单的分组方法时,例如四舍五入质量/电荷值或使用最近邻量化CMZ矢量,来自不同光谱的相同峰值可以被分配到不同的箱,因为小的漂移仍然存在。为了解决这一问题,可以通过牺牲质谱峰分辨率来增加仓的尺寸。通过使用动态规划分箱,您可以保留分辨率,同时最小化分配来自不同光谱图的相似化合物到不同峰位置的问题。

PA =南(元素个数(CMZ), 4);i = 1:4 [j,k] = samplealign([CMZ PR],P3{i},“乐队”15岁的“重量”[1。1]);PA (j,我)= P3{我}(k, 2);结束图保存盒子情节([CMZ CMZ) (-10 100),”:k”)情节(MZ YN2)情节(CMZ,爸爸,“o”xlabel([7200 8500 -10 100])“质量/电荷(M / Z)”) ylabel (的相对强度)标题(“峰值与共同质量/电荷(M/Z)参考点对齐”

使用msviewer在给定范围内(例如,在值7600和8200之间)检查预处理的光谱图。

r1 = 7600;r2 = 8200;range = MZ > r1 & MZ < r2;rangeMarkers = CMZ(CMZ > r1 & CMZ < r2);msviewer (MZ(范围),YN2(范围:)“标记”rangeMarkers,“集团”1:4)

另请参阅

|||||||

相关的话题

Baidu
map