R语言---使用cgdsr包下载TCGA数据---笔记整理
原文链接:https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247486492&idx=1&sn=3a7251244377fdd4b2a3aa5c8cd1131a&chksm=9b484ca7ac3fc5b1a21202cf25ff15a8eec434424aa3e48787129fa6f5e66ebe57ffcb631772&scene=21#wechat_redirect
一:什么是TCGA数据?TCGA数据有什么作用?
癌症基因组图谱(The Cancer Genome Atlas),简称为TCGA。TCGA数据库是目前最综合全面的癌症病人相关组学数据库。它旨在应用高通量的基因组分析技术,帮助人们对癌症有个更好的认知,从而提高对于癌症的预防、诊断和治疗能力。
二:什么是cgdsr包?如何下载和使用?
R语言工具包,可以下载TCGA数据。下载语句:install.packages("cgdsr")。使用时加载包的语句:library("cgdsr")。
注:R语言中下载包的通用语句为install.packages(需要下载的包)。需要用到包的通用语句为library(需要加载的包)。
三:cgdsr包的初步使用
#load cgdsr packages
library(cgdsr)
#创建一个cgdsr对象(Create a cgdsr object)
mycgds <- CGDS("http://www.cbioportal.org/")
#获取cgdsr对象中存在的数据集,即所有可以研究的癌症类型名的集合(Gets the dataset that exists in the cgdsr object)
all_TCGA_studies <- getCancerStudies(mycgds)
#View the datasets
print(all_TCGA_studies)
部分运行结果如下图所示:
从结果图中观察到数据集应该有多列,但是由于数据集过多,而列的空间又有限,结果不方便观察。为了便于观察,我们可以使用R语言中的DT包进行数据的展示。
四:什么是DT包?DT包有什么作用?
data.table包,简称DT包,是R语言中的数据可视化工具包。DT包可以将Javascript中的方法运用到R中,也能将矩阵或者数据表在网页中可视化为表格,以及其它的一些功能。下载和使用的方法与cgdsr包相同。
五:DT的初步使用
#load DT package
library(DT)
#以数据表的形式显示数据集(Present the data set in the form of a data table)
DT::datatable(all_TCGA_studies)
部分结果如下图所示。
相比直接输入结果,我们可以观察到以表格形式展示出来更便于观察数据及相关信息。从表格中我们可以得出每个数据都包含cancer_study_id,name和description三列信息,分别表示研究癌症的类型,即数据集的名字简称,名字全称和发表的文章题目。
由上图所示,我们可以清晰观察到总共有287种数据集,在实际操作中,可能并不需要研究所有的数据集,所以只需要对特定的数据集进行操作。
六:查看任意数据集的相关信息
(1)查看任意数据集的样本列表方式
#Arbitrarily select a dataset, such as stad_ tcga_ Pub
#研究stad_tcga_pub需要研究的癌症类型名
stad2014 <- "stad_tcga_pub"
#获取特定癌症研究的可用病例列表(Get available case lists for a specific cancer study)
all_tables <- getCaseLists(mycgds, stad2014)
#view how many sample list methods are available in it,the result is two parameters: row and column
dim(all_tables)
DT::datatable(all_tables)
结果如下所示:
即数据集stad_tcga_pub共有11行数据,每行数据有5条相关信息。
如何只需要展示出数据的部分信息,例如只需要所有数据的前三列,可以用以下语句获取相关数据:
DT::datatable(all_tables[,1:3])
运行结果如下:
(2)查看任意数据集的数据形式
#获取特定癌症研究的可用基因数据(Get available genetic data profiles for a specific cancer study)
all_dataset <- getGeneticProfiles(mycgds, stad2014)
#以表格形式展示数据
DT::datatable(all_dataset,extensions = 'FixedColumns',options = list( dom = 't',scrollX = TRUE,fixedColumns = TRUE))
结果如下所示:
(3)选定数据形式及样本列表后获取感兴趣基因的信息
my_dataset <- 'stad_tcga_pub_rna_seq_v2_mrna'
my_table <- "stad_tcga_pub_rna_seq_v2_mrna"
#检索基因和遗传图谱的基因组图谱数据(Retrieves genomic profile data for genes and genetic profiles)
#getProfileData函数的必要参数为cgdsr object---CGDS对象,genes---基因名称,geneticProfiles---需要研究的病例名称中的可用基因数据,caseList---需要研究的病例名称)
BRCA1 <- getProfileData(mycgds, "BRCA1", my_dataset, my_table)
#获取样本列表
dim(BRCA1)
#以表格形式展示数据
DT::datatable(BRCA1)
(4)选定样本列表获取临床信息
#获取特定癌症研究的临床数据(Get clinical data for cancer study)
clinicaldata <- getClinicalData(mycgds, my_table)
#数据展示
DT::datatable(clinicaldata,extensions = 'FixedColumns',options = list(scrollX = TRUE,fixedColumns = TRUE))
(5)综合性获取(只需要根据癌症列表选择自己感兴趣的研究数据集即可,然后选择好感兴趣的数据形式及对应的样本量。就可以获取对应的信息)
library(cgdsr)
library(DT)
#create a CGDS object
mycgds <- CGDS("http://www.cbioportal.org/")
#指定一个数据集(Specify a dataset)
mycancerstudy = 'brca_tcga'
#获取特定癌症研究的可用病例列表(Get available case lists for a specific cancer study)
getCaseLists(mycgds,mycancerstudy)[,1]
#获取特定癌症研究的可用基因数据(Get available genetic data profiles for a specific cancer study)
getGeneticProfiles(mycgds,mycancerstudy)[,1]
#设置需要研究的病例名
mycaselist ='brca_tcga_rna_seq_v2_mrna'
#设置需要研究的可用基因数据
mygeneticprofile = 'brca_tcga_rna_seq_v2_mrna' # Get data slices for a specified list of genes, genetic profile and case list
#检索基因和遗传图谱的基因组图谱数据(Retrieves genomic profile data for genes and genetic profiles)
expr=getProfileData(mycgds,c('BRCA1','BRCA2'),mygeneticprofile,mycaselist)
#展示数据
DT::datatable(expr)
如下图所示,即为指定基因在指定癌症的表达量。
获取临床数据。
#获取病例列表的临床数据(Get clinical data for the case list)
myclinicaldata = getClinicalData(mycgds,mycaselist)
DT::datatable(myclinicaldata,extensions = 'FixedColumns',options = list( #dom = 't',scrollX = TRUE,fixedColumns = TRUE))
(6)从cBioPortal下载点突变信息
library(cgdsr)
library(DT)
mycgds <- CGDS("http://www.cbioportal.org/")
#突变基因名称集合
mutGene=c("EGFR", "PTEN", "TP53", "ATRX")
#检索基因和遗传图谱的基因组图谱数据(Retrieves genomic profile data for genes and genetic profiles.)
mut_df <- getProfileData(mycgds, caseList ="gbm_tcga_sequenced", geneticProfile = "gbm_tcga_mutations",genes = mutGene
)
#Apply Functions Over Array Margins
mut_df <- apply(mut_df,2,as.factor)
#数据处理(空值和NAN设置为空,如果不为空设置为MUT)
mut_df[mut_df == "NaN"] = ""
mut_df[is.na(mut_df)] = ""
mut_df[mut_df != ''] = "MUT"
#展示数据
DT::datatable(mut_df)
结果如下所示:
(7)从cBioPortal下载拷贝数变异数据
library(cgdsr)
library(DT)
mycgds <- CGDS("http://www.cbioportal.org/")
mutGene=c("EGFR","PTEN","TP53","ATRX")
cna <- getProfileData(mycgds,caseList = "gbm_tcga_sequenced",geneticProfiles = "gbm_tcga_gistic",genes = mutGene)
cna <- apply(cna,2,function(x)as.character(factor(x,levels=c(-2:2),labels = c("HOMDEL","HETLOSS","DIPLOID","GAIN","AMP"))))
cna[is.na(cna)] = ""
cna[cna=='DIPLOID']=""
DT::datatable(cna)
结果如下所示:
(8)把拷贝数及点突变信息结合画热图
library(grid)
library(ComplexHeatmap)
library(cgdsr)
conb <- data.frame(matrix(paste(as.matrix(cna),as.matrix(mut_df),sep = ";"),nrow=nrow(cna),ncol=ncol(cna),dimnames=list(row.names(mut_df),colnames(cna))))
mat <- as.matrix(t(conb))
DT::datatable((mat))alt <- apply(mat,1,function(x)strsplit(x,";"))
alt <- unique(unlist(alt))
alt <- alt[which(alt !="")]
alt <-c("background",alt)
alter_fun = list(background = function(x,y,w,h){grid.rect(x,y,w-unit(0.5,"mm"),h-unit(0.5,"mm"),gp=gpar(fill="#CCCCCC",col=NA))},HOMDEL = function(x,y,w,h){grid.rect(x,y,w-unit(0.5,"mm"),h-unit(0.5,"mm"),gp=gpar(fill="blue3",col=NA))},HETLOSS = function(x,y,w,h){grid.rect(x,y,w-unit(0.5,"mm"),h-unit(0.5,"mm"),gp=gpar(fill="cadetblue1",col=NA))},GAIN = function(x,y,w,h){grid.rect(x,y,w-unit(0.5,"mm"),h-unit(0.5,"mm"),gp=gpar(fill="pink",col=NA))},AMP = function(x,y,w,h){grid.rect(x,y,w-unit(0.5,"mm"),h-unit(0.5,"mm"),gp=gpar(fill="red",col=NA))},MUT = function(x,y,w,h){grid.rect(x,y,w-unit(0.5,"mm"),h-unit(0.5,"mm"),gp=gpar(fill="#008000",col=NA))}
)
col <- c("MUT"="#008000","AMP"="red","HOMDEL"="blue3","HETLOSS"="cadetblue1","GAIN"="pink")alt = intersect(names(alter_fun),alt)
alt_fun_list <- alter_fun[alt]col <- col[alt]
oncoPrint(mat=mat,alter_fun = alt_fun_list,get_type = function(x) strsplit(x,";")[[1]],col = col)
效果图如下所示:
R语言---使用cgdsr包下载TCGA数据---笔记整理相关推荐
- R语言心得说:R语言之xlsx包读写Excel数据
R语言心得说:R语言之xlsx包读写Excel数据 感谢Adrian A. Drǎgulescu发布的xlsx包 工具准备 [基础]简单读取excel文件数据 [基础]简单写入数据到excel文件 [ ...
- oracle中prad函数_R中用GDCRNATools包下载TCGA数据
用GDCRNATools下载TCGA数据,以TCGA-STAD为例下载RNAseq 1)数据下载,gdcRNADownload()函数 ###########用GDCRNATools下载TCGA数据# ...
- TCGAbiolinks包下载TCGA数据
Bioconductor的TCGAbiolinks包用于GDC数据综合分析的R/Bioconductor软件包,本文主要展示下载数据集和代码. 1. 包的加载 # if (!requi ...
- R统计绘图-rgbif包下载GBIF数据及绘制分布图
1 基本信息 博士退学前,做完斑马鱼的Phylogenomics分析,系统进化树冲突.基因流.ILS和种群历史动态等分析了之后,需要看一下Danio属物种的地理分布,希望能跟Phylogenomics ...
- R语言对爬取的天气数据进行整理
之前爬取了各省一年来的天气状况.气温等的数据,这次对其进行整理,目标是: 1.批量输出每个省的每个月份出现频次最多的天气情况: 2.批量输出每个省每个月的气温状况(包括对类似5℃/10℃数据的处理). ...
- R语言安装xlsx包以及可能遇到的问题
文章目录 步骤1:java下载和安装 步骤2:安装和导入xlsx 加载的时候可能出现的问题 参考文献 步骤1:java下载和安装 下载和安装过程见 Java 的下载安装教程,过程很详细,其中cmd部分 ...
- R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据、获取美国10年期债券收益率数据
R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据.获取美国10年期债券收益率数据 目录 R语言使用quantmod包的getSymbols函数从指定金融数 ...
- R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据、从雅虎金融读取著名港股长江实业的股票数据
R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据.从雅虎金融读取著名港股长江实业的股票数据 目录 R语言使用quantmod包的getSymbols函数从 ...
- R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据、从雅虎金融读取著名的苹果公司的全部股票数据
R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据.从雅虎金融读取著名的苹果公司的全部股票数据 目录 R语言使用quantmod包的getSymbols函数 ...
最新文章
- linux shell 循环语句 for while until
- 百度地图API快速调用,一键生成百度地图
- 基本数据结构篇(三万字总结)
- Windows Sockets 2.0 新特性
- 4.1 [单选]两化融合中的两化是指 - 关于两化融合(主讲:凌捷)笔记
- nginx一 之负载均衡介绍
- cad考试题库绘图题答案_证券从业资格考试证券市场基本法律法规题库答案
- 开源自己用python封装的一个Windows GUI(UI Automation)自动化工具,支持MFC,Windows Forms,WPF,Metro,Qt...
- Spring Cloud的核心成员、以及架构实现详细介绍
- PG中的几种数据类型转换方式
- Weaveworks增加发布自动化和事件管理
- 【硬见小百科】数字万用表的工作原理
- 厚积而薄发-2015年终总结
- XL4001 典型应用电路
- 数据竞赛修炼笔记之快手用户活跃度的预测
- 资源(电影、英剧、美剧、日剧、动漫、纪录片)网站
- 我要寄件 网上寄件
- win10删除设备和驱动器中多余的软件图标
- getLocation需要在app.json中声明permission字段
- 网站前台设计(dreamweaver)
热门文章
- VGA,DVI,RS232,UART,SCSI,SATA等等接口怎么区分?
- flutter 横竖屏设置
- 海量数据亮相2022智博会 为重庆“智慧城市”发展注入新动能
- 卡特兰数问题——一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?
- android下拉框 Spinner 获取选中,设置选中
- Java窗体汽车租赁系统Java共享汽车租赁(租赁系统)
- PHP支付宝免签约即时到账接口扫码支付实例
- 文档管理对企业到底有多重要?
- LADP打通Gitlab(全指南)
- 如何使用Calico实现跨主机Docker网络通信