GEO数据库全称GENE EXPRESSION OMNIBUS,是由美国国立生物技术信息中心NCBI创建并维护的基因表达数据库。它创建于2000年,收录了世界各国研究机构提交的高通量基因表达数据,也就是说只要是目前已经发表的论文,论文中涉及到的基因表达检测的数据都可以通过这个数据库中找到。 这个数据库应该是生物信息入门学习挖掘的数据库,发文量每年估计有数千篇吧,GEO上面的测序文件非常丰富,肿瘤,非肿瘤的等等几乎都有,并且可以免费挖掘。关于这个数据库的介绍网上非常多,我就不赘述了。有兴趣的可以取生信技能树上面看看。
# -*- 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)
通过上面我们可以看出样本整体没有差异,可以做差异分析。
GEO2R = pd.read_table("geo_result.txt", sep="\t")
这个数据框就包含了已经分析好的差异分析结果,包括基因名字和探针ID,还有比较关注的差异倍数和P值