Bugfix for doNotWriteGenotypes mode
-- Was outputing GT ./. in sites only mode. Fixed
This commit is contained in:
parent
64d4238e2f
commit
d52bc31a47
|
|
@ -62,8 +62,6 @@ class BCF2Writer extends IndexingVariantContextWriter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeHeader(final VCFHeader header) {
|
public void writeHeader(final VCFHeader header) {
|
||||||
this.header = header;
|
|
||||||
|
|
||||||
// create the config offsets map
|
// create the config offsets map
|
||||||
for ( final VCFContigHeaderLine contig : header.getContigLines())
|
for ( final VCFContigHeaderLine contig : header.getContigLines())
|
||||||
contigDictionary.put(contig.getID(), contig.getContigIndex());
|
contigDictionary.put(contig.getID(), contig.getContigIndex());
|
||||||
|
|
@ -78,7 +76,7 @@ class BCF2Writer extends IndexingVariantContextWriter {
|
||||||
// write out the header into a byte stream, get it's length, and write everything to the file
|
// write out the header into a byte stream, get it's length, and write everything to the file
|
||||||
final ByteArrayOutputStream capture = new ByteArrayOutputStream();
|
final ByteArrayOutputStream capture = new ByteArrayOutputStream();
|
||||||
final OutputStreamWriter writer = new OutputStreamWriter(capture);
|
final OutputStreamWriter writer = new OutputStreamWriter(capture);
|
||||||
VCFWriter.writeHeader(header, writer, doNotWriteGenotypes, VCFWriter.getVersionLine(), "BCF2 stream");
|
this.header = VCFWriter.writeHeader(header, writer, doNotWriteGenotypes, VCFWriter.getVersionLine(), "BCF2 stream");
|
||||||
writer.append('\0'); // the header is null terminated by a byte
|
writer.append('\0'); // the header is null terminated by a byte
|
||||||
writer.close();
|
writer.close();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -90,8 +90,9 @@ class VCFWriter extends IndexingVariantContextWriter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeHeader(VCFHeader header) {
|
public void writeHeader(VCFHeader header) {
|
||||||
mHeader = header;
|
// note we need to update the mHeader object after this call because they header
|
||||||
writeHeader(mHeader, mWriter, doNotWriteGenotypes, getVersionLine(), getStreamName());
|
// may have genotypes trimmed out of it, if doNotWriteGenotypes is true
|
||||||
|
mHeader = writeHeader(header, mWriter, doNotWriteGenotypes, getVersionLine(), getStreamName());
|
||||||
|
|
||||||
// determine if we use filters, so we should FORCE pass the records
|
// determine if we use filters, so we should FORCE pass the records
|
||||||
// TODO -- this might not be necessary any longer as we have unfiltered, filtered, and PASS VCs
|
// TODO -- this might not be necessary any longer as we have unfiltered, filtered, and PASS VCs
|
||||||
|
|
@ -105,11 +106,11 @@ class VCFWriter extends IndexingVariantContextWriter {
|
||||||
return VERSION_LINE;
|
return VERSION_LINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void writeHeader(VCFHeader header,
|
public static VCFHeader writeHeader(VCFHeader header,
|
||||||
final Writer writer,
|
final Writer writer,
|
||||||
final boolean doNotWriteGenotypes,
|
final boolean doNotWriteGenotypes,
|
||||||
final String versionLine,
|
final String versionLine,
|
||||||
final String streamNameForError) {
|
final String streamNameForError) {
|
||||||
header = doNotWriteGenotypes ? new VCFHeader(header.getMetaData()) : header;
|
header = doNotWriteGenotypes ? new VCFHeader(header.getMetaData()) : header;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -151,6 +152,8 @@ class VCFWriter extends IndexingVariantContextWriter {
|
||||||
catch (IOException e) {
|
catch (IOException e) {
|
||||||
throw new ReviewedStingException("IOException writing the VCF header to " + streamNameForError, e);
|
throw new ReviewedStingException("IOException writing the VCF header to " + streamNameForError, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return header;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue