返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >R语言使用cgdsr包获取TCGA数据示例详解
  • 341
分享到

R语言使用cgdsr包获取TCGA数据示例详解

2024-04-02 19:04:59 341人浏览 独家记忆
摘要

目录TCGA数据源TCGA数据库探索工具查看任意数据集的样本列表方式选定数据形式及样本列表后获取感兴趣基因的信息,下载mRNA数据选定样本列表获取临床信息综合性获取下载mRNA数据获

TCGA数据源

众所周知,TCGA数据库是目前最综合全面的癌症病人相关组学数据库,包括的测序数据有:

DNA Sequencing

miRNA Sequencing

Protein Expression

mRNA Sequencing

Total RNA Sequencing

Array-based Expression

DNA Methylation

Copy Number

TCGA数据库探索工具

知名的肿瘤研究机构都有着自己的TCGA数据库探索工具,比如:

Broad Institute FireBrowse portal, The Broad Institute

cBioPortal for Cancer Genomics, Memorial Sloan-Kettering Cancer Center

TCGA Batch Effects, MD Anderson Cancer Center

Regulome Explorer, Institute for Systems Biology

Next-Generation Clustered Heat Maps, MD Anderson Cancer Center

其中cBioPortal更是被包装到R包里面

这里介绍如何使用R语言的cgdsr包来获取任意TCGA数据。

cgdsr包:R语言工具包,可以下载TCGA数据。
DT包:data.table包,简称DT包,是R语言中的数据可视化工具包。DT包可以将javascript中的方法运用到R中,也能将矩阵或者数据表在网页中可视化为表格,以及其它的一些功能。

> setwd("C:/Users/YLAB/Documents/R/win-library/4.1/")
> install.packages("R.methodsS3_1.8.1.zip",repos=NULL)#安装
> install.packages("R.oo_1.24.0.zip",repos=NULL)#安装
> install.packages("data.table")
> BiocManager::install("cgdsr", force = TRUE)#安装
> library(cgdsr)
> library(DT)
#创建一个cgdsr对象
> mycgds <- CGDS("Http://www.cbioportal.org/")
#检查下载是否成功,如果是FaiLED就是没成功。
> test(mycgds)
getCancerStudies...  OK
getCaseLists (1/2) ...  OK
getCaseLists (2/2) ...  OK
getGeneticProfiles (1/2) ...  OK
getGeneticProfiles (2/2) ...  OK
getClinicalData (1/1) ...  OK
getProfileData (1/6) ...  OK
getProfileData (2/6) ...  OK
getProfileData (3/6) ...  OK
getProfileData (4/6) ...  OK
getProfileData (5/6) ...  OK
getProfileData (6/6) ...  OK
all_TCGA_studies <- getCancerStudies(mycgds)
> DT::datatable(all_TCGA_studies)

查看任意数据集的样本列表方式

上表的cancer_study_id其实就是数据集的名字,我们任意选择一个数据集,比如stad_tcga_pub ,可以查看它里面有多少种样本列表方式。

stad2014 <- "stad_tcga_pub"
## 获取在stad2014数据集中有哪些表格(每个表格都是一个样本列表)
all_tables <- getCaseLists(mycgds, stad2014)
dim(all_tables) ## 共6种样本列表方式
[1] 6 5
DT::datatable(all_tables[,1:3])

查看任意数据集的数据形式

## 而后获取可以下载哪几种数据,一般是mutation,CNV和表达量数据
all_dataset <- getGeneticProfiles(mycgds, stad2014)
DT::datatable(all_dataset,
                  extensions = 'FixedColumns',
                  options = list(                    #dom = 't',
                    scrollX = TRUE,
                    fixedColumns = TRUE
                  ))

一般来说,TCGA的一个项目数据就几种,如下:

选定数据形式及样本列表后获取感兴趣基因的信息,下载mRNA数据

my_dataset <- 'stad_tcga_pub_rna_seq_v2_mrna'
my_table <- "stad_tcga_pub_rna_seq_v2_mrna" 
BRCA1 <- getProfileData(mycgds, "BRCA1", my_dataset, my_table)
dim(BRCA1)
[1] 265   1

样本个数差异很大,不同癌症热度不一样。

选定样本列表获取临床信息

## 如果我们需要绘制survival curve,那么需要获取clinical数据
clinicaldata <- getClinicalData(mycgds, my_table)
DT::datatable(clinicaldata,
                  extensions = 'FixedColumns',
                  options = list(                    #dom = 't',
                    scrollX = TRUE,
                    fixedColumns = TRUE
                  ))

综合性获取

只需要根据癌症列表选择自己感兴趣的研究数据集即可,然后选择好感兴趣的数据形式及对应的样本量。就可以获取对应的信息:

library(cgdsr)
library(DT)
 mycgds <- CGDS("http://www.cbioportal.org")   
##mycancerstudy = getCancerStudies(mycgds)[25,1]
mycancerstudy = 'brca_tcga'   getCaseLists(mycgds,mycancerstudy)[,1]
##  [1] "brca_tcga_3way_complete"          "brca_tcga_all"                   
##  [3] "brca_tcga_protein_quantification" "brca_tcga_sequenced"             
##  [5] "brca_tcga_cna"                    "brca_tcga_methylation_hm27"      
##  [7] "brca_tcga_methylation_hm450"      "brca_tcga_mrna"                  
##  [9] "brca_tcga_rna_seq_v2_mrna"        "brca_tcga_rppa"                  
## [11] "brca_tcga_cnaseq"
getGeneticProfiles(mycgds,mycancerstudy)[,1]
##  [1] "brca_tcga_rppa"                          
##  [2] "brca_tcga_rppa_Zscores"                  
##  [3] "brca_tcga_protein_quantification"        
##  [4] "brca_tcga_protein_quantification_zscores"
##  [5] "brca_tcga_GIStic"                        
##  [6] "brca_tcga_mrna"                          
##  [7] "brca_tcga_mrna_median_Zscores"           
##  [8] "brca_tcga_rna_seq_v2_mrna"               
##  [9] "brca_tcga_rna_seq_v2_mrna_median_Zscores"
## [10] "brca_tcga_linear_CNA"                    
## [11] "brca_tcga_methylation_hm450"             
## [12] "brca_tcga_mutations"

下载mRNA数据

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
expr=getProfileData(mycgds,c('BRCA1','BRCA2'),mygeneticprofile,mycaselist)
DT::datatable(expr)

很简单就得到了指定基因在指定癌症的表达量

获取病例列表的临床数据

myclinicaldata = getClinicalData(mycgds,mycaselist)
DT::datatable(myclinicaldata,
                  extensions = 'FixedColumns',
                  options = list(                    #dom = 't',
                    scrollX = TRUE,
                    fixedColumns = TRUE
                  ))
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## http://rstudio.GitHub.io/DT/server.html

从cBioPortal下载点突变信息

#突变基因名称集合
mutGene=c("EGFR", "PTEN", "TP53", "ATRX")
#检索基因和遗传图谱的基因组图谱数据
mut_df <- getProfileData(mycgds, 
                         caseList ="gbm_tcga_sequenced", 
                         geneticProfile = "gbm_tcga_mutations",
                         genes = mutGene
)
mut_df <- apply(mut_df,2,as.factor)
mut_df[mut_df == "NaN"] = ""
mut_df[is.na(mut_df)] = ""
mut_df[mut_df != ''] = "MUT" 
DT::datatable(mut_df)

从cBioPortal下载拷贝数变异数据

mutGene=c("TP53","UGT2B7","CYP3A4")
cna<-getProfileData(mycgds,mutGene,"gbm_tcga_gistic","gbm_tcga_sequenced")
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)

把拷贝数及点突变信息结合画热图

下面的函数,主要是配色比较复杂,其实原理很简单,就是一个热图。

library(ComplexHeatmap)
library(grid)
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语言cgdsr获取TCGA数据的资料请关注编程网其它相关文章!

--结束END--

本文标题: R语言使用cgdsr包获取TCGA数据示例详解

本文链接: https://www.lsjlt.com/news/152612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • R语言使用cgdsr包获取TCGA数据示例详解
    目录TCGA数据源TCGA数据库探索工具查看任意数据集的样本列表方式选定数据形式及样本列表后获取感兴趣基因的信息,下载mRNA数据选定样本列表获取临床信息综合性获取下载mRNA数据获...
    99+
    2024-04-02
  • R语言怎么使用cgdsr包获取TCGA数据
    本篇内容主要讲解“R语言怎么使用cgdsr包获取TCGA数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“R语言怎么使用cgdsr包获取TCGA数据”吧!TCGA数据源众所周知,TCGA数据库是...
    99+
    2023-07-02
  • 使用R语言怎么获取指定位置的数据
    这期内容当中小编将会给大家带来有关使用R语言怎么获取指定位置的数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。R语言-获取指定位置的数据R中采用数据对象+[ , ]的方式获取对应位置的数据,根据填入索引...
    99+
    2023-06-14
  • R语言:数据筛选match的使用详解
    数据筛选是在分析中最常用的步骤,如微生物组分析中,你的OTU表、实验设计、物种注释之间都要不断筛选,来进行数据对齐,或局部分析。 今天来详解一下此函数的用法。 match match...
    99+
    2024-04-02
  • R语言UpSet包实现集合可视化示例详解
    目录前言一、R包及数据二、upset()函数1)基本参数2)queries参数3)attribute.plots参数3.1 添加柱形图和散点图3.2 添加箱线图3.3 添加密度曲线图...
    99+
    2024-04-02
  • R语言lubridate包处理时间数据的示例分析
    小编给大家分享一下R语言lubridate包处理时间数据的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的软件,它是...
    99+
    2023-06-15
  • R语言函数详解及实例用法
    函数是一组组合在一起以执行特定任务的语句。 R 语言具有大量内置函数,用户可以创建自己的函数。 在R语言中,函数是一个对象,因此R语言解释器能够将控制传递给函数,以及函数完成动作所需...
    99+
    2024-04-02
  • Go语言sort包函数使用示例
    目录sort包简介sort包内置函数sort.Ints(x []int)sort.Slice(x any, less func(i, j int) bool)sort.Sort...
    99+
    2022-06-07
    GO 示例 函数 sort
  • R语言中怎么使用SQL语句读取数据库数据
    在R语言中使用SQL语句读取数据库数据,一般可以通过以下步骤实现: 首先,需要安装并加载适当的R包来连接数据库。常用的包包括DB...
    99+
    2024-04-24
    r语言 数据库
  • Go语言func匿名函数闭包示例详解
    目录前言定义函数也可以作为函数的参数函数作为函数的返回值匿名函数闭包总结前言 今天继续为大家更新Go语言学习记录的文章。 函数是任何一门编程语言最重要的组成部分之一。函数简单理解是一...
    99+
    2024-04-02
  • R语言对数据库进行操作的实例详解
    数据是关系数据库系统以规范化格式存储。 因此,要进行统计计算,我们将需要非常先进和复杂的Sql查询。 但R语言可以轻松地连接到许多关系数据库,如MySql,Oracle,Sql服务器...
    99+
    2024-04-02
  • R语言中矩阵matrix和数据框data.frame的使用详解
    本文主要介绍了R语言中矩阵matrix和数据框data.frame的一些使用,分享给大家,具体如下: "一,矩阵matrix" "创建向量" x_1=c(1,2,3) x_1=...
    99+
    2024-04-02
  • r语言中怎么使用dplyr包进行数据筛选
    使用dplyr包进行数据筛选的基本步骤如下: 安装并加载dplyr包:首先需要安装dplyr包,并通过library(dplyr)...
    99+
    2024-03-06
    r语言
  • R语言编程重读微积分泰勒级数示例详解
    一 理解极限 二 微分学 泰勒级数 如果我是泰勒,我会把思考的起点建立在这样的一个等式上 那么接下来我们直观地感受一下Taylor级数时如何逐渐逼近某个函数的。简单起见,在此选择...
    99+
    2024-04-02
  • R语言dplyr包之高效数据处理函数(filter、group_by、mutate、summarise)详解
    R语言dplyr包的数据整理、分析函数用法文章连载NO.01 在日常数据处理过程中难免会遇到些难处理的,选取更适合的函数分割、筛选、合并等实在是大快人心! 利用dplyr包中的函数更...
    99+
    2024-04-02
  • Python/R语言分别实现斐波那契数列的示例详解
    目录前言1、年龄计算1.1 图解问题1.2 代码解决1.3 实验小结2、斐波那契数列2.1 图解问题2.2 代码实现2.3 实验小结总结前言 此专栏为python与R语言对比学习的文...
    99+
    2024-04-02
  • 使用Java获取Json中的数据简单示例
    目录1.普通元素2.属性包含大括号 { 3.属性包含中括号 [4.属性中既有中括号包括,又嵌套了大括号补充:java提取json中某个数组的所有值总结使用com.aliba...
    99+
    2023-05-15
    java 获取json数据 java读取json中的数据 java读取json文件并解析
  • R语言基础 | 使用中括号“[]”提取或替换数据
    专注系列化、高质量的R语言教程 (查看推文索引) 中括号[]是R语言的一个常用操作符,作用是提取(extract)或替换(replace)。本篇推文总结其三种用法: 1 使用下标或名称2 使用逻辑变量3 使用重复序数 1 使...
    99+
    2023-10-21
    数据结构 java 大数据 python javascript
  • MySQL教程DML数据操纵语言示例详解
    目录1.数据操纵语言(DML)2.增添数据(insert)3.复制已有表,生成新表1)复制已有表的结构和数据。2)只复制已有表的结构(得到的是一个空结构表)。3)在2的基础上,向空结...
    99+
    2024-04-02
  • MySQL教程数据定义语言DDL示例详解
    目录1.SQL语言的基本功能介绍2.数据定义语言的用途3.数据库的创建和销毁4.数据库表的操作(所有演示都以student表为例)1)创建表2)修改表3)销毁表如果你是刚刚学习MyS...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作