ayueme / easyTCGA

Make TCGA download and prepare easy!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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的差异分析和批量生存分析支持
  • 实现一些常见的分析和可视化
  • 支持自定义生存信息
  • ......

About

Make TCGA download and prepare easy!

License:Other


Languages

Language:R 100.0%