代码示例
java -jar /mnt/zmds01/Product/bioinfo/gitlab/biobase/bin/picard.jar MarkDuplicates \
I="input.sort.bam" \
O="out_marked_dup.bam" \
M="out_dup_mertrics.txt" \
AS=true \
MAX_FILE_HANDLES_FOR_READ_ENDS_MAP=1000 \
TAGGING_POLICY=All \
CREATE_INDEX=true
代码详解
核心功能:识别并标记高通量测序数据中因 PCR 扩增或测序仪重复读取产生的重复序列,为后续分析(如变异检测、定量分析)排除技术重复干扰。
-
java -jar
Picard 是 Java 编写的工具,需通过 Java 虚拟机运行,
-jar
指定执行的 jar 包文件。
-
/mnt/zmds01/Product/bioinfo/gitlab/biobase/bin/picard.jar
Picard 工具的安装路径,包含所有功能模块(此处调用
MarkDuplicates
模块)。
-
MarkDuplicates
要执行的具体功能模块,用于识别和标记重复序列。
-
I="/path/to/input.sort.bam"
I
:Input
的缩写,指定输入的 BAM 文件路径。
- 要求:输入文件必须是按坐标排序的比对文件(文件名中的
.sort.bam
表明已排序),这是工具准确判断重复序列的前提。
-
O="/path/to/output_marked_dup.bam"
O
:Output
的缩写,指定输出的 BAM 文件路径,包含标记重复后的结果。
- 特点:输出文件中,重复序列会被添加
0x400
(十进制 1024)的标记(SAM 格式的第 2 字段),同时保留所有原始序列信息。
-
M="/path/to/dup_metrics.txt"
M
:Metrics
的缩写,指定输出的重复率统计文件路径。
- 内容:包含总 reads 数、重复 reads 数、重复率、文库复杂度等关键指标(示例如下):
-
运行流程:
① 读取输入的排序 BAM 文件,解析每条序列的比对位置(染色体、起始坐标)和序列特征;
② 基于位置和序列一致性判断重复组(来自同一原始 DNA 片段的扩增产物);
③ 为每个重复组添加
DI
(组 ID)和
DS
(组大小)标签,并标记重复序列(
0x400
标志);
④ 输出标记后的 BAM 文件、索引文件和重复率统计文件。
-
关键输出文件:
out_marked_dup.bam
:标记重复后的主文件,包含所有序列及DI
/DS
标签;
out_marked_dup.bai
:BAM 索引文件(由CREATE_INDEX=true
生成);
out_dup_mertrics.txt
:重复率统计,用于评估数据质量(如重复率过高可能提示 PCR 扩增偏差)。
- 输入文件必须按坐标排序(可通过
samtools view -H input.bam | grep @HD
查看SO:coordinate
确认);
TAGGING_POLICY=All
是您后续分析(基于DI
标签分组)的关键参数,不可省略;
- 若运行时报 “文件句柄不足” 错误,可增大
MAX_FILE_HANDLES_FOR_READ_ENDS_MAP
的值(如 2000);
- 结果可通过
samtools view output.bam | head
查看,重复序列的第 2 字段会包含1024
(0x400
的十进制),且所有序列都有DI:i:xxx
标签。