辅助工具#
samcompare#
对同一批 reads 的两个 SAM / BAM 做逐条记录比较:把 TEST 中每条 primary 记录与 REFERENCE 对比,判定为相同,或给出第一个不同的字段(pos、mapq、flag、cigar、mate、tags、seq_qual、supp、missing、extra),按 REFERENCE 的 MAPQ 和多重比对状态分层统计,并统计高置信配对中 proper-pair 标记的翻转。比较的是值而不是文本。两个输入必须包含相同的 reads 且顺序相同(bwa 的输出顺序即输入顺序);- 表示标准输入。
baizegen samcompare [选项] REFERENCE.bam TEST.bam
| 参数 | 说明 | 默认 |
|---|---|---|
--tags LIST |
参与比较的标签(逗号分隔) | NM,MD,AS,XS,SA,XA,MC,MQ,pa |
--min-identical F |
判定通过所需的相同记录比例 | 0.999 |
--max-unconfined F |
判定通过所允许的、REFERENCE 中 MAPQ ≥ 4 且唯一比对却不同的记录比例 | 0.0001 |
--hq-mapq N |
proper-pair 规则中“高置信比对”的 MAPQ 阈值 | 20 |
--sample N |
打印的不同记录示例数 | 20 |
--json |
以一个 JSON 对象输出汇总 | |
-t, --threads N |
每个输入的 htslib 解码线程数,0 表示不另开线程 | 0 |
退出码:0 满足判定标准,1 不满足,2 出错(输入无法读取、reads 顺序不同)。
fqzip#
FASTQ 无损压缩与解压(下一个发布包起提供),用法见 FASTQ 无损压缩。
baizegen fqzip [-t N] [-b RECORDS] [--level N | --best] [--ref REF.fa | --pseudo] [-v] -o OUT.bzfq IN.fq[.gz] [IN_2.fq[.gz]]
baizegen fqzip -d [-t N] [--ref REF.fa] [-v] -o OUT.fq [-o OUT_2.fq] IN.bzfq
baizegen fqzip --test [-t N] [--ref REF.fa] IN.bzfq
| 参数 | 说明 | 默认 |
|---|---|---|
-o FILE |
压缩时为输出的归档;解压时为还原的文件,每个文件一个 -o,顺序与压缩时相同(解压时 - 为标准输出) |
必需 |
-d, --decompress |
解压 | |
--test |
解压整个归档并核对每个数据块的 CRC,不写出文件 | |
-t, --threads N |
线程数。归档与线程数无关 | 1 |
-b RECORDS |
每个数据块包含的每个文件的 reads 数。越大压缩率越高,内存也越多:-b 250000 内存约少 25 %,归档约大 0.9 % |
500000 |
-r, --ref FASTA |
参考模式:reads 存为在参考基因组上的位置和差异。压缩时 FASTA 旁需要 bwa 索引;解压参考模式的归档时必须给出同一个 FASTA(核对 contig 的名称、长度和 MD5) | |
--pseudo |
无参考模式:由 reads 拼出的序列随归档保存,解压不需要参考基因组 | |
--level N |
1 最快(质量值用 fqzcomp 模型,与参考的差异每条 read 记为一个列表);2 质量值用上下文混合模型(精简版);3 质量值用上下文混合模型,归档最小(2、3 逐个碱基编码与参考的差异)。解压不需要指定 |
1 |
--best |
同 --level 3 |
|
--device cpu\|gpu |
参考模式下定位 reads 的设备。gpu(baizegen-gpu)由 GPU 上的 bwa 定位所有 reads;cpu 先用参考基因组的 k-mer 索引,其余交给 bwa |
cpu |
--gpu-id N |
--device gpu 使用的显卡编号 |
0 |
--no-verify |
压缩时不再把每个数据块解码回来核对(默认核对,解不回来的数据块按原文存储) | 核对 |
-v |
打印各数据流的大小和内存占用 | |
-h, --help |
显示用法 |
--level、-b、--device、--pseudo 只用于压缩。--max-memory SIZE(所有命令通用,见内存)同样适用。退出码:0 成功,1 运行失败(输入或归档无法读取、参考基因组不符、归档损坏),2 参数错误。