TCGA的28篇教程之CNV那点事
拷贝数变异情况可以由SNP6.0等比较基因组杂交芯片得到,也可以由WES测序得到,当然了,WGS测序会更好,不过很大概率上选择什么样的实用技术,往往受限于资金和设备。TCGA计划也不外乎此。
拷贝数变异的定义
CNV(copy-numbervariant)是指拷贝数目变异,也称拷贝数目多态性(copy-number polymorphism,CNP),是一个大小介于1kb至3MB的DNA片段的变异,在人类及动植物基因组中广泛分布,其覆盖的核苷酸总数大大超过单核苷酸多态性(SNP)的总数,极大地丰富了基因组遗传变异的多样性。按照CNV是否致病可分为致病性CNV、非致病性CNV和不明临床意义CNV。
而在TCGA数据库里面我们通常关心的是somatic CNV,也就是那些肿瘤病人的拷贝数变异然后要剔除正常对照里面的CNV多态性信息,只有这些somatic CNV才更可能是跟肿瘤相关的。
拷贝数的SNP6.0等芯片测量
TCGA里面主要是通过Affymetrix SNP6.0 array这款芯片来测拷贝数变异!
值得注意的是,并不是只有TCGA利用了SNP6.这个芯片数据,著名的CCLE计划也对一千多细胞系处理了SNP6.0芯片,数据也是可以下载的。
对SNP6.0的拷贝数芯片来说,通常是用PICNIC等软件处理原始数据,就可以得到的segment记录文件
,每个样本一个结果,下面是示例结果:
Chromosome Start End Num_Probes Segment_Mean
1 61735 1510801 226 -0.0397
1 1627918 1672603 17 -0.92
1 1687587 16153497 8176 0.0077
1 16153536 16153925 5 -2.7441
1 16154201 16155010 4 -0.8711
1 16165661 72768498 34630 0.0048
1 72768916 72811148 46 -1.7394
1 72811904 95674710 14901 0.0026
1 95676511 95676518 2 -1.6636
表明了某条染色体的某个区域内,SNP6.0芯片设计了多少个探针,芯片结果的拷贝数值是多少(这个区域的拷贝数用Segment_Mean)。
通常二倍体的Segment_Mean值为0,可以用-0.2和0.2来作为该区域是否缺失或者扩增,也有人选择0.4作为阈值。
具体数据处理流程见NIH的TCGA官网:
https://docs.gdc.cancer.gov/Data/Bioinformatics_Pipelines/CNV_Pipeline/
参考文献:http://mcr.aacrjournals.org/content/12/4/485.long
拷贝数变异的NGS测量
TCGA计划的几乎每个样本都是有WES测试数据的,而且少量病人的肿瘤组织及正常对照组织均进行了WES测序,理论上是多余SNP6.0芯片的。
首先从测序仪中得到FASTQ文件即原始数据,通过变异查找流程来得到BAM和VCF文件。比较流行的是GATK的best practice,识别的small Variants(SNV,indel)会以VCF文件格式输出,bam格式的比对文件可以放在IGV进行可视化查看细节。而CNV caller虽然目前也成为标准流程,但是还没有一家独大的软件或者流程,我通常使用4个流程组合起来,这样检测到的CNV事件,涉及从单个靶向基因水平到整个染色体水平。比如外显子水平的deletions, duplications,一直到整个的染色体水平的拷贝数变化。值得一提的是NGS测序数据找拷贝数变化信息,除了需要利用BAM文件的coverage数据,还需要VCF文件中的VAF信息。对WES或者panel的数据,还建议运行 LOH(杂合性缺失)算法。我在生信技能树这里分享过教程的就有如下:
- WES的CNV探究-conifer软件使用
- 单个样本NGS数据如何做拷贝数变异分析呢
- 肿瘤配对样本用varscan 做cnv分析
- 使用cnvkit来对大批量wes样本找cnv
- 使用sequenza软件判定肿瘤纯度
- GATK4的CNV流程-hg38
当然,我没有推荐过的工具也有很多很优秀,欢迎大家给我们生信技能树投稿自己的软件使用心得哦。
TCGA的CNV数据下载
众所周知,TCGA的数据的开放程度分成了4个等级,一般人都是下载level 3 的数据,对CNV数据也是如此。
我比较喜欢去broad institute下载TCGA的数据,所有的文件都以目录的形式存放着:
https://gdac.broadinstitute.org/runs/stddata__latest/
https://gdac.broadinstitute.org/runs/analyses__latest/
如果要下载level3的数据,就用stddata__latest
这个url即可,打开可以看到里面列出了所有的癌症种类,假如我们感兴趣的是BRCA,就直接点击进入,用下面的url即可。
https://gdac.broadinstitute.org/runs/analyses__latest/data/BRCA/20160128/
打开url可以看到非常多的文件,这里我们感兴趣的是snp6芯片的拷贝数结果,而且一般是基于hg19版本的。
wget -c -r -np -nH -k -L --cut-dirs 6 -p -A "*snp_6*hg19*Level_3*" http://gdac.broadinstitute.org/runs/stddata__2016_01_28/data/BRCA/20160128/
如果要下载其它癌症种类,只需要改变url里面的BRCA即可。
如果要下载其它类型的数据,只需要改变-A 后面的匹配规则即可,其实就是打开上面url看到的几十个文件的文件名的规律。
"*snp_6*hg19*Level_3*"
几分钟就下载完数据啦,然后你就会看到下面两个截然不同的:
Merge_snp__genome_wide_snp_6__broad_mit_edu__Level_3__segmented_scna_hg19__seg
Merge_snp__genome_wide_snp_6__broad_mit_edu__Level_3__segmented_scna_minus_germline_cnv_hg19__seg
其中minus了germline的CNV的就是我们想要的癌症相关的somatic CNV咯!
思考题
既然SNP6.0芯片的拷贝数变异信息可以下载,那么TCGA计划的每个肿瘤病人的WES测序数据最后的CNV结果可以下载吗?如何下载额?
对CNV区域注释基因
这里可以参考我前两天分享的使用R语言完成bed格式的区域片段注释。
或者使用bedtools来注释基因,不过需要自己制作基因的各种元件坐标信息bed文件了,而不像R一样,种类繁多的注释包,按需要加载即可。
前面我们下载的CNV都是基于基因组区域的,比如1号染色体的61735起始坐标到1510801终止坐标。在IGV里面倒是可以看出一些pattern,但是人们感兴趣的往往是这些位置上面到底有哪些基因。接下来就可以对基因进行各种下游分析。
既然是对基因组片段做基因注释,那么首先就需要拿到基因的坐标信息咯,我是在gencode数据库里面下载,然后解析成下面的bed格式的,如下:
head ~/reference/gtf/gencode/protein_coding.hg19.position
chr1 69091 70008 OR4F5
chr1 367640 368634 OR4F29
chr1 621096 622034 OR4F16
chr1 859308 879961 SAMD11
chr1 879584 894689 NOC2L
chr1 895967 901095 KLHL17
chr1 901877 911245 PLEKHN1
chr1 910584 917473 PERM1
chr1 934342 935552 HES4
chr1 936518 949921 ISG15
然后要把我们下载的CNV文本文件,转为bed格式的,就是把列的顺序调换一下:
head Features.bed
chr1 3218610 95674710 TCGA-3C-AAAU-10A-01D-A41E-01 53225 0.0055
chr1 95676511 95676518 TCGA-3C-AAAU-10A-01D-A41E-01 2 -1.6636
chr1 95680124 167057183 TCGA-3C-AAAU-10A-01D-A41E-01 24886 0.0053
chr1 167057495 167059336 TCGA-3C-AAAU-10A-01D-A41E-01 3 -1.0999
chr1 167059760 181602002 TCGA-3C-AAAU-10A-01D-A41E-01 9213 -8e-04
chr1 181603120 181609567 TCGA-3C-AAAU-10A-01D-A41E-01 6 -1.2009
chr1 181610685 201473647 TCGA-3C-AAAU-10A-01D-A41E-01 12002 0.0055
chr1 201474400 201474544 TCGA-3C-AAAU-10A-01D-A41E-01 2 -1.4235
chr1 201475220 247813706 TCGA-3C-AAAU-10A-01D-A41E-01 29781 -4e-04
避免重复造轮子,我就用我擅长的bedtools解决这个需求吧,命令很简单,如下:
bedtools intersect -a Features.bed -b ~/reference/gtf/gencode/protein_coding.hg19.position -wa -wb \
| bedtools groupby -i - -g 1-4 -c 10 -o collapse
注释结果,我挑了几个可以看的给大家,可以看到,每个CNV片段都注释到了对应的基因,有些特别大的片段,会被注释到非常多的基因。
chr8 42584924 42783715 TCGA-5T-A9QA-01A-11D-A41E-01 CHRNB3,CHRNA6,THAP1,RNF170,HOOK3
chr8 42789728 42793594 TCGA-5T-A9QA-01A-11D-A41E-01 HOOK3
chr8 42797957 42933372 TCGA-5T-A9QA-01A-11D-A41E-01 RP11-598P20.5,FNTA,HOOK3
chr8 70952673 70964372 TCGA-5T-A9QA-01A-11D-A41E-01 PRDM14
chr10 42947970 43833200 TCGA-5T-A9QA-01A-11D-A41E-01 BMS1,RET,RASGEF1A,ZNF33B,CSGALNACT2
chr10 106384615 106473355 TCGA-5T-A9QA-01A-11D-A41E-01 SORCS3
chr10 106478366 107298256 TCGA-5T-A9QA-01A-11D-A41E-01 SORCS3
chr10 117457285 117457859 TCGA-5T-A9QA-01A-11D-A41E-01 ATRNL1
chr11 68990173 69277078 TCGA-5T-A9QA-01A-11D-A41E-01 MYEOV
chr11 76378708 76926535 TCGA-5T-A9QA-01A-11D-A41E-01 LRRC32,B3GNT6,OMP,TSKU,MYO7A,ACER3,CAPN5
也算是间接回答了前些天在我们生信技能树论坛提问的朋友的疑问。
使用GISTIC2寻找recurrent CNV regions
仔细看上面IGV的pattern你会发现某些染色体的某些片段经常会扩增或者缺失,这个现象就是人们想研究是recurrent CNV regions,当然不会用肉眼看咯,这时候需要用GISTIC这个软件。
找到了recurrent CNV regions同样是需要进行基因注释,才能进行下游分析咯。
基于matlab开发的软件,所以对大部分生物信息学数据处理环境不友好,包括linux和mac,安装起来会比较费劲,而且使用起来也非常费劲。
PICNIC 软件安装见我博客:http://www.bio-info-trainee.com/1299.html
GISTIC软件安装见我博客:http://www.bio-info-trainee.com/1648.html
nohup wget ftp://ftp.broadinstitute.org/pub/GISTIC2.0/GISTIC_2_0_23.tar.gz &
tar zxvf GISTIC_2_0_23.tar.gz
这里就不再赘述啦。
软件GISTIC 使用非常简单。
#!/bin/sh
## run example GISTIC analysis
root=/home/jmzeng/Programs/GISTIC
## output directory
echo --- creating output directory ---
basedir=`pwd`/example_results
mkdir -p $basedir
### 下面只是软件自带的测试数据例子。
echo --- running GISTIC ---
## input file definitions
segfile=$root/examplefiles/segmentationfile.txt
markersfile=$root/examplefiles/markersfile.txt
refgenefile=$root/refgenefiles/hg16.mat ## 软件自带,根据物种自己挑选合适的参考基因组
alf=$root/examplefiles/arraylistfile.txt
cnvfile=$root/examplefiles/cnvfile.txt
## call script that sets MCR environment and calls GISTIC executable
./gistic2 -b $basedir -seg $segfile -mk $markersfile -refgene $refgenefile -alf $alf -cnv $cnvfile -genegistic 1 -smallmem 1 -broad 1 -brlen 0.5 -conf 0.90 -armpeel 1 -savegene 1 -gcm extreme
## 通常运行真实数据,需要给的bed格式的cnv信息文件,以及对应的参考基因组的mat文件即可。其余的无所谓。
GISTIC2结果的下游分析
这里可以使用maftools来结合每个肿瘤病人对应的somatic SNV信息可视化。
泛癌研究之拷贝数变异
发表于 September 2013 Pan-cancer patterns of somatic copy number alteration
对拷贝数的分类整理
We identified a total of 202,244 SCNAs, a median of 39 per cancer sample, comprising 6 categories:
- focal SCNAs that were shorter than the chromosome arm (median of 11 amplifications and 12 deletions per sample);
- arm-level SCNAs that were chromosome-arm length or longer (median of 3 amplifications and 5 deletions per sample);
- copy-neutral loss-of-heterozygosity (LOH) events in which one allele was deleted and the other was amplified coextensively (median of 1 per sample);
- whole-genome duplications (WGDs; in 37% of cancers).
By amplifications and deletions, we refer to copy number gains and losses, respectively, of any length and amplitude.
使用 ABSOLUTE分析肿瘤纯度
这款软件比较老旧了。
统计学显著的拷贝数区域
把经过肿瘤纯度矫正后的拷贝数情况输入到GISTIC软件,参数包括:-
- a noise threshold of 0.3,
- a broad length cutoff of 0.5 chromosome arms,
- a confidence level of 95% and a copy-ratio cap of 1.5.
拷贝数和表达量的关系
这是一个数据挖掘的分析,感兴趣的可以私聊。