public void writeHeader(VCFHeader header) { if (useSingleSample != null) { // only want to output context for one sample Set<String> singSampSet = new TreeSet<String>(); singSampSet.add(useSingleSample); header = new VCFHeader(header.getMetaDataInSortedOrder(), singSampSet); } innerWriter.writeHeader(header); }
@Override public void setHeader(final VCFHeader header) { if (outputHasBeenWritten) { throw new IllegalStateException("The header cannot be modified after the header or variants have been written to the output stream."); } this.mHeader = doNotWriteGenotypes ? new VCFHeader(header.getMetaDataInSortedOrder()) : header; this.vcfEncoder = new VCFEncoder(this.mHeader, this.allowMissingFieldsInHeader, this.writeFullFormatField); } }
@Override public void setHeader(final VCFHeader header) { if (outputHasBeenWritten) { throw new IllegalStateException("The header cannot be modified after the header or variants have been written to the output stream."); } this.mHeader = doNotWriteGenotypes ? new VCFHeader(header.getMetaDataInSortedOrder()) : header; this.vcfEncoder = new VCFEncoder(this.mHeader, this.allowMissingFieldsInHeader, this.writeFullFormatField); } }
public static void assertVCFHeadersAreEqual(final VCFHeader actual, final VCFHeader expected) { Assert.assertEquals(actual.getMetaDataInSortedOrder().size(), expected.getMetaDataInSortedOrder().size(), "No VCF header lines"); // for some reason set.equals() is returning false but all paired elements are .equals(). Perhaps compare to is busted? //Assert.assertEquals(actual.getMetaDataInInputOrder(), expected.getMetaDataInInputOrder()); final List<VCFHeaderLine> actualLines = new ArrayList<VCFHeaderLine>(actual.getMetaDataInSortedOrder()); final List<VCFHeaderLine> expectedLines = new ArrayList<VCFHeaderLine>(expected.getMetaDataInSortedOrder()); for ( int i = 0; i < actualLines.size(); i++ ) { Assert.assertEquals(actualLines.get(i), expectedLines.get(i), "VCF header lines"); } }
public static void assertEquals(final VCFHeader actual, final VCFHeader expected) { Assert.assertEquals(actual.getMetaDataInSortedOrder().size(), expected.getMetaDataInSortedOrder().size(), "No VCF header lines"); // for some reason set.equals() is returning false but all paired elements are .equals(). Perhaps compare to is busted? //Assert.assertEquals(actual.getMetaDataInInputOrder(), expected.getMetaDataInInputOrder()); final List<VCFHeaderLine> actualLines = new ArrayList<VCFHeaderLine>(actual.getMetaDataInSortedOrder()); final List<VCFHeaderLine> expectedLines = new ArrayList<VCFHeaderLine>(expected.getMetaDataInSortedOrder()); for ( int i = 0; i < actualLines.size(); i++ ) { Assert.assertEquals(actualLines.get(i), expectedLines.get(i), "VCF header lines"); } }
/** * Gets the header fields from all VCF rods input by the user * * @param toolkit GATK engine * @param rodNames names of rods to use, or null if we should use all possible ones * * @return a set of all fields */ public static Set<VCFHeaderLine> getHeaderFields(GenomeAnalysisEngine toolkit, Collection<String> rodNames) { // keep a map of sample name to occurrences encountered TreeSet<VCFHeaderLine> fields = new TreeSet<VCFHeaderLine>(); // iterate to get all of the sample names List<ReferenceOrderedDataSource> dataSources = toolkit.getRodDataSources(); for ( ReferenceOrderedDataSource source : dataSources ) { // ignore the rod if it's not in our list if ( rodNames != null && !rodNames.contains(source.getName()) ) continue; if ( source.getRecordType().equals(VariantContext.class)) { VCFHeader header = (VCFHeader)source.getHeader(); if ( header != null ) fields.addAll(header.getMetaDataInSortedOrder()); } } return fields; }
final String versionLine, final String streamNameForError) { header = doNotWriteGenotypes ? new VCFHeader(header.getMetaDataInSortedOrder()) : header; for (final VCFHeaderLine line : header.getMetaDataInSortedOrder() ) { if ( VCFHeaderVersion.isFormatString(line.getKey()) ) continue;
private void checkMD5ofHeaderFile(VCFHeader header, String md5sum) { File myTempFile = null; PrintWriter pw = null; try { myTempFile = File.createTempFile("VCFHeader", "vcf"); myTempFile.deleteOnExit(); pw = new PrintWriter(myTempFile); } catch (IOException e) { Assert.fail("Unable to make a temp file!"); } for (VCFHeaderLine line : header.getMetaDataInSortedOrder()) pw.println(line); pw.close(); Assert.assertEquals(md5SumFile(myTempFile), md5sum); }
for (final VCFHeaderLine line : header.getMetaDataInSortedOrder() ) { if ( VCFHeaderVersion.isFormatString(line.getKey()) ) continue;
for (final VCFHeaderLine line : header.getMetaDataInSortedOrder() ) { if ( VCFHeaderVersion.isFormatString(line.getKey()) ) continue;
public void initialize() { final String trackName = variantCollection.variants.getName(); final Set<String> samples = SampleUtils.getSampleListWithVCFHeader(getToolkit(), Arrays.asList(trackName)); final Map<String, VCFHeader> vcfHeaders = GATKVCFUtils.getVCFHeadersFromRods(getToolkit(), Arrays.asList(trackName)); final Set<VCFHeaderLine> headerLines = new HashSet<>(); headerLines.addAll(vcfHeaders.get(trackName).getMetaDataInSortedOrder()) ; if ( splitMultiallelics ) headerLines.addAll(Arrays.asList(ChromosomeCountConstants.descriptions)); if (keepOriginalChrCounts) { headerLines.add(GATKVCFHeaderLines.getInfoLine(GATKVCFConstants.ORIGINAL_AC_KEY)); headerLines.add(GATKVCFHeaderLines.getInfoLine(GATKVCFConstants.ORIGINAL_AF_KEY)); headerLines.add(GATKVCFHeaderLines.getInfoLine(GATKVCFConstants.ORIGINAL_AN_KEY)); } baseWriter.writeHeader(new VCFHeader(headerLines, samples)); writer = new SortingVariantContextWriter(baseWriter, MAX_INDEL_LENGTH); referenceWindowStop = getToolkit().getArguments().reference_window_stop; }
public void initialize() { final String trackName = variantCollection.variants.getName(); final Set<String> samples = SampleUtils.getSampleListWithVCFHeader(getToolkit(), Arrays.asList(trackName)); final Map<String, VCFHeader> vcfHeaders = GATKVCFUtils.getVCFHeadersFromRods(getToolkit(), Arrays.asList(trackName)); final Set<VCFHeaderLine> headerLines = vcfHeaders.get(trackName).getMetaDataInSortedOrder(); baseWriter.writeHeader(new VCFHeader(headerLines, samples)); vcfWriter = new SortingVariantContextWriter(baseWriter, 200); }
@Override public void setHeader(final VCFHeader header) { if (outputHasBeenWritten) { throw new IllegalStateException("The header cannot be modified after the header or variants have been written to the output stream."); } // make sure the header is sorted correctly this.header = doNotWriteGenotypes ? new VCFHeader(header.getMetaDataInSortedOrder()) : new VCFHeader( header.getMetaDataInSortedOrder(), header.getGenotypeSamples()); // create the config offsets map if ( this.header.getContigLines().isEmpty() ) { if ( ALLOW_MISSING_CONTIG_LINES ) { if ( GeneralUtils.DEBUG_MODE_ENABLED ) { System.err.println("No contig dictionary found in header, falling back to reference sequence dictionary"); } createContigDictionary(VCFUtils.makeContigHeaderLines(getRefDict(), null)); } else { throw new IllegalStateException("Cannot write BCF2 file with missing contig lines"); } } else { createContigDictionary(this.header.getContigLines()); } // set up the map from dictionary string values -> offset final ArrayList<String> dict = BCF2Utils.makeDictionary(this.header); for ( int i = 0; i < dict.size(); i++ ) { stringDictionaryMap.put(dict.get(i), i); } sampleNames = this.header.getGenotypeSamples().toArray(new String[this.header.getNGenotypeSamples()]); // setup the field encodings fieldManager.setup(this.header, encoder, stringDictionaryMap); }
@Override public void setHeader(final VCFHeader header) { if (outputHasBeenWritten) { throw new IllegalStateException("The header cannot be modified after the header or variants have been written to the output stream."); } // make sure the header is sorted correctly this.header = doNotWriteGenotypes ? new VCFHeader(header.getMetaDataInSortedOrder()) : new VCFHeader( header.getMetaDataInSortedOrder(), header.getGenotypeSamples()); // create the config offsets map if ( this.header.getContigLines().isEmpty() ) { if ( ALLOW_MISSING_CONTIG_LINES ) { if ( GeneralUtils.DEBUG_MODE_ENABLED ) { System.err.println("No contig dictionary found in header, falling back to reference sequence dictionary"); } createContigDictionary(VCFUtils.makeContigHeaderLines(getRefDict(), null)); } else { throw new IllegalStateException("Cannot write BCF2 file with missing contig lines"); } } else { createContigDictionary(this.header.getContigLines()); } // set up the map from dictionary string values -> offset final ArrayList<String> dict = BCF2Utils.makeDictionary(this.header); for ( int i = 0; i < dict.size(); i++ ) { stringDictionaryMap.put(dict.get(i), i); } sampleNames = this.header.getGenotypeSamples().toArray(new String[this.header.getNGenotypeSamples()]); // setup the field encodings fieldManager.setup(this.header, encoder, stringDictionaryMap); }
public VariantContextTestData(final VCFHeader header, final List<VariantContext> vcs) { final Set<String> samples = new HashSet<String>(); for ( final VariantContext vc : vcs ) if ( vc.hasGenotypes() ) samples.addAll(vc.getSampleNames()); this.header = samples.isEmpty() ? header : new VCFHeader(header.getMetaDataInSortedOrder(), samples); this.vcs = vcs; }
/** * validate a VCF header * @param header the header to validate */ private void validateHeader(final VCFHeader header, final SAMSequenceDictionary sequenceDictionary) { // check the fields int index = 0; for (final VCFHeader.HEADER_FIELDS field : header.getHeaderFields()) { Assert.assertEquals(VCFHeader.HEADER_FIELDS.values()[index], field); index++; } Assert.assertEquals(header.getMetaDataInSortedOrder().size(), metaData.size() + sequenceDictionary.size()); index = 0; for (final String key : header.getGenotypeSamples()) { Assert.assertTrue(additionalColumns.contains(key)); index++; } Assert.assertEquals(index, additionalColumns.size()); }
@Override public void writeHeader(VCFHeader header) { header = new VCFHeader(header.getMetaDataInSortedOrder(), header.getGenotypeSamples());
for ( VCFHeaderLine line : source.getMetaDataInSortedOrder()) {
for (final VCFHeaderLine line : source.getMetaDataInSortedOrder()) {
for (final VCFHeaderLine line : source.getMetaDataInSortedOrder()) {