美文网首页R. python新手日记生物信息学从零开始学生物信息编程
Python从零开始第五章生物信息学⑥GEO数据库实战分析(1)

Python从零开始第五章生物信息学⑥GEO数据库实战分析(1)

作者: 柳叶刀与小鼠标 | 来源:发表于2018-12-14 01:37 被阅读607次

    目录

    Python从零开始第五章生物信息学①提取差异基因

    Python从零开始第五章生物信息学②热图及火山图

    Python从零开始第五章生物信息学③kegg查询

    Python从零开始第五章生物信息学④kegg查询续

    Python从零开始第五章生物信息学⑤生存分析(log-rank)

    Python从零开始第五章生物信息学⑥GEO数据库实战分析(1)

    ==================================================

    正文

    GEO数据库全称GENE EXPRESSION OMNIBUS,是由美国国立生物技术信息中心NCBI创建并维护的基因表达数据库。它创建于2000年,收录了世界各国研究机构提交的高通量基因表达数据,也就是说只要是目前已经发表的论文,论文中涉及到的基因表达检测的数据都可以通过这个数据库中找到。 这个数据库应该是生物信息入门学习挖掘的数据库,发文量每年估计有数千篇吧,GEO上面的测序文件非常丰富,肿瘤,非肿瘤的等等几乎都有,并且可以免费挖掘。关于这个数据库的介绍网上非常多,我就不赘述了。有兴趣的可以取生信技能树上面看看。

    生信技能树
    http://www.biotrainee.com/

    这一篇以及接下来的几篇主要是写一个GEO数据库常见的分析流程。

    • 导入必须的python包以及修改默认文件位置。
    # -*- coding: utf-8 -*-
    """
    Created on Fri Dec 14 00:47:52 2018
    
    @author: czh
    """
    %clear
    %reset -f
    # In[*]
    # 加载Python库
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    import os
    os.chdir('D:\\train')
    
    • 修整数据
    # In[*]
    
    data = pd.read_csv('GSE18388_series_matrix.txt.gz', 
                       delimiter='\t',skiprows=31)
    
    # In[*]
    data= data.drop(data.index[0:34])
    data.rename(columns={'!Sample_title':'gene_id'}, inplace=True)
    

    前33行为不需要的介绍信息,需要删除。另外修改第一列的列名。

    • 删除含有缺失值的基因
    # In[*]
    data.isna().sum()
    data = data.dropna(axis=0)
    data.dtypes
    
    • 由于后面的差异分析或者绘图,要求所有的基因数据需要为数值型。

    而目前该数据框中读取时含有很多字符,所以列属性为object,我们需要将这些列属性修改为数值型。

    # In[*]
    
    data.dtypes.eq(object)
    # In[*]
    cols = data.columns[data.dtypes.eq(object)]
    # In[*]
    data[cols] = data[cols].apply(pd.to_numeric,
              errors='coerce', axis=0)
    data.dtypes.eq(object)
    
    • 查看样本之间是否有整体差异
    # In[*]
    
    data.dtypes.eq(object)
    # In[*]
    cols = data.columns[data.dtypes.eq(object)]
    # In[*]
    data[cols] = data[cols].apply(pd.to_numeric,
              errors='coerce', axis=0)
    data.dtypes.eq(object)
    
    

    通过上面我们可以看出样本整体没有差异,可以做差异分析。

    GEO数据自带的有差异分析-geo2R,虽然比较简单且教程很多,不需要编程,但是不是特别精确,如果只是简单的做一下生信验证,可以使用这个,我们这里直接读取geo2R分析的结果

    GEO2R = pd.read_table("geo_result.txt", sep="\t")
    

    这个数据框就包含了已经分析好的差异分析结果,包括基因名字和探针ID,还有比较关注的差异倍数和P值

    相关文章

      网友评论

        本文标题:Python从零开始第五章生物信息学⑥GEO数据库实战分析(1)

        本文链接:https://www.haomeiwen.com/subject/osaihqtx.html