Showing tool doc from version 4.6.2.0 | The latest version is
4.6.2.0

CompareSAMs (Picard)

Compare two input SAM/BAM/CRAM files. This tool initially compares the headers of the input files. If the file headers are comparable, the tool can perform either strict comparisons for which each alignment and the header must be identical, or a more lenient check of "equivalence", where reads with mapping quality < LOW_MQ_THRESHOLD are allowed to have different alignments, duplicate marks are allowed to differ to account for ambiguities in selecting the representative read of a duplicate set, and some differences in headers is allowed. By default, alignment comparisons, duplicate marking comparisons, and header comparisons are performed in the strict mode. Results of comparison are summarised in an output metrics file.

Usage example:

CompareSAMs for exact matching:

java -jar picard.jar CompareSAMs \
file_1.bam \
file_2.bam \
O=comparison.tsv

CompareSAMs for "equivalence":

java -jar picard.jar CompareSAMs \
file_1.bam \
file_2.bam \
LENIENT_LOW_MQ_ALIGNMENT=true \
LENIENT_DUP=true \
O=comparison.tsv

CompareSAMs for "equivalence", allow certain differences in header:

java -jar picard.jar CompareSAMs \
file_1.bam \
file_2.bam \
LENIENT_LOW_MQ_ALIGNMENT=true \
LENIENT_DUP=true \
LENIENT_HEADER=true \
O=comparison.tsv

Category Diagnostics and Quality Control


Overview

Rudimentary SAM comparer. Compares headers, and if headers are compatible enough, compares SAMRecords, looking only at basic alignment info. Summarizes the number of alignments that match, mismatch, are missing, etc. @author alecw@broadinstitute.org

CompareSAMs (Picard) specific arguments

This table summarizes the command-line arguments that are specific to this tool. For more details on each argument, see the list further down below the table or click on an argument name to jump directly to that entry in the list.

Argument name(s) Default value Summary
Positional Arguments
[NA - Positional]
NA Exactly two input SAM/BAM/CRAM files to compare to one another.
Optional Tool Arguments
--arguments_file
read one or more arguments files and add them to the command line
--COMPARE_MQ
false If set to true, generate a histogram for mapping quality concordance between the two SAM files and write it to the output metrics file. In this histogram, an entry of 10 at bin "20,30" means that 10 reads in the left file have mapping quality 20 while those same reads have mapping quality 30 in the right file. The reads are associated based solely on read names and not the mapped position. Only primary alignments are included, but all duplicate reads are counted individually.
--help
 -h
false display the help message
--LENIENT_DUP
false Perform lenient checking of duplicate marks. In this mode, will reduce the number of mismatches by allowing the choice of the representative read in each duplicate set to differ between the input files, as long as the duplicate sets agree.
--LENIENT_HEADER
false Perform lenient checking of header. In this mode, species, assembly, ur, m5, fields of sequence records, and pg fields in the header may all differ. Sequence record length must also be the same.
--LENIENT_LOW_MQ_ALIGNMENT
false Count reads which have mapping quality below LOW_MQ_THRESHOLD in both files but are mapped to different locations as matches. By default we count such reads as mismatching.
--LENIENT_UNKNOWN_MQ_ALIGNMENT
false Count reads for which no mapping quality is available (mapping quality value 255) in both files but are mapped to different locations as matches. By default we count such reads as mismatching.
--LOW_MQ_THRESHOLD
3 When running in LENIENT_LOW_MQ_ALIGNMENT mode, reads which have mapping quality below this value will be counted as matches. if LENIENT_LOW_MQ_ALIGNMENT is false (default), then this argument has no effect.
--OUTPUT
 -O
Output file to write comparison results to.
--version
false display the version number for this tool
Optional Common Arguments
--COMPRESSION_LEVEL
5 Compression level for all compressed files created (e.g. BAM and VCF).
--CREATE_INDEX
false Whether to create an index when writing VCF or coordinate sorted BAM output.
--CREATE_MD5_FILE
false Whether to create an MD5 digest for any BAM or FASTQ files created.
--MAX_RECORDS_IN_RAM
500000 When writing files that need to be sorted, this will specify the number of records stored in RAM before spilling to disk. Increasing this number reduces the number of file handles needed to sort the file, and increases the amount of RAM needed.
--QUIET
false Whether to suppress job-summary info on System.err.
--REFERENCE_SEQUENCE
 -R
Reference sequence file.
--TMP_DIR
One or more directories with space available to be used by this program for temporary storage of working files
--USE_JDK_DEFLATER
 -use_jdk_deflater
false Use the JDK Deflater instead of the Intel Deflater for writing compressed output
--USE_JDK_INFLATER
 -use_jdk_inflater
false Use the JDK Inflater instead of the Intel Inflater for reading compressed input
--VALIDATION_STRINGENCY
STRICT Validation stringency for all SAM files read by this program. Setting stringency to SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded.
--VERBOSITY
INFO Control verbosity of logging.
Advanced Arguments
--showHidden
false display hidden arguments

Argument details

Arguments in this list are specific to this tool. Keep in mind that other arguments are available that are shared with other tools (e.g. command-line GATK arguments); see Inherited arguments above.


[NA - Positional]

Exactly two input SAM/BAM/CRAM files to compare to one another.
Exactly two input SAM/BAM/CRAM files to compare to one another.

R List[File]  NA


--arguments_file

read one or more arguments files and add them to the command line

List[File]  []


--COMPARE_MQ

If set to true, generate a histogram for mapping quality concordance between the two SAM files and write it to the output metrics file. In this histogram, an entry of 10 at bin "20,30" means that 10 reads in the left file have mapping quality 20 while those same reads have mapping quality 30 in the right file. The reads are associated based solely on read names and not the mapped position. Only primary alignments are included, but all duplicate reads are counted individually.

boolean  false


--COMPRESSION_LEVEL

Compression level for all compressed files created (e.g. BAM and VCF).

int  5  [ [ -∞  ∞ ] ]


--CREATE_INDEX

Whether to create an index when writing VCF or coordinate sorted BAM output.

Boolean  false


--CREATE_MD5_FILE

Whether to create an MD5 digest for any BAM or FASTQ files created.

boolean  false


--help / -h

display the help message

boolean  false


--LENIENT_DUP

Perform lenient checking of duplicate marks. In this mode, will reduce the number of mismatches by allowing the choice of the representative read in each duplicate set to differ between the input files, as long as the duplicate sets agree.

boolean  false


--LENIENT_HEADER

Perform lenient checking of header. In this mode, species, assembly, ur, m5, fields of sequence records, and pg fields in the header may all differ. Sequence record length must also be the same.

boolean  false


--LENIENT_LOW_MQ_ALIGNMENT

Count reads which have mapping quality below LOW_MQ_THRESHOLD in both files but are mapped to different locations as matches. By default we count such reads as mismatching.

boolean  false


--LENIENT_UNKNOWN_MQ_ALIGNMENT

Count reads for which no mapping quality is available (mapping quality value 255) in both files but are mapped to different locations as matches. By default we count such reads as mismatching.

boolean  false


--LOW_MQ_THRESHOLD

When running in LENIENT_LOW_MQ_ALIGNMENT mode, reads which have mapping quality below this value will be counted as matches. if LENIENT_LOW_MQ_ALIGNMENT is false (default), then this argument has no effect.

int  3  [ [ -∞  ∞ ] ]


--MAX_RECORDS_IN_RAM

When writing files that need to be sorted, this will specify the number of records stored in RAM before spilling to disk. Increasing this number reduces the number of file handles needed to sort the file, and increases the amount of RAM needed.

Integer  500000  [ [ -∞  ∞ ] ]


--OUTPUT / -O

Output file to write comparison results to.

File  null


--QUIET

Whether to suppress job-summary info on System.err.

Boolean  false


--REFERENCE_SEQUENCE / -R

Reference sequence file.

PicardHtsPath  null


--showHidden / -showHidden

display hidden arguments

boolean  false


--TMP_DIR

One or more directories with space available to be used by this program for temporary storage of working files

List[File]  []


--USE_JDK_DEFLATER / -use_jdk_deflater

Use the JDK Deflater instead of the Intel Deflater for writing compressed output

Boolean  false


--USE_JDK_INFLATER / -use_jdk_inflater

Use the JDK Inflater instead of the Intel Inflater for reading compressed input

Boolean  false


--VALIDATION_STRINGENCY

Validation stringency for all SAM files read by this program. Setting stringency to SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded.

The --VALIDATION_STRINGENCY argument is an enumerated type (ValidationStringency), which can have one of the following values:

STRICT
LENIENT
SILENT

ValidationStringency  STRICT


--VERBOSITY

Control verbosity of logging.

The --VERBOSITY argument is an enumerated type (LogLevel), which can have one of the following values:

ERROR
WARNING
INFO
DEBUG

LogLevel  INFO


--version

display the version number for this tool

boolean  false


Return to top


See also General Documentation | Tool Docs Index Tool Documentation Index | Support Forum

GATK version 4.6.2.0 built at Sun, 13 Apr 2025 13:21:43 -0400.