Chart the nucleotide distribution per cycle in a SAM or BAM fileThis tool produces a chart of the nucleotide distribution per cycle in a SAM or BAM file in order to enable assessment of systematic errors at specific positions in the reads.
Interpretation notesIncreased numbers of miscalled bases will be reflected in base distribution changes and increases in the number of Ns. In general, we expect that for any given cycle, or position within reads, the relative proportions of A, T, C and G should reflect the AT:GC content of the organism's genome. Thus, for all four nucleotides, flattish lines would be expected. Deviations from this expectation, for example a spike of A at a particular cycle (position within reads), would suggest a systematic sequencing error.
Note on quality trimmingIn the past, many sequencing data processing workflows included discarding the low-quality tails of reads by applying hard-clipping at some arbitrary base quality threshold value. This is no longer useful because most sophisticated analysis tools (such as the GATK variant discovery tools) are quality-aware, meaning that they are able to take base quality into account when weighing evidence provided by sequencing reads. Unnecessary clipping may interfere with other quality control evaluations and may lower the quality of analysis results. For example, trimming reduces the effectiveness of the Base Recalibration (BQSR) pre-processing step of the GATK Best Practices for Variant Discovery, which aims to correct some types of systematic biases that affect the accuracy of base quality scores.
Note: Metrics labeled as percentages are actually expressed as fractions!
java -jar picard.jar CollectBaseDistributionByCycle \
Category Diagnostics and Quality Control
CollectBaseDistributionByCycle (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|
|null||A file (with .pdf extension) to write the chart to.|
|null||Input SAM or BAM file.|
|null||File to write the output to.|
|Optional Tool Arguments|
||false||If set to true, calculate the base distribution over aligned reads only.|
||||read one or more arguments files and add them to the command line|
|true||If true (default), then the sort order in the header file will be ignored.|
|false||display the help message|
||false||If set to true, calculate the base distribution over PF reads only (Illumina specific). PF reads are reads that passed the internal quality filters applied by Illumina sequencers.|
||0||Stop after processing N reads, mainly for debugging.|
||false||display the version number for this tool|
|Optional Common Arguments|
||5||Compression level for all compressed files created (e.g. BAM and VCF).|
||false||Whether to create a BAM index when writing a coordinate-sorted BAM file.|
||false||Whether to create an MD5 digest for any BAM or FASTQ files created.|
||client_secrets.json||Google Genomics API client_secrets.json file path.|
||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.|
||false||Whether to suppress job-summary info on System.err.|
|null||Reference sequence file.|
||||One or more directories with space available to be used by this program for temporary storage of working files|
|false||Use the JDK Deflater instead of the Intel Deflater for writing compressed output|
|false||Use the JDK Inflater instead of the Intel Inflater for reading compressed input|
||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.|
||INFO||Control verbosity of logging.|
||false||display hidden arguments|
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.
--ALIGNED_READS_ONLY / NA
If set to true, calculate the base distribution over aligned reads only.
--arguments_file / NA
read one or more arguments files and add them to the command line
--ASSUME_SORTED / -AS
If true (default), then the sort order in the header file will be ignored.
--CHART_OUTPUT / -CHART
A file (with .pdf extension) to write the chart to.
R File null
--COMPRESSION_LEVEL / NA
Compression level for all compressed files created (e.g. BAM and VCF).
int 5 [ [ -∞ ∞ ] ]
--CREATE_INDEX / NA
Whether to create a BAM index when writing a coordinate-sorted BAM file.
--CREATE_MD5_FILE / NA
Whether to create an MD5 digest for any BAM or FASTQ files created.
Google Genomics API client_secrets.json file path.
--help / -h
display the help message
--INPUT / -I
Input SAM or BAM file.
R File null
--MAX_RECORDS_IN_RAM / NA
Integer 500000 [ [ -∞ ∞ ] ]
--OUTPUT / -O
File to write the output to.
R File null
--PF_READS_ONLY / NA
If set to true, calculate the base distribution over PF reads only (Illumina specific). PF reads are reads that passed the internal quality filters applied by Illumina sequencers.
--QUIET / NA
Whether to suppress job-summary info on System.err.
--REFERENCE_SEQUENCE / -R
Reference sequence file.
--showHidden / -showHidden
display hidden arguments
--STOP_AFTER / NA
Stop after processing N reads, mainly for debugging.
long 0 [ [ -∞ ∞ ] ]
--TMP_DIR / NA
--USE_JDK_DEFLATER / -use_jdk_deflater
Use the JDK Deflater instead of the Intel Deflater for writing compressed output
--USE_JDK_INFLATER / -use_jdk_inflater
Use the JDK Inflater instead of the Intel Inflater for reading compressed input
The --VALIDATION_STRINGENCY argument is an enumerated type (ValidationStringency), which can have one of the following values:
--VERBOSITY / NA
Control verbosity of logging.
The --VERBOSITY argument is an enumerated type (LogLevel), which can have one of the following values:
--version / NA
display the version number for this tool
GATK version 184.108.40.206 built at 25-30-2019 01:30:00.