DCS Tools 是一款基于 CPU 加速技术的生物信息软件,旨在成为 BWA-MEM、GATK 和FASTQ/VCF压缩等工具的理想替代方案,相比于这些工具,DCS Tools表现出超快的运行速度和同样好的准确度。适用于群体队列、遗传病诊断、肿瘤诊断、动植物基因组学和基因组数据压缩等场景。
1 性能概述
- 在常见的WGS胚系变异检测场景中,GIAB WGS 30X-40X数据在阿里云ecs.i4g.8xlarge实例上,使用32线程,单个样本运行时间为1.79小时到2.36小时,准确度与GATK最佳实践一致。
- 联合变异检测支持百万级样本。1万个样本在单台256核机器上需约83小时。若使用300台32核128G内存机器,47万样本实测运行时间为56天,总核时约11M。
- SeqArc压缩工具能将FASTQ文件压缩至gz格式的1/4到1/5,VarArc能将单样本GVCF压缩至gz格式的1/3左右,能将10万样本vcf压缩至gz格式的1/2左右。
详细见性能测试。
2 安装软件
2.1 软硬件要求
- 一台联网机器:用于软件许可验证。DCS Tools可以直接运行在该联网机器或者能与该联网机器通信的其它机器。
- 操作系统:推荐Centos 7, Debian 8, Ubuntu 14.04及以上的版本。
- cpu 至少有8核,mem至少有128G,建议使用读写速度更快的SSD硬盘。
- 支持x86和arm架构。
提示:本文档主要针对联网认证的方式,若需离线使用本软件,请联系客服(bgi-dcstools@genomics.cn)获取离线版本软件。
2.2 获取软件
在申请试用页面填写您的邮箱和联网机器的IP地址等信息获取软件(1个工作日内)。IP地址用于生成license文件,邮箱由于接收软件包和license文件。
获取出口ip(license服务器识别到的)可以参考如下命令:
curl --noproxy "*" -X POST https://tools.dcs.cloud/api/licensor/licenses/anon/echo
返回结果中 data 指向所需的 IP 地址:
{"code":0,"msg":"Success","data":"172.19.29.215"}
提示:
1. 如果您的联网机器有多个IP地址或者使用了代理,用上述命令获取即可。
2. 如果您的联网机器是动态IP地址,请在申请试用表单里提供MAC地址。
2.3 软件安装
运行license代理程序
DCS Tools软件会通过license代理程序验证软件是否授权,因此必须先运行license代理程序。
- 解压软件包,进入解压后的目录
# 如果下载时默认进行了zip压缩,则可能会看到dcs-tools-xxx.tar.gz.zip的文件名,需要先用解压zip(quick-start数据包同理)
7z x dcs-tools-xxx.tar.gz.zip # linux
# 然后使用tar解压为文件夹
tar -xzvf dcs-tools-xxx.tar.gz
cd dcs-tools
运行license代理程序
# 请将/path/to/XXXXXXXXX.lic替换为您申请到的license文件路径
./libexec/licproxy --license /path/to/XXXXXXXXX.lic --bind 0.0.0.0:8909
# 该 License 代理程序默认监听 0.0.0.0:8909,若端口被占用,请Ctrl + C终止上述命令,然后使用其他端口
# 若看到”Server starting“,则代表启动成功。可以用如下命令确认与license服务器的通讯是否正常
curl http://127.0.0.1:8909/api/licensor/licenses/anon/pool
# 若返回”Success“,则代表license验证成功。考虑到该程序要长期运行,建议Ctrl + C终止上述命令,然后加上-d在后台运行
./libexec/licproxy --license /path/to/XXXXXXXXX.lic --bind 0.0.0.0:8909 -d &
3. 运行DCS Tools
运行软件前需要设置的环境变量:PROXY_HOST。在脚本中提前设置或者在终端设置(当前终端生效)。
export PROXY_HOST=<联网机器IP>:<端口>
# 若程序直接运行在联网机器上,并没有修改过端口,则设置如下
export PROXY_HOST=127.0.0.1:8909
解压后的软件可直接运行,无需编译,相关依赖已经包含在软件包中。
运行示例:
bin/dcs aligner --aln-index <ref.fa> --fq1 sample1_R1.fastq.gz --fq2 sample1_R2.fastq.gz --read-group "@RG\tID:sample1\tSM:sample1" --output workDir
# 或直接使用libexec/下的可执行程序
./libexec/aligner <parameters same to bin/dcs aligner>
3.1 胚系变异检测示例
除了软件包,还会附带发送示例数据和脚本包(dcs-quick-start-xxx.tar.gz),解压后参考quick_start_wgs.sh脚本做如下修改:
1. 修改DCS_HOME行,设置为软件包解压后的目录(如/path/dcs-tools);
2. 修改PROXY_HOST行,按上面规则。
然后就可以运行quick_start_wgs.sh脚本了。若是运行真实数据,则需要执行第3步。
3. 修改参考序列fasta路径、FASTQ路径、sample名称和输出目录(workDir)等信息,详见tools对应模块的参数说明。
该脚本的运行步骤包括:
- 质控、比对、排序和标记重复;
- 碱基质量值矫正;
- 变异检测(类似GATK haplotypeCaller);
- GVCF->VCF;
- 输出报告。
其它场景如jointcalling和压缩可以参考对应的quick start脚本或工具参数说明。
3.2 工具列表
对于有生信经验的用户,请参考工具集列表和工具说明,对原有流程进行替换。
| 场景 | 工具(模块)名称 | 功能 |
|---|---|---|
| WGS/WES分析 | aligner | 质控、比对、排序和标记重复 |
| bqsr | 碱基质量值矫正 | |
| variantCaller | 变异检测(类似GATK haplotypeCaller) | |
| genotyper | GVCF->VCF | |
| report | 输出报告 | |
| 群体基因组联合分析 | jointcaller | 联合变异检测,支持百万级样本 |
| FASTQ数据压缩解压 | SeqArc | 高效无损FASTQ压缩工具 |
| VCF数据压缩解压 | VarArc | 高效无损VCF压缩工具 |
| 体细胞变异检测 | Mutect2 | 体细胞变异检测 |
| license查询等 | lickit | 查询可用线程数和测试网络连接 |
| 小工具 | extract-vcf | 简化vcf文件,缩小文件大小,减轻IO压力,主要针对bqsr和genotyper的knownSites(dbsnp等)输入 |
| bam-stat | 统计比对信息 | |
| vcf-stat | 统计变异信息 | |
| tbi2lix | 将tbi索引文件简化为自定义的线性索引文件,用于jointcalling |
4. 离线模式下的软件部署
本软件提供离线认证的选项,可以在无互联网连接的机器上运行,满足一体机或者医院等场景下的使用。
4.1 获取软件和USB加密锁设备
联系客服获取程序压缩包和USB加密锁设备。
4.2 开启非root用户使用USB加密锁设备的权限
使用root权限执行如下命令,开启非root用户使用USB加密锁设备的权限,执行完成后需要重新连接USB加密锁设备使权限生效。
sudo tee /etc/udev/rules.d/ft.rules > /dev/null << EOF
SUBSYSTEMS=="usb",ATTRS{idVendor}=="096e",ATTRS{idProduct}=="0209",MODE="0666"
SUBSYSTEMS=="usb",ATTRS{idVendor}=="096e",ATTRS{idProduct}=="020a",MODE="0666"
EOF
4.3 运行dcs工具
-
连接USB加密锁
将USB加密锁插入到计算机的USB接口。 -
设置环境变量DCS_DONGLE=1开启离线认证。
这里与在线认证版本不同,不需要设置PROXY_HOST环境变量,而是设置DCS_DONGLE环境变量为1。
export DCS_DONGLE=1
- 运行dcs工具示例:压缩一份fastq数据
export DCS_DONGLE=1
$DCS_HOME/bin/dcs SeqArc compress -i input.fastq.gz -o output.arc