主要内容

质谱数据特征的遗传算法搜索

的用法全局优化工具箱生物信息工具箱™优化质谱(SELDI)数据分类特征的搜索。

简介

遗传算法优化了大数据集问题的搜索结果。您可以使用MATLAB®遗传算法函数来解决生物信息学中的这些问题。遗传算法已被应用于系统发育树的构建、基因表达和质谱数据分析,以及生物信息学的许多其他领域,这些领域存在大量的和计算成本高的问题。本例搜索质谱数据中的最佳特征(峰值)。我们将在数据中寻找特定的峰值,以区分癌症患者和对照组患者。

全局优化工具箱

首先熟悉全局优化工具箱。该文档描述了遗传算法如何工作以及如何在MATLAB中使用它。要访问文档,请使用医生命令。

医生遗传算法

质谱数据预处理

本例中的原始数据来自FDA-NCI临床蛋白质组学项目数据库.它收集了121名卵巢癌患者和95名对照组患者的样本。有关该数据集的详细描述,请参见[1]和[2]。

本示例假设您已经拥有预处理数据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®

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

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

有三个变量:MZ,Y,grpMZ是质量/电荷矢量,Y是否所有216名患者(对照组和癌症患者)的强度值,和grp保存关于这些样本中哪些代表癌症患者,哪些代表正常患者的索引信息。要可视化此数据,请参见示例识别显著特征和分类蛋白质图谱

初始化示例中使用的变量。

[numPoints, numSamples] = size(Y);样本和数据点总数的%id = grp2idx (grp);事实:巨蟹座=1,控制组=2

为遗传算法创建一个适应度函数

遗传算法需要一个目标函数,也称为适应度函数,它描述了我们想要优化的现象。在本例中,遗传算法机器使用适应度函数测试M/Z值的小子集,然后确定哪些M/Z值传递给后续的每一代或从每一代删除。的适应度函数biogafit使用函数句柄传递给遗传算法求解器。在这个例子中,biogafit利用线性分类器的1)后验概率和2)经验错误率的线性组合(分类).您可以创建自己的适应度函数,以尝试不同的分类器或替代方法来评估分类器的性能。

类型biogafit
biogafit的适应度函数% %这个函数使用分类函数来衡量质量%谱数据如何使用特定的质量分组。输入参数% thePopulation是来自质谱%数据y的行指数的向量。分类性能是错误率%和分类器的后验概率的线性组合。The MathWorks, Inc. The population = round(The population);试(c ~ p) =分类(Y(人口:),Y(人口:),双(id),“线性”);cp = classperf (id、c);classPerformance = 100 * cp。ErrorRate + 1 -均值(max(p,[],2));在集合的协方差矩阵不是正定的情况下,我们尝试一个% naive-Bayes分类器:try [c,~,p] = classification (Y(thePopulation,:)',Y(thePopulation,:)',double(id),'diaglinear');cp = classperf (id、c);classPerformance = 100 * cp。ErrorRate + 1 - mean(max(p,[],2)); catch classPerformance = Inf; end end

创建初始总体

用户可以通过创建跨界、适应度缩放、突变、选择和种群创建的自定义函数来改变遗传算法执行优化的方式。在本例中,您将使用biogacreate为本例编写的函数,用于从质谱数据创建初始随机数据点。函数头需要GA文档指定的特定输入参数。工具箱中有一个默认的创建函数,用于创建数据点的初始总体。

类型biogacreate
这个函数创建一个维数为% options的种群矩阵。PopulationSize按自变量的数量% (genome elength)列排序。这些值是整数,对应于%随机选择的质谱仪数据y的行。%总体矩阵的每一行都是质谱仪%数据行指数的随机样本。注意:此函数的输入参数是GA函数所必需的。更多细节请参见GA文档。版权所有The MathWorks, Inc. pop = 0 (options.PopulationSize, genome elength);npop =元素个数(流行);ranked_features = rankfeatures (npop Y, id,‘NumberOfIndices’,‘NWeighting’,5);流行(,)= randsample (ranked_features npop);

集合遗传算法选项

GA函数使用一个选项结构来保存它在使用遗传算法执行最小化时使用的算法参数。的optimoptions函数将创建此选项结构。就本例而言,遗传算法将只运行50代。但是,您可以将“代”设置为更大的值。

选择= optimoptions (“遗传算法”,“CreationFcn”{@biogacreate Y id},...“PopulationSize”, 120,...“代”, 50岁,...“显示”,“通路”
options = ga options:设置属性:CreationFcn: {1x3 cell}显示:'iter' MaxGenerations: 50 PopulationSize: 120默认属性:constraintttolerance: 1.0000e-03 CrossoverFcn: [] CrossoverFraction: 0.8000 EliteCount: '0.05*PopulationSize' FitnessLimit: -Inf FitnessScalingFcn: @ fitscalingrk FunctionTolerance: 1.0000e-06 HybridFcn: [] InitialPopulationMatrix: [] InitialPopulationRange: [] InitialScoresMatrix: [] MaxStallGenerations: 50 MaxStallTime: Inf MaxTime: Inf MutationFcn:[]非线性约束算法:'auglag' OutputFcn: [] PlotFcn: [] PopulationType: 'doubleVector' SelectionFcn: [] UseParallel: 0 UseVectorized: 0

运行GA查找20个鉴别特征

使用遗传算法启动遗传算法函数。每组20个数据点的100组将进化50代。选择、交叉和突变事件在每一代产生一个新的种群。

初始化随机生成器到与生成%出版的例子rng (“默认”nVars = 12;%设置所需功能的数量FitnessFcn = {@biogafit Y id};%设置适应度函数壮举= ga (FitnessFcn,据nvar选项);%叫遗传算法壮举=圆(成绩);primarant_mass = MZ(feat) cp = classperf(class (Y(feat,:)',Y(feat,:)',id),id);cp.CorrectRate
单目标优化:12个变量(s)选项:CreationFcn: @ biogcreate CrossoverFcn: @crossoverscattered SelectionFcn: @selectionstochunif MutationFcn:@mutationgaussian最佳意味着停滞一代Func-count f (x) f (x)代1 0 2 354 240 2.827 8.928 2.827 8.718 - 1 3 468 0.9663 - 8.001 0 4 0 5 696 582 0.9516 7.249 0.9516 6.903 1 6 0 7 924 810 0.4926 6.804 0.4926 6.301 1 8 0 9 1152 1038 0.02443 5.215 0.02443 4.77 1 10 0 11 1380 1266 0.02101 4.084 0.02101 3.792 1 12 0 13 1608 1494 0.01854 3.437 0.01606 3.44 0 14 0 15 1836 1722 0.01372 2.768 0.01218 2.74 0 16 0 17 2064 1950 0.01204 2.471 0.01204 2.649 1 18 19 2292 0.01189 2178 0.01189 - 2.326 02.003 0 0 21 2520 2406 0.0118 - 2.341 0.01099 - 1.714 0 22 2634 0.01094 - 1.828 0 23 2748 24 2862 0.01094 2.285 0.01094 1.94 1 2 0 26 3090 2976 0.009843 2.026 0.009843 1.899 1 27 0 28 3318 3204 0.009183 1.802 0.007877 1.5 0 0 30 3546 29 3432 0.007788 1.793 0.007788 1.756 - 1最佳意味着停滞一代Func-count f (x) f (x)代31 3660 0.007091 - 1.719 0 32 0 33 3888 3774 0.006982 1.598 0.006982 - 1.269 4002 0.006732 - 1.279 0 34 35 0 36 4230 4116 0.005008 1.229 0.004325 1.179 0.004325 0 37 43441.534 1 38 4458 0.003982 1.15 0 39 4572 0.003982 0.9602 1 40 4686 0.003982 0.8547 2 41 4800 0.003891 0.9083 0 42 4914 0.003683 0.7409 0 43 5028 0.003683 0.516 1 44 5142 0.003364 0.5153 0 45 5256 0.003172 0.4218 0 46 5370 0.003172 0.3783 1 47 5484 0.002997 0.1883 0 48 5598 0.002675 0.1297 0 49 5712 0.002611 0.04382 0 50 5826 0.002519 0.007859 0 Optimization terminated: maximum number of generations exceeded. Significant_Masses = 1.0e+03 * 7.6861 7.9234 8.9834 8.6171 7.1808 7.3057 8.1132 8.5241 7.0527 7.7600 7.7442 7.7245 ans = 1

显示具有歧视性的特征

为了可视化哪些特征被遗传算法选中,数据被绘制成用红色垂直线标记的峰值位置。

xAxisLabel =“质量/电荷(M / Z)”% x标签用于绘图yAxisLabel =“相对离子强度”% y标签用于绘图图;持有;hC = plot(MZ,Y(:,1:15),“b”);hN =情节(MZ, Y (:, 141:155),‘g’);hG =情节(MZ(壮举(装天花板((1:3 *据nvar) / 3))), repmat([0 100南),1,据nvar),“r”);包含(xAxisLabel);ylabel (yAxisLabel);轴([1900 12000 -1 40]);传奇([环(1),hC (1) hG (1)), {“控制”,卵巢癌的,“区别的特性”},...“位置”,“西北”);标题(“遗传算法发现的具有鉴别特征的MS数据”);

在8100 Da左右观察有趣的峰值。,which seems to be shifted to the right on healthy samples.

轴([8128 - 8082。5 4])

参考文献

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

[2]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