相关文章推荐
仗义的双杠  ·  npm ...·  1 年前    · 
侠义非凡的菠菜  ·  Power Query PDF ...·  1 年前    · 

原标题:干货|用几行简单的python代码轻松获得GEO转录组表达矩阵数据

Gene Expression Omnibus (GEO)数据库为生物科研人员提供了大量的组学数据资源,其中最为丰富的当属基因芯片或者高通量测序产生的转录组数据。虽然GEO网站上内置了分析小工具能够帮助快速获取信息,但无法利用全转录组三级数据(标准化后的表达值)。正巧小编最近下载了一批的转录组三级数据,然后写了几行蹩脚的python处理得到矩阵文件,分享出来希望对读者有帮助。

下面的内容以GSE30169文件处理为例。

(一) GSE30169转录组数据下载

在NCBI主页的下拉菜单中选择GEO DataSets,输入GEO编号即可检索,如图一,点击Download data。

图1 GSE30169检索界面

点击之后会出现包含5个文件的窗口,我们只需要选择其中两个下载即可,如图2。GSE30169_series_matrix.txt.gz文件包含两部分内容:(1)以“!”开头的metadata,是详细的样本信息描述。其中“!Sample_treatment”一行给出样本处理或非处理分组,可作为数据提取关键行;(2)样本对应的基因表达矩阵。其中第一列为基因名称,需要注意的是该名称为芯片探针名,并不是基因ID。GSE30169_family.soft.gz文件存储了芯片探针ID和基因ID的对应列表。

图2,GSE30169文件下载窗口

(二)文件处理需求

GSE30169转录组数据包含了629个动脉内皮细胞样本(其中322个是经过OxPAPC处理,307个control)。小编想要得到未经处理的动脉细胞转录组数据,因此我的第一需求是从GSE30169_series_matrix.txt.gz文件中提取匹配“control”的样本。我还需要基因名来做后续分析,因此还需要结合GSE30169_family.soft.gz文件转换ID。

(三)筛选特定样本并生产表达矩阵代码解析

之前提到GSE30169_series_matrix.txt.gz文件中以“!Sample_treatment”开头的行包含样本处理信息。如果把这一行全部元素存放在一个列表的话,我们只需要再用一个列表储存匹配到“control”关键字的列表索引,然后只输出表达矩阵中对应于索引列表中的值即可。代码如下:

(四)对上述矩阵文件进行ID转换

ID转换的思想需要借助python中一个强大的数据储存类型——字典,我们将探针ID作为字典的键,将基因ID作为键对应的值。首先读取GSE30169_family.soft.gz文件,将ID信息存储在字典中,键为探针ID,对应的值为基因ID。然后打开矩阵文件,在利用字典的键值对应关系将原本的探针ID替换成基因ID。代码如下:

通过以上两个python脚本的执行,我们就可以从GEO复杂的三级数据文件中快速得到适用于后续分析的表达矩阵文件,该矩阵文件中每一列是一个样本,每一行是一个基因,可以直接读入R的as.data.frame函数。

俗话说“条条大路通罗马”,我相信一定有更好的处理GEO数据的方法,再加上我的python全是通过免费版教程自学,难免有些语句写的不够漂亮,希望读者多提宝贵意见。

转自生信草堂

浙大生信博士团队倾力打造的一个科研人员学习交流的公众微信平台。我们致力于科研社区服务,分享最前沿的科技进展,提供生信分析方法,解读经典分析案例,公众数据库的挖掘和临床数据统计分析。在此我们欢迎各位的加入! 返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。