R. python新手日记生物信息学从零开始学生物信息编程

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

2018-12-14  本文已影响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数据库常见的分析流程。

# -*- 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值

上一篇 下一篇

猜你喜欢

热点阅读