public abstract class CollectTargetedMetrics<METRIC extends MultilevelMetrics,COLLECTOR extends TargetMetricsCollector<METRIC>> extends CommandLineProgram
Both CollectTargetedPCRMetrics and CollectHsSelection share virtually identical program structures except for the name of their targeting mechanisms (e.g. bait set or amplicon set). The shared behavior of these programs is encapsulated in CollectTargetedMetrics which is then subclassed by CollectHsMetrics and CollectTargetedPcrMetrics.
This program verifies the input parameters to TargetMetricsCollector and converts all files to the format desired by TargetMetricsCollector. Then it instantiates a TargetMetricsCollector and collects metric information for all reads in the INPUT sam file.
Modifier and Type | Field and Description |
---|---|
boolean |
CLIP_OVERLAPPING_READS |
int |
COVERAGE_CAP |
java.io.File |
INPUT |
java.util.Set<MetricAccumulationLevel> |
METRIC_ACCUMULATION_LEVEL |
int |
MINIMUM_BASE_QUALITY |
int |
MINIMUM_MAPPING_QUALITY |
int |
NEAR_DISTANCE |
java.io.File |
OUTPUT |
java.io.File |
PER_BASE_COVERAGE |
java.io.File |
PER_TARGET_COVERAGE |
int |
SAMPLE_SIZE |
java.util.List<java.io.File> |
TARGET_INTERVALS |
COMPRESSION_LEVEL, CREATE_INDEX, CREATE_MD5_FILE, GA4GH_CLIENT_SECRETS, MAX_RECORDS_IN_RAM, QUIET, REFERENCE_SEQUENCE, TMP_DIR, VALIDATION_STRINGENCY, VERBOSITY
Constructor and Description |
---|
CollectTargetedMetrics() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.String[] |
customCommandLineValidation()
Put any custom command-line validation in an override of this method.
|
protected int |
doWork()
Asserts that files are readable and writable and then fires off an
HsMetricsCalculator instance to do the real work.
|
protected abstract htsjdk.samtools.util.IntervalList |
getProbeIntervals() |
protected abstract java.lang.String |
getProbeSetName() |
protected abstract COLLECTOR |
makeCollector(java.util.Set<MetricAccumulationLevel> accumulationLevels,
java.util.List<htsjdk.samtools.SAMReadGroupRecord> samRgRecords,
htsjdk.samtools.reference.ReferenceSequenceFile refFile,
java.io.File perTargetCoverage,
java.io.File perBaseCoverage,
htsjdk.samtools.util.IntervalList targetIntervals,
htsjdk.samtools.util.IntervalList probeIntervals,
java.lang.String probeSetName,
int nearProbeDistance)
A factory method for the TargetMetricsCollector to use this time.
|
getCommandLine, getCommandLineParser, getDefaultHeaders, getMetricsFile, getNestedOptions, getNestedOptionsForHelp, getStandardUsagePreamble, getVersion, instanceMain, instanceMainWithExit, parseArgs, setDefaultHeaders
@Option(shortName="TI", doc="An interval list file that contains the locations of the targets.", minElements=1) public java.util.List<java.io.File> TARGET_INTERVALS
@Option(shortName="O", doc="The output file to write the metrics to.") public java.io.File OUTPUT
@Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.") public java.util.Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL
@Option(optional=true, doc="An optional file to output per target coverage information to.") public java.io.File PER_TARGET_COVERAGE
@Option(optional=true, doc="An optional file to output per base coverage information to. The per-base file contains one line per target base and can grow very large. It is not recommended for use with large target sets.") public java.io.File PER_BASE_COVERAGE
@Option(optional=true, doc="The maximum distance between a read and the nearest probe/bait/amplicon for the read to be considered \'near probe\' and included in percent selected.") public int NEAR_DISTANCE
@Option(shortName="MQ", doc="Minimum mapping quality for a read to contribute coverage.", overridable=true) public int MINIMUM_MAPPING_QUALITY
@Option(shortName="Q", doc="Minimum base quality for a base to contribute coverage.", overridable=true) public int MINIMUM_BASE_QUALITY
@Option(doc="True if we are to clip overlapping reads, false otherwise.", optional=true, overridable=true) public boolean CLIP_OVERLAPPING_READS
@Option(shortName="covMax", doc="Parameter to set a max coverage limit for Theoretical Sensitivity calculations. Default is 200.", optional=true) public int COVERAGE_CAP
protected abstract htsjdk.samtools.util.IntervalList getProbeIntervals()
protected abstract java.lang.String getProbeSetName()
protected abstract COLLECTOR makeCollector(java.util.Set<MetricAccumulationLevel> accumulationLevels, java.util.List<htsjdk.samtools.SAMReadGroupRecord> samRgRecords, htsjdk.samtools.reference.ReferenceSequenceFile refFile, java.io.File perTargetCoverage, java.io.File perBaseCoverage, htsjdk.samtools.util.IntervalList targetIntervals, htsjdk.samtools.util.IntervalList probeIntervals, java.lang.String probeSetName, int nearProbeDistance)
protected int doWork()
doWork
in class CommandLineProgram
protected java.lang.String[] customCommandLineValidation()
CommandLineProgram
customCommandLineValidation
in class CommandLineProgram