表达芯片数据处理教程,早在2016年我就系统性整理了发布在生信菜鸟团博客:http://www.bio-info-trainee.com/2087.html 配套教学视频在B站:https://www.bilibili.com/video/av26731585/ 代码都在:https://github.com/jmzeng1314/GEO 早期目录如下:
- 第一讲:GEO,表达芯片与R
- 第二讲:从GEO下载数据得到表达量矩阵
- 第三讲:对表达量矩阵用GSEA软件做分析
- 第四讲:根据分组信息做差异分析
- 第五讲:对差异基因结果做GO/KEGG超几何分布检验富集分析
- 第六讲:指定基因分组boxplot指定基因list画热图
- 第七讲:根据差异基因list获取string数据库的PPI网络数据
- 第八讲:PPI网络数据用R或者cytoscape画网络图
- 第九讲:网络图的子网络获取
- 第十讲:hug genes如何找
但并不是万能的,即使是表达芯片,也有一些是我的知识盲区,主要是因为没有时间去继续探索整理写教程,毕竟大家都不支持我写教程,没有人打赏或者留言鼓励我!
不过最近学徒问到了[HTA-2_0] Affymetrix Human Transcriptome Array 2.0芯片的事情,其实挺麻烦的,首先需要搞清楚下面3个平台的差异:
- GPL17586 [HTA-2_0] Affymetrix Human Transcriptome Array 2.0 [transcript (gene) version]
- GPL19251 [HuGene-2_0-st] Affymetrix Human Gene 2.0 ST Array [probe set (exon) version]
- GPL16686 [HuGene-2_0-st] Affymetrix Human Gene 2.0 ST Array [transcript (gene) version]
如果是芯片cel原始数据处理
那么看我的教程 你要挖的公共数据集作者上传了错误的表达矩阵肿么办(如何让高手心甘情愿的帮你呢?) 里面有提到:
# BiocManager::install(c( 'oligo' ),ask = F,update = F)
library(oligo)
# BiocManager::install(c( 'pd.hg.u133.plus.2' ),ask = F,update = F)
library(pd.hg.u133.plus.2)
dir='~/Downloads/GSE84571_RAW/'
od=getwd()
setwd(dir)
celFiles <- list.celfiles(listGzipped = T)
celFiles
affyRaw <- read.celfiles( celFiles )
setwd(od)
eset <- rma(affyRaw)
eset
# http://math.usu.edu/jrstevens/stat5570/1.4.Preprocess_4up.pdf
save(eset,celFiles,file = f)
# write.exprs(eset,file="data.txt")
当然了,你没有R基础是看不懂的哈。
如果是芯片注释到基因
也是很简单
library(GEOquery)
#Download GPL file, put it in the current directory, and load it:
gpl <- getGEO('GPL19251', destdir=".")
colnames(Table(gpl))
head(Table(gpl)[,c(1,10)]) ## you need to check this , which column do you need
probe2gene=Table(gpl)[,c(1,10)]
head(probe2gene)
library(stringr)
probe2gene$symbol=trimws(str_split(probe2gene$gene_assignment,'//',simplify = T)[,2])
plot(table(table(probe2gene$symbol)),xlim=c(1,50))
head(probe2gene)
save(probe2gene,file='probe2gene.Rdata')
不同平台, 就替换GPL,然后自行看输入输出判断一下即可,也需要R基础啦。
如果是差异分析
当然了也可以直接修改我的代码,不过这个HTA2.0芯片比较麻烦的在于,基于exon和基于transcript的有一点点区别,因为基于exon理论上可以获取不同剪切体的表达量差异的,虽然实际上很少有人愿意去探索。
发表在 BMC Genomics. 2017; 文章 RNA sequencing and transcriptome arrays analyses show opposing results for alternative splicing in patient derived samples 就提到过。
更麻烦的是,因为这个芯片记录35万个外显子,这样矩阵就非常大, 都可以与根据illumina的450K甲基化芯片媲美啦!
可以看到,大量的基因有着1-30个探针,如下:
所以有文章采取非常特殊的差异分析策略:
最后一个作业
大家可以拿 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE118222 数据集,测试看看,走我给大家的代码,得到PCA,热图,火山图,看看是否合理。
GSM3321243 LNCaP EtOH rep 1
GSM3321244 LNCaP EtOH rep 2
GSM3321245 LNCaP DHT rep 1
GSM3321246 LNCaP DHT rep 2
GSM3321247 LNCaP ABT-DHT rep 1
GSM3321248 LNCaP ABT-DHT rep 2
GSM3321249 C4-2 DMSO rep 1
GSM3321250 C4-2 DMSO rep 2
GSM3321251 C4-2 ABT rep 1
GSM3321252 C4-2 ABT rep 2