使用FACETS对ngs数据找CNV
这个工具,FACETS (Fraction and Allele-Specific Copy Number Estimates from Tumor Sequencing), 的文章发表不到两年,Nucleic Acids Res. 2016 就收获了近100个应用,有可能因为是MSKCC出品:https://github.com/mskcc/facets 可以对
配对的肿瘤样品
的WGS,WES,捕获测序数据找CNV,非常好用。
肿瘤样本拷贝数变异 (CNV,copy number variation),即 somatic CNV 是最主要的体细胞突变之一。
值得一提的是对肿瘤外显子来分析CNV, 我测试过很多工具了:
正常细胞的基因组是二倍体,而在肿瘤细胞中基因组某些区域拷贝数会发生扩增 (amplification) 或缺失 (deletion) 从而改变基因组原有的状态,且大小约在50bp-1Mb之间。理想的 CNV 检测方法应该是能又快又准的定量基因组范围内拷贝数变化,同时能全面定位 CNV 发生的断点及其位置。
使用方法
比较诡异的是这个R包不在bioconductor仓库,而是在GitHub上面,而且比较大,在国内安装可能是会失败,安装代码如下:
if(F){
devtools::install_github("mskcc/facets", build_vignettes = TRUE)
devtools::install_github("mskcc/pctGCdata")
}
其中我踩过的一个坑是:https://mp.weixin.qq.com/s/h0NuxMOb3MY0ADGKCROejg
成功安装R包后,只需要输入文件即可使用,示例输入文件如下:
> head(rcmat)
Chromosome Position N.DP N.RD T.DP T.RD
1 1 13813 1 0 4 3
2 1 13838 2 0 3 2
3 1 14542 4 0 13 3
4 1 14574 7 0 21 4
5 1 14599 9 0 28 4
6 1 14604 9 0 31 4
就是6列数据库,分别是样品走gvcf文件所能找到的所有变异位点的染色体,起始坐标,病人配对样品的正常对照的总测序深度,allele的深度,以及病人的肿瘤样品的总测序深度,allele的深度。
至于这个输入文件如何制作,可以参考:https://mp.weixin.qq.com/s/RPuuhkC16nFEoXWinVSnUQ (在R里面玩转VCF教程)
真正运行CNV步骤代码如下:
## fit segmentation tree
xx = preProcSample(rcmat)
## estimate allele specific copy numbers
oo=procSample(xx,cval=150)
## EM fit version 1
fit=emcncf(oo)
tmp=fit$cncf
head(fit$cncf)
fit$purity
fit$ploidy
plotSample(x=oo,emfit=fit)
其中preProcSample
函数会对肿瘤配对样品的基因型矩阵进行一些预处理,包括测序深度的控制,等位基因频率的控制,两个很重要的值定义是:
logR is dened by the log-ratio of total read depth in the tumor versus that in the normal
logOR is dened by the log-odds ratio of the variant allele count in the tumor versus in the normal.
在procSample
函数里面的CBS算法来根据这两个值来计算拷贝数变化区域,其中pre-determined critical value (cval)这个参数可以控制敏感性,该值越小,那么找到的CNV区域就越多。
最后使用emcncf
函数来进行Call allele-specic copy number and associated cellular fraction, estimate tumor purity and ploidy.算法,得到的结果里面
cf, tcn, lcn are the initial estimates of cellular fraction, total and minor copy number estimates
cf.em, tcn.em, lcn.em are the estimates by the mixture model optimized using the EM-algorithm.
结果图分成3部分需要仔细研读和理解:
最上面的和中间的图就是为了展示所有位点的logR和logOR值在染色体的发布啦,最下面的图才是最后CBS算法
颜色区分拷贝数,但是作者的配色很诡异,不是主流:
Dark blue indicates high cf.
Light blue indicates low cf.
Beige indicates a normal segment (total=2,minor=1).
传统检测 CNV 的方法有
Fluorescence In Situ Hybridization (FISH)
NanoString’s digital detection technology
array comparative genomic hybridization (array CGH)
Single Nucleotide Polymorphism (SNP) array
这些方法受到自身的局限性,如杂交背景噪音,有限的基因组覆盖度,较低的检测分辨率等,因此很难用于检测新型和低频的CNV。随着测序技术的发展,二代测序已成为基因分型和分析 CNV 最流行的手段,不仅可以完美弥补了传统方法的局限性,又可以提高通量、降低成本及缩短周期。综合考虑到二代测序的优势,研究者们开发了一系列基于不同算法适用于不同测序策略的 somatic CNV 分析软件!
基于NGS数据的检测CNV
一般来说有三种主要的检测CNV的算法:
1) read count;
2) paired-end;
3) assembly
随着测序成本的降低以及测序深度的增加,read count 成为最主要的方法。
Read count 方法原理是利用一个非重复滑动的窗口去统计覆盖到与该窗口重叠的基因组区域内 reads 数量,从而推断发生 CNV 的位置。Read count 分析方法包括两个步骤:预处理 (preprocessing) 和分段处理 (segmentation)。
预处理步骤可以对样本比对后的 BAM / SAM / Pileup 等文件进行均一化处理,也可以使用 de-noising 的算法去除 WES 数据中存在的偏好性和背景噪音;分段处理步骤会利用一些统计模型对具有相似 read count 的区域合并去预估CNV的大小,常见的统计模型有circular binary segmentation (CBS), hidden Markovmodel (HMM) 等。
NGS数据的CNV检测的挑战
虽然测序技术逐步在提高,检测 CNV 的软件也一直在更新,但是肿瘤样本中 somatic CNV 的检测依然存在一些挑战。基本挑战包括:测序数据质量和测序策略选择。
首先,基于read count方法检测CNV,最主要的是寻找基因组某一区段内的reads数量与CNV的关系。然而这种关系会受到样本GC偏好性、数据比对偏好性、实验操作背景噪音以及测序偏好性的影响。
其次,在选择WES或TRS测序时,探针的捕获偏好性以及reads在不同外显子区的分布偏好性会影响到CNV检测时的数据统计,会成为CNV检测算法的背景噪音。
最重要的挑战是肿瘤样本本身的复杂性,包括肿瘤纯度、倍性以及克隆结构异质性。CNV 在肿瘤样本基因组上具有广泛性以及多样性,因此 germline CNV 与 somatic CNV 不同之处在于,somatic CNV 可以发生在基因组任何区域且突变频率低。
其次,肿瘤样本中污染正常细胞时,会降低 read count 和 read depth 值,使 BAFs 值脱离理论值,影响分段步骤中 CNV 数量估计;基因组非整倍性情况的存在会严重影响肿瘤样本中 BAF 的状态,以及 read count 和 read depth 的基线。
最后,肿瘤样本中克隆结构存在异质性,导致一些低频亚克隆结构检出困难,虽然提高测序深度可以帮助检测低频亚克隆,但是想要精准检测 somatic CNV 还是需要综合考虑样本的复杂程度。
参考自:http://www.biotrainee.com/thread-2447-1-1.html
■ ■ ■