2019-04-17浏览量:1244

转录组分析深度挖掘-TCGA数据库(二)

紧接上回课程分享,小锐继续分享另外两种的数据下载方法:python脚本法下载、R脚本法下载。

python脚本法下载

这里推荐一个UCSC xena整理的数据汇总,网站:https://xenabrowser.net/datapages/ ,在这里,理论上也可以完成大部分数据探索的,甚至还有一些sci文章发表就是完完全全使用这个网页工具。

步骤一:保存数据列表

进入网页,可以看到下面的列表,复制并保存为TCGA_names.list

TCGA Acute Myeloid Leukemia (LAML)

TCGA Adrenocortical Cancer (ACC)

步骤2:寻找下载地址规律

我们以LIHC为例,

• miRNA数据:<https://gdc.xenahubs.net/download/TCGA-LIHC/Xena_Matrices/TCGA-LIHC.mirna.tsv.gz>

• RNAseq数据:<https://gdc.xenahubs.net/download/TCGA-LIHC/Xena_Matrices/TCGA-LIHC.htseq_fpkm.tsv.gz>

可以看出。大概的格式文件为:

• https://gdc.xenahubs.net/download/TCGA-[疾病名称]/Xena_Matrices/TCGA-[疾病名称].[数据类型].tsv.gz

 

关于数据类型,我们总结为:

– gene expression RNAseq([HTSeq - Counts])--htseq_counts

– gene expression RNAseq([HTSeq - FPKM])--htseq_fpkm

– miRNA Expression Quantification--mirna

– phenotype[survival data]--survival

– phenotype[phenotype]--phenotype

– somatic mutation (SNPs and small INDELs)--...snp...

步骤3:写下载脚本

1.疾病名称我们可以简单写一个函数

def get_disease_name(TCGA_names_file_list):
    TCGA_name_list= []
    for line in TCGA_names_file_list:
        if 'TCGA' in line:
            TCGA_name_list.append(line.strip().split('(')\ [1].split(')')[0])
        return TCGA_name_list

2.下载数据函数

def download_files(TCGA_name_list):
    for name in TCGA_name_list:
        data_type_list = ['htseq_counts', 'htseq_fpkm','mirna', 'mirna', 'survival','phenotype']
        for i in range(len(data_type_list)):
            down_load_cmd = 'wget -c https://gdc.xenahubs.net/download/TCGA-%s/Xena_Matrices/TCGA-%s.%s.tsv.gz' % (name, name, file_list[i])
            os.system(down_load_cmd)

3.运行主函数

with open('TCGA_names.list') as inf:
    TCGA_name_list = get_disease_name(inf)
    download_files(TCGA_name_list)

R脚本法下载

可以下载TCGA数据的R包有很多,比如TCGAbiolinks、TCGA2STAT、cgdsr等。这里小锐给大家推荐一款RTCGA包,关于RTCGA包,可以查看链接,里面有详细的说明文档。小锐这里就不多啰嗦了,直接上下载过程。

1.下载包

# windows 操作环境下安装软件包
install.packages("BiocManager")
BiocManager::install("RTCGA")
BiocManager::install("RTCGA.miRNASeq")

2.加载包并查看数据

# 开始加载数据
library("BRCA.miRNASeq")

# 查看数据类型发现是个数据框
> class(BRCA.miRNASeq)
[1] "data.frame"
# 看一下数据维度发现有3570个样本【包括重复样本】,1048个miRNA
> dim(BRCA.miRNASeq)
[1] 3570 1048
# 看一下部分数据样子
> BRCA.miRNASeq[1:5, 1:5] 
                                                machine                       miRNA_ID hsa-let-7a-1 hsa-let-7a-2 hsa-let-7a-3
TCGA-A1-A0SE-01A-11R-A085-13   Illumina Genome Analyzer                     read_count        16795        33593        16999
TCGA-A1-A0SE-01A-11R-A085-13.1 Illumina Genome Analyzer reads_per_million_miRNA_mapped  6280.683542 12562.488968  6356.971690
TCGA-A1-A0SE-01A-11R-A085-13.2 Illumina Genome Analyzer                   cross-mapped            N            N            N
TCGA-A1-A0SH-01A-11R-A085-13   Illumina Genome Analyzer                     read_count         8686        17160         8740
TCGA-A1-A0SH-01A-11R-A085-13.1 Illumina Genome Analyzer reads_per_million_miRNA_mapped  6101.381556 12053.846132  6139.313240

 3.下载数据

# 我们下载read_count数据
miRNA_data = BRCA.miRNASeq[(BRCA.miRNASeq$miRNA_ID == 'read_count'),][,seq(3,ncol(BRCA.miRNASeq))]
# 会出现重复样本的数据,我们使用这种方法
# rownames(miRNA_data) = lapply(rownames(miRNA_data), function(m) substring(m, 1, 16))
# 另外的方法
library(dplyr)
exprSet <- miRNA_data %>% as_tibble() %>% mutate(bcr_patient_barcode = substr(rownames(miRNA_data), 1, 16))
write.table(exprSet,file = "C:\\Users\\Desktop\\miRNA_data_from_R.txt",quote = FALSE,row.names =FALSE)                 

下载之后的数据,需要我们简单使用excel进行调整,最后一列为我们样本名称。

经过上面的阅读,你可能也会发现下面总结的几点:

总结

方法一

官网下载

– 优点:

• 数据最新,最全。

• 更新及时,安全准确。

– 缺点:

• 操作相对繁琐。

• 数据需要重新进行筛选,去除其他疾病类型数据,重复样本数据等。

方法二

python脚本法

– 优点:

• 速度快,一次可以下载TCGA库中的全部数据。

– 缺点:

• 依赖于UCSC xena网站。

• 得到的数据相对于方法一,更新比较慢,较方法三快。

方法三

R包

– 优点:

• 数据是经过人为处理后的数据,相对准确。

• 数据的获得在R环境中,方便后续的差异,生存等分析。

– 缺点

• 更新不能及时,数据来源更加依赖RTCGA包。

通过上面几点的分析,小锐这里还是比较推荐使用方法一的,一方面他需要我们浏览官网,了解官网界面的信息;另一方面,在我们进行各个步骤的操作时,可能会遇到各种问题,他就需要我们去不停的探索原因,实际增加动手能力。当然,另外两种方法也是备选方案,给我们提供不同的思路。

上期回顾请戳下方

TCGA数据库简介与下载方法(一)

两节课程的充电后,

小伙伴们跟上步伐,

实操一番吧

下一篇

版权所有 上海锐翌生物科技有限公司 沪ICP备16022951号