nPhase 是一种命令行倍性不可知定相管道和算法,可将任何倍性的样本与长和短读取数据的序列比对到参考序列进行定相。
项目描述
用于下载数据集、生成虚拟多倍体、对其进行定相和评估定相质量的工具包。
分阶段工具包
相位工具包是一个开源脚本集合,可自动执行基于对齐的相位操作步骤。
目前,重点是使基准定相算法变得容易,重点是多倍体工具。最终目标是开发一个通用的分阶段工具包。欢迎并鼓励每个人为这个项目做出贡献。
安装
按照此处的前两个步骤安装 bioconda 并设置正确的频道:https ://bioconda.github.io/user/install.html
然后您可以创建一个新环境并使用以下命令安装 polyploidBenchmarking
创建新的 conda 环境
conda create -n polyploidBenchmarking python=3.8
下载必备软件包
conda 激活多倍体
基准测试 conda install -c Oakheart nphase conda
install -c bioconda -c bioinf-mcb sra-downloader
conda install whatshap conda
install -c bioconda ncbi-genome-download
conda install psutil
如果您想测试 flopp,您必须手动下载它(任何帮助自动化此步骤的帮助都将不胜感激),此处提供了说明: https ://github.com/bluenote-1577/flopp
确保“flopp”在您的 $PATH 中(这样在命令行中输入“flopp”会启动它)
下载分阶段工具包脚本
git 克隆https://github.com/OmarOak heart/Phasing-Toolkit.git
快速开始
目前有五个脚本都需要一个参数文件 (benchmarkingParameters.tsv) 作为输入。在当前状态下,Phasing Toolkit 经过优化,可以轻松地在虚拟多倍体数据集上对多倍体相位算法进行基准测试。虚拟多倍体是通过对同一物种的遗传上不同的单倍体或纯合二倍体生物的测序读数并将它们合并来创建的,从而使用真实读数来生成模拟多倍体。然后,我们可以在这些模拟或虚拟多倍体上运行定相算法,并将单倍体的基因型与预测进行比较,以计算定相精度指标。该工具包提供了一种执行所有这些步骤的方法,从数据下载到准确度指标计算,只需最少的努力。
注意:虚拟多倍体不能完美地逼近真实的多倍体数据,我们欢迎对这个项目的任何贡献,以获取生成多倍体相位基准数据集的替代方法。
参数文件(benchmarkingParameters.tsv)
benchmarkingParameters.tsv
mainPath /path/to/outputFolder/
longReads ACA:ERR4352153 BMB:ERR4352154 CCN:ERR4352155 CRL:ERR4352156
longReadMethod ont
shortReads ACA:ERR1309429 BMB:ERR1308675 CCN:ERR1308732 CRL:ERR1308952
coverages 20 10
heterozygosityRates 0.05 0.1 0.5 1
reference taxID:559292 group:真菌种类名称:sCerevisiae
strainLists BMB,CCN ACA,BMB,CCN ACA,BMB,CCN,CRL
基因组大小 12500000
线程 8
参数文件包含分阶段工具包的各种脚本所需的所有信息。它是制表符分隔的,并包含多个不同的行。行顺序并不重要。我们提供了一个示例文件 benchmarkingParameters.tsv,可以用作模板。此文件的详细说明可在页面末尾找到。
下载数据.py
用法:python3.8 downloadData.py benchmarkingParameters.tsv
- 使用 sra-downloader ( https://github.com/s-andrews/sradownloader ) 下载读取。输入:与菌株名称相关的 SRA 登录号
- 使用 ncbi-genome-download ( https://github.com/kblin/ncbi-genome-download )下载和索引参考序列。输入:物种taxID,根据ncbi分组(真菌,病毒等),物种名称。
processReads.py [groundTruth]
用法:python3.8 processReads.py benchmarkingParameters.tsv groundTruth
- 生成地面实况数据集。映射短读和长读,变体调用短读
混合生成器.py
用法:python3.8 hybridGenerator.py benchmarkingParameters.tsv
- 通过合并指定覆盖级别的地面实况数据集读取来生成虚拟混合。
processReads.py [virtualHybrids]
用法:python3.8 processReads.py benchmarkingParameters.tsv virtualHybrids
- 在 hybridGenerator.py 生成的虚拟多倍体上运行。映射短读取和长读取、变体调用和子集短读取 VCF,带和不带插入缺失
phaseToolRunner.py
用法:python3.8 phaseToolRunner.py benchmarkingParameters.tsv flopp nphase whatshap-polyphase [...]
- 分阶段由 hybridGenerator.py 生成并由 processReads.py [virtualHybrids] 处理的虚拟多倍体。将运行命令行中指定的每个相位算法。此脚本还输出性能指标(运行时和内存使用情况)。目前只实现了 flopp、nphase 和 whatshap 多相。请随时通过添加您希望包含的另一个相位算法的实现来为该项目做出贡献。
精度计算器.py
用法:python3.8 accuracyCalculator.py benchmarkingParameters.tsv flopp nphase whatshap-polyphase [...]
- 计算通过运行 phaseToolRunner.py 获得的定相结果的准确度指标,并将它们输出到文件和标准输出。
示例脚本
使用示例 benchmarkingParameters.tsv 文件,您可以运行完整的基准测试管道,使用 4 个菌株生成虚拟 2n、3n 和 4n,覆盖水平为 10X/单倍型和 20X/单倍型,并随机子集它们的变体以获得 1 的 VCF 文件%、0.5%、0.1% 和 0.05% 杂合性,有和没有插入缺失。总共生成 3 个倍体,具有 2 个覆盖级别和 4 个杂合度级别,有和没有插入缺失,总共 3*2*4*2=48 个虚拟多倍体,它们都由 flopp、nphase 和 whatshap 多相定相及其结果与已知的基本事实进行比较分析。
请注意,这可能需要几天时间和超过 100GB 的硬盘空间才能完全运行。您可以修改 benchmarkingParameters.tsv 文件以减少要执行的测试数量,从而更快、更有效地测试运行定相工具包。我们在这里提供了一个非常完整的基准测试作为示例,以显示可用选项的范围。
python3.8 下载Data.py benchmarkingParameters.tsv
python3.8 processReads.py benchmarkingParameters.tsv groundTruth
python3.8 hybridGenerator.py benchmarkingParameters.tsv
python3.8 processReads.py benchmarkingParameters.tsv virtualHybrids
python3.8 phaseToolRunner.py benchmarkingParameters.tsv flopp nphase whatshap -polyphase
python3.8 accuracyCalculator.py benchmarkingParameters.tsv flopp nphase whatshap-polyphase
参数文件详解
benchmarkingParameters.tsv
此文件包含与其他任何人共享完整基准测试所需的所有信息。这里我们逐行描述:
输出文件夹,用于存储我们要下载和生成的所有数据
mainPath /path/to/outputFolder/
我们将分阶段的菌株名称及其长读的加入,格式为strainName:SRA_Accession
长读 ACA:ERR4352153 BMB:ERR4352154 CCN:ERR4352155 CRL:ERR4352156
定义长读的类型(ont 或 pacbio)
longReadMethod ont
我们将分阶段的菌株名称及其长读的加入,格式为strainName:SRA_Accession. 名称必须与长读的名称相同。
短读 ACA:ERR1309429 BMB:ERR1308675 CCN:ERR1308732 CRL:ERR1308952
要测试的覆盖率水平(10 表示每个单倍体 10X,二倍体表示总共 20X,四倍体表示总共 40X)
覆盖范围 20 10
要测试的杂合度水平(0.5 表示 0.5%,即平均每 2000 bp 1 个杂合 SNP)
杂合度率 0.05 0.1 0.5 1
参考信息,必须包括根据 ncbi 的物种 taxID,根据 ncbi 的地名,以及参考序列的名称(speciesName)。更多信息可以从https://github.com/kblin/ncbi-genome-download获得。
参考税号:559292 组:真菌种类名称:sCerevisiae
定义要生成的虚拟多倍体。ACA,BMB,CCN意味着它应该生成一个虚拟三倍体,其中包含来自 ACA、BMB 和 CCN 菌株的读数。
菌株列表 BMB,CCN ACA,BMB,CCN ACA,BMB,CCN,CRL
参考基因组大小,需要计算覆盖率
基因组大小 12500000
适用时使用的线程数
线程 8
如何贡献
如果您有兴趣帮助开发此工具包,请随时在此页面上创建问题或发送电子邮件至omaroakheart@gmail.com与我讨论我们可以改进此项目并使其更加灵活和有用的方法社区。我非常有兴趣将其扩展到(无特定顺序):
- 提高所提供工具的灵活性,使分阶段工具包更加通用(例如重用 VCF 子集方法,使任何人都可以轻松地对自己的 VCF 进行子集化)
- 包括更多默认的基准测试数据集,这些数据集以不同的方式突破了定相方法的限制(高度相似的单倍型、非整倍体、LOH 束、SV...)
- 托管一个简单的网站,在不同的数据集上显示不同工具的结果
- 测试不同参数如何影响准确度结果
- 更深入地了解哪些变体是分阶段良好的
- 调查读取和映射质量对结果的影响
- 提供工具来分析和可视化阶段性数据的结果
- 讨论和制定准确度指标
- 讨论和开发多倍体定相算法的理想输入和输出格式
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。