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换成Tumordesign$tumor[design$tumor==0] <- "Normal"#0换成Normaldesign<-design[,-1]#去掉normal这一列colnames(design)[1]<-'Type'#cancer这一列列名改为Typehead(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)
