TCGA差异分析及ggplot作图验证
TCGA数据加载
#安装并加载R包
if(length(getOption("CRAN"))==0) options(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")
if(!require("ggplot2")) BiocManager::install("ggplot2")
if(!require("tidyr")) BiocManager::install("tidyr")
if(!require("dplyr")) BiocManager::install("dplyr")
if(!require("DESeq2")) BiocManager::install("DESeq2")
if(!require("limma")) BiocManager::install("limma")
if(!require("edgeR")) BiocManager::install("edgeR")
load(file = "mRNAdata.Rda")
标准化和差异分析
标准化和差异分析都是用limma这个包来完成
构建分组
之前我们说过,TCGA的IDTCGA数据分析系列(一)
01-09为肿瘤,10~19表示正常对照,所以我们根据数字来区分肿瘤和正常
group_list=ifelse(as.numeric(substr(colnames(mRNAdata),14,15)) < 10,'tumor','normal')
design <- model.matrix(~0+factor(group_list))
colnames(design)=levels(factor(group_list))
rownames(design)=colnames(mRNAdata)
design
这样我们就制作好了分组。接下来我们用LIMMA包的流程来完成数据标准化和差异分析。
标准化
dge <- DGEList(counts=mRNAdata)
dge <- calcNormFactors(dge)
logCPM <- cpm(dge, log=TRUE, prior.count=3)
logCPM即标准化的基因
差异分析
v <- voom(dge,design,plot=TRUE, normalize="quantile")
fit <- lmFit(v, design)
cont.matrix=makeContrasts(contrasts=c('tumor-normal'),levels = design)
fit2=contrasts.fit(fit,cont.matrix)
fit2=eBayes(fit2)
tempOutput = topTable(fit2, coef='tumor-normal', n=Inf)
DEG_limma_voom = na.omit(tempOutput)
head(DEG_limma_voom)
DEG_limma_voom即我们得到的差异基因分析结果
write.csv(DEG_limma_voom,"limma差异分析结果.csv",quote = F,row.names = T)
save(DEG_limma_voom,file = "limma差异分析结果.Rda")
作图验证
为了构建ggplot2喜欢的数据,我们需要将design数据和logCPM数据合并
首先给design数据数据变成数据框,添加一列ID
class(design)
design<-as.data.frame(design)
design$ID<-row.names(design)
design[1:3,1:3]
将design分组中tumor这一列的1换成Tumor,0换成Normal
design$tumor[design$tumor==1] <- "Tumor"#1换成Tumor
design$tumor[design$tumor==0] <- "Normal"#0换成Normal
design<-design[,-1]#去掉normal这一列
colnames(design)[1]<-'Type'#cancer这一列列名改为Type
head(design)
将logCPM倒置,变成数据框,增加ID这一列
drawdata=as.data.frame(t(logCPM))
drawdata$ID<-row.names(drawdata)
drawdata[1:5,19593:19598]
design与drawdata合并
drawdata1=dplyr::inner_join(drawdata,design,by ="ID",copy=T)
ggplot2画图
点图
ggplot(drawdata1, aes(Type, CLEC4G,color=Type)) + geom_jitter()
箱图
ggplot(drawdata1, aes(Type, CLEC4G,color=Type))+ geom_boxplot()
小提琴图
ggplot(drawdata1, aes(Type, CLEC4G,color=Type)) + geom_violin()
合并图
ggplot(drawdata1,aes(Type, CLEC4G,color=Type)) + geom_violin()+ geom_jitter()+ geom_boxplot()
好了,今天就到这啦。
另外,最近收集了一些很好的资源,想分享给大家,顺便能涨一些粉,主要有
1. 19年中标的各门类国自然题目汇总,以及17年的国自然汇总,部分含摘要!
2. R语言学习书籍
R语言实战(中文完整版)
R数据科学(中文完整版)
ggplot2:数据分析与图形艺术
30分钟学会ggplot2
3. TCGA数据整理
前期从https://xenabrowser.net/datapages/ (UCSC Xena)数据库下载的TCGA数据,传到了百度云上备份。
感兴趣的话,转发朋友圈或者100人以上的微信群,截图发到公众号,即可获取全部资源的百度云链接,链接7天有效,希望大家赶紧下载。你们的支持是我前进的动力,感谢。
赞 (0)