主要内容

原始质谱数据的预处理

该实例说明了如何提高质谱原始数据的质量。特别地,这个例子说明了蛋白质表面增强激光解吸/电离飞行时间质谱(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,带字段: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:4y(:,i)=dlmread(文件{i},',',1,1);%跳过第一行(标题)结束

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

plot(MZ,Y)轴([0 20000 -20 105])xlabel(“质量/电荷(M / Z)”)伊拉贝尔(的相对强度)头衔(“四个低分辨率质谱样本”

重采样的光谱

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

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

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

向下采样光谱到10,000 M/Z点之间的2000和11000。使用展示区属性创建自定义图,使您能够跟踪和评估预处理操作的质量。

[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])标题(“之前对齐”

将一组光谱图与给定的参考峰对齐。

YA=mALIGN(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])xlabel(“质量/电荷(M / Z)”)伊拉贝尔(的相对强度)头衔(“归一化至最大峰值”

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

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

保峰降噪

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

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

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

放大到一个简化的区域揭示平滑算法的细节。

Axis ([8000 9000 -1 8])

用小波去噪寻找峰值

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

P1=Ms峰值(MZ,YS,“去噪”错误的“HEIGHTFILTER”2.“SHOWPLOT”, 1)
P1 = 4x1 cell array {164x2 double} {171x2 double} {169x2 double} {147x2 double}

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

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

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

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

Binning:通过层次聚类进行峰值合并

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

这个例子使用层次聚类来计算公共质量/电荷参考向量。该方法在使用低分辨率光谱时是足够的;然而,对于高分辨率光谱或具有许多谱图的数据集,该功能mspalign提供其他可伸缩的方法来估计公共质量/收费参考和执行数据分类。

把所有的峰放入一个单一的阵列,并构建一个矢量,每个峰的谱图索引。

allPeaks=cell2mat(P3);numPeaks=cellfun(@(x)长度(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树=链接(pList([allPeaks(:,1),Sidx],distfun));簇=簇(tree,“截止”,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”) plot(MZ,YN2) axis([7200 8500 -10 100]) xlabel(“质量/电荷(M / Z)”)伊拉贝尔(的相对强度)头衔(“通过聚类找到的公共质量/电荷(M/Z)位置”

动态编程装箱

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

当使用更简单的分箱方法时,例如舍入质量/电荷值或使用最近邻量化CMZ向量,来自不同光谱的相同峰值,由于仍然存在的小漂移,我被分配到不同的箱子。为了解决这个问题,可以在牺牲质谱峰分辨率的情况下增加料仓大小。通过使用动态编程bin,可以保留分辨率,同时最大限度地减少从不同光谱图向不同峰位分配类似化合物的问题。

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,PA,“哦”)轴([7200 8500 -10 100])xlabel(“质量/电荷(M / Z)”)伊拉贝尔(的相对强度)头衔(“峰值与共同质量/电荷(M/Z)基准对齐”

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

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

另请参阅

|||||||

相关话题