基因表达分析
这个例子演示了寻找模式在面包酵母基因表达谱使用神经网络。
问题:在面包酵母基因表达分析(酿酒酵母)
我们的目标是获得一些理解基因在酿酒酵母表达,这是通常被称为面包酵母和啤酒酵母。真菌是用来烤面包和葡萄酒发酵的葡萄。
酿酒酵母,引入富含葡萄糖的培养基时,可以将葡萄糖转化为乙醇。最初,酵母把葡萄糖转化为乙醇的代谢过程被称为“发酵”。然而,一旦供应葡萄糖耗尽酵母从厌氧发酵葡萄糖的有氧呼吸的乙醇。这个过程称为diauxic转变。这个过程是相当大的兴趣,因为它伴随着主要的基因表达的变化。
示例使用DNA微阵列基因表达数据来研究颞几乎所有基因在酿酒酵母diauxic转变。
你需要生物信息学工具箱™运行这个示例。
如果~ nnDependency。bioInfoAvailable errordlg (这个例子需要生物信息学工具箱。);返回;结束
的数据
这个示例使用数据从DeRisi、JL艾耶,虚拟现实,布朗,阿宝。“探索代谢和遗传控制基因表达在基因组范围内。”Science. 1997 Oct 24;278(5338):680-6. PMID: 9381177
完整的数据集可以从基因表达综合网站下载:https://www.yeastgenome.org
首先将数据加载到MATLAB®。
负载yeastdata.mat
基因表达水平测量时间点7点在diauxic转变。的变量次
包含的时间表达水平测量的实验。的变量基因
包含的名称基因的表达水平测定。的变量yeastvalues
包含“价值”数据LOG_RAT2N_MEAN或log2 CH2DN_MEAN比率和CH1DN_MEAN七个时间步的实验。
获得一个想法的大小可以使用的数据元素个数(基因)
显示有多少基因数据集。
元素个数(基因)
ans = 6400
基因是细胞基因名字的数组。您可以访问使用MATLAB单元阵列索引条目:
基因{15}
ans = ' YAL054C '
这表明的第15行变量yeastvalues
包含子的表达水平YAL054C
。
过滤的基因
数据集是相当大的,很多信息对应的基因,在实验中不显示任何有趣的变化。使它更容易找到有趣的基因,首先要做的是减少数据集的大小通过消除基因表达谱不显示感兴趣的东西。有6400个表达谱。您可以使用各种技术来减少这一部分包含最重要的基因。
如果你浏览基因列表中您将看到几个点标记为“空”。这些是空点阵列,而他们可能会与他们相关的数据,对于本示例中,您可以考虑这些点噪声。这些点可以使用比较字符串
函数和从数据集中删除索引的命令。
emptySpots = strcmp (“空”,基因);yeastvalues (emptySpots:) = [];基因(emptySpots) = [];元素个数(基因)
ans = 6314
yeastvalues数据你还会看到几个地方被标记为NaN的表达水平。这表明没有数据收集这个地方在特定的时间步。处理这些缺失值的一种方法是归咎于他们使用数据均值或中位数为特定基因随着时间的推移。这个示例使用一个不那么严格的方法简单地扔掉任何基因的数据在一个或多个表达水平没有测量。
这个函数isnan
是用来识别基因缺失的数据和索引命令用来消除基因缺失的数据。
nanIndices =任何(isnan (yeastvalues), 2);yeastvalues (nanIndices:) = [];基因(nanIndices) = [];元素个数(基因)
ans = 6276
如果你情节的表达谱剩下的配置文件,你会看到,大多数配置文件是平的,而不是明显不同于其他人。这个平面数据显然是使用的,因为它表明,与这些概要文件相关的基因并不影响diauxic转变;然而,在这个例子中,您感兴趣的基因表达发生巨大变化,陪diauxic转变。您可以使用过滤功能的生物信息学工具箱™删除基因与各种类型的配置文件不提供有用的信息基因受到代谢变化的影响。
您可以使用genevarfilter
函数过滤掉基因差异小。函数返回一个逻辑数组变量大小相同基因的对应行yeastvalues的方差大于0和第十百分位对应于那些低于阈值。
掩码= genevarfilter (yeastvalues);%使用面具作为一个索引的值删除筛选基因。:yeastvalues = yeastvalues(面具);基因=基因(面具);元素个数(基因)
ans = 5648
这个函数genelowvalfilter
删除基因有非常低的绝对表达式值。注意,基因筛选功能还可以自动计算过滤数据和名字。
(面具,yeastvalues,基因)=…genelowvalfilter (yeastvalues基因,“absval”log2 (3));元素个数(基因)
ans = 822
使用geneentropyfilter
消除基因的概要文件有低熵:
(面具,yeastvalues,基因)=…geneentropyfilter (yeastvalues基因,“prctile”15);元素个数(基因)
ans = 614
主成分分析
现在,您已经有了一个可控的基因列表,你可以寻找配置文件之间的关系。
正常化的标准差和均值数据允许网络将每个输入视为同等重要的范围值。
主成分分析(PCA)是一个有用的技术,可以用来降低大型数据集的维数,比如从微阵列分析。这种技术将数据集的主成分消除这些组件,变异的贡献最少的数据集。
这两个设置变量可以用来申请mapstd
和processpca
新数据是一致的。
[x, std_settings] = mapstd (yeastvalues ');%规范化数据[x, pca_settings] = processpca (0.15 x);% PCA
输入向量是第一个规范化,使用mapstd
,所以他们零均值方差和统一。processpca
函数实现PCA算法。第二个参数传递给processpca
是0.15。这意味着processpca
消除这些主成分所占比重不到15%的总变差数据集。变量个人电脑
现在包含yeastvalues数据的主成分。
主要的组件可以使用的可视化散射
函数。
图散射(x (1:), (2,:));包含(“第一主成分”);ylabel (第二主成分的);标题(的主成分散点图);
聚类分析:自组织映射
的主要组件现在可以集群使用自组织映射(SOM)聚类算法。
的selforgmap
函数创建一个自组织映射网络可以被训练的火车
函数。
输入大小为0,因为网络尚未配置匹配我们的输入数据。这将发生在网络训练。
网= selforgmap (5 [3]);视图(净)
现在网络已经准备好被训练。
神经网络训练工具显示了该算法用于网络训练和训练它。它还显示培训期间状态和停止的标准培训将用绿色被加亮。
底部的按钮打开有用的情节,可以打开期间和之后的训练。链接算法名称和图旁边的按钮打开文档的主题。
网=火车(净,x);
使用plotsompos
散点图显示网络的第一个数据的两个维度。
图plotsompos(净,x);
您可以指定集群使用SOM找到最近的节点数据集内的每个点。
y =净(x);cluster_indices = vec2ind (y);
使用plotsomhits
多少向量是分配给每个神经元的地图。
图plotsomhits(净,x);
您还可以使用其他层次聚类和k - means聚类算法,在聚类分析统计和机器学习的工具箱™。
术语表
羊痘疮——一个开放阅读框(ORF)是基因序列的一部分,包含一个序列的基地,不间断的停止序列,可能编码一个蛋白质。