@Test public void testHeadersWhereOneIsAStrictSubsetOfTheOther() { VCFHeader one = createHeader(VCF4headerStrings); VCFHeader two = createHeader(VCF4headerStringsSmallSubset); ArrayList<VCFHeader> headers = new ArrayList<VCFHeader>(); headers.add(one); headers.add(two); Set<VCFHeaderLine> lines = VCFUtils.smartMergeHeaders(headers, false); Assert.assertEquals(lines.size(), VCF4headerStringCount); }
@Test(expectedExceptions=IllegalStateException.class) public void testHeadersInfoDifferentValues() { VCFHeader one = createHeader(VCF4headerStrings); VCFHeader two = createHeader(VCF4headerStringsBrokenInfo); ArrayList<VCFHeader> headers = new ArrayList<VCFHeader>(); headers.add(one); headers.add(two); Set<VCFHeaderLine> lines = VCFUtils.smartMergeHeaders(headers, false); Assert.assertEquals(lines.size(), VCF4headerStringCount); }
@Test public void testHeadersFormatDifferentValues() { VCFHeader one = createHeader(VCF4headerStrings); VCFHeader two = createHeader(VCF4headerStringsBrokenFormat); ArrayList<VCFHeader> headers = new ArrayList<VCFHeader>(); headers.add(one); headers.add(two); Set<VCFHeaderLine> lines = VCFUtils.smartMergeHeaders(headers, false); Assert.assertEquals(lines.size(), VCF4headerStringCount); } }
SET_KEY = null; Set<VCFHeaderLine> headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), true); if ( SET_KEY != null ) headerLines.add(new VCFInfoHeaderLine(SET_KEY, 1, VCFHeaderLineType.String, "Source VCF for the merged record in CombineVariants"));
Set<VCFHeaderLine> headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), true);
public void initialize() { // take care of the VCF headers final Map<String, VCFHeader> vcfRods = GATKVCFUtils.getVCFHeadersFromRods(getToolkit()); final Set<VCFHeaderLine> headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), true); headerLines.add(VCFStandardHeaderLines.getInfoLine(VCFConstants.DEPTH_KEY)); // needed for gVCFs without DP tags final Set<String> samples = SampleUtils.getSampleList(vcfRods, GATKVariantContextUtils.GenotypeMergeType.REQUIRE_UNIQUE); final VCFHeader vcfHeader = new VCFHeader(headerLines, samples); vcfWriter.writeHeader(vcfHeader); // collect the actual rod bindings into a list for use later for ( final RodBindingCollection<VariantContext> variantCollection : variantCollections ) variants.addAll(variantCollection.getRodBindings()); genomeLocParser = getToolkit().getGenomeLocParser(); // create the annotation engine annotationEngine = new VariantAnnotatorEngine(Arrays.asList(annotationGroupsToUse), annotationsToUse, Collections.<String>emptyList(), this, getToolkit()); //now that we have all the VCF headers, initialize the annotations (this is particularly important to turn off RankSumTest dithering in integration tests) annotationEngine.invokeAnnotationInitializationMethods(headerLines); // optimization to prevent mods when we always just want to break bands if ( multipleAtWhichToBreakBands == 1 ) USE_BP_RESOLUTION = true; }
Set<VCFHeaderLine> headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), true); headerLines.add(new VCFHeaderLine("source", "SelectVariants"));
@Override public void initialize() { vcfRods = GATKVCFUtils.getVCFHeadersFromRods(getToolkit()); final Set<String> samples = SampleUtils.getSampleList(vcfRods, GATKVariantContextUtils.GenotypeMergeType.REQUIRE_UNIQUE); final Set<VCFHeaderLine> headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), true); headerLines.addAll(Arrays.asList(ChromosomeCountConstants.descriptions)); headerLines.add(VCFStandardHeaderLines.getInfoLine(VCFConstants.DEPTH_KEY)); final VCFHeader vcfHeader = new VCFHeader(headerLines, samples); vcfWriter.writeHeader(vcfHeader); }
final Set<VCFHeaderLine> headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), true); headerLines.add(GATKVCFHeaderLines.getFormatLine(GATKVCFConstants.PHRED_SCALED_POSTERIORS_KEY)); headerLines.add(GATKVCFHeaderLines.getInfoLine(GATKVCFConstants.GENOTYPE_PRIOR_KEY));
final Set<VCFHeaderLine> headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), true);
@Test(dataProvider = "testVCFHeaderDictionaryMergingData") public void testVCFHeaderDictionaryMerging(final String vcfFileName) { final VCFHeader headerOne = new VCFFileReader(new File(variantTestDataRoot + vcfFileName), false).getFileHeader(); final VCFHeader headerTwo = new VCFHeader(headerOne); // deep copy final List<String> sampleList = new ArrayList<String>(); sampleList.addAll(headerOne.getSampleNamesInOrder()); // Check that the two dictionaries start out the same headerOne.getSequenceDictionary().assertSameDictionary(headerTwo.getSequenceDictionary()); // Run the merge command final VCFHeader mergedHeader = new VCFHeader(VCFUtils.smartMergeHeaders(Arrays.asList(headerOne, headerTwo), false), sampleList); // Check that the mergedHeader's sequence dictionary matches the first two mergedHeader.getSequenceDictionary().assertSameDictionary(headerOne.getSequenceDictionary()); }
writer.writeHeader(new VCFHeader(VCFUtils.smartMergeHeaders(headers, false), sampleList));
writer.writeHeader(new VCFHeader(VCFUtils.smartMergeHeaders(headers, false), sampleList));
@Override protected int doWork() { final List<String> sampleList = new ArrayList<String>(); for (final File input : INPUT) IOUtil.assertFileIsReadable(input); if (SEQUENCE_DICTIONARY != null) IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY); SAMSequenceDictionary samSequenceDictionary = null; if (SEQUENCE_DICTIONARY != null) { samSequenceDictionary = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(SEQUENCE_DICTIONARY).getSequenceDictionary(); CloserUtil.close(SEQUENCE_DICTIONARY); } // Gather up a file reader and file header for each input file. Check for sequence dictionary compatibility along the way. collectFileReadersAndHeaders(sampleList, samSequenceDictionary); // Create the merged output header from the input headers final VCFHeader outputHeader = new VCFHeader(VCFUtils.smartMergeHeaders(inputHeaders, false), sampleList); // Load entries into the sorting collection final SortingCollection<VariantContext> sortedOutput = sortInputs(inputReaders, outputHeader); // Output to the final file writeSortedOutput(outputHeader, sortedOutput); return 0; }
@Override protected int doWork() { final List<String> sampleList = new ArrayList<String>(); for (final File input : INPUT) IOUtil.assertFileIsReadable(input); if (SEQUENCE_DICTIONARY != null) IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY); SAMSequenceDictionary samSequenceDictionary = null; if (SEQUENCE_DICTIONARY != null) { samSequenceDictionary = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(SEQUENCE_DICTIONARY).getSequenceDictionary(); CloserUtil.close(SEQUENCE_DICTIONARY); } // Gather up a file reader and file header for each input file. Check for sequence dictionary compatibility along the way. collectFileReadersAndHeaders(sampleList, samSequenceDictionary); // Create the merged output header from the input headers final VCFHeader outputHeader = new VCFHeader(VCFUtils.smartMergeHeaders(inputHeaders, false), sampleList); // Load entries into the sorting collection final SortingCollection<VariantContext> sortedOutput = sortInputs(inputReaders, outputHeader); // Output to the final file writeSortedOutput(outputHeader, sortedOutput); return 0; }