下一代测序数据的伪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,然后通过减去中值将结果的整个矢量居中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么会导致程序在它似乎拥有的监视器上被阻止?   java Android studio设置视图的背景色   java我可以保存一个文本文件而不给用户修改它的能力吗?   pdfbox PDFBOX2。0:java堆堆栈错误   java是维护和操作AllowList的有效方法   JAVAsql。SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/asd性爱   如何使用java。lang.NullPointerException:void 安卓。支持v7。应用程序。ActionBar。setElevation(float)“”在空对象引用上'   java调试空指针异常   java正则表达式,以按令牌的特定匹配项拆分,同时忽略其他匹配项   java为JPanel设置边框上的笔划   并发@Schedule方法的java行为   如何在Java中使用泛型与语言运算符和泛型类扩展数   java Rhino Javascript如何为异常堆栈跟踪标记字符串源   运行可执行jar时发生java错误,无法找到或加载主类