TCGA差异表达分析|2022.5.1更新

作者:Squirrelity

2022-07-18 补充说明
最近R更新了,很多包都用不了,如果遇到报错或者是运行不了有可能是因为版本问题。

一、加载对应的R包
这里用到十三个包(距离上次更新之后又新增了不少方法/包):

library("TCGAbiolinks")
library("plyr")
library("limma")
library("biomaRt")
library("SummarizedExperiment")
library("stringr")
library("ggplotify")
library("patchwork")
library("cowplot")
library('DESeq2')
library('edgeR')
library("dplyr")
library("rtracklayer")

光下载都费了不少功夫www,下面把install代码放出来(。・∀・)ノ゙直接install.packages()日常失败我就不说了
大部分包都可以在bioconductor中找到,有遗漏的可以去官网找下载代码
https://bioconductor.org/

#plyr下载 唯一可以直接install的包啊哈哈
install.packages("plyr")
#if(!require(stringr))
#install.packages()下载法
if(!require(stringr))install.packages('stringr')
if(!require(ggplotify))install.packages("ggplotify")
if(!require(patchwork))install.packages("patchwork")
if(!require(cowplot))install.packages("cowplot")#更新BiocManager3.15,R版本为4.2.0
if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install(version = "3.15")#tccgbiolinks包稳定版本安装
if (!requireNamespace("BiocManager", quietly=TRUE))install.packages("BiocManager")
BiocManager::install("TCGAbiolinks")#limma包下载
if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install("limma")#biomaRt包下载
if (!require("BiocManager", quietly = TRUE))install.packages("biomaRt")
BiocManager::install("biomaRt")#最麻烦的SummarizedExperiment包:force = TRUE是根据warning后来加的if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install("SummarizedExperiment",force = TRUE)
#edgeR包下载
if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install("edgeR")
#DESeq2包下载
if (!requireNamespace("BiocManager", quietly=TRUE))install.packages("BiocManager")
BiocManager::install("DESeq2")

在使用之前需要加载BIocManager,代码参考这个:https://bioconductor.org/install/

if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install(version = "3.15")

若提示warning:A version of this package for your version of R might be available elsewhere,see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages

可以的解决方法有:

1.乖乖在官网下载cran(最不推荐)
2.在Rstudio上方的tools-global options处找到packages,修改默认的global cran,选择apply-ok即可
3.找到包的官网,用官网提供的代码下载(首推♥♥♥)

二、下载数据
在下载之前设置工作路径:
dir.create()创建目录,getwd()获取工作路径,setwd()设置工作路径,由于TCGA下载下来的数据包都挺大的,建议还是选一个比较富裕的盘来作为工作路径。

dir.create("D:\\BioInfoCloud\\TCGABiolinks\\case_study")
setwd("D:\\BioInfoCloud\\TCGABiolinks\\case_study")

这里用到的是R包TCGAbiolinks:
可以参照R包TCGAbiolinks官网使用http://www.bioconductor.org/packages/release/bioc/vignettes/TCGAbiolinks/inst/doc/casestudy.html#Case_study_n_1:_Pan_Cancer_downstream_analysis_BRCA
示例:

query <- GDCquery(project = "TCGA-BRCA",data.category = "Transcriptome Profiling",data.type = "Gene Expression Quantification", workflow.type = "STAR - Counts")

project选出的是肿瘤项目,而里面用到的都是缩写,详见https://blog.csdn.net/Squirrelity/article/details/124259330?spm=1001.2014.3001.5501

建议去TCGA官网repository一边对照着选所需要的样本
https://portal.gdc.cancer.gov/repository?facetTab=cases

#下载到本地
GDCdownload(query = query, method = "api")
#查看下载的数据
View(query)
BRCA.Rnaseq.SE <- GDCprepare(    query = query, save = TRUE, save.filename = "brca.rda")
BRCAMatrix <- assay(BRCA.Rnaseq.SE,"unstranded")
#记住这个文件BRCA.RNAseq_CorOutliers
BRCA.RNAseq_CorOutliers <- TCGAanalyze_Preprocessing(BRCA.Rnaseq.SE)

三、ID转换
下载下来的BRCA.RNAseq_CorOutliers为ENTREZID,而我们肯定是需要图片显示基因名而不是ENTREZID,因此进行数据转换,这里用到包括但不限于的dplyr包和rtracklayer包

library("dplyr")
library("rtracklayer")

ID转换分为四步:
1.导入数据:BRCA.RNAseq_CorOutliers和人类基因组注释文件;

data=read.table(BRCA.RNAseq_CorOutliers,header=T,sep='\t')
#把行名改为gene_id,与gtf保持一致
colnames(data)[1] <- "gene_id"

对照人类基因组注释文件,对BRCA.RNAseq_CorOutliers进行ID转换
其中,人类基因组注释文件参考http://www.360doc.com/content/21/1028/10/77506210_1001626502.shtml

#处理人类基因组注释文件的数据
gtf <- rtracklayer::import('Homo_sapiens.GRCh38.99.chr.gtf.gz')
gtf <- as.data.frame(gtf)
save(gtf,file="人类基因组注释文件.Rda")
gtf <-load(file="人类基因组注释文件.Rda")
#根据条件筛选基因(大筛选)
a = dplyr::filter(gtf,type=="gene")
dim(a)
#只要gene_name,gene_id,gene_biotype这三行
b = dplyr::select(a,c(gene_name,gene_id,gene_biotype))

2.数据预处理

#ENTREZID带有,这里去除小数点及后边的数字(我用excel处理的,ctrl+F无字符替换.*)
data1 <- separate(data,gene_id,into = c("gene_id"),sep="\\.")

3.数据处理

#根据gene id 合并文件
c = dplyr::inner_join(b,data,by="gene_id")
#去掉2,3列,基因名再去重
d=select(c,-gene_id,-gene_biotype)
data1=distinct(d,gene_name,.keep_all = T)
#把行名由数字换成基因
rownames(data1)<- data1[,1]
data1<-data1[,-1]

4.数据后处理

#如下载的数据取了log2(count-1)这里再返回count
data2 <- 2^data1 -1
write.csv(data2,file="data2.csv")
data2 <- read.csv("data2.csv")
#重新用read打开整行的-会变成.因此需要恢复原来的行名
colnames(data2) <- colnames(BRCA.RNAseq_CorOutliers)

四、差异表达分析
1.参考网址
代码示例参考这个包的文档http://bioconductor.org/packages/release/bioc/html/TCGAbiolinks.html
TCGA可视化教程
https://www.jianshu.com/p/d3e481f0187a
https://cloud.tencent.com/developer/article/1778874
http://bioconductor.org/packages/release/bioc/vignettes/TCGAbiolinks/inst/doc/casestudy.html

2.数据预处理

#处理后可得热图判断样本相似性
dataPrep <- TCGAanalyze_Preprocessing(object = BRCA.RNAseq_CorOutliers, cor.cut = 0.6
) 

*上面代码生成的图如下所示。组内的样本相似性都很高,符合预期。在这里插入图片描述

3.对数据进行标准化处理+质控+差异化分析
**TCGAanalyze_LevelTab()**将差异表达基因在正常和肿瘤组织中的表达量数据添加到差异表达分析结果中的主要用法:

TCGAanalyze_LevelTab(FC_FDR_table_mRNA, typeCond1, typeCond2, TableCond1,
TableCond2, typeOrder = TRUE)

在这里插入图片描述

            
#数据标准化
dataNorm <- TCGAanalyze_Normalization(tabDF = data2,geneInfo = geneInfoHT,method = "gcContent"
)                
#数据质控
dataFilt <- TCGAanalyze_Filtering(tabDF = dataNorm,method = "quantile", qnt.cut =  0.25
)   #分组:NT正常组织组 TP癌症组织组*# selection of normal samples "NT"
samplesNT <- TCGAquery_SampleTypes(barcode = colnames(dataFilt),typesample = c("NT")
))
# selection of tumor samples "TP"
samplesTP <- TCGAquery_SampleTypes(barcode = colnames(dataFilt), typesample = c("TP")
)# 差异表达分析
dataDEGs <- TCGAanalyze_DEA(mat1 = dataFilt[,samples.solid.tissue.normal],mat2 = dataFilt[,samples.primary.tumour],Cond1type = "Normal",Cond2type = "Tumor",fdr.cut = 0.01 ,logFC.cut = 2,method = "glmLRT",pipeline = "edgeR"
)  #在正常和肿瘤样本中差异基因的表达值
dataDEGsFiltLevel <- TCGAanalyze_LevelTab(FC_FDR_table_mRNA = dataDEGs,typeCond1 = "Tumor",typeCond2 = "Normal",TableCond1 = dataFilt[,samplesTP1],TableCond2 = dataFilt[,samplesNT1]
)

得到的dataDEGsFiltLevel文件按logFC绝对值排序可得最显著的top差异表达基因(excel表处理)
在这里插入图片描述

五、可视化
ps:得到的图片有的可以直接看,有的保存在工作路径上了。
1.PCA主成分分析

TCGAvisualize_PCA()实现主成分分析的主要用法:

TCGAvisualize_PCA(dataFilt, dataDEGsFiltLevel, ntopgenes, group1, group2)

在这里插入图片描述

#标准化
dataNorm <- TCGAbiolinks::TCGAanalyze_Normalization(data2, geneInfo)#质量控制
dataFilt <- TCGAanalyze_Filtering(tabDF = dataNorm,method = "quantile", qnt.cut =  0.25)#选择正常样本
group1 <- TCGAquery_SampleTypes(colnames(dataFilt), typesample = c("NT"))
#选择癌症样本
group2 <- TCGAquery_SampleTypes(colnames(dataFilt), typesample = c("TP"))#Principal Component Analysis plot for ntop selected DEGs
pca.top200 <- TCGAvisualize_PCA(dataFilt,dataDEGsFiltLevel, ntopgenes = 200,group1, group2)

上面代码生成的图如下所示。
在这里插入图片描述

2.火山图

#为了做图的需要,突出显示logFC≥8的gene名称
DEG.BRCA.filt<-dataDEGs[which(abs(dataDEGs$logFC) >= 8), ]
str(DEG.BRCA.filt)
#'data.frame':    29 obs. of  5 variables:
#说明共有29个基因满足|logFC|≥8TCGAVisualize_volcano(dataDEGs$logFC, dataDEGs$FDR,filename = "TumorvsNormal_FC8.edgeR.pdf", xlab = "logFC",names = rownames(dataDEGs), show.names = "highlighted",x.cut = 1, y.cut = 0.01, highlight = rownames(dataDEGs)[which(abs(DEG.LIHC.edgeR$logFC) >= 8)],highlight.color = "orange",title = "volcano plot by edgeR")

上面代码生成的图如下所示。突出显示了logFC≥8的gene名称
在这里插入图片描述

3.GO功能分析条形图
TCGAbiolinks 输出条形图,其中包含三个本体的主要类别(分别为GO:生物过程、GO:细胞成分和GO:分子功能)的基因数量。

ansEA <- TCGAanalyze_EAcomplete(TFname = "DEA genes Normal Vs Tumor",RegulonList = dataDEGs$gene_name
)  TCGAvisualize_EAbarplot(tf = rownames(ansEA$ResBP),GOBPTab = ansEA$ResBP,GOCCTab = ansEA$ResCC,GOMFTab = ansEA$ResMF,PathTab = ansEA$ResPat,nRGTab = dataDEGs$gene_name,nBar = 10
)

上面代码生成的图如下所示。
上面代码生成的图如下所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32772.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

病理基因突变综述

颜锐, 梁智勇, 李锦涛, 任菲. 基于深度学习和H&E染色病理图像的肿瘤相关指标预测研究综述[J]. 计算机科学, 2022, 49(2): 69-82. YAN Rui, LIANG Zhi-yong, LI Jin-tao, REN Fei. Predicting Tumor-related Indicators Based on Deep Learning and H&E Stained Patholo…

maftools|TCGA肿瘤突变数据的汇总,分析和可视化

之前介绍了使用maftools | 从头开始绘制发表级oncoplot&#xff08;瀑布图&#xff09; R-maftools包绘制组学突变结果&#xff08;MAF&#xff09;的oncoplot或者叫“瀑布图”&#xff0c;以及一些细节的更改和注释。 本文继续介绍maftools对于MAF文件的其他应用&#xff0c;为…

生信-记一次NCBI-R语言-淋巴癌突变与未突变基因的差异分析

关键词&#xff1a;基因芯片、R、筛选、预处理、差异分析 NCBI-淋巴癌突变与未突变基因的差异分析 PS&#xff1a;好久没分享生信了&#xff0c;这是一年前做的一次生信task&#xff08;准确来说是2018年11月了&#xff09;&#xff0c;这里分享一下给大家&#xff0c;有助于一…

TCGA 亚型突变负荷代码

#1、准备文件/数据并加载相应的包 #1.1下载并加载相应的包&#xff0c;有就直接加载&#xff0c;没有就下载后再加载。 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::install("TCGAbiolinks") library(t…

四、肿瘤全基因组学体细胞点突变特征(The repertoire of mutational signatures in human cancer)

全文链接 一、肿瘤突变特征&#xff1a;碱基置换及插入、缺失突变 单碱基置换&#xff08;49种特征类型&#xff0c;single-base-substitution&#xff0c;SBS&#xff09; 双碱基置换&#xff08;11种特征类型&#xff0c;doublet-base-substitution&#xff0c;DBS&#xf…

TCGA_联合GTEx分析2_查看批次效应

在 TCGA_联合GTEx分析1_得到表达矩阵.tpm_老实人谢耳朵的博客-CSDN博客 中&#xff0c;获取了TCGA和GTEx中样本的表达矩阵数据&#xff0c;数据格式均为tpm。本文对二者进行合并后&#xff0c;通过PCA分析、绘制内参箱线图等方法&#xff0c;查看是否存在批次效应。 关于批次效…

提取TCGA 中体细胞突变数据的表达矩阵

#因为之前的命令调用GDCquery_Maf 发现用不了 #故找到了一些其他的方法&#xff0c;并且自己试着将其弄成了一个表达矩阵。 #代码如下 #1、下载加载相应的包 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::insta…

chatgpt赋能python:Python抢票的绝招

Python 抢票的绝招 随着互联网技术的不断发展&#xff0c;越来越多的人开始享受网购的便利。但是&#xff0c;随着一些热门事件的到来&#xff0c;如演唱会、体育比赛等&#xff0c;大家面临同一个问题&#xff1a;如何抢到热门事件的门票&#xff1f;这时&#xff0c;Python …

CSDN问答

近期AI成为热点话题&#xff0c; ChatGPT&#xff0c; GPT4&#xff0c; new bing&#xff0c; Bard&#xff0c;AI 绘画&#xff0c; AI 编程工具引发大量讨论。请结合自身学习经历&#xff0c;一起来聊聊你对 AI 技术以及其今后发展的看法吧。请在下面的问题中选择一些来回答…

起名源码PHP(宝宝取名源码)

起名源码有助于更好的借助八字风水来帮助起名的需求&#xff0c;其参考了一部中国古代经典文本易经。以这种方式咨询的过程包括通过随机生成的方法确定卦&#xff0c;然后阅读与该卦相关的文本。      演示&#xff1a;m.appwin.top      部分源码&#xff1a;texts.py…

携程英语口语测验题目

携程入职前会有两个测验&#xff1a;CATA能力测验、英语测验&#xff08;部分岗位可能没有英语测验&#xff09; 这两个测验通过&#xff0c;方可进入下面流程&#xff0c;所有这两个测验一定要引起重视&#xff1b; 题型分布 携程英语测验 题型攻略 携程英语测验 总共六部分…

Ubuntu软件安装新选择—星火应用商店(QQ、微信等一网打尽)

Ubuntu软件安装新选择—星火应用商店&#xff08;QQ、微信等一网打尽&#xff09; 1. 星火应用商店介绍2. 下载安装星火应用商店3. 使用星火应用商店安装软件4. 使用星火应用商店更新软件5. 日常软件推荐6. 星火应用商店交流群 1. 星火应用商店介绍 官网地址 http://spark-app…

学生信息后台管理系统(GUI)

一、目的 通过制作学生信息后台管理系统熟悉java中JDBC和CUI(图形用户接口)的使用。 二、实验工具 1.Eclipse IDE Version: 2020-12 (4.18.0) 2.mysql 3.Navicat Premium 15(数据库管理工具) 4.WindowBuilder(java图形用户界面插件) 具体下载和使用可以参考以下链接: 下…

数影周报:SpaceX设计图纸被泄露,拍明芯城正式在纳斯达克上市

本周看点&#xff1a;LockBit勒索软件团伙扬言泄露SpaceX设计图纸&#xff1b;亚马逊宣布将停止 Kindle Newsstand 服务&#xff1b;“拍明芯城”正式在纳斯达克上市...... 数据安全那些事 LockBit勒索软件团伙扬言泄露SpaceX设计图纸 近日&#xff0c;勒索软件组织LockBit给埃…

小米汽车设计图纸泄露,官方称非最终文件;微软裁员遣散费高达8亿美元,人均获赔54万元;苹果暂停自研Wi-Fi芯片|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

为什么要使用低代码 – 前端角度的思考

为什么要使用低代码 – 前端角度的思考 文章目录 为什么要使用低代码 – 前端角度的思考当前前端发展现状低代码的热潮已经掀起千层浪UI工程师常常面临一些令人尴尬的场景低代码化解场景思路低代码对于外包型企业或软件研发企业在前端有什么优势呢&#xff1f;这里简单列举三点…

《互联网大厂推荐算法实战》上线啦!

为什么是“上线”而非“出版”&#xff1f; 你没眼花&#xff0c;我也没写错&#xff0c;是“上线”而非“出版”&#xff0c;个中原因&#xff0c;请容我慢慢道来。如果你对八卦不感兴趣&#xff0c;可以直接跳到本文的第2部分&#xff0c;看看我给出的“你需要读这本书”的理…

石塔西的《互联网大厂推荐算法实战》上线啦!

PS&#xff1a;史塔西的文章还是很有质量的&#xff0c;成体系的内容输出更是有质量保障&#xff0c;感兴趣的可以关注下&#xff08;感觉好像我也得努力下了&#xff0c;数据与广告系列还没有完&#xff0c;也给自己加个油&#xff09;。 为什么是“上线”而非“出版”&#x…

在中国月收入1万是什么水平?今天这两个热搜很多人都有话说!

上一篇&#xff1a;阿里版 ChatGPT已进入测试&#xff01;中文聊天截图曝光&#xff0c;达摩院出品 今天一早一个热搜引发网友热议——#在中国月收入1万是个什么样的水平#。 之后&#xff0c;又有一个话题词紧跟其后上了热搜——#很体面但工资不高的工作#。 你觉得多少月薪能满…

解决:将Ubuntu系统打包成ios镜像并制作U盘系统

将Ubuntu系统打包成ios镜像并制作U盘系统 一、安装 Systemback二、将创建的.sblive镜像文件转为.iso格式三、写入U盘进行安装四、制作系统U盘 一、安装 Systemback Currently supported Ubuntu releases: - 14.04.X LTS - 15.04 - 15.10 - 16.04.X LTS - 16.10Systemback的作者…