Search in sources :

Example 16 with Pulldown

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);
}
Also used : Pulldown(org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown) SimpleInterval(org.broadinstitute.hellbender.utils.SimpleInterval) File(java.io.File) AllelicCount(org.broadinstitute.hellbender.tools.exome.alleliccount.AllelicCount) Test(org.testng.annotations.Test) CommandLineProgramTest(org.broadinstitute.hellbender.CommandLineProgramTest)

Example 17 with Pulldown

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);
}
Also used : Pulldown(org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown) Test(org.testng.annotations.Test) CommandLineProgramTest(org.broadinstitute.hellbender.CommandLineProgramTest)

Example 18 with Pulldown

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));
    }
}
Also used : SamReader(htsjdk.samtools.SamReader) Pulldown(org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown) SimpleInterval(org.broadinstitute.hellbender.utils.SimpleInterval) AllelicCount(org.broadinstitute.hellbender.tools.exome.alleliccount.AllelicCount) BeforeClass(org.testng.annotations.BeforeClass)

Example 19 with Pulldown

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";
}
Also used : Pulldown(org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown) IntervalList(htsjdk.samtools.util.IntervalList) HetPulldownCalculator(org.broadinstitute.hellbender.tools.exome.pulldown.HetPulldownCalculator)

Example 20 with Pulldown

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);
}
Also used : Pulldown(org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown) BalancedHeterozygousPileupPriorModel(org.broadinstitute.hellbender.tools.exome.pulldown.BalancedHeterozygousPileupPriorModel) BayesianHetPulldownCalculator(org.broadinstitute.hellbender.tools.exome.pulldown.BayesianHetPulldownCalculator)

Aggregations

Pulldown (org.broadinstitute.hellbender.tools.exome.pulldown.Pulldown)20 CommandLineProgramTest (org.broadinstitute.hellbender.CommandLineProgramTest)10 Test (org.testng.annotations.Test)10 AllelicCount (org.broadinstitute.hellbender.tools.exome.alleliccount.AllelicCount)8 SimpleInterval (org.broadinstitute.hellbender.utils.SimpleInterval)8 File (java.io.File)6 BayesianHetPulldownCalculator (org.broadinstitute.hellbender.tools.exome.pulldown.BayesianHetPulldownCalculator)6 BalancedHeterozygousPileupPriorModel (org.broadinstitute.hellbender.tools.exome.pulldown.BalancedHeterozygousPileupPriorModel)4 SamReader (htsjdk.samtools.SamReader)2 IntervalList (htsjdk.samtools.util.IntervalList)2 HetPulldownCalculator (org.broadinstitute.hellbender.tools.exome.pulldown.HetPulldownCalculator)2 HeterogeneousHeterozygousPileupPriorModel (org.broadinstitute.hellbender.tools.exome.pulldown.HeterogeneousHeterozygousPileupPriorModel)2 BeforeClass (org.testng.annotations.BeforeClass)2