picard.util

## Enum IntervalListScatterer.Mode

- java.lang.Object
- - java.lang.Enum<IntervalListScatterer.Mode>
  - - picard.util.IntervalListScatterer.Mode

- All Implemented Interfaces:
    Serializable, Comparable<IntervalListScatterer.Mode>
  Enclosing class:
    IntervalListScatterer

      public static enum IntervalListScatterer.Mode
      extends Enum<IntervalListScatterer.Mode>

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `BALANCING_WITHOUT_INTERVAL_SUBDIVISION` A scatter approach that differs from `INTERVAL_SUBDIVISION` in a few ways.
    `BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW` A scatter approach that differs from `BALANCING_WITHOUT_INTERVAL_SUBDIVISION`.
    `INTERVAL_SUBDIVISION` A simple scatter approach in which all output intervals have size equal to the total base count of the source list divide by the scatter count (except for possible variance in the final interval list).

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static IntervalListScatterer.Mode` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static IntervalListScatterer.Mode[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### INTERVAL_SUBDIVISION

          public static final IntervalListScatterer.Mode INTERVAL_SUBDIVISION

      A simple scatter approach in which all output intervals have size equal to the total base count of the source list divide by the scatter count (except for possible variance in the final interval list).

    - #### BALANCING_WITHOUT_INTERVAL_SUBDIVISION

          public static final IntervalListScatterer.Mode BALANCING_WITHOUT_INTERVAL_SUBDIVISION

      A scatter approach that differs from `INTERVAL_SUBDIVISION` in a few ways.
      1. No interval will be subdivided, and consequently, the requested scatter count is an upper bound of scatter count, not a guarantee as to how many `IntervalList`s will be produced (e.g., if scatterCount = 10 but there is only one input interval, only 1 interval list will be emitted).
      2. When an interval would otherwise be split, it is instead deferred to the next scatter list.
      3. The "target width" of each scatter list may be wider than what is computed for `INTERVAL_SUBDIVISION`. Specifically, if the widest interval in the source interval list is larger than what would otherwise be the target width, that interval's width is used.
         The reasoning for this is that this approach produces more consistently-sized interval lists, which is one of the objectives of scattering.

    - #### BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW

          public static final IntervalListScatterer.Mode BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW

      A scatter approach that differs from `BALANCING_WITHOUT_INTERVAL_SUBDIVISION`.
      1. We try to balance the number of unique bases in each interval list by estimating the remaining interval lists sizes. This is computed from the total number of unique bases and the bases we have consumed. This means that the interval list with the most number of unique bases is at most the ideal split length larger than the smallest interval list (unique # of bases).

  - ### Method Detail

    - #### values

          public static IntervalListScatterer.Mode[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (IntervalListScatterer.Mode c : IntervalListScatterer.Mode.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static IntervalListScatterer.Mode valueOf(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `IllegalArgumentException` - if this enum type has no constant with the specified name
        `NullPointerException` - if the argument is null