/** * 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 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; }
@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; }