主要内容

基因表达分析

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

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

研究的目标是对酿酒酵母的基因表达有一定的了解,这种酵母通常被称为面包酵母或啤酒酵母。它是一种用来烤面包和从葡萄中发酵葡萄酒的真菌。

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

该实例使用DNA微阵列数据研究酿酒酵母中几乎所有基因在双auxic转移期间的瞬时基因表达。

您需要Bioinformatics Toolbox™来运行此示例。

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

的数据

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

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

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

负载yeastdata.mat

基因表达水平在重离子移位的七个时间点进行测量。变量时代包含实验中测量表达水平的时间。的变量基因包含了被测量表达水平的基因的名称。的变量yeastvalues包含实验中七个时间步的“VALUE”数据或LOG_RAT2N_MEAN,或CH2DN_MEAN与CH1DN_MEAN比值的log2。

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

元素个数(基因)
ans = 6400

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

基因{15}
ans = ' YAL054C '

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

筛选基因

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

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

emptySpots = strcmp (“空”,基因);yeastvalues (emptySpots:) = [];基因(emptySpots) = [];元素个数(基因)
ans = 6314

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

功能isnan用于识别缺失数据的基因,索引命令用于删除缺失数据的基因。

NanIndexes=any(isnan(yeastvalues),2);yeastvalues(NanIndexes,:)=[];genes(NanIndexes)=[];numel(genes)
ans = 6276

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

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

掩码= genevarfilter (yeastvalues);%使用掩码作为值的索引来删除过滤的基因。yeastvalues=yeastvalues(掩码,:);genes=基因(掩码);numel(基因)
ans = 5648

功能genelowvalfilter去除绝对表达值很低的基因。请注意,基因筛选功能也可以自动计算筛选的数据和名称。

[掩模,酵母值,基因]=...genelowvalfilter(YeastValue、genes、,“absval”log2 (3));元素个数(基因)
ans = 822

使用geneentropyfilter要删除其配置文件具有低熵的基因:

[掩模,酵母值,基因]=...基因营养过滤器(酵母值、基因、,“prctile”15);元素个数(基因)
ans = 614

主成分分析

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

标准化数据的标准偏差和平均值允许网络将每个输入视为在其值范围内同等重要。

主成分分析(PCA)是一种有用的技术,可用于降低大数据集的维数,如来自微阵列分析的数据集。这种技术隔离了数据集的主要组件,消除了那些对数据集变化贡献最小的组件。

可以使用这两个设置变量来应用mapstdprocesspca使新数据保持一致。

[x, std_settings] = mapstd (yeastvalues ');%规范化数据[x,pca_设置]=processpca(x,0.15);% PCA

输入向量首先被标准化,使用mapstd这样它们的均值和单位方差都为零。processpca是实现主成分分析算法的函数。第二个参数传递给processpca是0.15,这意味着processpca消除那些在数据集中占总变化小于15%的主要成分。的变量个人计算机现在包含了主要成分的酵母值数据。

控件可以将主组件可视化散射函数。

图散射(x (1:), (2,:));包含(“第一主成分”);ylabel (第二主成分的);头衔(“主成分散点图”);

聚类分析:自组织映射

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

selforgmap函数创建一个自组织地图网络,然后可以使用火车函数。

输入大小为0,因为尚未将网络配置为与输入数据匹配。这将在训练网络时发生。

net=selforgmap([53]);视图(net)

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

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

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

网=火车(净,x);nntraintool nntraintool (“关闭”

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

图1-2:SOMPOS(净,x);

可以通过查找数据集中每个点最近的节点,使用SOM分配簇。

y =净(x);cluster_indices = vec2ind (y);

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

图plotsomhits(净,x);

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

术语表

羊痘疮-开放阅读框(ORF)是基因序列的一部分,它包含一个碱基序列,不受停止序列的干扰,可以潜在地编码蛋白质。