public void close() throws IOException { if (vcfReader != null) { vcfReader.close(); } }
@Override public void close() { final Iterator<VCFFileReader> i = allReaders.iterator(); while (i.hasNext()) { i.next().close(); i.remove(); } }
/** * Parse a VCF file and convert to an IntervalList The name field of the IntervalList is taken from the ID field of the variant, if it exists. if not, * creates a name of the format interval-n where n is a running number that increments only on un-named intervals * @param file * @return */ public static IntervalList fromVcf(final File file){ final VCFFileReader vcfFileReader = new VCFFileReader(file, false); final IntervalList intervalList = fromVcf(vcfFileReader); vcfFileReader.close(); return intervalList; }
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 public void handleMalformedHeader(){ // This reading would fail on the original htsjdk-1.141 VCFFileReader reader = new VCFFileReader(new File("test_data/malformed_header.vcf.gz")); reader.close(); }
@Test public void handleUnsupportedVersion(){ // This reading would fail on the original htsjdk-1.141 VCFFileReader reader = new VCFFileReader(new File("test_data/malformed_header2.vcf.gz")); reader.close(); }
@Test public void handleMissingVersionLine(){ VCFFileReader reader = new VCFFileReader(new File("test_data/malformed_header4.vcf.gz")); reader.close(); }
@Test public void handleMissingInfoLinesInHeader(){ // This is fine also with original htsjdk-1.141 VCFFileReader reader = new VCFFileReader(new File("test_data/malformed_header3.vcf.gz")); reader.close(); }
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(); } }
/** This test doesn't even test the class, it just makes sure the cornercase test data is really a cornercase */ @Test public void ensureTestDataActuallyHasWideVariantAtTenMillion() { final Joiner joiner = Joiner.on(":"); // Cheat: do a string compare final VCFFileReader r = new VCFFileReader(VCF_WITH_MULTI_ALLELIC_VARIANT_AT_POSITION_10MILLION); Assert.assertEquals( joiner.join(r.query("1", TEN_MILLION, TEN_MILLION)), joiner.join(r.query("1", TEN_MILLION + 5, TEN_MILLION + 5)) ); r.close(); }
private VCFHeader getHiSeqVCFHeader() { final File vcf = new File("src/test/resources/htsjdk/variant/HiSeq.10000.vcf"); final VCFFileReader reader = new VCFFileReader(vcf, false); final VCFHeader header = reader.getFileHeader(); reader.close(); return header; }
@Test public void testEmptyIntervalList() { final IntervalList intervalList = new IntervalList(header); final VCFFileReader reader = getReader(CEU_TRIOS_SNPS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test public void handleSpaceInVCFInfoAndInvalidKey(){ // This reading would fail on the original htsjdk-1.141 VCFFileReader reader = new VCFFileReader(new File("test_data/malformed.vcf.gz")); reader.query("chr1", 1, 16000000); reader.close(); }
@Test public void testSimpleOverlap() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval("2", 167166899, 167166899)); final VCFFileReader reader = getReader(CEU_TRIOS_SNPS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertTrue(iterator.hasNext()); final VariantContext ctx = iterator.next(); Assert.assertEquals(ctx.getStart(), 167166899); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test public void testSimpleEnclosing() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval("12", 68921962, 68921962)); // deletion spans this final VCFFileReader reader = getReader(CEU_TRIOS_INDELS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertTrue(iterator.hasNext()); final VariantContext ctx = iterator.next(); Assert.assertEquals(ctx.getStart(), 68921960); Assert.assertEquals(ctx.getEnd(), 68921966); Assert.assertFalse(iterator.hasNext()); reader.close(); }
@Test public void testNoOverlapDifferentContig() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval("3", 167166899, 167166899)); final VCFFileReader reader = getReader(CEU_TRIOS_SNPS_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertFalse(iterator.hasNext()); reader.close(); }
public void vcfTester(String inVcf){ // Credit: https://www.biostars.org/p/262943/ VCFFileReader r=new VCFFileReader(new File(inVcf)); CloseableIterator<VariantContext> t=r.iterator(); while(t.hasNext()){ t.next(); } t.close(); r.close(); }
@Test public void testNoVariants() { final IntervalList intervalList = new IntervalList(header); intervalList.add(new Interval(this.dict.getSequence(0).getSequenceName(), 1, 100)); final VCFFileReader reader = getReader(EMPTY_VCF); final Iterator<VariantContext> iterator = new ByIntervalListVariantContextIterator(reader, intervalList); Assert.assertFalse(iterator.hasNext()); reader.close(); }
static Queue<String> loadContigPositions(final File inputFile) { final VCFFileReader reader = new VCFFileReader(inputFile, false); final Queue<String> contigPositions = new LinkedList<String>(); final CloseableIterator<VariantContext> iterator = reader.iterator(); while (iterator.hasNext()) contigPositions.add(getContigPosition(iterator.next())); iterator.close(); reader.close(); return contigPositions; }
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; }