Replace VariantContextWriterFactory with VariantContextWriterBuilder
This commit is contained in:
parent
7c8f97fdb9
commit
68b6f8f638
|
|
@ -77,8 +77,7 @@ import htsjdk.variant.variantcontext.VariantContext;
|
||||||
import htsjdk.variant.variantcontext.VariantContextBuilder;
|
import htsjdk.variant.variantcontext.VariantContextBuilder;
|
||||||
import htsjdk.variant.variantcontext.VariantContextUtils;
|
import htsjdk.variant.variantcontext.VariantContextUtils;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.SortingVariantContextWriter;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -186,7 +185,7 @@ public class HaplotypeResolver extends RodWalker<Integer, Integer> {
|
||||||
headerLines.add(new VCFInfoHeaderLine(STATUS_KEY, 1, VCFHeaderLineType.String, "Extent to which records match"));
|
headerLines.add(new VCFInfoHeaderLine(STATUS_KEY, 1, VCFHeaderLineType.String, "Extent to which records match"));
|
||||||
final VCFHeader vcfHeader = new VCFHeader(headerLines, Collections.<String>emptySet());
|
final VCFHeader vcfHeader = new VCFHeader(headerLines, Collections.<String>emptySet());
|
||||||
baseWriter.writeHeader(vcfHeader);
|
baseWriter.writeHeader(vcfHeader);
|
||||||
writer = VariantContextWriterFactory.sortOnTheFly(baseWriter, ACTIVE_WINDOW);
|
writer = new SortingVariantContextWriter(baseWriter, ACTIVE_WINDOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) {
|
public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) {
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ import org.broadinstitute.gatk.utils.pileup.PileupElement;
|
||||||
import org.broadinstitute.gatk.utils.pileup.ReadBackedPileup;
|
import org.broadinstitute.gatk.utils.pileup.ReadBackedPileup;
|
||||||
import htsjdk.variant.variantcontext.*;
|
import htsjdk.variant.variantcontext.*;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.SortingVariantContextWriter;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -257,7 +257,7 @@ public class ReadBackedPhasing extends RodWalker<PhasingStatsAndOutput, PhasingS
|
||||||
But, NOTE that map() is careful to pass out a list of records to be written that FIRST includes any records discarded due to having reached mostDownstreamLocusReached,
|
But, NOTE that map() is careful to pass out a list of records to be written that FIRST includes any records discarded due to having reached mostDownstreamLocusReached,
|
||||||
and only THEN records located at mostDownstreamLocusReached. The opposite order in map() would violate the startDistance limits imposed when contracting SortingVCFWriter with (2 * cacheWindow).
|
and only THEN records located at mostDownstreamLocusReached. The opposite order in map() would violate the startDistance limits imposed when contracting SortingVCFWriter with (2 * cacheWindow).
|
||||||
*/
|
*/
|
||||||
writer = VariantContextWriterFactory.sortOnTheFly(writer, 2 * cacheWindow, writer != origWriter);
|
writer = new SortingVariantContextWriter(writer, 2 * cacheWindow, writer != origWriter);
|
||||||
|
|
||||||
// setup the header fields:
|
// setup the header fields:
|
||||||
Set<VCFHeaderLine> hInfo = new HashSet<VCFHeaderLine>();
|
Set<VCFHeaderLine> hInfo = new HashSet<VCFHeaderLine>();
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ import htsjdk.variant.bcf2.BCF2Utils;
|
||||||
import htsjdk.variant.variantcontext.VariantContext;
|
import htsjdk.variant.variantcontext.VariantContext;
|
||||||
import htsjdk.variant.variantcontext.writer.Options;
|
import htsjdk.variant.variantcontext.writer.Options;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
|
||||||
import htsjdk.variant.vcf.VCFHeader;
|
import htsjdk.variant.vcf.VCFHeader;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
@ -82,8 +82,11 @@ public class VariantContextWriterStorage implements Storage<VariantContextWriter
|
||||||
else if ( stub.getOutputStream() != null ) {
|
else if ( stub.getOutputStream() != null ) {
|
||||||
this.file = null;
|
this.file = null;
|
||||||
this.stream = stub.getOutputStream();
|
this.stream = stub.getOutputStream();
|
||||||
writer = VariantContextWriterFactory.create(stream,
|
writer = new VariantContextWriterBuilder()
|
||||||
stub.getMasterSequenceDictionary(), stub.getWriterOptions(false));
|
.setOutputVCFStream(stream)
|
||||||
|
.setReferenceDictionary(stub.getMasterSequenceDictionary())
|
||||||
|
.setOptions(stub.getWriterOptions(false))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw new ReviewedGATKException("Unable to create target to which to write; storage was provided with neither a file nor a stream.");
|
throw new ReviewedGATKException("Unable to create target to which to write; storage was provided with neither a file nor a stream.");
|
||||||
|
|
@ -131,22 +134,31 @@ public class VariantContextWriterStorage implements Storage<VariantContextWriter
|
||||||
throw new UserException.CouldNotCreateOutputFile(file, "Unable to open target output stream", ex);
|
throw new UserException.CouldNotCreateOutputFile(file, "Unable to open target output stream", ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
EnumSet<Options> options = stub.getWriterOptions(indexOnTheFly);
|
final VariantContextWriterBuilder.OutputType fileOutputType = allowCompressed && stub.isCompressed() ?
|
||||||
VariantContextWriter writer = VariantContextWriterFactory.create(file, this.stream, stub.getMasterSequenceDictionary(), stub.getIndexCreator(), options);
|
VariantContextWriterBuilder.OutputType.BLOCK_COMPRESSED_VCF : VariantContextWriterBuilder.OutputType.VCF;
|
||||||
|
final EnumSet<Options> options = stub.getWriterOptions(indexOnTheFly);
|
||||||
|
|
||||||
|
VariantContextWriter writer = new VariantContextWriterBuilder()
|
||||||
|
.setOutputFile(file)
|
||||||
|
.setOutputFileType(fileOutputType)
|
||||||
|
.setReferenceDictionary(stub.getMasterSequenceDictionary())
|
||||||
|
.setIndexCreator(stub.getIndexCreator())
|
||||||
|
.setOptions(options)
|
||||||
|
.build();
|
||||||
|
|
||||||
// if the stub says to test BCF, create a secondary writer to BCF and an 2 way out writer to send to both
|
// if the stub says to test BCF, create a secondary writer to BCF and an 2 way out writer to send to both
|
||||||
// TODO -- remove me when argument generateShadowBCF is removed
|
// TODO -- remove me when argument generateShadowBCF is removed
|
||||||
if ( stub.alsoWriteBCFForTest() && ! VariantContextWriterFactory.isBCFOutput(file, options)) {
|
if ( stub.alsoWriteBCFForTest() &&
|
||||||
|
! (options.contains(Options.FORCE_BCF) || file != null && file.getName().contains(".bcf")) ) {
|
||||||
final File bcfFile = BCF2Utils.shadowBCF(file);
|
final File bcfFile = BCF2Utils.shadowBCF(file);
|
||||||
if ( bcfFile != null ) {
|
if ( bcfFile != null ) {
|
||||||
FileOutputStream bcfStream;
|
final VariantContextWriter bcfWriter = new VariantContextWriterBuilder()
|
||||||
try {
|
.setOutputFile(bcfFile)
|
||||||
bcfStream = new FileOutputStream(bcfFile);
|
.setOutputFileType(VariantContextWriterBuilder.OutputType.BCF)
|
||||||
} catch (FileNotFoundException e) {
|
.setReferenceDictionary(stub.getMasterSequenceDictionary())
|
||||||
throw new RuntimeException(bcfFile + ": Unable to create BCF writer", e);
|
.setOptions(options)
|
||||||
}
|
.build();
|
||||||
|
|
||||||
VariantContextWriter bcfWriter = VariantContextWriterFactory.create(bcfFile, bcfStream, stub.getMasterSequenceDictionary(), stub.getIndexCreator(), options);
|
|
||||||
writer = new TestWriter(writer, bcfWriter);
|
writer = new TestWriter(writer, bcfWriter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ import org.broadinstitute.gatk.engine.GATKVCFUtils;
|
||||||
import htsjdk.variant.variantcontext.VariantContext;
|
import htsjdk.variant.variantcontext.VariantContext;
|
||||||
import htsjdk.variant.variantcontext.writer.Options;
|
import htsjdk.variant.variantcontext.writer.Options;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
|
||||||
import htsjdk.variant.vcf.VCFHeader;
|
import htsjdk.variant.vcf.VCFHeader;
|
||||||
import htsjdk.variant.vcf.VCFHeaderLine;
|
import htsjdk.variant.vcf.VCFHeaderLine;
|
||||||
|
|
||||||
|
|
@ -216,7 +215,8 @@ public class VariantContextWriterStub implements Stub<VariantContextWriter>, Var
|
||||||
if ( indexOnTheFly) options.add(Options.INDEX_ON_THE_FLY);
|
if ( indexOnTheFly) options.add(Options.INDEX_ON_THE_FLY);
|
||||||
if ( writeFullFormatField ) options.add(Options.WRITE_FULL_FORMAT_FIELD);
|
if ( writeFullFormatField ) options.add(Options.WRITE_FULL_FORMAT_FIELD);
|
||||||
|
|
||||||
if ( forceBCF || (getOutputFile() != null && VariantContextWriterFactory.isBCFOutput(getOutputFile())) )
|
final File file = getOutputFile();
|
||||||
|
if ( forceBCF || (file != null && options.contains(Options.FORCE_BCF) || file != null && file.getName().contains(".bcf")) )
|
||||||
options.add(Options.FORCE_BCF);
|
options.add(Options.FORCE_BCF);
|
||||||
|
|
||||||
return options.isEmpty() ? EnumSet.noneOf(Options.class) : EnumSet.copyOf(options);
|
return options.isEmpty() ? EnumSet.noneOf(Options.class) : EnumSet.copyOf(options);
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ import htsjdk.variant.variantcontext.VariantContext;
|
||||||
import htsjdk.variant.variantcontext.VariantContextComparator;
|
import htsjdk.variant.variantcontext.VariantContextComparator;
|
||||||
import htsjdk.variant.variantcontext.writer.Options;
|
import htsjdk.variant.variantcontext.writer.Options;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -265,11 +265,16 @@ public class CatVariants extends CommandLineProgram {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FileOutputStream outputStream = new FileOutputStream(outputFile);
|
|
||||||
EnumSet<Options> options = EnumSet.of(Options.INDEX_ON_THE_FLY);
|
EnumSet<Options> options = EnumSet.of(Options.INDEX_ON_THE_FLY);
|
||||||
IndexCreator idxCreator = GATKVCFUtils.makeIndexCreator(variant_index_type, variant_index_parameter, outputFile, ref.getSequenceDictionary());
|
IndexCreator idxCreator = GATKVCFUtils.makeIndexCreator(variant_index_type, variant_index_parameter, outputFile, ref.getSequenceDictionary());
|
||||||
final VariantContextWriter outputWriter = VariantContextWriterFactory.create(outputFile, outputStream, ref.getSequenceDictionary(), idxCreator, options);
|
|
||||||
|
|
||||||
|
final VariantContextWriter outputWriter =
|
||||||
|
new VariantContextWriterBuilder()
|
||||||
|
.setOutputFile(outputFile)
|
||||||
|
.setReferenceDictionary(ref.getSequenceDictionary())
|
||||||
|
.setIndexCreator(idxCreator)
|
||||||
|
.setOptions(options)
|
||||||
|
.build();
|
||||||
boolean firstFile = true;
|
boolean firstFile = true;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
while(!priorityQueue.isEmpty() ){
|
while(!priorityQueue.isEmpty() ){
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ import org.broadinstitute.gatk.utils.help.DocumentedGATKFeature;
|
||||||
import org.broadinstitute.gatk.utils.sam.AlignmentUtils;
|
import org.broadinstitute.gatk.utils.sam.AlignmentUtils;
|
||||||
import htsjdk.variant.variantcontext.*;
|
import htsjdk.variant.variantcontext.*;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.SortingVariantContextWriter;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
@ -194,7 +194,7 @@ public class LeftAlignAndTrimVariants extends RodWalker<Integer, Integer> {
|
||||||
|
|
||||||
baseWriter.writeHeader(new VCFHeader(headerLines, samples));
|
baseWriter.writeHeader(new VCFHeader(headerLines, samples));
|
||||||
|
|
||||||
writer = VariantContextWriterFactory.sortOnTheFly(baseWriter, MAX_INDEL_LENGTH);
|
writer = new SortingVariantContextWriter(baseWriter, MAX_INDEL_LENGTH);
|
||||||
|
|
||||||
referenceWindowStop = getToolkit().getArguments().reference_window_stop;
|
referenceWindowStop = getToolkit().getArguments().reference_window_stop;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ import org.broadinstitute.gatk.utils.exceptions.UserException;
|
||||||
import org.broadinstitute.gatk.utils.help.DocumentedGATKFeature;
|
import org.broadinstitute.gatk.utils.help.DocumentedGATKFeature;
|
||||||
import htsjdk.variant.variantcontext.VariantContext;
|
import htsjdk.variant.variantcontext.VariantContext;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -134,14 +134,20 @@ public class RandomlySplitVariants extends RodWalker<Integer, Integer> {
|
||||||
if(splitToMany){
|
if(splitToMany){
|
||||||
writers = new VariantContextWriter[numOfFiles];
|
writers = new VariantContextWriter[numOfFiles];
|
||||||
for(int i = 0; i<writers.length; i++){
|
for(int i = 0; i<writers.length; i++){
|
||||||
writers[i] = VariantContextWriterFactory.create(new File(baseFileName+".split."+i+".vcf"), getMasterSequenceDictionary());
|
writers[i] = new VariantContextWriterBuilder()
|
||||||
|
.setOutputFile(new File(baseFileName+".split."+i+".vcf"))
|
||||||
|
.setReferenceDictionary(getMasterSequenceDictionary())
|
||||||
|
.build();
|
||||||
writers[i].writeHeader(new VCFHeader(hInfo,samples));
|
writers[i].writeHeader(new VCFHeader(hInfo,samples));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
vcfWriter1.writeHeader(new VCFHeader(hInfo, samples));
|
vcfWriter1.writeHeader(new VCFHeader(hInfo, samples));
|
||||||
vcfWriter2 = VariantContextWriterFactory.create(file2, getMasterSequenceDictionary());
|
vcfWriter2 = new VariantContextWriterBuilder()
|
||||||
|
.setOutputFile(file2)
|
||||||
|
.setReferenceDictionary(getMasterSequenceDictionary())
|
||||||
|
.build();
|
||||||
vcfWriter2.writeHeader(new VCFHeader(hInfo, samples));
|
vcfWriter2.writeHeader(new VCFHeader(hInfo, samples));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ import org.broadinstitute.gatk.engine.GATKVCFUtils;
|
||||||
import org.broadinstitute.gatk.utils.variant.GATKVariantContextUtils;
|
import org.broadinstitute.gatk.utils.variant.GATKVariantContextUtils;
|
||||||
import htsjdk.variant.variantcontext.*;
|
import htsjdk.variant.variantcontext.*;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.SortingVariantContextWriter;
|
||||||
import htsjdk.variant.vcf.VCFHeader;
|
import htsjdk.variant.vcf.VCFHeader;
|
||||||
import htsjdk.variant.vcf.VCFHeaderLine;
|
import htsjdk.variant.vcf.VCFHeaderLine;
|
||||||
|
|
||||||
|
|
@ -100,7 +100,7 @@ public class VariantsToAllelicPrimitives extends RodWalker<Integer, Integer> {
|
||||||
|
|
||||||
baseWriter.writeHeader(new VCFHeader(headerLines, samples));
|
baseWriter.writeHeader(new VCFHeader(headerLines, samples));
|
||||||
|
|
||||||
vcfWriter = VariantContextWriterFactory.sortOnTheFly(baseWriter, 200);
|
vcfWriter = new SortingVariantContextWriter(baseWriter, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) {
|
public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) {
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ import org.broadinstitute.gatk.utils.exceptions.UserException;
|
||||||
import org.broadinstitute.gatk.utils.help.DocumentedGATKFeature;
|
import org.broadinstitute.gatk.utils.help.DocumentedGATKFeature;
|
||||||
import htsjdk.variant.variantcontext.*;
|
import htsjdk.variant.variantcontext.*;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
|
||||||
import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
|
import htsjdk.variant.variantcontext.writer.SortingVariantContextWriter;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -116,7 +116,7 @@ public class VariantsToVCF extends RodWalker<Integer, Integer> {
|
||||||
VariantOverlapAnnotator variantOverlapAnnotator = null;
|
VariantOverlapAnnotator variantOverlapAnnotator = null;
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
vcfwriter = VariantContextWriterFactory.sortOnTheFly(baseWriter, 40, false);
|
vcfwriter = new SortingVariantContextWriter(baseWriter, 40);
|
||||||
variantOverlapAnnotator = new VariantOverlapAnnotator(dbsnp.dbsnp, getToolkit().getGenomeLocParser());
|
variantOverlapAnnotator = new VariantOverlapAnnotator(dbsnp.dbsnp, getToolkit().getGenomeLocParser());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue