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工具

  1. 连接USB加密锁
    将USB加密锁插入到计算机的USB接口。

  2. 设置环境变量DCS_DONGLE=1开启离线认证。
    这里与在线认证版本不同,不需要设置PROXY_HOST环境变量,而是设置DCS_DONGLE环境变量为1。

export DCS_DONGLE=1
  1. 运行dcs工具示例:压缩一份fastq数据
export DCS_DONGLE=1
$DCS_HOME/bin/dcs SeqArc compress -i input.fastq.gz -o output.arc