# Class IlluminaBasecallsToFastq

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

@DocumentedFeature public class IlluminaBasecallsToFastq extends ExtractBarcodesProgram

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`IlluminaBasecallsToFastq.ReadNameFormat`
Simple switch to control the read name format to emit.

## Field Summary

Fields
Modifier and Type
Field
Description
`List<IlluminaUtil.IlluminaAdapterPair>`
`ADAPTERS_TO_CHECK`
`boolean`
`APPLY_EAMSS_FILTER`
`File`
`BARCODES_DIR`
`Integer`
`FIRST_TILE`
`String`
`FIVE_PRIME_ADAPTER`
`String`
`FLOWCELL_BARCODE`
`Boolean`
`FORCE_GC`
`boolean`
`IGNORE_UNEXPECTED_BARCODES`
`boolean`
`INCLUDE_NON_PF_READS`
`String`
`MACHINE_NAME`
`Boolean`
`MATCH_BARCODES_INLINE`
`int`
`MAX_READS_IN_RAM_PER_TILE`
Deprecated.
`Integer`
`MIN_TRIMMED_LENGTH`
`File`
`MULTIPLEX_PARAMS`
`Integer`
`NUM_PROCESSORS`
`File`
`OUTPUT_PREFIX`
`IlluminaBasecallsToFastq.ReadNameFormat`
`READ_NAME_FORMAT`
`String`
`RUN_BARCODE`
`Boolean`
`SORT`
`String`
`THREE_PRIME_ADAPTER`
`Integer`
`TILE_LIMIT`
`Integer`
`TRIMMING_QUALITY`

### Fields inherited from class ExtractBarcodesProgram

`BARCODE_COLUMN, BARCODE_NAME_COLUMN, BARCODE_PREFIXES, BARCODE_SEQUENCE_COLUMN, barcodeToMetrics, BASECALLS_DIR, 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 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
`IlluminaBasecallsToFastq()`

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

`collectErrorMessages, createBarcodeExtractor, finalizeMetrics, outputMetrics, parseInputFile`

### Methods inherited from class CommandLineProgram

`checkRInstallation, 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

### BARCODES_DIR

@Argument(doc="The barcodes directory with _barcode.txt files (generated by ExtractIlluminaBarcodes). If not set, use BASECALLS_DIR. ", shortName="BCD", optional=true) public File BARCODES_DIR

### OUTPUT_PREFIX

@Argument(doc="The prefix for output FASTQs. Extensions as described above are appended. Use this option for a non-barcoded run, or for a barcoded run in which it is not desired to demultiplex reads into separate files by barcode.", shortName="O", mutex="MULTIPLEX_PARAMS") public File OUTPUT_PREFIX

### RUN_BARCODE

@Argument(doc="The barcode of the run. Prefixed to read names.") public String RUN_BARCODE

### MACHINE_NAME

@Argument(doc="The name of the machine on which the run was sequenced; required if emitting Casava1.8-style read name headers", optional=true) public String MACHINE_NAME

### FLOWCELL_BARCODE

@Argument(doc="The barcode of the flowcell that was sequenced; required if emitting Casava1.8-style read name headers", optional=true) public String FLOWCELL_BARCODE

### MULTIPLEX_PARAMS

@Argument(doc="Tab-separated file for creating all output FASTQs demultiplexed by barcode for a lane with single IlluminaBasecallsToFastq invocation. The columns are OUTPUT_PREFIX, and BARCODE_1, BARCODE_2 ... BARCODE_X where X = number of barcodes per cluster (optional). Row with BARCODE_1 set to 'N' is used to specify an output_prefix for no barcode match.", mutex="OUTPUT_PREFIX") public File MULTIPLEX_PARAMS

### ADAPTERS_TO_CHECK

@Argument(doc="Which adapters to look for in the reads. The default value is null, meaning that no adapters will be looked for in the reads.", optional=true) public List<IlluminaUtil.IlluminaAdapterPair> ADAPTERS_TO_CHECK

### FIVE_PRIME_ADAPTER

@Argument(doc="For specifying adapters other than standard Illumina", optional=true) public String FIVE_PRIME_ADAPTER

### THREE_PRIME_ADAPTER

@Argument(doc="For specifying adapters other than standard Illumina", optional=true) public String THREE_PRIME_ADAPTER

### NUM_PROCESSORS

@Argument(doc="The number of threads to run 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 Integer NUM_PROCESSORS

### FIRST_TILE

@Argument(doc="If set, this is the first tile to be processed (used for debugging). Note that tiles are not processed in numerical order.", optional=true) public Integer FIRST_TILE

### TILE_LIMIT

@Argument(doc="If set, process no more than this many tiles (used for debugging).", optional=true) public Integer TILE_LIMIT

### APPLY_EAMSS_FILTER

@Argument(doc="Apply EAMSS filtering to identify inappropriately quality scored bases towards the ends of reads and convert their quality scores to Q2.") public boolean APPLY_EAMSS_FILTER

### FORCE_GC

@Argument(doc="If true, call System.gc() periodically. This is useful in cases in which the -Xmx value passed is larger than the available memory.") public Boolean FORCE_GC

### SORT

@Argument(doc="If true, the output records are sorted by read name. Otherwise they are output in the same order that the data was produced on the sequencer (ordered by tile and position).") public Boolean SORT

### MAX_READS_IN_RAM_PER_TILE

@Deprecated @Argument(doc="Configure SortingCollections to store this many records before spilling to disk. For an indexed run, each SortingCollection gets this value/number of indices. Deprecated: use `MAX_RECORDS_IN_RAM`") public int MAX_READS_IN_RAM_PER_TILE
Deprecated.

### INCLUDE_NON_PF_READS

@Argument(doc="Whether to include non-PF reads", shortName="NONPF", optional=true) public boolean INCLUDE_NON_PF_READS

### IGNORE_UNEXPECTED_BARCODES

@Argument(doc="Whether to ignore reads whose barcodes are not found in MULTIPLEX_PARAMS. Useful when outputting FASTQs for only a subset of the barcodes in a lane.", shortName="INGORE_UNEXPECTED") public boolean IGNORE_UNEXPECTED_BARCODES

### READ_NAME_FORMAT

@Argument(doc="The read name header formatting to emit. Casava1.8 formatting has additional information beyond Illumina, including: the passing-filter flag value for the read, the flowcell name, and the sequencer name.") public IlluminaBasecallsToFastq.ReadNameFormat READ_NAME_FORMAT

### MATCH_BARCODES_INLINE

@Argument(doc="If true, match barcodes on the fly. Otherwise parse the barcodes from the barcodes file.") public Boolean MATCH_BARCODES_INLINE

### TRIMMING_QUALITY

@Argument(doc="The quality to use as a threshold for trimming.", optional=true) public Integer TRIMMING_QUALITY

### MIN_TRIMMED_LENGTH

@Argument(doc="The minimum length for a trimmed read. If trimming would create a smaller read, then trim to this length instead", optional=true) public Integer MIN_TRIMMED_LENGTH

## Constructor Details

### IlluminaBasecallsToFastq

public IlluminaBasecallsToFastq()

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