主要内容

基因表达分析

这个例子演示了使用神经网络在面包酵母的基因表达谱中寻找模式。

问题:分析贝克酵母(Saccharomyces Cerevisiae)的基因表达

目的是对酿酒酵母(Saccharomyces cerevisiae)中的基因表达有一些了解。酿酒酵母通常被称为面包酵母或啤酒酵母。它是一种用于烘焙面包和用葡萄发酵葡萄酒的真菌。

当将酿酒酵母引入富含葡萄糖的培养基中时,可以将葡萄糖转化为乙醇。最初,酵母通过一种称为“发酵”的代谢过程将葡萄糖转化为乙醇。然而,一旦葡萄糖的供应耗尽,酵母就从葡萄糖的厌氧发酵转向乙醇的好氧呼吸。这个过程称为双auxic移位。这个过程是相当有趣的,因为它伴随着基因表达的主要变化。

这个例子使用DNA微阵列数据来研究在二氧移位期间酿酒酵母中几乎所有基因的时间基因表达。

你需要生物信息学工具箱™ 运行此示例。

如果~nnDependency.bioInfoAvailable errordlg(“这个例子需要生物信息学工具箱。”);返回;结束

的数据

这个例子使用了来自DeRisi, JL, Iyer, VR, Brown, PO的数据。“在基因组规模上探索基因表达的代谢和遗传控制。”中国科学(d辑:地球科学)1997年10月24日;PMID: 9381177

完整的数据集可从基因表达综合网站下载:https://www.yeastgenome.org

首先将数据加载到MATLAB®中。

负载yeastdata.mat

基因表达水平在7个时间点在双auxic转移。的变量包含在实验中测量表达水平的时间。变量基因包含已测量其表达水平的基因的名称。变量YeastValue包含实验中七个时间步的“VALUE”数据或LOG_RAT2N_MEAN,或CH2DN_MEAN与CH1DN_MEAN比值的log2。

了解您可以使用的数据的大小元素个数(基因)显示数据集中有多少个基因。

元素个数(基因)
ans=6400

基因是由基因名称组成的细胞阵列。您可以使用MATLAB单元数组索引访问条目:

基因{15}
ans = ' YAL054C '

这表示变量的第15行YeastValue包含ORF的表达式级别YAL054C.

过滤的基因

数据集是相当大的,很多信息对应的基因,没有显示任何有趣的变化,在实验中。为了更容易地找到有趣的基因,首先要做的是通过删除没有显示任何感兴趣的表达谱的基因来减少数据集的大小。有6400个表情简介。你可以使用一些技术来减少这个子集,其中包含最重要的基因。

如果你仔细看一下基因列表,你会看到几个标记为“空”的点。这些是数组上的空点,虽然它们可能有与之关联的数据,但对于本例,您可以将这些点视为噪声。这些点可以用比较字符串函数,并使用索引命令从数据集中删除。

空罐=strcmp(“空的”,基因);yeastvalues(空点,:)=[];基因(空点)=[];努梅尔(基因)
ans = 6314

在酵母值数据中,您还将看到几个地方的表达水平被标记为NaN。这表明在特定的时间步长没有收集该点的数据。处理这些缺失值的一种方法是使用特定基因随时间变化的数据的平均值或中值来推断它们。这个例子使用了一种不那么严格的方法,即简单地丢弃任何没有测量一个或多个表达水平的基因的数据。

这个函数伊斯南用于识别缺失数据的基因,索引命令用于删除缺失数据的基因。

nanIndices =任何(isnan (yeastvalues), 2);yeastvalues (nanIndices:) = [];基因(nanIndices) = [];元素个数(基因)
ans=6276

如果您要绘制所有其余配置文件的表达式配置文件,您将看到大多数配置文件是扁平的,与其他配置文件没有显著差异。这个平坦的数据显然是有用的,因为它表明与这些谱图相关的基因不受双auxic转移的显著影响;然而,在这个例子中,您感兴趣的是伴随双auxic转移的表达变化较大的基因。您可以使用生物信息学工具箱™中的过滤功能来删除具有不同类型配置文件的基因,这些配置文件不能提供有关受代谢变化影响的基因的有用信息。

你可以使用genevarfilter功能是过滤出随时间变化较小的基因。该函数返回与变量基因大小相同的逻辑数组,其中1对应于方差大于第10个百分位的YeastValue行,0对应于阈值以下的YeastValue行。

掩码=genevarfilter(YeastValue);%使用掩码作为值的索引来删除过滤的基因。: yeastvalues = yeastvalues(面具);基因=基因(面具);元素个数(基因)
ans=5648

这个函数genelowvalfilter删除绝对表达值非常低的基因。请注意,基因筛选函数还可以自动计算筛选的数据和名称。

[面具,YeastValue,基因]=...genelowvalfilter (yeastvalues基因,“absval”,log2(3));努梅尔(基因)
ans = 822

使用geneentropyfilter要移除那些谱图熵低的基因:

[面具,YeastValue,基因]=...geneentropyfilter (yeastvalues基因,“prctile”,15); 努梅尔(基因)
ans = 614

主成分分析

现在您已经有了一个可管理的基因列表,您可以查找这些基因之间的关系。

对数据的标准差和平均值进行归一化,使网络能够在其值范围内将每个输入视为同等重要的。

主成分分析(PCA)是一种有用的技术,可用于降低大型数据集的维数,例如来自微阵列分析的数据集。该技术分离数据集的主成分,消除对数据集变化贡献最小的成分。

这两个设置变量可用于应用mapstd过程PCA使新数据保持一致。

[x, std_settings] = mapstd (yeastvalues ');%规范化数据[x, pca_settings] = processpca (0.15 x);%主成分分析

输入向量首先被标准化,使用mapstd这样它们的均值和单位方差都为零。过程PCA是实现PCA算法的函数。第二个参数传递给过程PCA是0.15。这意味着过程PCA消除对数据集中总变化贡献小于15%的主成分。变量个人电脑现在包含yeastvalues数据的主要组成部分。

控件可以将主组件可视化散射功能。

图散射(x (1:), (2,:));包含(“第一主成分”); 伊拉贝尔(“第二主成分”);标题(“主成分散点图”);

聚类分析:自组织映射

现在可以使用自组织映射(SOM)聚类算法对主成分进行聚类。

这个selforgmap函数创建一个自组织映射网络,然后使用火车功能。

输入大小是0,因为网络还没有配置为与我们的输入数据匹配。当网络被训练时就会发生这种情况。

Net = selforgmap([5 3]);视图(净)

现在网络已经准备好接受训练了。

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

底部的按钮打开有用的绘图,可在培训期间和培训后打开。算法名称和绘图按钮旁边的链接打开了这些主题的文档。

净=列车(净,x);

使用plotsompos通过数据前两个维度的散点图显示网络。

图plotsompos(净,x);

您可以通过找到数据集中每个点最近的节点来使用SOM分配集群。

y=净(x);聚类指数=vec2ind(y);

使用plotsomhits查看地图中每个神经元分配了多少个向量。

图1:点击次数(净,x);

您还可以使用统计和机器学习工具箱中提供的其他聚类算法,如分层聚类和K-means™ 用于聚类分析。

词汇表

ORF-开放阅读框(ORF)是基因序列的一部分,它包含一个碱基序列,不受可能编码蛋白质的终止序列的干扰。