picard.illumina.parser

## Class ReadStructure.Substructure

- java.lang.Object
- - picard.illumina.parser.ReadStructure.Substructure

- All Implemented Interfaces:
    Iterable<ReadDescriptor>
  Enclosing class:
    ReadStructure

      public class ReadStructure.Substructure
      extends Object
      implements Iterable<ReadDescriptor>

  Represents a subset of ReadDescriptors in the containing ReadStructure, they ARE NOT necessarily contiguous in the containing ReadStructure but they ARE in the order they appear in the containing ReadStructure

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Substructure(List<Integer> descriptorIndices, List<Range> allRanges)` Indices into the ReadStructure.descriptors for this specific substructure, indices must be in the order they appear in the descriptors list (but the indices do NOT have to be continuous)

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ReadDescriptor` | `get(int index)`
    `Range[]` | `getCycleIndexRanges()`
    `int[]` | `getCycles()`
    `int[]` | `getDescriptorLengths()`
    `int[]` | `getIndices()`
    `int` | `getTotalCycles()`
    `boolean` | `isEmpty()`
    `Iterator<ReadDescriptor>` | `iterator()`
    `int` | `length()`
    `ReadStructure` | `toReadStructure()` Create a ReadStructure from this substructure composed of only the descriptors contained in this substructure, Any ReadDescriptors not in this substructure are treated as if they don't exist (e.g.

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### Substructure

          public Substructure(List<Integer> descriptorIndices,
                              List<Range> allRanges)

      Indices into the ReadStructure.descriptors for this specific substructure, indices must be in the order they appear in the descriptors list (but the indices do NOT have to be continuous)
      Parameters:
        `descriptorIndices` - A list of indices into ReadStructure.descriptors of the enclosing ReadStructure
        `allRanges` - A list of ranges for all reads (not just those in this substructure) in the same order as ReadStructure.descriptors

  - ### Method Detail

    - #### get

          public ReadDescriptor get(int index)

    - #### isEmpty

          public boolean isEmpty()

    - #### length

          public int length()

    - #### getTotalCycles

          public int getTotalCycles()

    - #### getIndices

          public int[] getIndices()

    - #### getDescriptorLengths

          public int[] getDescriptorLengths()

    - #### getCycleIndexRanges

          public Range[] getCycleIndexRanges()

    - #### iterator

          public Iterator<ReadDescriptor> iterator()

      Specified by:
        `iterator` in interface `Iterable<ReadDescriptor>`

    - #### getCycles

          public int[] getCycles()

    - #### toReadStructure

          public ReadStructure toReadStructure()

      Create a ReadStructure from this substructure composed of only the descriptors contained in this substructure, Any ReadDescriptors not in this substructure are treated as if they don't exist (e.g. if you have a readStructure (36T8S8B36T) and this substructure consists of all the non-skipped reads than toReadStructure would return (36T8B36T) in ReadStructure form