Class LeftAlignIndels

All Implemented Interfaces:
org.broadinstitute.barclay.argparser.CommandLinePluginProvider

@DocumentedFeature public final class LeftAlignIndels extends ReadWalker
Left-aligns indels in read data

This tool left-aligns any indels in the read data contained in a BAM or CRAM file. The same indel can often be placed at multiple positions and still represent the same haplotype. While it is a commonly used convention to place an indel at the left-most position, this doesn't always happen (either because upstream tools broke ties between equivalent representations randomly or used different aligning conventions), so this tool can be used to left-align them according to convention.

This tool will left-align reads with one and only one indel.

Input

A BAM or CRAM file to left-align.

Output

A left-aligned BAM or CRAM file.

Usage example

 gatk LeftAlignIndels \
   -R reference.fasta \
   -I input.bam \
   -O output.bam
 
  • Constructor Details

    • LeftAlignIndels

      public LeftAlignIndels()
  • Method Details

    • requiresReference

      public boolean requiresReference()
      Description copied from class: GATKTool
      Does this tool require reference data? Traversals types and/or tools that do should override to return true.
      Overrides:
      requiresReference in class GATKTool
      Returns:
      true if this tool requires a reference, otherwise false
    • onTraversalStart

      public void onTraversalStart()
      Description copied from class: GATKTool
      Operations performed just prior to the start of traversal. Should be overridden by tool authors who need to process arguments local to their tool or perform other kinds of local initialization. Default implementation does nothing.
      Overrides:
      onTraversalStart in class GATKTool
    • apply

      public void apply(GATKRead read, ReferenceContext ref, FeatureContext featureContext)
      Description copied from class: ReadWalker
      Process an individual read (with optional contextual information). Must be implemented by tool authors. In general, tool authors should simply stream their output from apply(), and maintain as little internal state as possible. TODO: Determine whether and to what degree the GATK engine should provide a reduce operation TODO: to complement this operation. At a minimum, we should make apply() return a value to TODO: discourage statefulness in walkers, but how this value should be handled is TBD.
      Specified by:
      apply in class ReadWalker
      Parameters:
      read - current read
      ref - Reference bases spanning the current read. Will be an empty, but non-null, context object if there is no backing source of reference data (in which case all queries on it will return an empty array/iterator). Can request extra bases of context around the current read's interval by invoking ReferenceContext.setWindow(int, int) on this object before calling ReferenceContext.getBases()
      featureContext - Features spanning the current read. Will be an empty, but non-null, context object if there is no backing source of Feature data (in which case all queries on it will return an empty List).
    • closeTool

      public void closeTool()
      Description copied from class: GATKTool
      This method is called by the GATK framework at the end of the GATKTool.doWork() template method. It is called regardless of whether the GATKTool.traverse() has succeeded or not. It is called after the GATKTool.onTraversalSuccess() has completed (successfully or not) but before the GATKTool.doWork() method returns. In other words, on successful runs both GATKTool.onTraversalSuccess() and GATKTool.closeTool() will be called (in this order) while on failed runs (when GATKTool.traverse() causes an exception), only GATKTool.closeTool() will be called. The default implementation does nothing. Subclasses should override this method to close any resources that must be closed regardless of the success of traversal.
      Overrides:
      closeTool in class GATKTool