下一代测序数据的伪cgh
ngCGH的Python项目详细描述
概述
下一代肿瘤/正常对测序提供了一个很好的机会来检测肿瘤相对于正常样本的大规模拷贝数变化。实际上,这一概念似乎甚至延伸到对肿瘤和正常人的外显子捕获序列。这个库由一个单独的脚本ngcgh组成,该脚本使用简单的肿瘤相对于正常肿瘤的覆盖率计算一个伪cgh。
我选择在普通样本中使用固定数量的读取作为“窗口”方法。这样做的好处是产生拷贝数估计值,在每个位置都应该有相似的方差。该算法将自适应地处理基因组中的不均匀性,如与外显子捕获技术相关的不均匀性(在肿瘤和正常情况下捕获相似)。缺点是,对于每个“正常对照”样本,伪探针将位于不同的位置。
安装
安装ngcgh有几种可能的方法。
Github
如果您是git用户,那么只需克隆存储库就可以获得最新的代码。
git clone git://github.com/seandavi/ngCGH.git
或者,单击Download按钮并获取tarball或zip文件。
在这两种情况下,切换到结果目录并:
cd ngCGH python setup.py install
来自Pypi
如果您已安装好Easy_,这就足以进行安装:
easy_install ngCGH
用法
用法非常简单:
usage: ngCGH [-h] [-w WINDOWSIZE] [-o OUTFILE] [-l LOGLEVEL] [-r REGIONS] [-t PROCESSES] normalbam tumorbam positional arguments: normalbam The name of the bamfile for the normal comparison tumorbam The name of the tumor sample bamfile optional arguments: -h, --help show this help message and exit -w WINDOWSIZE, --windowsize WINDOWSIZE The number of reads captured from the normal sample for calculation of copy number (default: 1000) -o OUTFILE, --outfile OUTFILE Output filename, default <stdout> (default: None) -l LOGLEVEL, --loglevel LOGLEVEL Logging Level, 1-30 with 1 being maximal logging and 30 being errors only [20] (default: 20) -r REGIONS, --regions REGIONS regions to which analysis should be restricted, either a bed file name or a single region in format chrN:XXX- YYY (default: None) -t PROCESSES, --threads PROCESSES parallelize over regions (or chromosomes) (default: 1)
输出
输出格式也非常简单:
chr1 4851 52735 1000 854 -0.025120 chr1 52736 59251 1000 812 -0.097876 chr1 59251 119119 1000 876 0.011575 chr1 119120 707038 1000 1087 0.322924 chr1 707040 711128 1000 1016 0.225472 chr1 711128 711375 1000 1059 0.285275 chr1 711375 735366 1000 919 0.080709 chr1 735368 798455 1000 972 0.161600
第1-3列描述了每个伪探针的染色体、起点和终点。第四列是窗口中正常样本中的读取数,而第五列表示同一基因组窗口中来自肿瘤的读取数。最后一列包含肿瘤和正常人的中间居中log2比率。
从ngcgh转化为生物发现关系
版本中包括一个脚本convert2nexus,它将ngcgh创建的文件的文件名作为输入,并将其转换为biodiscovery的nexus cgh软件可以加载的文件,以便进行进一步的分析。格式如下:
Name Chromosome Start End PALZGU.cgh chr1_10004 chr1 10004 15735 -2.087921 chr1_15736 chr1 15736 69385 -2.670936 chr1_69386 chr1 69386 521687 -0.428244 chr1_523537 chr1 523537 726959 0.080269 chr1_726959 chr1 726959 808542 0.223047 chr1_808546 chr1 808546 809138 -1.186761
我提供了一个关于使用ngcgh和BioDiscovery Nexus的网络研讨会,您可以view here。
注意
上面生成的文件格式可以使用“multi1”数据类型加载到biodiscovery nexus中。
从完全基因组学到生物发现关系的转换
现在有很多完整的基因组学数据漂浮在周围。我们经常感兴趣的是在生物发现关系中可视化体细胞cnv数据。有一个脚本cgi2nexus,它接受一个通常命名为“somaticcnvdetailsdipolidebeta*”的文件,并转换为上面提到的文件格式。bzip2(典型的来自cgi)是动态解压缩的。
分段输出
cgh2seg脚本使用了dnacopy bioconductor包中实现的循环二进制分割算法的一些正常默认值(至少对于外显子)。分割结果以每个探头的分割值的密度模式为中心。脚本完成后会将“centrality参数”写入stderr。
文件格式为:
ID chrom loc.start loc.end num.mark seg.mean 09 chr1 367695 82438842 2279 0.546541374526925 09 chr1 82778033 93082545 206 0.077841374526925 09 chr1 93205647 103965955 188 -0.913458625473075 09 chr1 104000621 104166584 4 -0.216558625473075 09 chr1 104342470 110014374 109 -0.948958625473075 09 chr1 110024223 110058480 4 -1.38295862547308
方法
ngcgh使用的伪cgh算法将两个适当匹配的bam文件(通常来自肿瘤和匹配的正常人)作为输入。基因组窗口是通过在正常样本中读取固定数量的读取(默认为1000次读取)来定义的。在每个定义的基因组窗口中,肿瘤中的读数被量化。对于每个基因组窗口,肿瘤中的读取数与正常细胞中的读取数之间有一个比率。最后,log2转换i对每个比率应用s,然后通过减去中值将结果的整个矢量居中。