主要内容

癌症检测

这个例子展示了如何训练一个神经网络检测癌症使用蛋白质质谱数据配置文件。

介绍

血清蛋白质组学模式诊断可以用来区分样本和无疾病患者。配置文件生成模式应用表面增强激光解吸电离(SELDI)蛋白质质谱分析。这种技术有潜力改善癌症病理临床诊断测试。

问题:癌症检测

我们的目标是建立一个分类器可以区分癌症和控制患者的质谱数据。

接下来的方法在本例中是选择减少组测量或“特征”,可以用来区分癌症和控制患者使用一个标识符。这些特性在特定质量或电荷离子强度水平值。

格式化的数据

在这个示例中,使用的数据提供的文件ovarian_dataset.mat来自FDA-NCI临床蛋白质组学数据库。这个数据集的详细描述,请参见[1]和[2]。

创建数据文件OvarianCancerQAQCdataset.mat通过遵循这些步骤批处理的光谱使用顺序和并行计算(生物信息学工具箱)。新文件包含的变量Y,MZ,grp

每一列中Y代表测量取自一个病人。有216年Y代表216年病人,其中121年卵巢癌患者和吗95年是正常的病人。

在每一行Y代表了离子强度水平在一个特定mass-charge值表示MZ。有15000年mass-charge值MZ和每一行Y代表了在那个特定mass-charge ion-intensity水平的病人的价值。

的变量grp持有这些样品代表的索引信息,癌症患者和哪些代表正常的病人。

排名关键特性

这个任务是一个典型的分类问题的数量特征的数量远远大于观测但单一功能实现正确分类。因此,我们的目标是找到一个分类器,适当学习如何体重多重功能,同时产生一个广义映射不合身的”。

发现重要特性的一种简单的方法是假设每个M / Z值是独立的,计算一个双向的学习任务。rankfeatures返回一个指数最重要的M / Z值,例如100年指数排名的检验统计量的绝对值。

加载OvarianCancerQAQCdataset.mat和排名功能使用rankfeatures(生物信息学工具箱)选择100排名最高的测量作为输入x

印第安纳州= rankfeatures (Y, grp,“标准”,的tt,“NumberOfIndices”,100);:x = Y(印第安纳州);

定义的目标t两类如下:

双(t = strcmp (“癌症”grp));t = [t;1 - t];

从脚本的预处理步骤和上面列出的例子是为了展示一组代表可能的预处理和特征选择程序。使用不同的步骤或参数可能会导致不同的和更好的结果。

[x, t] = ovarian_dataset;谁xt
类属性名称大小字节t 2 x216 3456双x 100 x216 172800双

每一列中x代表了216种不同的病人之一。

在每一行x代表了离子强度水平在100年的一个特定的mass-charge值为每一个病人。

的变量t有两排216个值都是(1,0),指示一个癌症病人,或[0,1]正常的病人。

使用前馈神经网络分类

既然你已经确定了一些重要的特性,您可以使用这些信息对癌细胞和正常样本进行分类。

由于神经网络初始化随机初始权重,结果训练后网络略有不同每次运行的例子。为了避免这种随机性,随机种子被设置为每次复制相同的结果。然而,设置随机种子不是您自己的应用程序所必需的。

setdemorandstream (672880951)

1-hidden层前馈神经网络与隐层神经元是创建和训练。自动输入和目标样本分为训练,验证集和测试集。训练集用于教网络。培训持续只要网络持续改进验证集。网络的测试集提供了一个独立的测量精度。

输入和输出大小为0,因为网络尚未配置匹配输入和目标数据。这个配置当你训练网络。

网= patternnet (5);视图(净)

现在网络已经准备好被训练。样品会自动分成训练、验证和测试集。训练集用于教网络。培训持续只要网络持续改进验证集。网络的测试集提供了一个独立的测量精度。

神经网络训练工具显示了该算法用于网络训练和训练它。它还显示了培训期间状态和停止的标准培训用绿色突出显示。

底部的按钮打开有用的情节,可以打开期间和之后的训练。链接算法名称和图旁边的按钮打开文档的主题。

(净,tr) =火车(净,x, t);

看看网络的性能改进的培训期间,点击“性能”按钮在训练工具,或者使用plotperform函数。

性能测量的均方误差,并显示在对数刻度。它迅速减少网络训练。

显示性能的训练,验证集和测试集。

plotperform (tr)

经过训练的神经网络与测试样品我们现在可以测试分区从主数据集。培训中使用的测试数据没有以任何方式,因此提供了一个“样本外数据集来测试网络。这使估计的网络将会有怎样的表现与真实世界的数据进行测试。

网络输出范围0 - 1。阈值输出获得1和0指示癌症或正常的患者,分别。

testX = x (:, tr.testInd);testT = t (:, tr.testInd);暴躁的=净(testX);testClasses =暴躁的> 0.5
testClasses =2×32逻辑数组1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1

一个测量的神经网络具有适应数据的混乱。

混淆矩阵显示正确的和不正确的分类的百分比。正确的分类矩阵对角线上的绿色广场。红色的方块代表不正确的分类。

如果网络是准确的,那么红色方块的百分比很小,表明一些误分类。

如果网络是不准确的,那么你可以试着训练的时间更长,或者训练一个网络有更多隐藏的神经元。

plotconfusion (testT暴躁的)

这里的总体百分比是正确的和不正确的分类。

[c cm] =混乱(testT,暴躁的);流(的正确分类:百分比% f % % \ n ',100 * (1 - c));
正确的分类比例:84.375000%
流(的比例不正确的分类:% f % % \ n ',100 * c);
不正确的分类比例:15.625000%

另一个测量的神经网络具有适合数据接受者操作特征图。情节展示了假阳性和如此积极的利率与输出的阈值是不同的,从0到1。

越远,线,减少假阳性需要接受为了得到一个真阳性率高。最好的分类器有一条线从左下角,左上角,右上角,或接近。

1级表示癌症患者和2类表示正常的病人。

plotroc (testT暴躁的)

这个例子演示了如何使用神经网络作为分类器对癌症检测。改善分类器的性能,您也可以尝试使用主成分分析等技术降低数据的维数用于神经网络的训练。

引用

[1]t康拉德,et al .,“高分辨率为卵巢检测血清蛋白质组功能”,Endocrine-Related癌症,11日,2004年,页163 - 178。

[2]E.F. Petricoin, et al .,“使用卵巢癌血清蛋白质组学模式识别”,《柳叶刀》,359(9306),2002年,页572 - 577。