1 aligner
aligner是一个用来做FASTQ QC、比对、排序和标记重复的工具,支持FASTQ gz和.arc(SeqArc格式)输入。
支持的命令行参数如下:
--threads: 线程数量,建议不超过CPU核数
--fq1: 输入数据fastq1; 若是多文件,支持逗号分割,支持文件列表
--fq2:输入数据fastq2; 若是多文件,支持逗号分割,支持文件列表
--seqarc-ref:SeqArc格式文件的解压需要的索引文件
--read-group: 格式是“@RG\tID:GROUP\_NAME\tSM:SAMPLE\_NAME\tPL:PLATFORM“, 其中GROUP\_NAME 是read group标识符,
SAMPLE\_NAME表示样品名称,PLATFORM表示测序平台
--build-index: 构建比对工具需要的索引文件
--aln-index:序列比对需要的FASTA路径,注意配套的索引文件和FASTA处于相同目录
--mark-split-hits-secondary:将较短的拆分命中标记为次要
--use-soft-clipping-for-sup-align:使用软裁剪进行补充比对
--no-markdup:不进行标记重复
--bam-out:输出BAM文件
--use-low-memory-index:使用低内存索引,速度稍慢,建议在内存不足的情况下使用
--high-speed-storage:临时文件的存储路径,若该路径处于高速存储设备,则有利于提升软件性能
# FASTQ QC相关参数
--fastq-qc-dir: FASTQ 质控报告输出目录
--no-filter:不过滤FASTQ数据
--output-clean-fq:输出clean reads
--qualified-quality-threshold: 合格碱基质量阈值(默认是12)
--low-quality-ratio: 低质量值碱基比例阈值(默认是0.5)
--mean-qual: 平均质量值阈值
--quality-offset: 质量值偏移,典型值为33、64。若设置为0,则该值由程序推断(默认值:33)
--adapter1:read1的接头序列,全大写
--adapter2:read2的接头序列,全大写
--adapter-max-mismatch:adapter查找时最大允许碱基错配数量(默认值是2)
--adapter-match-ratio:adapter的最短匹配长度比例(默认是0.5)
--trim-adapter:从reads序列中截去adapter, 而不是直接丢弃reads;
--min-read-len:最小reads长度阈值(默认是30)
--n-base-ratio:N碱基比例阈值(默认是0.1)
--trim-ends: 截去reads两端一定数量的碱基,格式是逗号分隔的整数
2 bqsr
bqsr在功能上集成了GATK的BaseRecalibrator和ApplyBQSR模块,用于矫正碱基质量值,可以只输出recal table然后用它作为variantCaller的输入,也可以直接输出矫正后的BAM文件。
bqsr支持的命令行选项如下:
--threads: 线程数量,建议不超过CPU核数
--in-bam: 经过标记重复的BAM文件
--out-bam: 碱基质量值校正后生成BAM存放的路径,如果不加该参数,将会只生成recal table
--reference: 参考基因组FASTA文件,该文件和序列比对阶段使用的参考基因组相同
--recal-table: 输出文件,保存用来矫正碱基质量值的信息
--known-sites: 单核苷酸多态性数据库数据和已知变异位点文件,支持文本和gz压缩格式
--interval: BED文件
--interval-padding: BED区间两边填充碱基个数
3 variantCaller
variantCaller功能上类似GATK的HaplotypeCaller,用于胚系小型变异的检测。
variantCaller的详细参数说明如下:
-I, --input `<file1>` `<file2>` ...:输入bam文件路径,可以接受多个bam路径,以空格分割
-O, --output `<file>`:输出vcf/gvcf BGZF文件,程序自动创建相应的索引文件
-R, --reference `<file>`:参考基因组fasta文件路径
--recal-table `<file>`: 输入文件,用来矫正碱基质量值
-H, --help:打印帮助信息
--version:打印版本号
-L, --interval `<file>`:目标区间bed文件路径
-P, --interval-padding `<int>`: 区间向两侧扩展的大小,必须是非负整数(默认值:0)
-Q, --base-quality-score-threshold `<int>`:碱基质量值阈值,质量值低于该阈值时将会被置为最小值6(默认值:18)
-D, --max-reads-depth `<int>`:每个比对起始位置保留的最大reads数目,reads数目超过该阈值时将进行下采样(默认值:50)
-G, --gvcf-gq-bands `<int1>` `<int2>` ...:参考置信模型(Reference confidence model)GQ分组, 输入空格分隔的多个int(默认值:\[1,2,3,...,59,60,70,80,90,99\])
-t, --threads `<int>`:程序使用的线程数目,范围是\[1,128\](默认值:30)
--pcr-indel-model `<str>`: PCR indel模型,参数范围:{NONE, HOSTILE, CONSERVATIVE, AGGRESSIVE}(默认值:CONSERVATIVE)
--compression-level `<int>`:输出vcf/gvcf BGZF文件压缩等级,范围是\[0,9\](默认值:6)
4 genotyper
genotyper的功能是处理单个样本的gvcf文件,输出仅仅包含变异记录的vcf文件,如果需要对处理多个gvcf文件并进行联合变异检测(joint calling)请使用高性能的DPGT软件。
genotyper的详细参数说明如下:
-I, --input `<file>`: 输入gvcf文件路径
-O, --output `<file>`:输出包含基因型的vcf BGZF文件,程序自动创建相应的索引文件
-s, --stand-call-conf `<float>`: 变异质量值阈值,质量值大于或等于该值的变异将被输出(默认值10.0)
-D, --dbsnp `<file>`: dbsnp文件
-t, --threads `<int>`:程序使用的线程数目(默认值6)
--version:打印版本号
-h, --help:打印帮助信息
5 jointcaller
jointcaller是DPGT工具的一个包装器,用于便捷地运行单机模式DPGT。DPGT是一个分布式Joint Calling工具,它的详细参数说明如下:
-i,--input `<FILE>`:输入gvcf文件列表,是一个文本文件,每行一个gvcf路径
--indices `<FILE>`:可选参数,程序默认通过在gvcf路径末尾加.tbi获取索引文件路径,通过该参数可以指定索引文件路径,该参数需要输入一个文本文件,每行一个索引路径,索引路径的顺序需要与gvcf路径的顺序匹配
--use-lix `<Boolean>`:使用lix索引格式。lix文件是DPGT实现的一种简化索引文件,可以通过tbi2lix程序将tbi索引转换成lix索引,lix索引的大小仅仅是tbi索引的约1/80可选参数:true, false(默认值:false)
--header `<FILE>`:可选参数,使用一个预先计算的vcf头文件,避免重复计算
-o,--output `<DIR>`:输出文件夹
-r,--reference `<FILE>`:参考基因组fasta文件
-l,--target-regions `<STRING>`:目标区域字符串或bed文件,默认处理全基因组
-j,--jobs `<INT>`:并行任务数目 (默认值:10)
-n,--num-combine-partitions `<INT>`:合并变异阶段的分区数目,默认值是样本数目的平方根,向下取整(默认值:-1)
-w,--window `<INT>`:每个合并-基因型计算过程处理的区域大小,(默认值:300M)
-d,--delete `<Boolean>`:是否删除临时文件可选参数: true, false,(默认值:true)
-s,--stand-call-conf `<FLOAT>`:质量值阈值,变异记录的质量值大于或等于该值时将被输出,(默认值:30.0)
--dbsnp `<FILE>`:dbsnp vcf文件路径,用于注释dbsnp ID
--use-old-qual-calculator `<Boolean>`:是否使用旧质量值计算器。设为true时使用旧质量值计算器,结果与GATK v4.1.0结果匹配。设为false时使用新质量值计算器,结果与GATK v4.1.1后的版本结果匹配。可选参数: true, false,(默认值:true)
--heterozygosity `<FLOAT>`:杂合SNP变异的先验概率,(默认值:0.001)
--indel-heterozygosity `<FLOAT>`:杂合INDEL变异的先验概率,(默认值:1.25E-4)
--heterozygosity-stdev `<FLOAT>`:SNP和INDEL变异先验概率的标准差, (默认值:0.01)
--max-alternate-alleles `<INT>`:最大等位基因数目,等位基因数目超过该值的变异,程序仅保留可能性最大的该值个等位基因,(默认值:6)
--ploidy `<INT>`:倍性, (默认值:2)
-h,--help:打印帮助信息并退出
-V,--version:打印版本号并退出
6 SeqArc
SeqArc是一个FASTQ序列压缩工具,具有压缩比高和速度快的特点。
6.1 创建索引功能, 子命令【index】
创建索引参数如下:
-h, --help :获取创建索引参数使用帮助信息
-r, --ref `<file>` : 设置输入的参考序列文件(fasta)路径
-K, --clsdb `<dir>` : 设置输入的多个物种的参考序列文件所在的目录,目录下面需要存在文件names.dmp和nodes.dmp, 这两个文件可以从 http://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz 下载
-H, --hitlimit `<int>` : 设置在分类法上minimizer的命中计数,默认是【2】
-t, --thread `<int>` : 设置线程数,默认是【8】
-o, --output `<dir>`: 设置输出目录,用于存放生成的参考序列文件对应的索引文件
--aligntype `<int>` : 设置生成索引文件的比对方式,默认是【2】 【1--hash 2--minimizer 3-- longseq】
已知fastq的物种,可以使用【-r】参数直接选择对应物种的参考序列生成对应的索引文件,使用【-o】参数保存生成的索引文件,然后使用这个索引文件进行压缩解压。
未知fastq的物种,可以使用【-K】参数对目录下所有的参考序列创建一个物种识别库索引。然后再对每一个参考序列使用【-r】参数创建对应的索引文件,此时【-o】的目录需要和【-K】的输入目录保持一致。
6.2 压缩功能, 子命令【compress】
压缩参数如下:
-h, --help : 获取压缩参数的使用帮助说明
-r, --ref `<file>`: 设置输入的参考序列路径,该路径下需要存在对应生成的索引文件
-K, --clsdb `<dir>`:设置输入的多个物种的参考序列文件所在的目录,该目录下需要存在生成的物种识别库文件,和各个物种对应的索引文件
-H, --hitlimit `<int>`: 设置在分类法上最小化器的命中计数,默认是【2】保持和创建参数一致
-J, --clsmin `<float>`:设置物种识别时,判断物种的最小命中率,默认是【0.6】
-L, --clsnum `<int>` :设置物种识别时,需要从fastq读取多少条read用于判别种类,默认是【10000】
-t, --thread `<int>` : 设置线程数,默认是【8】
-f, --force : 设置输出文件是否强制覆盖已有的同名文件
-i, --input `<file>` : 设置输入的fastq文件
--pipein : 设置输入的是否是管道数据,默认是【false】
-o, --output `<file>` :设置输出的文件路径,会自动在尾部添加 【.arc】后缀
--blocksz `<int>` :设置压缩时每个数据块大小,默认是【50】
--ccheck : 设置是否在压缩完成且数据落盘后,再执行一遍解压逻辑,保证数据的完整性,可选参数: true, false,(默认值:false)
--calcmd5 :设置是否在压缩时计算输入文件的md5,并保存到压缩文件中
--aligntype `<int>` :设置选用的压缩比对方式,默认是【2】【1--hash 2--minimizer 3-- longseq】
-a, --archive `<dir>`: 设置输入的要打包压缩的目录,可对目录下的文件进行压缩后打包
--slevel `<int>` : 设置seq的压缩阶乘,默认是【10】
--verify `<int>` : 设置每个数据块的校验方式,默认是【1】【0:不校验 1:校验整个数据块 2:分别校验name,seq,qual】
6.3 解压功能, 子命令【decompress】
解压参数如下:
-h, --help : 获取解压参数的使用帮助说明
-r, --ref `<dir/file>` : 设置输入的具体参考序列路径,该路径下需要存在对应生成的索引文件。或者输入的物种识别库目录,该目录下需要存在各个物种的索引文件
-t, --thread `<int>` : 设置线程数,默认是【8】
-f, --force : 设置输出文件是否强制覆盖已有的同名文件
-i, --input `<file>` : 设置输入的压缩结果文件路径
-o, --output `<file>` : 设置输出的解压文件路径
--rawtype : 设置解压输出文件和压缩原始文件格式保持一致,只对mgz格式文件生效
--dcheck : 设置解压完成且数据落盘后,再读取解压落盘数据块,并对块进行校验,保证解压的完整性
-x, --extract : 提取压缩包的一个或者多个文件,需要输入文件是【-a, --archive】生成的打包文件
-l, --list : 显示压缩包内的文件信息,需要输入文件是【-a, --archive】生成的打包文件
--show : 显示压缩文件的文本md5值,需要压缩时指定【--calcmd5】
7 VarArc
VarArc是一个GVCF/VCF文件压缩和检索工具,适用于长期存储和大规模队列项目。
7.1 压缩功能, 子命令【compress】
-h, --help : 获取压缩参数的使用帮助说明
-i, --input `<file>` : 设置输入的vcf文件
-o, --output `<file>` :设置输出的压缩文件路径
-t, --thread `<int>` : 设置线程数,默认是【4】
--rowcnt :设置每个大块的行数,默认是【100000】
--blkcolcnt: 设置每个小块的样品数,默认是【1000】
7.2 解压压功能, 子命令【decompress】
-h, --help : 获取压缩参数的使用帮助说明
-i, --input `<file>` : 设置输入的压缩文件
-o, --output `<file>` :设置输出的解压文件路径
-t, --thread `<int>` : 设置线程数,默认是【4】
-p, --pos: 设置筛选的染色体名称和范围 【chr1: 1000-2000】
-s, --samplefile: 设置筛选的样品名称列表文件,每个样品名称占用一行
-S, --samplelist: 设置筛选的样品名称列表,样品名称之间用逗号分隔
7.3 查看功能, 子命令【view】
-h, --help : 获取压缩参数的使用帮助说明
-i, --input `<file>` : 设置输入的压缩文件
-t, --thread `<int>` : 设置线程数,默认是【4】
-p, --pos: 设置筛选的染色体名称和范围 【chr1: 1000-2000】
-s, --samplefile: 设置筛选的样品名称列表文件,每个样品名称占用一行
-S, --samplelist: 设置筛选的样品名称列表,样品名称之间用逗号分隔
8 license proxy
license-proxy是一个用于管理和验证DCS Tools许可证的代理程序。
可执行文件 license-proxy 参数如下:
-h, --help:打印帮助信息
--license `<LICENSE_PATH>`:License 文件路径
--bind `<BIND_ADDR>`:监听地址
-d, --daemon:是否在后台启动
9 report
report用于对WGS/WES分析结果统计文件进行整理,画图,并生成HTML格式的报告。
参数如下:
--sample : 样本名称
--filter : 过滤目录路径
--bam\_stat : BAM统计文件路径
--vcf\_stat : VCF统计文件路径
--output : 输出报告的目录
--is\_se : (可选)如果使用单端测序,加上该标志
10 lickit
用于检查网络的联通性,以及查询用户可用的线程数。
--ping `<ip:port>` : 检查网络是否联通
--query `<ip:port>` : 查询用户当前可用的线程数
--uplog `<ip:port logpath [msg]>` :用户主动上传问题日志
11 小工具(Utility tools)
11.1 extract-vcf
常规vcf文件每行含有8列字段,其中6,7,8列内容占用空间大但是程序不需要这些信息,为了减小IO压力,该工具只从vcf文件中提取前5列信息,后3列内容置为*号。主要参数如下:
--known-sites `<file>` : 输入vcf文件,支持文本和gz压缩格式
--output-mini-vcf `<file>`: 输出vcf文件,若输出文件名带有gz, 则为压缩格式
11.2 bam-stat
根据bam文件,统计比对信息,在WGS流程中,该功能已集成到variantCaller中,也可以单独运行。其参数为:
--bam `<file>` : 输入bam文件路径
--bed `<file>` : 目标区间,如果是WGS数据,可以指定非N区文件(如果不方便提供,使用variantCaller的bam统计结果即可)。如果是WES
数据,则指定目标区域文件
--output `<file>` : 输出文件路径
11.3 vcf-stat
根据genotyper后的vcf文件,统计变异信息,包括snp数量等,其参数为:
--vcf `<file>` : 输入vcf文件路径,支持文本和gz格式
结果默认输出到标准输出,可以重定向到指定文件(参照4.1的step 5)。
11.4 tbi2lix
将tbi索引文件简化为自定义的线性索引文件,可以为jointcaller模块带来性能提升,其参数为:
-i, --input FILE: 输入tbi索引文件
-o, --output FILE: 输出lix索引文件
-m, --min-shift INT: 设置lix线性索引的最小区间大小为2^INT (默认值14,对应区间大小16K)
-h, --help: 打印帮助信息并退出
12 Mutect2
该模块为GATK的并行加速版本,用--nthread来设置并行线程数量,用--java-options "
13 fastq2vcf
该自动化脚本($DCS_HOME/libexec/fastq2vcf.sh)为了方便WGS/WES流程搭建,将参数统一传给该脚本,完成从fastq到vcf的全过程,若需个性化调整,请参考3.1的quick start脚本。
详细参数如下:
Usage: fastq2vcf.sh DCS_HOME=/path/to/dcs-tools refFasta=/path/to/ref.fa FQ1=/path/to/read1.fq.gz FQ2=/path/to/
read2.fq.gz [other parameters]
Required parameters:
DCS_HOME: path to the dcs-tools directory
refFasta: path to the reference genome fasta file
FQ1: path to the first FASTQ file
Optional parameters:
FQ2: path to the second FASTQ file (for paired-end data)
proxyHost: proxy host for license authentication (default:127.0.0.1:8909)
OUTPUT_DIR: output directory (default: current directory)
threads: number of threads to use (default:32)
sample: sample name (default:test)
bed: path to target regions in bed format (optional)
useLowMemIndex: whether to use low memory index (true/false, default:false)
ploidy: sample ploidy (default:2), if greater than 2, java and spark environment is required for genotype calling
dbsnp: path to dbsnp vcf file (optional)
knownSitesFileList: comma-separated list of known sites vcf files for BQSR (optional)
Example:
fastq2vcf.sh DCS_HOME=/data/dcs-tools refFasta=/data/ref/hg38.fa FQ1=/data/sample_R1.fq.gz FQ2=/data/sample_R2.fq.gz \
sample=sample1 threads=16 useLowMemIndex=true ploidy=2 knownSitesFileList=/data/known1.vcf,/data/known2.vcf
dbsnp=/data/dbsnp.vcf