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

ValidateSamFile (Picard)

Validates a SAM/BAM/CRAM file.

This tool reports on the validity of a SAM/BAM/CRAM file relative to the SAM format specification. This is useful for troubleshooting errors encountered with other tools that may be caused by improper formatting, faulty alignments, incorrect flag values, etc.

By default, the tool runs in VERBOSE mode and will exit after finding 100 errors and output them to the console (stdout). Therefore, it is often more practical to run this tool initially using the MODE=SUMMARY option. This mode outputs a summary table listing the numbers of all 'errors' and 'warnings'.

When fixing errors in your file, it is often useful to prioritize the severe validation errors and ignore the errors/warnings of lesser concern. This can be done using the IGNORE and/or IGNORE_WARNINGS arguments. For helpful suggestions on error prioritization, please follow this link to obtain additional documentation on ValidateSamFile.

After identifying and fixing your 'warnings/errors', we recommend that you rerun this tool to validate your SAM/BAM file prior to proceeding with your downstream analysis. This will verify that all problems in your file have been addressed.

Usage example:

java -jar picard.jar ValidateSamFile \
I=input.bam \
MODE=SUMMARY

To obtain a complete list with descriptions of both 'ERROR' and 'WARNING' messages, please see our additional documentation for this tool.


Return codes depend on the errors/warnings discovered:

-1 failed to complete execution 0 ran successfully 1 warnings but no errors 2 errors and warnings 3 errors but no warnings

Category Diagnostics and Quality Control


Overview

This tool reports on the validity of a SAM or BAM file relative to the SAM format specification. This is useful for troubleshooting errors encountered with other tools that may be caused by improper formatting, faulty alignments, incorrect flag values, etc.

By default, the tool runs in VERBOSE mode and will exit after finding 100 errors and output them to the console (stdout). Therefore, it is often more practical to run this tool initially using the MODE=SUMMARY option. This mode outputs a summary table listing the numbers of all 'errors' and 'warnings'.

When fixing errors in your file, it is often useful to prioritize the severe validation errors and ignore the errors/warnings of lesser concern. This can be done using the IGNORE and/or IGNORE_WARNINGS arguments. For helpful suggestions on error prioritization, please follow this link to obtain additional documentation on ValidateSamFile.

After identifying and fixing your 'warnings/errors', we recommend that you rerun this tool to validate your SAM/BAM file prior to proceeding with your downstream analysis. This will verify that all problems in your file have been addressed.

This tool is a wrapper for {@link SamFileValidator}.

Usage example:

 java -jar picard.jar ValidateSamFile \
I=input.bam \
MODE=SUMMARY

To obtain a complete list with descriptions of both 'ERROR' and 'WARNING' messages, please see our additional documentation for this tool.


@author Doug Voet

ValidateSamFile (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
Required Arguments
--INPUT
 -I
Input SAM/BAM/CRAM file
Optional Tool Arguments
--arguments_file
read one or more arguments files and add them to the command line
--help
 -h
false display the help message
--IGNORE
List of validation error types to ignore.
--IGNORE_WARNINGS
false If true, only report errors and ignore warnings.
--INDEX_VALIDATION_STRINGENCY
EXHAUSTIVE If set to anything other than IndexValidationStringency.NONE and input is a BAM file with an index file, also validates the index at the specified stringency. Until VALIDATE_INDEX is retired, VALIDATE INDEX and INDEX_VALIDATION_STRINGENCY must agree on whether to validate the index.
--IS_BISULFITE_SEQUENCED
 -BISULFITE
false Whether the input file consists of bisulfite sequenced reads. If so, C->T is not counted as an error in computing the value of the NM tag.
--MAX_OPEN_TEMP_FILES
8000 Relevant for a coordinate-sorted file containing read pairs only. Maximum number of file handles to keep open when spilling mate info to disk. Set this number a little lower than the per-process maximum number of file that may be open. This number can be found by executing the 'ulimit -n' command on a Unix system.
--MAX_OUTPUT
 -MO
100 The maximum number of lines output in verbose mode
--MODE
 -M
VERBOSE Mode of output
--OUTPUT
 -O
Output file or standard out if missing
--SKIP_MATE_VALIDATION
 -SMV
false If true, this tool will not attempt to validate mate information. In general cases, this option should not be used. However, in cases where samples have very high duplication or chimerism rates (> 10%), the mate validation process often requires extremely large amounts of memory to run, so this flag allows you to forego that check.
--VALIDATE_INDEX
true DEPRECATED. Use INDEX_VALIDATION_STRINGENCY instead. If true and input is a BAM file with an index file, also validates the index. Until this parameter is retired VALIDATE INDEX and INDEX_VALIDATION_STRINGENCY must agree on whether to validate the index.
--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.


--arguments_file

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

List[File]  []


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


--IGNORE

List of validation error types to ignore.

The --IGNORE argument is an enumerated type (List[Type]), which can have one of the following values:

INVALID_QUALITY_FORMAT
INVALID_FLAG_PROPER_PAIR
INVALID_FLAG_MATE_UNMAPPED
MISMATCH_FLAG_MATE_UNMAPPED
INVALID_FLAG_MATE_NEG_STRAND
MISMATCH_FLAG_MATE_NEG_STRAND
INVALID_FLAG_FIRST_OF_PAIR
INVALID_FLAG_SECOND_OF_PAIR
PAIRED_READ_NOT_MARKED_AS_FIRST_OR_SECOND
INVALID_FLAG_NOT_PRIM_ALIGNMENT
INVALID_FLAG_SUPPLEMENTARY_ALIGNMENT
INVALID_FLAG_READ_UNMAPPED
INVALID_INSERT_SIZE
INVALID_MAPPING_QUALITY
INVALID_CIGAR
ADJACENT_INDEL_IN_CIGAR
INVALID_MATE_REF_INDEX
MISMATCH_MATE_REF_INDEX
INVALID_REFERENCE_INDEX
INVALID_ALIGNMENT_START
MISMATCH_MATE_ALIGNMENT_START
MATE_FIELD_MISMATCH
INVALID_TAG_NM
MISSING_TAG_NM
MISSING_HEADER
MISSING_SEQUENCE_DICTIONARY
MISSING_READ_GROUP
RECORD_OUT_OF_ORDER
READ_GROUP_NOT_FOUND
RECORD_MISSING_READ_GROUP
INVALID_INDEXING_BIN
MISSING_VERSION_NUMBER
INVALID_VERSION_NUMBER
TRUNCATED_FILE
MISMATCH_READ_LENGTH_AND_QUALS_LENGTH
EMPTY_READ
CIGAR_MAPS_OFF_REFERENCE
MISMATCH_READ_LENGTH_AND_E2_LENGTH
MISMATCH_READ_LENGTH_AND_U2_LENGTH
E2_BASE_EQUALS_PRIMARY_BASE
BAM_FILE_MISSING_TERMINATOR_BLOCK
UNRECOGNIZED_HEADER_TYPE
POORLY_FORMATTED_HEADER_TAG
HEADER_TAG_MULTIPLY_DEFINED
HEADER_RECORD_MISSING_REQUIRED_TAG
HEADER_TAG_NON_CONFORMING_VALUE
INVALID_DATE_STRING
TAG_VALUE_TOO_LARGE
INVALID_INDEX_FILE_POINTER
INVALID_PREDICTED_MEDIAN_INSERT_SIZE
DUPLICATE_READ_GROUP_ID
MISSING_PLATFORM_VALUE
INVALID_PLATFORM_VALUE
DUPLICATE_PROGRAM_GROUP_ID
MATE_NOT_FOUND
MATES_ARE_SAME_END
MISMATCH_MATE_CIGAR_STRING
MATE_CIGAR_STRING_INVALID_PRESENCE
INVALID_UNPAIRED_MATE_REFERENCE
INVALID_UNALIGNED_MATE_START
MISMATCH_CIGAR_SEQ_LENGTH
MISMATCH_SEQ_QUAL_LENGTH
MISMATCH_FILE_SEQ_DICT
QUALITY_NOT_STORED
DUPLICATE_SAM_TAG
CG_TAG_FOUND_IN_ATTRIBUTES
REF_SEQ_TOO_LONG_FOR_BAI
HEADER_TAG_INVALID_KEY

List[Type]  []


--IGNORE_WARNINGS

If true, only report errors and ignore warnings.

boolean  false


--INDEX_VALIDATION_STRINGENCY

If set to anything other than IndexValidationStringency.NONE and input is a BAM file with an index file, also validates the index at the specified stringency. Until VALIDATE_INDEX is retired, VALIDATE INDEX and INDEX_VALIDATION_STRINGENCY must agree on whether to validate the index.

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

EXHAUSTIVE
LESS_EXHAUSTIVE
NONE

IndexValidationStringency  EXHAUSTIVE


--INPUT / -I

Input SAM/BAM/CRAM file

R PicardHtsPath  null


--IS_BISULFITE_SEQUENCED / -BISULFITE

Whether the input file consists of bisulfite sequenced reads. If so, C->T is not counted as an error in computing the value of the NM tag.

boolean  false


--MAX_OPEN_TEMP_FILES

Relevant for a coordinate-sorted file containing read pairs only. Maximum number of file handles to keep open when spilling mate info to disk. Set this number a little lower than the per-process maximum number of file that may be open. This number can be found by executing the 'ulimit -n' command on a Unix system.

int  8000  [ [ -∞  ∞ ] ]


--MAX_OUTPUT / -MO

The maximum number of lines output in verbose mode

Integer  100  [ [ -∞  ∞ ] ]


--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  [ [ -∞  ∞ ] ]


--MODE / -M

Mode of output

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

VERBOSE
SUMMARY

Mode  VERBOSE


--OUTPUT / -O

Output file or standard out if missing

PicardHtsPath  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


--SKIP_MATE_VALIDATION / -SMV

If true, this tool will not attempt to validate mate information. In general cases, this option should not be used. However, in cases where samples have very high duplication or chimerism rates (> 10%), the mate validation process often requires extremely large amounts of memory to run, so this flag allows you to forego that check.

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


--VALIDATE_INDEX

DEPRECATED. Use INDEX_VALIDATION_STRINGENCY instead. If true and input is a BAM file with an index file, also validates the index. Until this parameter is retired VALIDATE INDEX and INDEX_VALIDATION_STRINGENCY must agree on whether to validate the index.

boolean  true


--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.