Skip to content

Make TCGA download and prepare easy!

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

ayueme/easyTCGA

Repository files navigation

easyTCGA:让初学者也能感受"征服"TCGA的喜悦

为什么要写这个R包

生信数据挖掘必不可少要学习TCGA数据库,但是对于新手,经常卡在第一步:下载和整理数据。第一步完成了,又会卡在第二步,第三步:差异分析,生存分析......

有人会说XENA有整理好的数据,但这些数据下载后并不能直接用,还是要整理,初学者依然会卡在第一步!

对于R语言大神来说都不是问题,非常简单的R语言操作而已。但是对于初学者很难理解。

这几步操作又是必不可少的,我自己也经常需要重新下载整理数据。为了简化这几个流程,同时也是让初学者也能感受到"征服"TCGA的喜悦,我把自己常用的一些代码打包,写了这个R包。

使用注意

需要自己解决网络问题,比如访问github,TCGA官网, google等,如果你无法解决网络问题,那么生信数据挖掘可能不适合你......基本上你常见的生信数据库资源都是国外的,由于众所周知的原因,国外的数据很难下载,网络问题我帮不了你

安装

首先安装依赖包:

# 安装bioconductor上面的R包
# 首先要改镜像,下面是清华的镜像,有时会有问题,可更改其他镜像试试(自己百度下喽~)
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
if(!require("BiocManager")) install.packages("BiocManager")
if(!require("TCGAbiolinks")) BiocManager::install("TCGAbiolinks")
if(!require("SummarizedExperiment")) BiocManager::install("SummarizedExperiment")
if(!require("DESeq2")) BiocManager::install("DESeq2")
if(!require("edgeR")) BiocManager::install("edgeR")
if(!require("limma")) BiocManager::install("limma")

# 安装cran上面的R包
if(!require("survival")) install.packages("survival")
if(!require("broom")) install.packages("broom")
if(!require("devtools")) install.packages("devtools")
if(!require("reshape2")) install.packages("reshape2")
if(!require("data.table")) install.packages("data.table")
if(!require("ggplot2")) install.packages("ggplot2")
if(!require("ggpubr")) install.packages("ggpubr")

再安装easyTCGA包:

devtools::install_github("ayueme/easyTCGA")

主要功能

解决TCGA(GTEx)数据下载和整理问题,顺便实现一些常见的分析和可视化

  • getmrnaexpr

    • 只需要提供正确的TCGA project名字即可;
    • 自动下载并整理mRNAlncRNAcounts,tpm,fpkm共6种表达矩阵(直接从官网的原始数据提取,未进行任何修改,所以是没有经过log转换的),以及对应的临床信息,临床信息样本顺序和表达矩阵样本顺序完全一致,无需再次整理;
    • 自动保存以上6种表达矩阵和临床信息到当前工作目录下的output_mRNA_lncRNA_expr文件夹下,并且同时保存rdatacsv两种文件格式;
    • 下载的数据为最新数据,和GDC TCGA官网保持一致;
    • 支持通过手动下载的TCGA数据进行自动整理并完成以上过程(可参考b站教程:easyTCGA:1行代码整理TCGA的6种表达矩阵和临床信息
    • lncRNA鉴别参考:Biotypes (ensembl.org)
  • getmrnaexpr_xena

    • 用于XENA网站下载的TCGA基因表达数据和临床信息的整理(仅限gdchub);
    • 直接提供文件名即可,比如:TCGA-ACC.htseq_counts.tsv.gz, TCGA-ACC.htseq_fpkm.tsv.gzTCGA-ACC.GDC_phenotype.tsv.gz, TCGA-ACC.survival.tsv
    • 自动保存mRNAlncRNA表达矩阵和临床信息到当前工作目录下的output_mRNA_expr_xena文件夹下;
    • id转换使用gtf 22,和XENA保持一致;
    • (单独使用XENA的表达谱数据和直接用GDC官网数据相比没有任何优势)
  • getmirnaexpr

    • 只需要提供正确的TCGA project名字即可;
    • 自动下载并整理miRNAcounts,rpm2种表达矩阵;
    • 自动保存以上2种表达矩阵和对应的临床信息到当前工作目录下的output_miRNA_expr文件夹下,并且同时保存rdatacsv两种文件格式;
    • 下载的数据为最新数据,和GDC TCGA官网保持一致
  • getsnvmaf

    • 只需要提供正确的TCGA project名字即可;
    • 自动下载并整理TCGA MAF文件(masked somatic mutation)以及对应的临床信息,并自动保存到当前工作目录下的output_snv文件夹下;
    • 输出结果可以直接通过maftools::read_maf()函数读取,无需再次整理
  • getcnv

    • 只需要提供正确的TCGA project名字即可;
    • 自动下载并整理copy number variation数据;数据保存到当前工作目录下的output_cnv文件夹下;
    • 下载的数据为最新数据,和GDC TCGA官网保持一致
  • getmethybeta

    • 只需要提供正确的TCGA project名字即可;
    • 自动下载并整理450KDNA methylationbeta值矩阵,以及对应的临床信息,数量和顺序完全一致,无需再次整理;
    • 自动整理探针信息,比如探针对应的gene symbol等,基于GRCh 38
    • 数据保存在当前工作目录下的output_methy文件夹下;
    • 下载的数据为最新数据,和GDC TCGA官网保持一致
  • getclinical

    • 下载XML格式的临床数据,包括各种常见的临床信息,如生存信息、病理分期、放化疗数据、化疗药物数据等
    • 与GDC TCGA官网数据保持一致
    • 只需要提供正确的TCGA project名字即可
  • getpancancer_xena

    • 实现对泛癌数据的整理,支持TCGAGTEx,以及整合TCGA+GTEx
    • 原始文件是从XENA下载的;
    • 只需提供相应的表达矩阵文件和样本信息文件即可
    • 很费内存,可在公众号后台直接回复pancancer获取我整理好的
  • diff_analysis

    • getmrnaexprgetmirnaexprgetmrnaexpr_xena函数无缝对接,直接使用其输出结果即可,无需任何整理(默认对tumor和normal组进行差异分析);
    • 支持count, tpm, fpkmGEO数据,如果是count则自动通过3个R包进行差异分析:DESeq2, edgeR, limma;如果是其他类型(tpm, fpkm基因表达芯片数据)会自动判断是否需要log2(x + 0.1)转换,然后使用limmawilcoxon test做差异分析;
    • wilcoxon秩和检验做差异分析的参考资料:TCGA等大样本量差异分析该使用DEseq2还是edgeR呢?,以及文中涉及的参考文献:https://doi.org/10.1186/s13059-022-02648-4
    • 支持输入自己的表达矩阵和自定义分组,分组信息需要因子型向量;
    • 输出结果默认为1个list,内含多种差异分析结果,支持保存rdata格式数据到本地
  • batch_survival

    • 自动进行logrank检验和单因素cox分析,默认基于最佳截点(P值最小)
    • getmrnaexprgetmirnaexpr函数无缝对接,直接使用其输出结果即可,无需任何整理;
    • 支持count,tpm,fpkm3种格式的数据,如果是counts,则通过DESeq2::vst()进行转换,如果是tpm/fpkm,则进行log2(x + 0.1)转换;
    • 支持打印基因序号到屏幕,方便定位有问题的基因
  • 可视化函数

    • 主要用来进行一些简单的探索;每个函数都会返回画图数据,方便你自己探索;
    • plot_gene:任意数量基因在任意癌种(TCGA33种其中之一都可以)的任意分组中的表达量箱线图;
    • plot_gene_paired:任意基因在某一癌种配对样本中的表达量配对箱线图;
    • plot_km:根据任意基因的表达量分组,并画出K-M生存曲线(支持最佳截点)

使用教程

文字版使用教程请关注公众号:医学和生信笔记

视频版教程请关注哔哩哔哩:阿越就是我,(视频教程滞后于包的更新速度)

问题反馈

B站,公众号,Github,粉丝QQ群,都可以。

TO DO

  • 支持XENA网站下载的gene expression和临床数据的整理
  • 支持XENA泛癌数据的整理,对电脑内存要求较高,正在优化代码中......
  • 增加对miRNA的差异分析支持
  • 增加对miRNA的批量生存分析支持
  • 增加对自定义表达矩阵/自定义分组差异分析的支持
  • 增加对多分组差异分析的支持
  • 增加对lncRNA的差异分析和批量生存分析支持
  • 实现一些常见的分析和可视化
  • 支持自定义生存信息
  • ......