use of org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown in project gatk-protected by broadinstitute.
the class GetBayesianHetCoverageIntegrationTest method testMatchedNormalTumorJob.
@Test
public void testMatchedNormalTumorJob() {
final File normalOutputFile = createTempFile("normal-test", ".tsv");
final File tumorOutputFile = createTempFile("tumor-test", ".tsv");
Pulldown tumorHetPulldownExpected, tumorHetPulldownResult;
Pulldown normalHetPulldownExpected, normalHetPulldownResult;
final String[] arguments = { "-" + StandardArgumentDefinitions.REFERENCE_SHORT_NAME, REF_FILE.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.SNP_FILE_SHORT_NAME, SNP_FILE.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.NORMAL_BAM_FILE_SHORT_NAME, NORMAL_BAM_FILE.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.NORMAL_ALLELIC_COUNTS_FILE_SHORT_NAME, normalOutputFile.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.TUMOR_BAM_FILE_SHORT_NAME, TUMOR_BAM_FILE.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.TUMOR_ALLELIC_COUNTS_FILE_SHORT_NAME, tumorOutputFile.getAbsolutePath(), "-" + GetBayesianHetCoverage.READ_DEPTH_THRESHOLD_SHORT_NAME, Integer.toString(10), "-" + GetBayesianHetCoverage.HET_CALLING_STRINGENCY_SHORT_NAME, Double.toString(10.0) };
runCommandLine(arguments);
normalHetPulldownResult = new Pulldown(normalOutputFile, normalHeader);
tumorHetPulldownResult = new Pulldown(tumorOutputFile, tumorHeader);
normalHetPulldownExpected = new Pulldown(normalHeader);
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 12098, 12098), 8, 6, Nucleotide.G, Nucleotide.T, 14, 29.29));
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 14630, 14630), 9, 8, Nucleotide.T, Nucleotide.G, 17, 39.98));
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14689, 14689), 6, 9, Nucleotide.T, Nucleotide.G, 15, 28.60));
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14982, 14982), 6, 5, Nucleotide.G, Nucleotide.C, 11, 24.99));
tumorHetPulldownExpected = new Pulldown(tumorHeader);
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 12098, 12098), 8, 6, Nucleotide.G, Nucleotide.T, 14));
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 14630, 14630), 9, 8, Nucleotide.T, Nucleotide.G, 17));
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14689, 14689), 6, 9, Nucleotide.T, Nucleotide.G, 15));
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14982, 14982), 6, 5, Nucleotide.G, Nucleotide.C, 11));
Assert.assertEquals(normalHetPulldownExpected, normalHetPulldownResult);
Assert.assertEquals(tumorHetPulldownExpected, tumorHetPulldownResult);
}
use of org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown in project gatk by broadinstitute.
the class GetHetCoverageIntegrationTest method testGetHetCoverage.
@Test
public void testGetHetCoverage() {
final String[] arguments = { "-" + ExomeStandardArgumentDefinitions.NORMAL_BAM_FILE_SHORT_NAME, NORMAL_BAM_FILE.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.TUMOR_BAM_FILE_SHORT_NAME, TUMOR_BAM_FILE.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.SNP_FILE_SHORT_NAME, SNP_FILE.getAbsolutePath(), "-" + StandardArgumentDefinitions.REFERENCE_SHORT_NAME, REF_FILE.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.NORMAL_ALLELIC_COUNTS_FILE_SHORT_NAME, normalOutputFile.getAbsolutePath(), "-" + ExomeStandardArgumentDefinitions.TUMOR_ALLELIC_COUNTS_FILE_SHORT_NAME, tumorOutputFile.getAbsolutePath(), // Non-default value of 10, since test data was calculated with 10
"-" + GetHetCoverage.MINIMUM_READ_COUNT_FULL_NAME, Integer.toString(10) };
runCommandLine(arguments);
final Pulldown normalOutputPulldownResult = new Pulldown(normalOutputFile, normalHeader);
final Pulldown tumorOutputPulldownResult = new Pulldown(tumorOutputFile, tumorHeader);
Assert.assertEquals(normalHetPulldownExpected, normalOutputPulldownResult);
Assert.assertEquals(tumorHetPulldownExpected, tumorOutputPulldownResult);
}
use of org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown in project gatk by broadinstitute.
the class GetHetCoverageIntegrationTest method initHeaders.
@BeforeClass
public void initHeaders() throws IOException {
try (final SamReader normalBamReader = SamReaderFactory.makeDefault().open(NORMAL_BAM_FILE);
final SamReader tumorBamReader = SamReaderFactory.makeDefault().open(TUMOR_BAM_FILE)) {
normalHeader = normalBamReader.getFileHeader();
tumorHeader = tumorBamReader.getFileHeader();
normalHetPulldownExpected = new Pulldown(normalHeader);
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 11522, 11522), 7, 4));
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 12098, 12098), 8, 6));
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 14630, 14630), 9, 8));
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14689, 14689), 6, 9));
normalHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14982, 14982), 6, 5));
tumorHetPulldownExpected = new Pulldown(tumorHeader);
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 11522, 11522), 7, 4));
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 12098, 12098), 8, 6));
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("1", 14630, 14630), 9, 8));
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14689, 14689), 6, 9));
tumorHetPulldownExpected.add(new AllelicCount(new SimpleInterval("2", 14982, 14982), 6, 5));
}
}
use of org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown in project gatk-protected by broadinstitute.
the class GetHetCoverage method doWork.
@Override
protected Object doWork() {
//if tumor arguments are missing, throw exception (and do not even get normal pulldown)
final boolean doTumorPulldown;
if (tumorHetOutputFile != null && tumorBAMFile != null) {
doTumorPulldown = true;
} else if ((tumorHetOutputFile == null) != (tumorBAMFile == null)) {
throw new CommandLineException("Must specify both BAM and output files for tumor pulldown.");
} else {
doTumorPulldown = false;
}
final HetPulldownCalculator hetPulldown = new HetPulldownCalculator(REFERENCE_ARGUMENTS.getReferenceFile(), snpFile, minimumMappingQuality, minimumBaseQuality, VALIDATION_STRINGENCY);
logger.info("Getting normal het pulldown...");
final Pulldown normalHetPulldown = hetPulldown.getNormal(normalBAMFile, pvalThreshold, minimumRawReads);
normalHetPulldown.write(normalHetOutputFile, AllelicCountTableVerbosity.BASIC);
logger.info("Normal het pulldown written to " + normalHetOutputFile.toString());
if (doTumorPulldown) {
final IntervalList normalHetIntervals = normalHetPulldown.getIntervals();
logger.info("Getting tumor het pulldown...");
final Pulldown tumorHetPulldown = hetPulldown.getTumor(tumorBAMFile, normalHetIntervals, minimumRawReads);
tumorHetPulldown.write(tumorHetOutputFile, AllelicCountTableVerbosity.BASIC);
logger.info("Tumor het pulldown written to " + tumorHetOutputFile.toString());
}
return "SUCCESS";
}
use of org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown in project gatk-protected by broadinstitute.
the class GetBayesianHetCoverage method runNormalOnly.
/**
* The normal-only workflow
*/
private void runNormalOnly() {
final BayesianHetPulldownCalculator normalHetPulldownCalculator;
final Pulldown normalHetPulldown;
normalHetPulldownCalculator = new BayesianHetPulldownCalculator(REFERENCE_ARGUMENTS.getReferenceFile(), IntervalList.fromFile(snpFile), minimumMappingQuality, minimumBaseQuality, readDepthThreshold, VALIDATION_STRINGENCY, errorProbabilityAdjustmentFactor, new BalancedHeterozygousPileupPriorModel());
logger.info("Calculating the Het pulldown from the normal BAM file using the BALANCED prior...");
normalHetPulldown = normalHetPulldownCalculator.getHetPulldown(normalBamFile, hetCallingStringency);
logger.info("Writing Het pulldown from normal reads to " + normalHetOutputFile.toString());
normalHetPulldown.write(normalHetOutputFile, AllelicCountTableColumn.AllelicCountTableVerbosity.FULL);
}
Aggregations