/** * Returns the SAMSequenceDictionary from the provided VCF file. */ public static SAMSequenceDictionary getSequenceDictionary(final File file) { try (final VCFFileReader vcfFileReader = new VCFFileReader(file, false)) { return vcfFileReader.getFileHeader().getSequenceDictionary(); } }
/** * Returns the SAMSequenceDictionary from the provided VCF file. */ public static SAMSequenceDictionary getSequenceDictionary(final Path path) { return new VCFFileReader(path, false).getFileHeader().getSequenceDictionary(); }
@Override SAMSequenceDictionary extractDictionary(Path vcf) { try (VCFFileReader vcfPathReader = new VCFFileReader(vcf, false)){ return vcfPathReader.getFileHeader().getSequenceDictionary(); } } },
@Override SAMSequenceDictionary extractDictionary(Path vcf) { try (VCFFileReader vcfPathReader = new VCFFileReader(vcf, false)){ return vcfPathReader.getFileHeader().getSequenceDictionary(); } } },
/** * Returns the SAMSequenceDictionary from the provided VCF file. */ public static SAMSequenceDictionary getSequenceDictionary(final Path path) { return new VCFFileReader(path, false).getFileHeader().getSequenceDictionary(); }
/** * Returns the SAMSequenceDictionary from the provided VCF file. */ public static SAMSequenceDictionary getSequenceDictionary(final File file) { try (final VCFFileReader vcfFileReader = new VCFFileReader(file, false)) { return vcfFileReader.getFileHeader().getSequenceDictionary(); } }
private boolean setSamSeqDictFromVCF(String vcf) throws MalformedURLException { SAMSequenceDictionary samSeqDict= Utils.getVCFHeader(vcf).getSequenceDictionary(); if(samSeqDict != null){ this.setSamSeqDictSource(new File(vcf).getAbsolutePath()); this.setSamSeqDict(samSeqDict); return true; } return false; }
/** * Common parts of {@link VariantContextWriterBuilder} creation for the openVariantContextWriter functions. */ private static VariantContextWriterBuilder makeBuilder(VCFHeader header) { // construct factory object for VariantContextWriter VariantContextWriterBuilder builder = new VariantContextWriterBuilder(); builder.setReferenceDictionary(header.getSequenceDictionary()); // Be more lenient in missing header fields. builder.setOption(Options.ALLOW_MISSING_FIELDS_IN_HEADER); // Disable on-the-fly generation of Tribble index if the input file does not have a sequence dictionary. if (header.getSequenceDictionary() == null) builder.unsetOption(Options.INDEX_ON_THE_FLY); return builder; }
@Override public boolean pre() { String study = metadata.getStudies().get(0).getId(); List<String> samples = metadata.getStudies().get(0).getIndividuals().stream() .flatMap(individual -> individual.getSamples().stream()).map(Sample::getId).collect(Collectors.toList()); VCFHeader vcfHeader = new VariantStudyMetadataToVCFHeaderConverter().convert(metadata.getStudies().get(0), annotations); variantContextWriter = VcfUtils.createVariantContextWriter(outputStream, vcfHeader.getSequenceDictionary(), Options.ALLOW_MISSING_FIELDS_IN_HEADER); variantContextWriter.writeHeader(vcfHeader); converter = newConverter(study, samples, annotations); return true; }
public void open(OutputStream os, Options... writerOptions) { variantConverter = new VariantAvroToVariantContextConverter(metadata.getId(), sampleNames, formats, annotations); // create the variant context writer outputStream = Objects.requireNonNull(os); writer = VcfUtils.createVariantContextWriter(outputStream, vcfHeader.getSequenceDictionary(), writerOptions); // write VCF header writer.writeHeader(vcfHeader); }
/** * Returns the SAMSequenceDictionary from the provided VCF file. */ public static SAMSequenceDictionary getSequenceDictionary(final File file) { final SAMSequenceDictionary dict = new VCFFileReader(file, false).getFileHeader().getSequenceDictionary(); CloserUtil.close(file); return dict; }
private static List<SAMSequenceRecord> readSequences(final File vcf) { final VCFFileReader reader = new VCFFileReader(vcf); final VCFHeader header = reader.getFileHeader(); final SAMSequenceDictionary dict = header.getSequenceDictionary(); reader.close(); return dict.getSequences(); } }
private static List<SAMSequenceRecord> readSequences(final File vcf) { final VCFFileReader reader = new VCFFileReader(vcf); final VCFHeader header = reader.getFileHeader(); final SAMSequenceDictionary dict = header.getSequenceDictionary(); reader.close(); return dict.getSequences(); } }
@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()); }
private void addIntervalFeatureTrackFromVCF(String sourceName, GenomicCoords gc, String trackTag) throws ClassNotFoundException, IOException, InvalidGenomicCoordsException, InvalidRecordException, SQLException { int idForTrack= this.getNextTrackId(); // String trackId= new File(sourceName).getName() + "#" + idForTrack; String trackId= sourceName + "#" + idForTrack; // If this VCF file has sequence dictionary, check the coordinates in gc are compatible // If they are not, throw an exception which force resetting the coords. SAMSequenceDictionary seqDict = Utils.getVCFHeader(sourceName).getSequenceDictionary(); if(seqDict != null && seqDict.getSequence(gc.getChrom()) == null){ throw new InvalidGenomicCoordsException(); } TrackIntervalFeature tif= new TrackIntervalFeature(sourceName, gc); tif.setTrackTag(trackId); this.trackList.add(tif); }
private void writeSortedOutput(final VCFHeader outputHeader, final SortingCollection<VariantContext> sortedOutput) { final ProgressLogger writeProgress = new ProgressLogger(log, 25000, "wrote", "records"); final EnumSet<Options> options = CREATE_INDEX ? EnumSet.of(Options.INDEX_ON_THE_FLY) : EnumSet.noneOf(Options.class); final VariantContextWriter out = new VariantContextWriterBuilder(). setReferenceDictionary(outputHeader.getSequenceDictionary()). setOptions(options). setOutputFile(OUTPUT).build(); out.writeHeader(outputHeader); for (final VariantContext variantContext : sortedOutput) { out.add(variantContext); writeProgress.record(variantContext.getContig(), variantContext.getStart()); } out.close(); } }
private void writeSortedOutput(final VCFHeader outputHeader, final SortingCollection<VariantContext> sortedOutput) { final ProgressLogger writeProgress = new ProgressLogger(log, 25000, "wrote", "records"); final EnumSet<Options> options = CREATE_INDEX ? EnumSet.of(Options.INDEX_ON_THE_FLY) : EnumSet.noneOf(Options.class); final VariantContextWriter out = new VariantContextWriterBuilder(). setReferenceDictionary(outputHeader.getSequenceDictionary()). setOptions(options). setOutputFile(OUTPUT).build(); out.writeHeader(outputHeader); for (final VariantContext variantContext : sortedOutput) { out.add(variantContext); writeProgress.record(variantContext.getContig(), variantContext.getStart()); } out.close(); } }
@Test(expectedExceptions = IllegalStateException.class) public void testChangeHeaderAfterWritingHeader() throws IOException { final File bcfOutputFile = File.createTempFile("testWriteAndReadVCF.", ".bcf", tempDir); bcfOutputFile.deleteOnExit(); final VCFHeader header = createFakeHeader(); // prevent changing header if it's already written try (final VariantContextWriter writer = new VariantContextWriterBuilder() .setOutputFile(bcfOutputFile).setReferenceDictionary(header.getSequenceDictionary()) .unsetOption(Options.INDEX_ON_THE_FLY) .build()) { writer.writeHeader(header); writer.setHeader(header); } }
@Test(expectedExceptions = IllegalStateException.class) public void testWriteHeaderTwice() throws IOException { final File bcfOutputFile = File.createTempFile("testWriteAndReadVCF.", ".bcf", tempDir); bcfOutputFile.deleteOnExit(); final VCFHeader header = createFakeHeader(); // prevent writing header twice try (final VariantContextWriter writer = new VariantContextWriterBuilder() .setOutputFile(bcfOutputFile).setReferenceDictionary(header.getSequenceDictionary()) .unsetOption(Options.INDEX_ON_THE_FLY) .build()) { writer.writeHeader(header); writer.writeHeader(header); } }
private SAMFileHeader getSAMFileHeader() { final VCFFileReader reader = getReader(CEU_TRIOS_SNPS_VCF); final SAMSequenceDictionary dict = reader.getFileHeader().getSequenceDictionary(); reader.close(); final SAMFileHeader header = new SAMFileHeader(); header.setSequenceDictionary(dict); return header; }