Package picard.util

## Class BaitDesigner

- java.lang.Object
- - picard.cmdline.CommandLineProgram
  - - picard.util.BaitDesigner

-     @DocumentedFeature
      public class BaitDesigner
      extends CommandLineProgram

  Designs baits for hybrid selection!

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `BaitDesigner.DesignStrategy` | Set of possible design strategies for bait design.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `int` | `BAIT_OFFSET` |
    `int` | `BAIT_SIZE` |
    `String` | `DESIGN_NAME` |
    `boolean` | `DESIGN_ON_TARGET_STRAND` |
    `BaitDesigner.DesignStrategy` | `DESIGN_STRATEGY` |
    `boolean` | `FILL_POOLS` |
    `String` | `LEFT_PRIMER` |
    `boolean` | `MERGE_NEARBY_TARGETS` |
    `int` | `MINIMUM_BAITS_PER_TARGET` |
    `boolean` | `OUTPUT_AGILENT_FILES` |
    `File` | `OUTPUT_DIRECTORY` |
    `int` | `PADDING` |
    `int` | `POOL_SIZE` |
    `int` | `REPEAT_TOLERANCE` |
    `String` | `RIGHT_PRIMER` |
    `File` | `TARGETS` |

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

      `COMPRESSION_LEVEL, CREATE_INDEX, CREATE_MD5_FILE, GA4GH_CLIENT_SECRETS, MAX_RECORDS_IN_RAM, QUIET, REFERENCE_SEQUENCE, referenceSequence, specialArgumentsCollection, TMP_DIR, USE_JDK_DEFLATER, USE_JDK_INFLATER, VALIDATION_STRINGENCY, VERBOSITY`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BaitDesigner()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected String[]` | `customCommandLineValidation()` | Put any custom command-line validation in an override of this method.
    `protected int` | `doWork()` | Main method that coordinates the checking of inputs, designing of baits and then the writing out of all necessary files.
    `static int` | `getMaskedBaseCount​(byte[] bases, int from, int until)` | Returns the total of soft or hard masked bases in the interval of bases.
    `static void` | `main​(String[] args)` | Stock main method.
    `protected boolean` | `requiresReference()` |

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

      `getCommandLine, getCommandLineParser, getDefaultHeaders, getFaqLink, getMetricsFile, getStandardUsagePreamble, getStandardUsagePreamble, getVersion, hasWebDocumentation, instanceMain, instanceMainWithExit, makeReferenceArgumentCollection, parseArgs, setDefaultHeaders, useLegacyParser`

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

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

- - ### Field Detail

    - #### TARGETS

          @Argument(shortName="T",
                    doc="The file with design parameters and targets")
          public File TARGETS

    - #### DESIGN_NAME

          @Argument(doc="The name of the bait design")
          public String DESIGN_NAME

    - #### LEFT_PRIMER

          @Argument(doc="The left amplification primer to prepend to all baits for synthesis")
          public String LEFT_PRIMER

    - #### RIGHT_PRIMER

          @Argument(doc="The right amplification primer to prepend to all baits for synthesis")
          public String RIGHT_PRIMER

    - #### DESIGN_STRATEGY

          @Argument(doc="The design strategy to use to layout baits across each target")
          public BaitDesigner.DesignStrategy DESIGN_STRATEGY

    - #### BAIT_SIZE

          @Argument(doc="The length of each individual bait to design")
          public int BAIT_SIZE

    - #### MINIMUM_BAITS_PER_TARGET

          @Argument(doc="The minimum number of baits to design per target.")
          public int MINIMUM_BAITS_PER_TARGET

    - #### BAIT_OFFSET

          @Argument(doc="The desired offset between the start of one bait and the start of another bait for the same target.")
          public int BAIT_OFFSET

    - #### PADDING

          @Argument(doc="Pad the input targets by this amount when designing baits. Padding is applied on both sides in this amount.")
          public int PADDING

    - #### REPEAT_TOLERANCE

          @Argument(doc="Baits that have more than REPEAT_TOLERANCE soft or hard masked bases will not be allowed")
          public int REPEAT_TOLERANCE

    - #### POOL_SIZE

          @Argument(doc="The size of pools or arrays for synthesis. If no pool files are desired, can be set to 0.")
          public int POOL_SIZE

    - #### FILL_POOLS

          @Argument(doc="If true, fill up the pools with alternating fwd and rc copies of all baits. Equal copies of all baits will always be maintained")
          public boolean FILL_POOLS

    - #### DESIGN_ON_TARGET_STRAND

          @Argument(doc="If true design baits on the strand of the target feature, if false always design on the + strand of the genome.")
          public boolean DESIGN_ON_TARGET_STRAND

    - #### MERGE_NEARBY_TARGETS

          @Argument(doc="If true merge targets that are \'close enough\' that designing against a merged target would be more efficient.")
          public boolean MERGE_NEARBY_TARGETS

    - #### OUTPUT_AGILENT_FILES

          @Argument(doc="If true also output .design.txt files per pool with one line per bait sequence")
          public boolean OUTPUT_AGILENT_FILES

    - #### OUTPUT_DIRECTORY

          @Argument(shortName="O",
                    optional=true,
                    doc="The output directory. If not provided then the DESIGN_NAME will be used as the output directory")
          public File OUTPUT_DIRECTORY

  - ### Constructor Detail

    - #### BaitDesigner

          public BaitDesigner()

  - ### Method Detail

    - #### requiresReference

          protected boolean requiresReference()

      Overrides:
        `requiresReference` in class `CommandLineProgram`

    - #### getMaskedBaseCount

          public static int getMaskedBaseCount​(byte[] bases,
                                               int from,
                                               int until)

      Returns the total of soft or hard masked bases in the interval of bases.

    - #### main

          public static void main​(String[] args)

      Stock main method.

    - #### customCommandLineValidation

          protected String[] customCommandLineValidation()

      Description copied from class: `CommandLineProgram`
      Put any custom command-line validation in an override of this method. clp is initialized at this point and can be used to print usage and access argv. Any options set by command-line parser can be validated.
      Overrides:
        `customCommandLineValidation` in class `CommandLineProgram`
      Returns:
        null if command line is valid. If command line is invalid, returns an array of error message to be written to the appropriate place.

    - #### doWork

          protected int doWork()

      Main method that coordinates the checking of inputs, designing of baits and then the writing out of all necessary files.
      Specified by:
        `doWork` in class `CommandLineProgram`
      Returns: