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 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.
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. | |
--GA4GH_CLIENT_SECRETS |
client_secrets.json | Google Genomics API client_secrets.json file path. | |
--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
--GA4GH_CLIENT_SECRETS
Google Genomics API client_secrets.json file path.
String client_secrets.json
--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
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 File 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
File null
--QUIET
Whether to suppress job-summary info on System.err.
Boolean false
--REFERENCE_SEQUENCE / -R
Reference sequence file.
File 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
GATK version 4.2.6.1-SNAPSHOT built at Wed, 13 Apr 2022 13:12:10 -0700.
0 comments
Please sign in to leave a comment.