# Class AbstractOpticalDuplicateFinderCommandLineProgram

java.lang.Object
picard.cmdline.CommandLineProgram
picard.sam.markduplicates.util.AbstractOpticalDuplicateFinderCommandLineProgram

Direct Known Subclasses:
  `AbstractMarkDuplicatesCommandLineProgram, EstimateLibraryComplexity`

public abstract class AbstractOpticalDuplicateFinderCommandLineProgram extends CommandLineProgram
Abstract class that holds parameters and methods common to classes that optical duplicate detection. We put them here so that the explanation about how read names are parsed is in once place

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static htsjdk.samtools.util.Log`
`LOG`
`long`
`MAX_OPTICAL_DUPLICATE_SET_SIZE`
`int`
`OPTICAL_DUPLICATE_PIXEL_DISTANCE`
`protected OpticalDuplicateFinder`
`opticalDuplicateFinder`
`String`
`READ_NAME_REGEX`

### Fields inherited from class CommandLineProgram

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

## Constructor Summary

Constructors
Constructor
Description
`AbstractOpticalDuplicateFinderCommandLineProgram()`

## Method Summary

Modifier and Type
Method
Description
`protected String[]`
`customCommandLineValidation()`
Put any custom command-line validation in an override of this method.
`void`
`setupOpticalDuplicateFinder()`

### Methods inherited from class CommandLineProgram

`checkRInstallation, doWork, getCommandLine, getCommandLineParser, getCommandLineParserForArgs, getDefaultHeaders, getFaqLink, getMetricsFile, getPGRecord, getStandardUsagePreamble, getStandardUsagePreamble, getVersion, hasWebDocumentation, instanceMain, instanceMainWithExit, makeReferenceArgumentCollection, parseArgs, requiresReference, setDefaultHeaders, useLegacyParser`

### Methods inherited from class Object

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

## Field Details

### LOG

protected static htsjdk.samtools.util.Log LOG

### READ_NAME_REGEX

@Argument(doc="MarkDuplicates can use the tile and cluster positions to estimate the rate of optical duplication in addition to the dominant source of duplication, PCR, to provide a more accurate estimation of library size. By default (with no READ_NAME_REGEX specified), MarkDuplicates will attempt to extract coordinates using a split on ':' (see Note below). Set READ_NAME_REGEX to 'null' to disable optical duplicate detection. Note that without optical duplicate counts, library size estimation will be less accurate. If the read name does not follow a standard Illumina colon-separation convention, but does contain tile and x,y coordinates, a regular expression can be specified to extract three variables: tile/region, x coordinate and y coordinate from a read name. The regular expression must contain three capture groups for the three variables, in order. It must match the entire read name. e.g. if field names were separated by semi-colon (';') this example regex could be specified (?:.*;)?([0-9]+)[^;]*;([0-9]+)[^;]*;([0-9]+)[^;]*$ Note that if no READ_NAME_REGEX is specified, the read name is split on ':'. For 5 element names, the 3rd, 4th and 5th elements are assumed to be tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements are assumed to be tile, x and y values.", optional=true) public String READ_NAME_REGEX

### OPTICAL_DUPLICATE_PIXEL_DISTANCE

@Argument(doc="The maximum offset between two duplicate clusters in order to consider them optical duplicates. The default is appropriate for unpatterned versions of the Illumina platform. For the patterned flowcell models, 2500 is moreappropriate. For other platforms and models, users should experiment to find what works best.") public int OPTICAL_DUPLICATE_PIXEL_DISTANCE

### MAX_OPTICAL_DUPLICATE_SET_SIZE

@Argument(doc="This number is the maximum size of a set of duplicate reads for which we will attempt to determine which are optical duplicates. Please be aware that if you raise this value too high and do encounter a very large set of duplicate reads, it will severely affect the runtime of this tool. To completely disable this check, set the value to -1.") public long MAX_OPTICAL_DUPLICATE_SET_SIZE

### opticalDuplicateFinder

protected OpticalDuplicateFinder opticalDuplicateFinder

## Constructor Details

### AbstractOpticalDuplicateFinderCommandLineProgram

public AbstractOpticalDuplicateFinderCommandLineProgram()

## Method Details

### setupOpticalDuplicateFinder

public void setupOpticalDuplicateFinder()

### 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.