picard.analysis

## Class CollectAlignmentSummaryMetrics

- java.lang.Object
- - picard.cmdline.CommandLineProgram
  - - picard.analysis.SinglePassSamProgram
    - - picard.analysis.CollectAlignmentSummaryMetrics

-     public class CollectAlignmentSummaryMetrics
      extends SinglePassSamProgram

  A command line tool to read a BAM file and produce standard alignment metrics that would be applicable to any alignment. Metrics to include, but not limited to:
  - Total number of reads (total, period, no exclusions)
  - Total number of PF reads (PF == does not fail vendor check flag)
  - Number of PF noise reads (does not fail vendor check and has noise attr set)
  - Total aligned PF reads (any PF read that has a sequence and position)
  - High quality aligned PF reads (high quality == mapping quality >= 20)
  - High quality aligned PF bases (actual aligned bases, calculate off alignment blocks)
  - High quality aligned PF Q20 bases (subset of above where base quality >= 20)
  - Median mismatches in HQ aligned PF reads (how many aligned bases != ref on average)
  - Reads aligned in pairs (vs. reads aligned with mate unaligned/not present)
  - Read length (how to handle mixed lengths?)
  - Bad Cycles - how many machine cycles yielded combined no-call and mismatch rates of >= 80%
  - Strand balance - reads mapped to positive strand / total mapped reads
  Metrics are written for the first read of a pair, the second read, and combined for the pair. Chimeras are identified if any of the of following criteria are met:
  - the insert size is larger than MAX_INSERT_SIZE
  - the ends of a pair map to different contigs
  - the paired end orientation is different that the expected orientation
  - the read contains an SA tag (chimeric alignment)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `List<String>` | `ADAPTER_SEQUENCE`
    `Set<htsjdk.samtools.SamPairUtil.PairOrientation>` | `EXPECTED_PAIR_ORIENTATIONS`
    `boolean` | `IS_BISULFITE_SEQUENCED`
    `int` | `MAX_INSERT_SIZE`
    `Set<MetricAccumulationLevel>` | `METRIC_ACCUMULATION_LEVEL`
    `File` | `REFERENCE_SEQUENCE`

    - ### Fields inherited from class picard.analysis.SinglePassSamProgram

      `ASSUME_SORTED, INPUT, OUTPUT, STOP_AFTER`

    - ### Fields inherited from class picard.cmdline.CommandLineProgram

      `COMPRESSION_LEVEL, CREATE_INDEX, CREATE_MD5_FILE, GA4GH_CLIENT_SECRETS, MAX_RECORDS_IN_RAM, QUIET, TMP_DIR, VALIDATION_STRINGENCY, VERBOSITY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CollectAlignmentSummaryMetrics()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `acceptRead(htsjdk.samtools.SAMRecord rec, htsjdk.samtools.reference.ReferenceSequence ref)` Should be implemented by subclasses to accept SAMRecords one at a time.
    `protected void` | `finish()` Should be implemented by subclasses to do one-time finalization work.
    `static void` | `main(String[] argv)` Required main method implementation.
    `protected void` | `setup(htsjdk.samtools.SAMFileHeader header, File samFile)` Should be implemented by subclasses to do one-time initialization work.
    `protected int` | `testDoWork()` Silly method that is necessary to give unit test access to call doWork()

    - ### Methods inherited from class picard.analysis.SinglePassSamProgram

      `doWork, makeItSo, usesNoRefReads`

    - ### Methods inherited from class picard.cmdline.CommandLineProgram

      `customCommandLineValidation, getCommandLine, getCommandLineParser, getDefaultHeaders, getMetricsFile, getNestedOptions, getNestedOptionsForHelp, getStandardUsagePreamble, getVersion, instanceMain, instanceMainWithExit, parseArgs, setDefaultHeaders`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### MAX_INSERT_SIZE

          @Option(doc="Paired-end reads above this insert size will be considered chimeric along with inter-chromosomal pairs.")
          public int MAX_INSERT_SIZE

    - #### EXPECTED_PAIR_ORIENTATIONS

          @Option(doc="Paired-end reads that do not have this expected orientation will be considered chimeric.")
          public Set<htsjdk.samtools.SamPairUtil.PairOrientation> EXPECTED_PAIR_ORIENTATIONS

    - #### ADAPTER_SEQUENCE

          @Option(doc="List of adapter sequences to use when processing the alignment metrics.")
          public List<String> ADAPTER_SEQUENCE

    - #### METRIC_ACCUMULATION_LEVEL

          @Option(shortName="LEVEL",
                  doc="The level(s) at which to accumulate metrics.")
          public Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL

    - #### IS_BISULFITE_SEQUENCED

          @Option(shortName="BS",
                  doc="Whether the SAM or BAM file consists of bisulfite sequenced reads.")
          public boolean IS_BISULFITE_SEQUENCED

    - #### REFERENCE_SEQUENCE

          @Option(shortName="R",
                  doc="Reference sequence file. Note that while this argument isn\'t required, without it only a small subset of the metrics will be calculated. Note also that if a reference sequence is provided, it must be accompanied by a sequence dictionary.",
                  optional=true,
                  overridable=true)
          public File REFERENCE_SEQUENCE

  - ### Constructor Detail

    - #### CollectAlignmentSummaryMetrics

          public CollectAlignmentSummaryMetrics()

  - ### Method Detail

    - #### main

          public static void main(String[] argv)

      Required main method implementation.

    - #### testDoWork

          protected final int testDoWork()

      Silly method that is necessary to give unit test access to call doWork()

    - #### setup

          protected void setup(htsjdk.samtools.SAMFileHeader header,
                               File samFile)

      Description copied from class: `SinglePassSamProgram`
      Should be implemented by subclasses to do one-time initialization work.
      Specified by:
        `setup` in class `SinglePassSamProgram`

    - #### acceptRead

          protected void acceptRead(htsjdk.samtools.SAMRecord rec,
                                    htsjdk.samtools.reference.ReferenceSequence ref)

      Description copied from class: `SinglePassSamProgram`
      Should be implemented by subclasses to accept SAMRecords one at a time. If the read has a reference sequence and a reference sequence file was supplied to the program it will be passed as 'ref'. Otherwise 'ref' may be null.
      Specified by:
        `acceptRead` in class `SinglePassSamProgram`

    - #### finish

          protected void finish()

      Description copied from class: `SinglePassSamProgram`
      Should be implemented by subclasses to do one-time finalization work.
      Specified by:
        `finish` in class `SinglePassSamProgram`