目录
Python从零开始第五章生物信息学①提取差异基因
Python从零开始第五章生物信息学②热图及火山图
Python从零开始第五章生物信息学③kegg查询
Python从零开始第五章生物信息学④kegg查询续
Python从零开始第五章生物信息学⑤生存分析(log-rank)
Python从零开始第五章生物信息学⑥GEO数据库实战分析(1)
==================================================
正文
GEO数据库全称GENE EXPRESSION OMNIBUS,是由美国国立生物技术信息中心NCBI创建并维护的基因表达数据库。它创建于2000年,收录了世界各国研究机构提交的高通量基因表达数据,也就是说只要是目前已经发表的论文,论文中涉及到的基因表达检测的数据都可以通过这个数据库中找到。 这个数据库应该是生物信息入门学习挖掘的数据库,发文量每年估计有数千篇吧,GEO上面的测序文件非常丰富,肿瘤,非肿瘤的等等几乎都有,并且可以免费挖掘。关于这个数据库的介绍网上非常多,我就不赘述了。有兴趣的可以取生信技能树上面看看。
这一篇以及接下来的几篇主要是写一个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值
网友评论