主要内容

识别显著特征和分类蛋白质图谱

这个例子展示了如何对质谱数据进行分类,并使用一些统计工具来寻找潜在的疾病标记物和蛋白质组模式诊断。

简介

血清蛋白质组学模式诊断可用于区分患有和未患疾病的患者的样本。使用表面增强激光解吸和电离(SELDI)蛋白质质谱法生成剖面模式。这项技术有潜力改进癌症病理的临床诊断测试。目标是选择一组减少的测量值或“特征”,可以用来区分癌症患者和对照组患者。这些特征将是特定质量/电荷值下的离子强度水平。

数据进行预处理

本例中的卵巢癌数据集来自FDA-NCI临床蛋白质组学项目数据库.数据集是使用WCX2蛋白阵列生成的。数据集包括95例对照组和121例卵巢癌。有关该数据集的详细描述,请参见[1]和[4]。

本示例假设您已经拥有预处理数据OvarianCancerQAQCdataset.mat.但是,如果没有数据文件,可以按照示例中的步骤重新创建用顺序和并行计算的光谱批处理

或者,您可以运行该脚本msseqprocessing.m

目录(fullfile (matlabroot,“例子”“bioinfo”“主要”))确保支持文件在搜索路径上类型msseqprocessing
创建OvarianCancerQAQCdataset。mat(在% CANCERDETECTDEMO中使用)。在运行此文件之前,将变量% "repository"初始化为您放置质谱%文件的完整路径。例如:% % repository = 'F:/MassSpecRepository/OvarianCD_PostQAQC/';% %或% % repository = '/home/username/MassSpecRepository/OvarianCD_PostQAQC/';大约执行时间是18分钟(奔腾4,4ghz)。如果您有并行计算工具箱,请参阅BIODISTCOMPDEMO以了解如何加快分析速度。版权所有The MathWorks, Inc. repositoryC = [repository 'Cancer/'];repositoryN = [repository 'Normal/'];filesCancer = dir([repositoryC '*.txt']);NumberCancerDatasets =元素个数(filesCancer); fprintf('Found %d Cancer mass-spectrograms.\n',NumberCancerDatasets) filesNormal = dir([repositoryN '*.txt']); NumberNormalDatasets = numel(filesNormal); fprintf('Found %d Control mass-spectrograms.\n',NumberNormalDatasets) files = [ strcat('Cancer/',{filesCancer.name}) ... strcat('Normal/',{filesNormal.name})]; N = numel(files); % total number of files fprintf('Total %d mass-spectrograms to process...\n',N) [MZ,Y] = msbatchprocessing(repository,files); disp('Finished; normalizing and saving to OvarianCancerQAQCdataset.mat.') Y = msnorm(MZ,Y,'QUANTILE',0.5,'LIMITS',[3500 11000],'MAX',50); grp = [repmat({'Cancer'},size(filesCancer));... repmat({'Normal'},size(filesNormal))]; save OvarianCancerQAQCdataset.mat Y MZ grp

上面列出的脚本和示例中的预处理步骤旨在演示一组具有代表性的可能的预处理过程。使用不同的步骤或参数可能会导致该示例的不同结果,甚至可能得到改进。

加载数据

一旦有了预处理数据,就可以将其加载到MATLAB中。

负载OvarianCancerQAQCdataset
名称大小字节类属性MZ 15000x1 120000 double Y 15000x216 25920000 double grp 216x1 25056 cell

有三个变量:MZYgrpMZ是质量/电荷矢量,Y是否所有216名患者(对照组和癌症患者)的强度值,和grp保存关于这些样本中哪些代表癌症患者,哪些代表正常患者的索引信息。

初始化一些将在整个示例中使用的变量。

N =元素个数(grp);%样本数量Cidx = strcmp (“癌症”、grp);%癌症样本的逻辑索引向量Nidx = strcmp (“正常”、grp);%正常样本的逻辑索引向量Cvec =找到(Cidx);%癌症样本的指数载体Nvec =找到(Nidx);%正常样本的索引向量xAxisLabel =“质量/电荷(M / Z)”% x标签用于绘图yAxisLabel =离子强度的% y标签用于绘图

可视化一些样本

您可以将一些数据集绘制到图形窗口中,以直观地比较两组的配置文件;在这个例子中,显示了来自癌症患者(蓝色)和对照组患者(绿色)的五个光谱图。

图;持有;hC =情节(MZ, Y (:, Cvec (1:5)),“b”);hN =情节(MZ, Y (:, Nvec (1:5)),‘g’);包含(xAxisLabel);ylabel (yAxisLabel);轴([2000 12000 -5 60])图例([hN(1),hC(1)],{“控制”卵巢癌的})标题(多个样品谱图的

放大8500到8700米/Z的区域,可以看到一些可能对数据分类有用的峰值。

轴([8450、8700、1、7])

另一种可视化整个数据集的方法是查看对照组和癌症样本的组平均信号。你可以画出组的平均值和每个组的信封。

mean_N =意味着(Y (:, Nidx), 2);%组平均值为对照样本max_N = max (Y (:, Nidx), [], 2);%顶部信封的控制样本min_N = min (Y (:, Nidx), [], 2);%底部信封的对照样品mean_C =意味着(Y (:, Cidx), 2);%组平均癌症样本max_C = max (Y (:, Cidx), [], 2);%顶部信封的控制样本min_C = min (Y (:, Cidx), [], 2);%底部信封的对照样品图;持有;hC =情节(MZ mean_C,“b”);hN =情节(MZ mean_N,‘g’);gC = plot(MZ,[max_C min_C],“b——”);gN = plot(MZ,[max_N min_N],“g——”);包含(xAxisLabel);ylabel (yAxisLabel);轴([8450、8700、1、7])传说([hN, hC, gN (1) gC (1)), {对照组Avg。“卵巢癌平均组”...“控制信封”卵巢癌信封的},...“位置”“西北”)标题(“团体平邮及团体信封”

显然,没有一个单一的特征可以完美地区分这两组人。

排名关键特性

寻找重要特征的一个简单方法是假设每个M/Z值是独立的,并计算双向t检验。rankfeatures返回最重要M/Z值的索引,例如,根据测试统计值的绝对值排列的100个索引。这种特征选择方法也被称为过滤方法,其中学习算法不涉及如何选择特征。

[壮举,统计]= rankfeatures (Y, grp,“标准”的tt“数量”, 100);

的第一个输出rankfeatures可用于提取显著特征的M/Z值。

sig_Masses = MZ(成绩);sig_Masses (1:7)%显示前七个
Ans = 1.0e+03 * 8.1009 8.1016 8.1024 8.1001 8.1032 7.7366 7.7359

的第二个输出rankfeatures是具有测试统计值绝对值的向量。你可以用yyaxis

图;yyaxis情节(MZ (mean_N mean_C]);ylim ([20]) xlim((7950、8300))标题(“重要的M / Z值”)包含(xAxisLabel);ylabel (yAxisLabel);yyaxis正确的情节(MZ,统计);ylim ([22]) ylabel (检验统计量的);传奇({对照组Avg。“卵巢癌平均组”“测试数据”})

注意,在高M/Z值但低强度区域有显著区域(~8100 Da.)。度量类可分离性的其他方法在rankfeatures,如基于熵的,Bhattacharyya,或经验接受者工作特征(ROC)曲线下的面积。

基于线性判别分析的盲分类

现在您已经确定了一些重要的特征,您可以使用这些信息对癌症和正常样本进行分类。由于样本数量较少,您可以使用20%保留值运行交叉验证,以更好地估计分类器性能。cvpartition可设置不同类型系统评价方法的训练和测试指标,如hold-out、K-fold和Leave-M-Out。

per_eval = 0.20;用于交叉验证的训练大小rng (“默认”);初始化随机生成器到相同的状态%用于生成发布的示例简历= cvpartition (grp),“坚持”per_eval)
cv = hold out交叉验证分区NumObservations: 216 NumTestSets: 1 TrainSize: 173 TestSize: 43

观察到特征只从训练子集中选择,验证是用测试子集执行的。classperf允许您跟踪多个验证。

cp_lda1 = classperf (grp);初始化CP对象k = 1:10%运行交叉验证10次简历=重新分区(简历);壮举= rankfeatures (Y(:,培训(cv)、grp(培训(cv)),“数量”, 100);c =分类(Y(功绩,测试(cv)), Y(成绩、培训(cv)), grp(培训(cv)));classperf (cp_lda1 c测试(cv));使用当前验证更新CP对象结束

在循环之后,您可以使用CP对象中的任何属性来评估总体盲分类的性能,例如错误率、灵敏度、特异性等。

cp_lda1
Label: " Description: " ClassLabels: {2x1 cell} GroundTruth: [216x1 double] NumberOfObservations: 216 ControlClasses: 2 TargetClasses: 1 ValidationCounter: 10 SampleDistribution: [216x1 double] ErrorDistribution: [216x1 double] SampleDistributionByClass: [2x1 double] ErrorDistributionByClass: [2x1 double] CountingMatrix: [3x2 double] CorrectRate: 0.8488 ErrorRate: 0.1512 LastCorrectRate: 0.8837 LastErrorRate: 0.1163 InconclusiveRate: 0 ClassifiedRate: 1敏感性:0.8208特异性:0.8842 PositivePredictiveValue: 0.8995 NegativePredictiveValue: 0.7962 positive vellikeihood: 7.0890 negativellikeihood: 0.2026患病率:0.5581 diagnostics table: [2x2 double]

这种朴素的特征选择方法可以根据区域信息消除一些特征,从而得到改进。例如,'NWEIGHT'在rankfeatures超过相邻M/Z特征的测试统计量,以便其他重要的M/Z值可以并入所选特征的子集

cp_lda2 = classperf (grp);初始化CP对象k = 1:10%运行交叉验证10次简历=重新分区(简历);壮举= rankfeatures (Y(:,培训(cv)、grp(培训(cv)),“数量”, 100,“NWEIGHT”5);c =分类(Y(功绩,测试(cv)), Y(成绩、培训(cv)), grp(培训(cv)));classperf (cp_lda2 c测试(cv));使用当前验证更新CP对象结束cp_lda2。CorrectRate%的平均分类正确率
ans = 0.9023

PCA/LDA数据维数的降低

Lilien等人在[2]中提出了一种使用主成分分析(PCA)降低数据维数的算法,然后使用LDA对分组进行分类。在这个例子中,M/Z空间中2000个最重要的特征被映射到150个主成分

cp_pcalda = classperf (grp);初始化CP对象k = 1:10%运行交叉验证10次简历=重新分区(简历);选择2000个最重要的特征。壮举= rankfeatures (Y(:,培训(cv)、grp(培训(cv)),“数量”, 2000);% PCA来降低维数P = pca (Y(成绩、培训(cv)));%投影到PCA空间x = Y(feat,:)' * P(:,1:150);%利用LDAc =分类(x(测试(cv):), x(培训(cv):), grp(培训(cv)));classperf (cp_pcalda c测试(cv));结束cp_pcalda。CorrectRate%的平均分类正确率
ans = 0.9814

随机搜索的子集特征选择

特征选择也可以通过分类来加强,这种方法通常被称为包装器选择方法。随机搜索的特征选择生成随机的特征子集,并利用学习算法独立评估其质量。之后,它会从最常见的优秀特性中选出一组。Li等人在[3]中将这一概念应用到蛋白质表达模式的分析中。的randfeatures函数允许您在随机化的特征子集上使用LDA或k近邻分类器搜索特征子集。

注意:下面的示例计算量很大,因此已从示例中禁用了它。此外,为了获得更好的结果,您应该从中的默认值增加池大小和分类器的严格程度randfeatures.类型帮助randfeatures为更多的信息。

如果0% <==更改为1以启用。这可能需要大量的时间来完成。简历=重新分区(简历);[壮举,fCount] = randfeatures (Y(:,培训(cv)、grp(培训(cv)),...“分类”“哒”“PerformanceThreshold”, 0.90);其他的负载randFeatCancerDetect结束

用评估集评估所选特征的质量

的第一个输出randfeatures是MZ值索引的有序列表。第一项最常出现在分类良好的子集中。第二个输出是每个值被选择的次数的实际计数。您可以使用看看这个分布。

图;嘘(fCount,马克斯(fCount) + 1);

您将看到大多数值在选定的子集中最多只出现一次。放大可以更好地了解频繁选择的值的细节。

轴([0 80 0 100])

只有少数值被选择超过10次。您可以通过使用主干图来显示最常选择的特征,从而可视化这些特征。

图;持有;sigFeats = fCount;sigFeats (sigFeats < = 10) = 0;情节(MZ (mean_N mean_C]);茎(MZ (sigFeats > 0) sigFeats (sigFeats > 0),“r”);轴([2000、12000、80])传说({对照组Avg。“卵巢癌平均组”的显著特征},...“位置”“西北”)包含(xAxisLabel);ylabel (yAxisLabel);

这些特征似乎聚集在几组中。通过运行下面的实验,您可以进一步研究有多少特征是重要的。使用最频繁选择的特征对数据进行分类,然后使用两个最频繁选择的特征,以此类推,直到使用所有被选择超过10次的特征。然后,您可以查看添加更多特性是否改善了分类器。

nSig =总和(fCount > 10);nSig cp_rndfeat = 0(20日);我= 1:nSigJ = 1:20 CV =重分区(CV);P = pca (Y(壮举(1:我)、培训(cv)) ");x = Y(feat(1:i),:)' * P;c =分类(x(测试(cv):), x(培训(cv):), grp(培训(cv)));cp = classperf (grp c测试(cv));cp_rndfeat (j, i) = cp.CorrectRate;%的平均分类正确率结束结束图的阴谋(1:nSig,[马克斯(cp_rndfeat);意味着(cp_rndfeat)]);传奇({“最佳CorrectRate”“意思是CorrectRate”},“位置”“东南”

从这张图中你可以看到,即使只有三个特征,有时也可以得到完美的分类。您还会注意到,平均正确率的最大值出现在少数特征上,然后逐渐下降。

[bestAverageCR, bestNumFeatures] = max(mean(cp_rndfeat));

现在可以可视化给出最佳平均分类的特征。你可以看到这些实际上只对应于数据中的三个峰值。

图;持有;sigFeats = fCount;sigFeats (sigFeats < = 10) = 0;ax_handle = plot(MZ,[mean_N mean_C]);茎(MZ(壮举(1:bestNumFeatures)), sigFeats(壮举(1:bestNumFeatures)),“r”);轴([7650、8850、80])传说({对照组Avg。“卵巢癌平均组”的显著特征})包含(xAxisLabel);ylabel (yAxisLabel);

备选统计学习算法

在MATLAB®中有许多分类工具,您也可以使用它们来分析蛋白质组数据。其中包括支持向量机(fitcsvm), k个最近的邻居(fitcknn)、神经网络(深度学习工具箱™)、分类树(fitctree).对于特征选择,你也可以使用顺序子集特征选择(sequentialfs)或使用遗传算法(全局优化工具箱)优化随机搜索方法。例如,请参见质谱数据特征的遗传算法搜索

参考文献

[1]康拉德,T P, V A Fusaro, S Ross, D Johann, V Rajapakse, B A Hitt, S M Steinberg,等。“卵巢癌检测的高分辨率血清蛋白质组学特征。”内分泌相关癌症,2004年6月,163-78。

[2]莉莲,瑞安·H,哈尼·法里德,布鲁斯·r·唐纳德。人类血清质谱中表达依赖性蛋白质组数据的概率疾病分类计算生物学杂志,第10期。6(2003年12月):925-46。

[3]李,L., D. M.乌巴赫,P.特里和J. A.泰勒。GA/KNN方法在SELDI蛋白质组学数据中的应用。生物信息学20,不。10(2004年7月1日):1638-40。

[4]Petricoin, Emanuel F, Ali M Ardekani, Ben A Hitt, Peter J Levine, Vincent A Fusaro, Seth M Steinberg, Gordon B Mills等,“使用血清蛋白质组学模式识别卵巢癌。”《柳叶刀》第359期,no。9306(2002年2月):572-77。

另请参阅

||

相关的话题

Baidu
map