主要内容

原始质谱数据的预处理

这个例子展示了如何提高原始质谱数据的质量。具体而言,该示例说明了预处理蛋白质表面增强激光解吸/电离飞行时间质谱(SELDI-TOF)的典型步骤。

加载数据

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

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

示例= importdata (“mspec01.csv”
textdata: {'M/Z' 'Intensity'} colheaders: {'M/Z' 'Intensity'}

M/Z比位于该表的第一列数据场强和离子强度处于第二。

MZ=样本数据(:,1);Y=样本数据(:,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格式的文件中。

负载高分辨率样品元素个数(MZ_hi_res)
ans = 355760

在2000和11000之间,将光谱向下采样到10000 M/Z点。使用SHOWPLOT属性创建自定义绘图,该绘图允许您跟踪和评估预处理操作的质量。

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

放大到一个缩小的区域,揭示了降采样过程的细节。

轴([38753895 0 90])

基线校正

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

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

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

剖面的光谱排列

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

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

P=[3991.4459879649160];参考峰的% M/Z位置W = [60 100 60 100];%参考峰的权重

显示一张热图,观察应用比对算法前后光谱的比对情况。

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

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

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

归一化

在重复的实验中,通常会发现解吸蛋白和电离蛋白的总量存在系统性差异。的msnorm函数实现了几种典型的标准化(或标准化)方法。

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

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

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

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

保峰降噪

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

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

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

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

轴线([8000 9000-18])

小波去噪的峰值发现

找到假定峰值的一种简单方法是查看平滑信号的一阶导数,然后过滤其中一些位置,以避免出现小的离子强度峰值。

P1 = mspeaks (MZ, y,“去噪”假的,“高度过滤器”2,“SHOWPLOT”,1)
P1=4x1单元阵列{164x2-double}{171x2-double}{169x2-double}{147x2-double}

mspeaks函数还可以使用小波去噪来估计噪声。这种方法通常更稳健,因为可以直接在噪声频谱上实现峰值检测。该算法将适应信号的不同噪声条件,并且即使存在低分辨率或过分段,峰值也可以解决。

P2 = mspeaks (MZ YN2,“基地”12“乘数”10“高度过滤器”,1,“SHOWPLOT”,1)
P2=4x1单元数组{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) 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=函数\具有以下值的句柄:@(x,y)(x(:,1)-y(:,1))。^2+(x(:,2)=y(:,2))*10^6

公共质量/电荷参考矢量(CMZ)是通过计算每个簇的质心来找到的。

CMZ=accumarray(集群,产品(所有峰值,2))。/accumarray(集群,所有峰值(:,2));

类似地,还计算了每个簇的最大峰值强度。

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

动态编程装箱

样本对齐函数允许您使用动态编程算法将每个谱图中观测到的峰值分配给共同的质量/电荷参考向量(CMZ).

当使用更简单的装箱方法时,例如将质量/电荷值四舍五入或使用最近邻量化到CMZ向量,由于仍然存在的小漂移,来自不同光谱的相同峰值可能被分配到不同的箱子。为了避免这个问题,可以通过牺牲质谱峰分辨率来增加料仓尺寸。通过使用动态规划装箱,您可以保持分辨率,同时最大限度地减少将不同光谱图中的类似化合物分配到不同峰位置的问题。

PA=nan(numel(CMZ),4);对于i = 1:4 [j,k] = samplealign([CMZ PR],P3{i},“乐队”,15,“重量”,[1.1]);PA(j,i)=P3{i}(k,2);终止图保存盒子情节([CMZ CMZ) (-10 100),”:k”)情节(MZ YN2)情节(CMZ,爸爸,“o”)轴([7200 8500-10 100])xlabel(‘质量/电荷(M/Z)’) ylabel (的相对强度)标题(“峰值与共同质量/电荷(M/Z)基准对齐”

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

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

另见

|||||||

相关的话题