GEOデータマイニングフルフロー分析

免責事項:「健康の手紙のスキルツリーの」ネットワークシリーズの無料教材、「健康の手紙のスキルツリー、」社長ジミーからのコードに応じて学習から収集し、以下の情報GitHubの知識の共有、プログラムを2016年に開始、のGEOデータベースマイニングシリーズセンクレジット新人グループのブログ教育ビデオのサポート B駅には、ここに承認されています。

はじめに:GEOデータについて

私たちの目標は、能力のGEOデータマイニングをマスターするために、刻まれた実験的な文献から文学を読むことです。最初は、文献を読んだときに、広く読まれているコンテキストを精製、データ・セットを1つまたはGSEを使用して文献を読み、データ処理を行うものです。明確に理解した後に、行列式を得るために、差分解析、注釈等の下流分析の一連の対応するデータセットをダウンロードすることができます。
記事は、一つ以上のGSEデータセット、1つまたは複数のGSMサンプルを持つことができGSEを有することができます。サンプルのGSMの複数の研究の研究目的に応じて統合することができるGDSであり、各チッププラットフォーム(GPL)に対応するデータの独自のセットを有し、プラットフォームGSEが複数存在することができるデータを測定しました。
この分析は、R言語のプラットフォームに基づいており、それはR言語のいくつかの基本的な知識が必要です。
GEO、表現チップとRを学びます

最初の部分:GEOチップデータのダウンロードと仕上げ

GEOの公式サイト
GSE42872データセットにこの場合は、例えば、文献の分析をGEOデータマイニング分析を学習し
ここに画像を挿入説明
、適切なデータセット情報と背景知識の下で文学を読むことによって、適切なGSEのデータセットを検索して、公式サイトの缶
ます。https://www.ncbiを。 nlm.nih.gov/geo/query/acc.cgi?acc=GSE42872
ここに画像を挿入説明
GPL6244を6つの試料、対照群の最初の三つの、治療の三つのグループからなるチッププラットフォームを使用して、このデータセット。このデータセットの背景を理解することは、あなたがデータをダウンロードする必要があり、後にあります。ダウンロードデータには多くの方法がありますが、ここでは次のように特定のコードをダウンロードし、ダウンロードにR GEOqueryパッケージを使用します。

rm(list = ls())  
## 魔幻操作,一键清空~当前环境中对象全部删除
options(stringsAsFactors = F)
#在调用as.data.frame的时,将stringsAsFactors设置为FALSE可以避免character类型自动转化为factor类型
f='GSE42872_eSet.Rdata'
#把GSE42872_eSet.Rdata赋值给f,方便后面流程化处理
##根据数据集不同修改相应的GSE号

library(GEOquery)
# 这个包需要注意两个配置,一般来说自动化的配置是足够的。
#Setting options('download.file.method.GEOquery'='auto')
#Setting options('GEOquery.inmemory.gpl'=FALSE)

if(!file.exists(f)){
  gset <- getGEO('GSE42872', destdir=".",
                 AnnotGPL = F,     ## 注释文件
                 getGPL = F)       ## 平台文件
  save(gset,file=f)   ## 保存到本地
}
##这是一个函数,利用包将数据集的表达信息下载下来,赋值给了gset,而不下载注释信息和平台信息,病保存到本地,文件名为f。

load('GSE42872_eSet.Rdata') 
 ## 载入数据
class(gset) 
 #查看数据类型
length(gset) 
 ##看一下有几个元素
gset[[1]]
#取第一个元素
class(gset[[1]])
 #查看改元素的数据类型
# 因为这个GEO数据集只有一个GPL平台,所以下载到的是一个含有一个元素的list

a=gset[[1]] 
##取出第一个元素赋值给一个对象a
dat=exprs(a) 
#a现在是一个对象,取a这个对象通过看说明书知道要用exprs这个函数,该函数得到表达矩阵
#现在 得到的dat就是一个表达矩阵,只不过基因的ID是探针名
dim(dat)
#看一下dat这个矩阵的维度
dat[1:5,1:5] 
#查看dat这个矩阵的1至4行和1至4列,逗号前为行,逗号后为列
#这个表达矩阵是已经log之后的,表达量一般是0-10左右,如果是原始芯片表达的信号值一般是几千到一万,则需要log处理。

boxplot(dat,las=2) 
#画个图看一下各样本之间有没有批次效应,一般中位数都差不多,las是将横坐标样本信息竖着排列

pd=pData(a) 
#通过查看说明书知道取对象a里的临床信息用pData
View(pd)
## 查看一下,挑选一些感兴趣的临床表型,这里我们欲得到其分组title信息。
library(stringr)
#运行一个字符分割包
group_list=str_split(pd$title,' ',simplify = T)[,4]
#抽取title一列,按照空格分割,取第四个元素即Control和Vemurafenib
table(group_list)
#看一下两个分组各有几个

GPL6244これは、最初に、対応するパッケージがある場合は、適切なパッケージをダウンロードし、直接利用でき、ページをチェックアウトし、次の直接ダウンロード機能を使用しない、データチッププラットフォームです。
## URL:HTTP://www.bio-info-trainee.com/1399.html
##はhugene10sttranscriptclusterに対応するパッケージに記載されています
##そこで、私たちは中に、プローブと遺伝子名の間の対応を見つけるために、パッケージを使用することを好みますbioconductorこのパッケージをダウンロードしてください。
あなたはチッププラットフォームに対応するパッケージをダウンロードした場合は、次のプログラムを実行します。

library(hugene10sttranscriptcluster.db)
##运行这个包
ls("package:hugene10sttranscriptcluster.db")
#对这个包进行探索,看一下有多少元素
##找到有SYMBOL的那个元素就是我们需要的对应关系
##例如:[34] "hugene10sttranscriptclusterSYMBOL"    
ids=toTable(hugene10sttranscriptclusterSYMBOL) 
#toTable这个函数:通过看hgu133plus2.db这个包的说明书知道提取probe_id(探针名)和symbol(基因名)的对应关系的表达矩阵的函数为toTable。并赋值给ids
##这时候我们得到19825个探针对应的基因名。
###刚才我们的表达矩阵中是33297个基因探针,这就意味着刚才的表达矩阵中可能存在多个探针重复对应一个基因名。这就需要我们对数据进行进一步筛选、处理。
head(ids) 
#head为查看前六行

チップは、対応するRのインターネットのダウンロードプラットフォームのパッケージ内に見つからない場合は、コメント情報を必要とし、フォロー

if(F){
  library(GEOquery)
  #Download GPL file, put it in the current directory, and load it:
  gpl <- getGEO('GPL6244', destdir=".")
##需要修改相应的平台号,把平台信息赋值给gpl
  colnames(Table(gpl))  
  head(Table(gpl)[,c(1,15)]) 
## you need to check this , which column do you need
  probe2gene=Table(gpl)[,c(1,15)]
  head(probe2gene)
  library(stringr)  
  save(probe2gene,file='probe2gene.Rdata')
}
load(file='probe2gene.Rdata')
ids=probe2gene 

今、私たちは、プローブとの2つの方法でGPLの遺伝子間の対応を取得します。

head(ids)
#为查看前六行
colnames(ids)=c('probe_id','symbol')  
#将列名统一改为'probe_id','symbol'方便后续统一操作。

length(unique(ids$symbol)) 
#[1] 18832个独特的基因探针,意味着本来19825个里面有一部分是重复的
tail(sort(table(ids$symbol)))
table(sort(table(ids$symbol)))
#每个对象出现的个数
plot(table(sort(table(ids$symbol))))
#画图观察

ids=ids[ids$symbol != '',]
ids=ids[ids$probe_id %in%  rownames(dat),]
##%in%用于判断是否匹配,然后取匹配的几行,去掉无法匹配的信息。

dat[1:5,1:5]   
dat=dat[ids$probe_id,] 
#取表达矩阵中可以与探针名匹配的那些,去掉无法匹配的表达数据,这时只剩下19825个探针及表达信息,其余已被剔除。

ids$median=apply(dat,1,median) 
#ids新建median这一列,列名为median,同时对dat这个矩阵按行操作,取每一行的中位数,将结果给到median这一列的每一行
ids=ids[order(ids$symbol,ids$median,decreasing = T),]
#对ids$symbol按照ids$median中位数从大到小排列的顺序排序
##即先按symbol排序,相同的symbol再按照中位数从大到小排列,方便后续保留第一个值。
##将对应的行赋值为一个新的ids,这样order()就相当于sort()
ids=ids[!duplicated(ids$symbol),]
#将symbol这一列取取出重复项,'!'为否,即取出不重复的项,去除重复的gene ,保留每个基因最大表达量结果.最后得到18832个基因。
dat=dat[ids$probe_id,] 
#新的ids取出probe_id这一列,将dat按照取出的这一列中的每一行组成一个新的dat
rownames(dat)=ids$symbol
#把ids的symbol这一列中的每一行给dat作为dat的行名
head(dat)
##至此我们就得到了该数据集的表达矩阵,最后将结果保存。
save(dat,group_list,file = 'step1-output.Rdata')
write.csv(dat,file="expressionmetrix_GSE.csv")

パートII:示差発現の分析

未完、更新されます

リリース元の2件の記事 ウォンの賞賛0 ビュー54

おすすめ

転載: blog.csdn.net/Eric_blog/article/details/104580174