Package picard.illumina

# Class ExtractIlluminaBarcodes

java.lang.Object
picard.cmdline.CommandLineProgram
picard.illumina.ExtractBarcodesProgram
picard.illumina.ExtractIlluminaBarcodes

@DocumentedFeature public class ExtractIlluminaBarcodes extends ExtractBarcodesProgram
Determine the barcode for each read in an Illumina lane. For each tile, a file is written to the basecalls directory of the form s_<lane>_<tile>_barcode.txt. An output file contains a line for each read in the tile, aligned with the regular basecall output The output file contains the following tab-separated columns: - read subsequence at barcode position - Y or N indicating if there was a barcode match - matched barcode sequence (empty if read did not match one of the barcodes). If there is no match but we're close to the threshold of calling it a match we output the barcode that would have been matched but in lower case - distance to best matching barcode, "mismatches" (*) - distance to second-best matching barcode, "mismatchesToSecondBest" (*) NOTE (*): Due to an optimization the reported mismatches invalid input: '&' mismatchesToSecondBest values may be inaccurate as long as the conclusion (match vs. no-match) isn't affected. For example, reported mismatches and mismatchesToSecondBest may be smaller than their true value if mismatches is truly larger than MAX_MISMATCHES. Also, mismatchesToSecondBest might be smaller than its true value if its true value is greater than mismatches + MIN_MISMATCH_DELTA.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`ExtractIlluminaBarcodes.PerTileBarcodeExtractor`
Extracts barcodes and accumulates metrics for an entire tile.

## Field Summary

Fields
Modifier and Type
Field
Description
`List<String>`
`BARCODE`
`File`
`BARCODE_FILE`
`int`
`NUM_PROCESSORS`
`File`
`OUTPUT_DIR`

### Fields inherited from class picard.illumina.ExtractBarcodesProgram

`BARCODE_COLUMN, BARCODE_NAME_COLUMN, BARCODE_PREFIXES, BARCODE_SEQUENCE_COLUMN, barcodeToMetrics, BASECALLS_DIR, bclQualityEvaluationStrategy, COMPRESS_OUTPUTS, DISTANCE_MODE, INPUT_PARAMS_FILE, inputReadStructure, LANE, LIBRARY_NAME_COLUMN, MAX_MISMATCHES, MAX_NO_CALLS, METRICS_FILE, MIN_MISMATCH_DELTA, MINIMUM_BASE_QUALITY, MINIMUM_QUALITY, noMatchMetric, READ_STRUCTURE`

### Fields inherited from class picard.cmdline.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
`ExtractIlluminaBarcodes()`

## Method Summary

Modifier and Type
Method
Description
`protected String[]`
`customCommandLineValidation()`
Parses all barcodes from input files and validates all barcodes are the same length and unique
`protected int`
`doWork()`
Do the work after command line has been parsed.

### Methods inherited from class picard.illumina.ExtractBarcodesProgram

`collectErrorMessages, createBarcodeExtractor, finalizeMetrics, outputMetrics, parseInputFile`

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

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

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

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

## Field Details

### BARCODE_FILE

@Argument(doc="Tab-delimited file of barcode sequences, barcode name and, optionally, library name. Barcodes must be unique and all the same length. Column headers must be \'barcode_sequence\' (or \'barcode_sequence_1\'), \'barcode_sequence_2\' (optional), \'barcode_name\', and \'library_name\'.", mutex="BARCODE") public File BARCODE_FILE

### BARCODE

@Argument(doc="Barcode sequence. These must be unique, and all the same length. This cannot be used with reads that have more than one barcode; use BARCODE_FILE in that case. ", mutex="BARCODE_FILE") public List<String> BARCODE

### NUM_PROCESSORS

@Argument(doc="Run this many PerTileBarcodeExtractors in parallel. If NUM_PROCESSORS = 0, number of cores is automatically set to the number of cores available on the machine. If NUM_PROCESSORS < 0 then the number of cores used will be the number available on the machine less NUM_PROCESSORS.") public int NUM_PROCESSORS

### OUTPUT_DIR

@Argument(doc="Where to write _barcode.txt files. By default, these are written to BASECALLS_DIR.", optional=true) public File OUTPUT_DIR

## Constructor Details

### ExtractIlluminaBarcodes

public ExtractIlluminaBarcodes()

## Method Details

### doWork

protected int doWork()
Description copied from class: `CommandLineProgram`
Do the work after command line has been parsed. RuntimeException may be thrown by this method, and are reported appropriately.

Specified by:
  `doWork` in class `CommandLineProgram`
Returns:
  program exit status.

### customCommandLineValidation

protected String[] customCommandLineValidation()
Description copied from class: `ExtractBarcodesProgram`
Parses all barcodes from input files and validates all barcodes are the same length and unique

Overrides:
  `customCommandLineValidation` in class `ExtractBarcodesProgram`
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.