use of org.broadinstitute.hellbender.tools.exome.conversion.allelicbalancecaller.CNLOHCaller in project gatk by broadinstitute.
the class ConvertACNVResults method runPipeline.
@Override
protected void runPipeline(final JavaSparkContext ctx) {
final String originalLogLevel = (ctx.getLocalProperty("logLevel") != null) ? ctx.getLocalProperty("logLevel") : "INFO";
ctx.setLogLevel("WARN");
final CNLOHCaller cnlohCaller = new CNLOHCaller();
cnlohCaller.setRhoThreshold(rhoThreshold);
final List<ACNVModeledSegment> segments = SegmentUtils.readACNVModeledSegmentFile(new File(segmentsFile));
String sampleName = determineSampleName(new File(segmentsFile));
// Create the outputdir
try {
FileUtils.forceMkdir(outputDir);
} catch (final IOException ioe) {
throw new UserException("Cannot create " + outputDir + ". Does a file (not directory) exist with the same name? Do you have access to create?", ioe);
}
final Genome genome = new Genome(targetCoveragesFile, snpCountsFile);
// Make the calls
logger.info("Making the balanced-segment (and CNLoH) calls...");
final List<AllelicCalls> calls = cnlohCaller.makeCalls(segments, numIterations, ctx);
// Write updated ACNV file with calls
logger.info("Writing updated ACNV file with calls ...");
final File finalACNVModeledSegmentsFile = new File(outputDir, getSegmentsBaseFilename() + "." + BALANCED_SEG_FILE_TAG + ".seg");
SegmentUtils.writeCnLoHACNVModeledSegmentFile(finalACNVModeledSegmentsFile, calls, genome);
// write file for GATK CNV formatted seg file
logger.info("Writing file with same output format as GATK CNV...");
final File finalModeledSegmentsFileAsGatkCNV = new File(outputDir, getSegmentsBaseFilename() + "." + GATK_SEG_FILE_TAG + ".seg");
SegmentUtils.writeModeledSegmentFile(finalModeledSegmentsFileAsGatkCNV, ACNVModeledSegmentConversionUtils.convertACNVModeledSegmentsToModeledSegments(segments, genome), sampleName);
//write file for ACS-compatible output to help Broad CGA
logger.info("Writing file with same output format as Broad CGA Allelic CapSeg ...");
final File finalACSModeledSegmentsFile = new File(outputDir, getSegmentsBaseFilename() + "." + CGA_ACS_SEG_FILE_TAG + ".seg");
ACSModeledSegmentUtils.writeACNVModeledSegmentFileAsAllelicCapSegFile(finalACSModeledSegmentsFile, calls, genome);
//write files for TITAN-compatible output to help Broad CGA
logger.info("Writing het file with input format for TITAN ...");
final File finalTitanHetFile = new File(outputDir, getSegmentsBaseFilename() + "." + TITAN_HET_FILE_TAG + ".tsv");
TitanFileConverter.convertHetPulldownToTitanHetFile(snpCountsFile, finalTitanHetFile);
logger.info("Writing tangent-normalized target CR estimates with input format for TITAN ...");
final File finalTitanTNFile = new File(outputDir, getSegmentsBaseFilename() + "." + TITAN_TN_FILE_TAG + ".tsv");
TitanFileConverter.convertCRToTitanCovFile(targetCoveragesFile, finalTitanTNFile);
ctx.setLogLevel(originalLogLevel);
logger.info("SUCCESS: CNLoH and splits called for sample " + sampleName + ".");
}
use of org.broadinstitute.hellbender.tools.exome.conversion.allelicbalancecaller.CNLOHCaller in project gatk-protected by broadinstitute.
the class ConvertACNVResults method runPipeline.
@Override
protected void runPipeline(final JavaSparkContext ctx) {
final String originalLogLevel = (ctx.getLocalProperty("logLevel") != null) ? ctx.getLocalProperty("logLevel") : "INFO";
ctx.setLogLevel("WARN");
final CNLOHCaller cnlohCaller = new CNLOHCaller();
cnlohCaller.setRhoThreshold(rhoThreshold);
final List<ACNVModeledSegment> segments = SegmentUtils.readACNVModeledSegmentFile(new File(segmentsFile));
String sampleName = determineSampleName(new File(segmentsFile));
// Create the outputdir
try {
FileUtils.forceMkdir(outputDir);
} catch (final IOException ioe) {
throw new UserException("Cannot create " + outputDir + ". Does a file (not directory) exist with the same name? Do you have access to create?", ioe);
}
final Genome genome = new Genome(targetCoveragesFile, snpCountsFile);
// Make the calls
logger.info("Making the balanced-segment (and CNLoH) calls...");
final List<AllelicCalls> calls = cnlohCaller.makeCalls(segments, numIterations, ctx);
// Write updated ACNV file with calls
logger.info("Writing updated ACNV file with calls ...");
final File finalACNVModeledSegmentsFile = new File(outputDir, getSegmentsBaseFilename() + "." + BALANCED_SEG_FILE_TAG + ".seg");
SegmentUtils.writeCnLoHACNVModeledSegmentFile(finalACNVModeledSegmentsFile, calls, genome);
// write file for GATK CNV formatted seg file
logger.info("Writing file with same output format as GATK CNV...");
final File finalModeledSegmentsFileAsGatkCNV = new File(outputDir, getSegmentsBaseFilename() + "." + GATK_SEG_FILE_TAG + ".seg");
SegmentUtils.writeModeledSegmentFile(finalModeledSegmentsFileAsGatkCNV, ACNVModeledSegmentConversionUtils.convertACNVModeledSegmentsToModeledSegments(segments, genome), sampleName);
//write file for ACS-compatible output to help Broad CGA
logger.info("Writing file with same output format as Broad CGA Allelic CapSeg ...");
final File finalACSModeledSegmentsFile = new File(outputDir, getSegmentsBaseFilename() + "." + CGA_ACS_SEG_FILE_TAG + ".seg");
ACSModeledSegmentUtils.writeACNVModeledSegmentFileAsAllelicCapSegFile(finalACSModeledSegmentsFile, calls, genome);
//write files for TITAN-compatible output to help Broad CGA
logger.info("Writing het file with input format for TITAN ...");
final File finalTitanHetFile = new File(outputDir, getSegmentsBaseFilename() + "." + TITAN_HET_FILE_TAG + ".tsv");
TitanFileConverter.convertHetPulldownToTitanHetFile(snpCountsFile, finalTitanHetFile);
logger.info("Writing tangent-normalized target CR estimates with input format for TITAN ...");
final File finalTitanTNFile = new File(outputDir, getSegmentsBaseFilename() + "." + TITAN_TN_FILE_TAG + ".tsv");
TitanFileConverter.convertCRToTitanCovFile(targetCoveragesFile, finalTitanTNFile);
ctx.setLogLevel(originalLogLevel);
logger.info("SUCCESS: CNLoH and splits called for sample " + sampleName + ".");
}
Aggregations