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)

相关推荐

  • 生存分析-黑、白、许多灰

    健明 5分钟前刚出武汉高铁站: 看着新学徒慢慢成长,很开心,虽然TCGA教程我都写了几百篇了,而且录制了长达15个小时的教学视频,不过毕竟是站在自己的角度和背景知识在解读,不一定适合所有人,一起来看看 ...

  • 宝藏:TCGA任意基因任意肿瘤,随意分析(附数据和代码)

    当我们拿到一个基因,肯定是想知道它的各种基本信息,今天的教程可以做到 1 任意一个肿瘤在泛癌中的表达情况 2 任意一个基因在肿瘤和正常组织中的表达情况 3 任意一个基因在肿瘤不同分期,不同性别等临床特 ...

  • 不同癌症内部按照estimate的两个打分值高低分组看蛋白编码基因表达量差异

    前面的教程 不同癌症的差异难道大于其与正常对照差异吗,以及 大样本量多分组表达量矩阵分析你难道没想到单细胞吗,我们认识了TCGA数据库的33种癌症的全部的表达量矩阵,并且格式化保存为了 Rdata 文 ...

  • 差异分析|DESeq2完成配对样本的差异分析

    本文为群中小伙伴进行的一次差异分析探索的记录. 前段时间拿到一个RNA-seq测序数据(病人的癌和癌旁样本,共5对)及公司做的差异分析结果(1200+差异基因),公司告知用的是配对样本的DESeq分析 ...

  • TCGAbiolinks数据下载TCGA数据

    欢迎来到医科研,这里是白介素2的读书笔记,跟我一起聊临床与科研的故事. TCGAbiolinks数据下载TCGA数据 下载TCGA数据的方法有很多,但比较好用的包我认为就是TCGAbiolinks,T ...

  • ggplot2实现分半小提琴图绘制基因表达谱和免疫得分

    最近看到很多人问下面这个图怎么绘制,看着确实不错.于是我查了一些资料,这个图叫split violin或者half violin,本质上是一种小提琴图.参考代码在https://gist.github ...

  • 多组学排序利器:PLS-DA用ggplot可视化才好

    写在前面 PLS_DA 我在第一次使用的时候用于代谢组数据的区分,样本数量少,并且组件区分不是很明显.后来也就无所谓是什么数据了,作为一种降维方法,运用于什么组学倒是无所谓,只要找到我们需要的差异,也 ...

  • 每月一生信流程之RNAseq123

    目前bioconductor社区有27个流程,早在2015/2016年我组织生信菜鸟团小伙伴建设bioconductor中文社区的时候就想系统性的学习和分享,一晃四五年过去了, 我们的biocondu ...

  • TCGA(转录组)差异分析三大R包及其结果对比

    最近我们最优秀的R语言讲师小洁也开启了TCGA知识库打卡之旅,分享一下她其中一个学习成果,TCGA(转录组)差异分析三大R包及其结果对比. 如果你跟着她的教程学会了相关分析,可以尝试完成一个学徒作业: ...

  • 可能是最出名的TCGA表达相关数据库介绍(一)

    有小伙伴后台留言说想知道 GEPIA 数据库的用法,正好最近一段时间GEPIA2更新了,其中也更新了一些新的功能.所以就趁着这个机会给大家介绍一下GEPIA2吧. 有小伙伴后台留言说想知道 GEPIA ...

  • R包的安装与更新

    一.R包的安装 0. 设置镜像 R和bioconductor的主服务器都在国外,设置镜像加快下载速度. ## ====修改镜像====options(repos=c(CRAN="https: ...

  • 比较不同流程(limma/voom,edgeR,DESeq2 )差异分析的区别

    前言: 距离第一次听说生信已经十几年了,现在是邋遢大叔重新开始学代码,精力确实已不像从前,各位入坑还是要乘早.后来约莫在5年前,课题组当时有个RNA-Seq数据,lab meeting时听瑞典小哥在汇 ...