Package picard.analysis

# Class CollectMultipleMetrics

java.lang.Object
picard.cmdline.CommandLineProgram
picard.analysis.CollectMultipleMetrics

@DocumentedFeature public class CollectMultipleMetrics extends CommandLineProgram
Class that is designed to instantiate and execute multiple metrics programs that extend SinglePassSamProgram while making only a single pass through the SAM file and supplying each program with the records as it goes.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`CollectMultipleMetrics.Program`
`static interface`
`CollectMultipleMetrics.ProgramInterface`

## Field Summary

Fields
Modifier and Type
Field
Description
`boolean`
`ASSUME_SORTED`
`File`
`DB_SNP`
`List<String>`
`EXTRA_ARGUMENT`
`String`
`FILE_EXTENSION`
`Set<String>`
`IGNORE_SEQUENCE`
`boolean`
`INCLUDE_UNPAIRED`
`File`
`INPUT`
`File`
`INTERVALS`
`Set<MetricAccumulationLevel>`
`METRIC_ACCUMULATION_LEVEL`
`String`
`OUTPUT`
`Set<CollectMultipleMetrics.Program>`
`PROGRAM`
`File`
`REF_FLAT`
`int`
`STOP_AFTER`

### 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
`CollectMultipleMetrics()`

## Method Summary

Modifier and Type
Method
Description
`protected String[]`
`customCommandLineValidation()`
Put any custom command-line validation in an override of this method.
`int`
`doWork()`
Do the work after command line has been parsed.
`void`
`setProgramsToRun(Collection<CollectMultipleMetrics.ProgramInterface> programsToRun)`
Use this method when invoking CollectMultipleMetrics programmatically to run programs other than the ones available via enum.

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

### INPUT

@Argument(shortName="I", doc="Input SAM or BAM file.") public File INPUT

### ASSUME_SORTED

@Argument(shortName="AS", doc="If true (default), then the sort order in the header file will be ignored.") public boolean ASSUME_SORTED

### STOP_AFTER

@Argument(doc="Stop after processing N reads, mainly for debugging.") public int STOP_AFTER

### OUTPUT

@Argument(shortName="O", doc="Base name of output files.") public String OUTPUT

### METRIC_ACCUMULATION_LEVEL

@Argument(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.") public Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL

### FILE_EXTENSION

@Argument(shortName="EXT", doc="Append the given file extension to all metric file names (ex. OUTPUT.insert_size_metrics.EXT). None if null", optional=true) public String FILE_EXTENSION

### PROGRAM

@Argument(doc="Set of metrics programs to apply during the pass through the SAM file.") public Set<CollectMultipleMetrics.Program> PROGRAM

### INTERVALS

@Argument(doc="An optional list of intervals to restrict analysis to. Only pertains to some of the PROGRAMs. Programs whose stand-alone CLP does not have an INTERVALS argument will silently ignore this argument.", optional=true) public File INTERVALS

### DB_SNP

@Argument(doc="VCF format dbSNP file, used to exclude regions around known polymorphisms from analysis by some PROGRAMs; PROGRAMs whose CLP doesn\'t allow for this argument will quietly ignore it.", optional=true) public File DB_SNP

### REF_FLAT

@Argument(doc="Gene annotations in refFlat form. Format described here: http://genome.ucsc.edu/goldenPath/gbdDescriptionsOld.html#RefFlat", optional=true) public File REF_FLAT

### IGNORE_SEQUENCE

@Argument(doc="If a read maps to a sequence specified with this option, all the bases in the read are counted as ignored bases.", optional=true) public Set<String> IGNORE_SEQUENCE

### INCLUDE_UNPAIRED

@Argument(shortName="UNPAIRED", doc="Include unpaired reads in CollectSequencingArtifactMetrics. If set to true then all paired reads will be included as well - MINIMUM_INSERT_SIZE and MAXIMUM_INSERT_SIZE will be ignored in CollectSequencingArtifactMetrics.") public boolean INCLUDE_UNPAIRED

### EXTRA_ARGUMENT

@Argument(doc="extra arguments to the various tools can be specified using the following format:<PROGRAM>::<ARGUMENT_AND_VALUE> where <PROGRAM> is one of the programs specified in PROGRAM, and <ARGUMENT_AND_VALUE> are the argument and value that you\'d like to specify as you would on the command line. For example, to change the HISTOGRAM_WIDTH in CollectInsertSizeMetrics to 200, use:\n \"EXTRA_ARGUMENT=CollectInsertSizeMetrics::HISTOGRAM_WIDTH=200\"\n or, in the new parser:--EXTRA_ARGUMENT \"CollectInsertSizeMetrics::--HISTOGRAM_WIDTH 200\"\n (Quotes are required to avoid the shell from separating this into two arguments.) Note that the following arguments cannot be modified on a per-program level: INPUT, REFERENCE_SEQUENCE, ASSUME_SORTED, and STOP_AFTER. Providing them in an EXTRA_ARGUMENT will _not_ result in an error, but they will be silently ignored. ", optional=true) public List<String> EXTRA_ARGUMENT

## Constructor Details

### CollectMultipleMetrics

public CollectMultipleMetrics()

## Method Details

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

### setProgramsToRun

public void setProgramsToRun(Collection<CollectMultipleMetrics.ProgramInterface> programsToRun)
Use this method when invoking CollectMultipleMetrics programmatically to run programs other than the ones available via enum. This must be called before doWork().

### doWork

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