public VariantContextComparator getVCFRecordComparator() { return new VariantContextComparator(this.getContigLines()); }
public VariantContextComparator getVCFRecordComparator() { return new VariantContextComparator(this.getContigLines()); }
public VariantContextComparator getVCFRecordComparator() { return new VariantContextComparator(this.getContigLines()); }
/** * Returns the contigs in this VCF file as a SAMSequenceDictionary. Returns null if contigs lines are * not present in the header. Throws SAMException if one or more contig lines do not have length * information. */ public SAMSequenceDictionary getSequenceDictionary() { final List<VCFContigHeaderLine> contigHeaderLines = this.getContigLines(); if (contigHeaderLines.isEmpty()) return null; final List<SAMSequenceRecord> sequenceRecords = new ArrayList<SAMSequenceRecord>(contigHeaderLines.size()); for (final VCFContigHeaderLine contigHeaderLine : contigHeaderLines) { sequenceRecords.add(contigHeaderLine.getSAMSequenceRecord()); } return new SAMSequenceDictionary(sequenceRecords); }
/** * Returns the contigs in this VCF file as a SAMSequenceDictionary. Returns null if contigs lines are * not present in the header. Throws SAMException if one or more contig lines do not have length * information. */ public SAMSequenceDictionary getSequenceDictionary() { final List<VCFContigHeaderLine> contigHeaderLines = this.getContigLines(); if (contigHeaderLines.isEmpty()) return null; final List<SAMSequenceRecord> sequenceRecords = new ArrayList<SAMSequenceRecord>(contigHeaderLines.size()); for (final VCFContigHeaderLine contigHeaderLine : contigHeaderLines) { sequenceRecords.add(contigHeaderLine.getSAMSequenceRecord()); } return new SAMSequenceDictionary(sequenceRecords); }
/** * Returns the contigs in this VCF file as a SAMSequenceDictionary. Returns null if contigs lines are * not present in the header. Throws SAMException if one or more contig lines do not have length * information. */ public SAMSequenceDictionary getSequenceDictionary() { final List<VCFContigHeaderLine> contigHeaderLines = this.getContigLines(); if (contigHeaderLines.isEmpty()) return null; final List<SAMSequenceRecord> sequenceRecords = new ArrayList<SAMSequenceRecord>(contigHeaderLines.size()); for (final VCFContigHeaderLine contigHeaderLine : contigHeaderLines) { sequenceRecords.add(contigHeaderLine.getSAMSequenceRecord()); } return new SAMSequenceDictionary(sequenceRecords); }
private void initContigDict() { final VCFHeader header = (VCFHeader)codec.readHeader(in).getHeaderValue(); contigDict.clear(); int i = 0; for (final VCFContigHeaderLine contig : header.getContigLines()) contigDict.put(contig.getID(), i++); }
private void initContigDict() { final VCFHeader header = (VCFHeader)codec.readHeader(in).getHeaderValue(); contigDict.clear(); int i = 0; for (final VCFContigHeaderLine contig : header.getContigLines()) contigDict.put(contig.getID(), i++); }
private void initContigDict() { final VCFHeader header = (VCFHeader)codec.readHeader(in).getHeaderValue(); contigDict.clear(); int i = 0; for (final VCFContigHeaderLine contig : header.getContigLines()) contigDict.put(contig.getID(), i++); }
@Test public void testVCFHeaderAddDuplicateContigLine() { File input = new File("src/test/resources/htsjdk/variant/ex2.vcf"); VCFFileReader reader = new VCFFileReader(input, false); VCFHeader header = reader.getFileHeader(); final int numContigLinesBefore = header.getContigLines().size(); // try to readd the first contig line header.addMetaDataLine(header.getContigLines().get(0)); final int numContigLinesAfter = header.getContigLines().size(); // assert that we have the same number of contig lines before and after Assert.assertEquals(numContigLinesBefore, numContigLinesAfter); }
public BCFSplitGuesser(SeekableStream ss, InputStream headerStream) throws IOException { inFile = ss; InputStream bInFile = new BufferedInputStream(inFile); bgzf = BlockCompressedInputStream.isValidFile(bInFile); if (bgzf) bInFile = new BlockCompressedInputStream(bInFile); // Excess buffering here but it can't be helped that BCF2Codec only takes // PositionalBufferedStream. final VCFHeader header = (VCFHeader)bcfCodec.readHeader( new PositionalBufferedStream(bInFile)).getHeaderValue(); contigDictionaryLength = header.getContigLines().size(); genotypeSampleCount = header.getNGenotypeSamples(); }
public BCFSplitGuesser(SeekableStream ss, InputStream headerStream) throws IOException { inFile = ss; InputStream bInFile = new BufferedInputStream(inFile); bgzf = BlockCompressedInputStream.isValidFile(bInFile); if (bgzf) bInFile = new BlockCompressedInputStream(bInFile); // Excess buffering here but it can't be helped that BCF2Codec only takes // PositionalBufferedStream. final VCFHeader header = (VCFHeader)bcfCodec.readHeader( new PositionalBufferedStream(bInFile)).getHeaderValue(); contigDictionaryLength = header.getContigLines().size(); genotypeSampleCount = header.getNGenotypeSamples(); }
public BCFSplitGuesser(SeekableStream ss, InputStream headerStream) throws IOException { inFile = ss; InputStream bInFile = new BufferedInputStream(inFile); bgzf = BlockCompressedInputStream.isValidFile(bInFile); if (bgzf) bInFile = new BlockCompressedInputStream(bInFile); // Excess buffering here but it can't be helped that BCF2Codec only takes // PositionalBufferedStream. final VCFHeader header = (VCFHeader)bcfCodec.readHeader( new PositionalBufferedStream(bInFile)).getHeaderValue(); contigDictionaryLength = header.getContigLines().size(); genotypeSampleCount = header.getNGenotypeSamples(); }
@Test public void testVCFHeaderAddContigLine() { final VCFHeader header = getHiSeqVCFHeader(); final VCFContigHeaderLine contigLine = new VCFContigHeaderLine( "<ID=chr1,length=1234567890,assembly=FAKE,md5=f126cdf8a6e0c7f379d618ff66beb2da,species=\"Homo sapiens\">", VCFHeaderVersion.VCF4_0, VCFHeader.CONTIG_KEY, 0); header.addMetaDataLine(contigLine); Assert.assertTrue(header.getContigLines().contains(contigLine), "Test contig line not found in contig header lines"); Assert.assertTrue(header.getMetaDataInInputOrder().contains(contigLine), "Test contig line not found in set of all header lines"); Assert.assertFalse(header.getInfoHeaderLines().contains(contigLine), "Test contig line present in info header lines"); Assert.assertFalse(header.getFormatHeaderLines().contains(contigLine), "Test contig line present in format header lines"); Assert.assertFalse(header.getFilterLines().contains(contigLine), "Test contig line present in filter header lines"); Assert.assertFalse(header.getOtherHeaderLines().contains(contigLine), "Test contig line present in other header lines"); }
@Test public void testVCFHeaderAddMetaDataLineDoesNotDuplicateContigs() { File input = new File("src/test/resources/htsjdk/variant/ex2.vcf"); VCFFileReader reader = new VCFFileReader(input, false); VCFHeader header = reader.getFileHeader(); final int numContigLinesBefore = header.getContigLines().size(); VCFInfoHeaderLine newInfoField = new VCFInfoHeaderLine("test", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "test info field"); header.addMetaDataLine(newInfoField); // getting the sequence dictionary was failing due to duplicating contigs in issue #214, // we expect this to not throw an exception header.getSequenceDictionary(); final int numContigLinesAfter = header.getContigLines().size(); // assert that we have the same number of contig lines before and after Assert.assertEquals(numContigLinesBefore, numContigLinesAfter); }
@Test public void testVCFHeaderAddOtherLine() { final VCFHeader header = getHiSeqVCFHeader(); final VCFHeaderLine otherLine = new VCFHeaderLine("TestOtherLine", "val"); header.addMetaDataLine(otherLine); Assert.assertTrue(header.getOtherHeaderLines().contains(otherLine), "TestOtherLine not found in other header lines"); Assert.assertTrue(header.getMetaDataInInputOrder().contains(otherLine), "TestOtherLine not found in set of all header lines"); Assert.assertNotNull(header.getOtherHeaderLine("TestOtherLine"), "Lookup for TestOtherLine by key failed"); Assert.assertFalse(header.getInfoHeaderLines().contains(otherLine), "TestOtherLine present in info header lines"); Assert.assertFalse(header.getFormatHeaderLines().contains(otherLine), "TestOtherLine present in format header lines"); Assert.assertFalse(header.getContigLines().contains(otherLine), "TestOtherLine present in contig header lines"); Assert.assertFalse(header.getFilterLines().contains(otherLine), "TestOtherLine present in filter header lines"); }
@Test public void testVCFHeaderAddInfoLine() { final VCFHeader header = getHiSeqVCFHeader(); final VCFInfoHeaderLine infoLine = new VCFInfoHeaderLine("TestInfoLine", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "test info line"); header.addMetaDataLine(infoLine); Assert.assertTrue(header.getInfoHeaderLines().contains(infoLine), "TestInfoLine not found in info header lines"); Assert.assertTrue(header.getMetaDataInInputOrder().contains(infoLine), "TestInfoLine not found in set of all header lines"); Assert.assertNotNull(header.getInfoHeaderLine("TestInfoLine"), "Lookup for TestInfoLine by key failed"); Assert.assertFalse(header.getFormatHeaderLines().contains(infoLine), "TestInfoLine present in format header lines"); Assert.assertFalse(header.getFilterLines().contains(infoLine), "TestInfoLine present in filter header lines"); Assert.assertFalse(header.getContigLines().contains(infoLine), "TestInfoLine present in contig header lines"); Assert.assertFalse(header.getOtherHeaderLines().contains(infoLine), "TestInfoLine present in other header lines"); }
@Test public void testVCFHeaderAddFormatLine() { final VCFHeader header = getHiSeqVCFHeader(); final VCFFormatHeaderLine formatLine = new VCFFormatHeaderLine("TestFormatLine", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "test format line"); header.addMetaDataLine(formatLine); Assert.assertTrue(header.getFormatHeaderLines().contains(formatLine), "TestFormatLine not found in format header lines"); Assert.assertTrue(header.getMetaDataInInputOrder().contains(formatLine), "TestFormatLine not found in set of all header lines"); Assert.assertNotNull(header.getFormatHeaderLine("TestFormatLine"), "Lookup for TestFormatLine by key failed"); Assert.assertFalse(header.getInfoHeaderLines().contains(formatLine), "TestFormatLine present in info header lines"); Assert.assertFalse(header.getFilterLines().contains(formatLine), "TestFormatLine present in filter header lines"); Assert.assertFalse(header.getContigLines().contains(formatLine), "TestFormatLine present in contig header lines"); Assert.assertFalse(header.getOtherHeaderLines().contains(formatLine), "TestFormatLine present in other header lines"); }
@Test public void testVCFHeaderAddFilterLine() { final VCFHeader header = getHiSeqVCFHeader(); final String filterDesc = "TestFilterLine Description"; final VCFFilterHeaderLine filterLine = new VCFFilterHeaderLine("TestFilterLine",filterDesc); Assert.assertEquals(filterDesc,filterLine.getDescription()); header.addMetaDataLine(filterLine); Assert.assertTrue(header.getFilterLines().contains(filterLine), "TestFilterLine not found in filter header lines"); Assert.assertTrue(header.getMetaDataInInputOrder().contains(filterLine), "TestFilterLine not found in set of all header lines"); Assert.assertNotNull(header.getFilterHeaderLine("TestFilterLine"), "Lookup for TestFilterLine by key failed"); Assert.assertFalse(header.getInfoHeaderLines().contains(filterLine), "TestFilterLine present in info header lines"); Assert.assertFalse(header.getFormatHeaderLines().contains(filterLine), "TestFilterLine present in format header lines"); Assert.assertFalse(header.getContigLines().contains(filterLine), "TestFilterLine present in contig header lines"); Assert.assertFalse(header.getOtherHeaderLines().contains(filterLine), "TestFilterLine present in other header lines"); }
public static void assertHeadersEquals(VCFHeader header0, VCFHeader header1) { assertEquals(header0.getColumnCount(), header1.getColumnCount()); assertEquals(header0.getGenotypeSamples(), header1.getGenotypeSamples()); assertEquals(header0.getContigLines(), header1.getContigLines()); for (VCFInfoHeaderLine line0 : header0.getInfoHeaderLines()) { VCFInfoHeaderLine line1 = header1.getInfoHeaderLine(line0.getID()); assertEquals(line0.getCount(), line1.getCount()); assertEquals(line0.getType(), line1.getType()); assertEquals(line0.getDescription(), line1.getDescription()); assertEquals(0, line0.compareTo(line1)); } } }