/** * As {@link #createSAMFileWriter(String, org.broadinstitute.gatk.engine.GenomeAnalysisEngine)}, but also sets the header */ public static SAMFileWriter createSAMFileWriter(final String file, final GenomeAnalysisEngine engine, final SAMFileHeader header) { final SAMFileWriterStub output = (SAMFileWriterStub) createSAMFileWriter(file, engine); output.writeHeader(header); return output; }
public SAMFileWriterStorage( SAMFileWriterStub stub, File file ) { this.referenceFasta = stub.getReferenceFile(); this.file = file; SAMFileWriterFactory factory = new SAMFileWriterFactory(); if (stub.getFileHeader().getSortOrder().equals(SAMFileHeader.SortOrder.coordinate) && stub.getIndexOnTheFly()) factory.setCreateIndex(true); if (stub.getGenerateMD5()) factory.setCreateMd5File(true); if(stub.getMaxRecordsInRam() != null) factory.setMaxRecordsInRam(stub.getMaxRecordsInRam()); if(stub.getOutputFile() != null) { try { if (stub.getOutputFile().getName().toLowerCase().endsWith(".cram")) { this.writer = createCRAMWriter(factory, stub.getFileHeader(), file, this.referenceFasta); } else { this.writer = createBAMWriter(factory,stub.getFileHeader(),stub.isPresorted(),file,stub.getCompressionLevel()); else if(stub.getOutputStream() != null){ this.writer = factory.makeSAMWriter( stub.getFileHeader(), stub.isPresorted(), stub.getOutputStream()); if ( stub.simplifyBAM() ) { this.writer = new SimplifyingSAMFileWriter(this.writer);
/** * Creates a SAMFileWriter using all of the features currently set in the engine (command line arguments, ReadTransformers, etc) * @param file the filename to write to * @param engine the engine * @return a SAMFileWriter with the correct options set */ public static SAMFileWriter createSAMFileWriter(final String file, final GenomeAnalysisEngine engine) { final SAMFileWriterStub output = new SAMFileWriterStub(engine, new File(file)); output.processArguments(engine.getArguments()); return output; }
@Override public Map<String, SAMFileWriter> reduceInit() { HashMap<String, SAMFileHeader> headers = new HashMap<>(); for ( SAMReadGroupRecord readGroup : this.getToolkit().getSAMFileHeader().getReadGroups()) { final String sample = readGroup.getSample(); if ( ! headers.containsKey(sample) ) { SAMFileHeader header = duplicateSAMFileHeader(this.getToolkit().getSAMFileHeader()); logger.debug(String.format("Creating BAM header for sample %s", sample)); ArrayList<SAMReadGroupRecord> readGroups = new ArrayList<>(); header.setReadGroups(readGroups); headers.put(sample, header); } SAMFileHeader header = headers.get(sample); List<SAMReadGroupRecord> newReadGroups = new ArrayList<>(header.getReadGroups()); newReadGroups.add(readGroup); header.setReadGroups(newReadGroups); } HashMap<String, SAMFileWriter> outputs = new HashMap<>(); final OutputTracker outputTracker = new DirectOutputTracker(); for ( Map.Entry<String, SAMFileHeader> elt : headers.entrySet() ) { final String sample = elt.getKey(); final String filename = outputRoot + sample + ".bam"; logger.info(String.format("Creating BAM output file %s for sample %s", filename, sample)); final SAMFileWriter output = SAMFileWriterStub.createSAMFileWriter(filename, getToolkit(), elt.getValue()); outputs.put(sample, output); outputTracker.addOutput( (SAMFileWriterStub) output); } return outputs; }
private static boolean outputIsStdout(final Object out) { if ( out == null ) { return false; } else if ( out instanceof SAMFileWriterStub ) { return ((SAMFileWriterStub)out).getOutputStream() != System.out; } else if ( out instanceof VariantContextWriterStub ) { return ((VariantContextWriterStub)out).getOutputStream() == System.out; } else if ( out instanceof OutputStreamStub ) { return ((OutputStreamStub)out).getOutputStream() == System.out; } return false; }
@Override public Object createTypeDefault(ParsingEngine parsingEngine,ArgumentSource source, Type type) { if(source.isRequired() || !source.defaultsToStdout()) throw new ReviewedGATKException("BUG: tried to create type default for argument type descriptor that can't support a type default."); SAMFileWriterStub stub = new SAMFileWriterStub(engine,defaultOutputStream); engine.addOutput(stub); return stub; }
public SAMFileWriterStorage( SAMFileWriterStub stub ) { this(stub,stub.getOutputFile()); }
final SAMFileWriter writer = SAMFileWriterStub.createSAMFileWriter("assemblyFailure.bam", getToolkit()); new DirectOutputTracker().addOutput((SAMFileWriterStub) writer); for ( final GATKSAMRecord read : activeRegion.getReads() ) {
@Override public Object parse( ParsingEngine parsingEngine, ArgumentSource source, Type type, ArgumentMatches matches ) { // Extract all possible parameters that could be passed to a BAM file writer? ArgumentDefinition bamArgumentDefinition = createDefaultArgumentDefinition(source); ArgumentMatchValue writerFileName = getArgumentValue( bamArgumentDefinition, matches ); // Create the stub SAMFileWriterStub stub = null; // stub = new SAMFileWriterStub(engine, defaultOutputStream); if (writerFileName != null && writerFileName.asFile() != null ) { stub = new SAMFileWriterStub(engine, writerFileName.asFile()); // WARNING: Side effects required by engine! parsingEngine.addTags(stub,getArgumentTags(matches)); engine.addOutput(stub); } return stub; }
final SAMFileWriter writer = SAMFileWriterStub.createSAMFileWriter("assemblyFailure.bam", getToolkit()); new DirectOutputTracker().addOutput((SAMFileWriterStub) writer); for ( final GATKSAMRecord read : activeRegion.getReads() ) {