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)

效果图如下所示:

 

 

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

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

相关文章

R语言画词云图

词云图大家都很常见,主要是用来展示词语的频次,用来发现突出贡献的词语! 用于词云图的工具很多,但制作过程有些麻烦!今天我们来使用R语言做一下词云图,看看会有什么结果! 软件介绍 R RStudio 词云图教程 1.首先我们准备一个Excel文件,将单词或者词语,以及对应的频…

【教程】使用R语言绘制词云图

哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 最近木易巷在了解R语言&#xff0c;今天给大家分享一下使用R语言绘制出词云图的教程。 什么是R语言 R语言是一个开源的数据分析环境&#xff0c;起初是由数位统计学家建立起来&#xff0c;以更好的进行统计计算和绘图。由于R可…

R语言入门——笔记(二)--包(package)的使用及RStudio的使用,加载包和数据集

一&#xff1a; 1.包&#xff08;package&#xff09;的使用 包是扩展R基本功能的机制&#xff0c;集成了众多函数。如果想使用某些函数而当前R中不存在&#xff0c;就可以找对应函数的包直接使用。 去哪里找包&#xff1f;如何使用包&#xff1f; CRAN: -install.packages…

1. R语言介绍、Rstudio的基本使用、帮助命令、内置数据集

b站课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 腾讯课堂(最新&#xff0c;但是要花钱&#xff0c;我花99元买了&#xff0c;感觉不错&#xff09;&#xff1a;https://ke.qq.com/course/3707827#term_id103855009 本笔记前面的笔记参照b站视频…

【R语言】如何直接调取Wind、iFinD数据接口教程

对于从事经济、金融研究类工作的新人们其实最先遇到的是主流金融终端使用问题。国内的氛围很奇怪&#xff0c;一碰上正儿八经能派上用场的东西业内人士总是讳莫如深&#xff0c;好像别人学去了他就马上失业&#xff0c;听说现在学个最基础的数据接口都动不动要付钱&#xff0c;…

R语言高级数据管理

文章目录 高级数据管理标准差绝对中位差分位数quantile()函数百分位数 数据预处理中心化标准化 &#xff08;Standardization&#xff09;数据中心化和标准化的区别归一化&#xff08;Normalization&#xff09;标准化和归一化 概率函数协方差控制流分支结构重复和循环 自定义函…

用R语言,生成微信聊天记录词云。

首先获取微信聊天记录&#xff1a;并导出为txt文件 基于R语言&#xff1a; #install.packages("jiebaRD") #install.packages("jiebaR") #install.packages("data.table") #install.packages("stringr") #install.packages("rJa…

R语言中自带的一些数据集

在用R语言做数据分析的时候&#xff0c;我们经常需要一些数据做实验&#xff0c;尤其当学会一个新的方法或者算法的时候&#xff0c;就想赶快编程实现一下。那么&#xff0c;问题来了&#xff0c;用什么数据好呢&#xff0c;什么样的数据适合做这种实验呢&#xff1f; 好在R语…

R语言---使用RTCGA包获取TCGA数据---笔记整理

原文链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzAxMDkxODM1Ng&mid2247486585&idx1&sn3035f6420904aad2c8161b362cdeb472&chksm9b484cc2ac3fc5d479fc5bce3d68d4666b763652a21a55b281aad8c0c4df9b56b4d3b353cc4c&scene21#wechat_redirect 1.RTCGA…

R语言实操记录——获取包的三种渠道及安装包的三种方式

R语言 R语言实操记录——获取包的三种渠道及安装包的三种方式 文章目录 R语言一、获取包的三种渠道二、安装包的三种方式2.1、CRAN2.2、Bioconductor2.3、Github注意 一、获取包的三种渠道 渠道1 、CRAN&#xff1a;R语言的官网&#xff0c;里面包含有绝大多部分领域的大部分…

【R语言】2022年末特辑——ggsci包色版最详分享

目录 一、前言二、官方教程2.1 NPG2.2 AAAS2.3 NEJM2.4 Lancet2.5 JAMA2.6 JCO2.7 UCSCGB2.8 d32.9 locuszoom2.10 igv2.11 uchicago2.12 startrek2.13 tron2.14 futurama2.15 rickandmorty2.16 simpsons2.17 gsea2.18 material 三、讨论 一、前言 部分新手直接化用代码跑出来…

R语言txt文件自定义词云图

在R语言中获取txt文件文本&#xff0c;并进行词频统计&#xff0c;然后自定义词云图。 先获取txt文本 wordfreqs read.table("E:\\Python实训\\哔哩哔哩弹幕爬取\\dan_mu.txt",encoding "UTF-8")这是事先用python爬虫准备好的B站番剧&#xff08;排球少…

基于R语言分析自带数据集heart

本文将对R语言中自带的heart数据集进行分析。本文会包含所有代码&#xff0c;尽可能多的使用有关可视化的函数以及数据分析的模型。 一、研究概述 1.1 数据集简介 数据集来源&#xff1a;使用R语言 glmpalh 包中自带的数据heart.data 数据集内容&#xff1a;该数据集描述了45…

摸鱼的小贤在瞎搞R - R语言内置数据集的使用

系列文章目录 1-R语言的安装及使用&#xff08;还没写这个&#xff0c;太简单了不太想写&#xff09; 2-R语言内置数据集的使用 …… 文章都会尽量详细&#xff0c;话多请见谅&#xff08;我是话痨 文章目录 系列文章目录1. 查看包中有哪些数据集2. 查看某一特定数据集的基本信…

ChatGPT对高校人才培养模式的挑战与应对策略思考

酷吗&#xff1f;输入指令后直接就能生成一大串代码&#xff0c;即使不懂相关技术也能玩转编程&#xff0c;这就是ChatGPT赋予你的“新能力”&#xff0c;除了写代码&#xff0c;ChatGPT还能帮你执行各种五花八门的任务。 AI工具如ChatGPT在行业中的广泛应用对于行业的人才结…

如何使用SMS向客户传递服务信息?指南在这里!

关键词&#xff1a;SMS运营、实时聊天客服、聊天机器人 SMS作为一种客户服务策略正变得越来越流行。了解如何使用它&#xff0c;并在此获得一些有用的模板。 通过SMS发送客户服务信息是提升客户体验的一种强有力的方式&#xff0c;并使客户获得超出他们预期的快乐。它是最近许…

SMS Call---发送短信和打电话的方法

发送短信的方法 有两种方法可以实现发送短信&#xff0c;其一是使用intent-startActivity&#xff0c;URI数据格式为"smsto:num"&#xff0c;调用的action为Intent.ACTION_SENDTO&#xff1a; Uri uri Uri.parse("smsto:5554"); Intent it new Intent(I…

ChatGPT token访问和API访问的区别,哪个更适合企业级应用?

文章目录 先介绍一下ChatGPT token访问和API访问的区别ChatGPT token访问和API访问哪种更适合企业级应用&#xff1f;如何搭建一个本地可以使用的 ChatGPT 聊天页面&#xff1f;微信公众号上如何对接 ChatGPT 并支持聊天&#xff1f; 先介绍一下 ChatGPT是基于OpenAI的GPT-4模…

UI设计:模仿淘宝App首页

UI设计&#xff1a;模仿淘宝App首页

场景导购系列一:个性化服饰搭配在淘宝搜索的实践

背景 日常生活中存在着各种各样的场景&#xff0c;比如参加晚会、海边度假、跑步、登山、垂钓等等。场景可以认为是在一些维度上相似的元素所构成的情境画面&#xff0c;不同场景会有不同的氛围、组成元素。 一些场景偏实用性&#xff0c;比如跑步&#xff0c;会让人想起要穿上…