private VCFHeader createHeader(String headerStr) { VCFCodec codec = new VCFCodec(); VCFHeader head = null; head = (VCFHeader) codec.readActualHeader(codec.makeSourceFromStream(new PositionalBufferedStream(new StringBufferInputStream(headerStr)))); return head; }
VCFCodec vcfCodec= new VCFCodec(); vcfCodec.setVCFHeader(this.getVcfHeader(), Utils.getVCFHeaderVersion(this.getVcfHeader())); VariantContext variantContext= vcfCodec.decode(line);
public static VCFHeader parseVcfHeader(String variantFileHeader) throws IOException { VCFCodec vcfCodec = new VCFCodec(); LineIterator source = vcfCodec.makeSourceFromStream(new ByteArrayInputStream(variantFileHeader.getBytes())); FeatureCodecHeader featureCodecHeader = vcfCodec.readHeader(source); return (VCFHeader) featureCodecHeader.getHeaderValue(); }
VCFReaderIterator(final InputStream inputStream) { this.inputStream = inputStream; this.lineIterator = this.codec.makeSourceFromStream(this.inputStream); this.vcfHeader = (VCFHeader) this.codec.readActualHeader(this.lineIterator); }
/** * Read all of the VCF records from source into memory, returning the header and the VariantContexts * * SHOULD ONLY BE USED FOR UNIT/INTEGRATION TESTING PURPOSES! * * @param source the file to read, must be in VCF4 format * @return * @throws java.io.IOException */ public static Pair<VCFHeader, List<VariantContext>> readVCF(final File source) throws IOException { // read in the features final List<VariantContext> vcs = new ArrayList<VariantContext>(); final VCFCodec codec = new VCFCodec(); PositionalBufferedStream pbs = new PositionalBufferedStream(new FileInputStream(source)); final LineIterator vcfSource = codec.makeSourceFromStream(pbs); try { final VCFHeader vcfHeader = (VCFHeader) codec.readActualHeader(vcfSource); while (vcfSource.hasNext()) { final VariantContext vc = codec.decode(vcfSource); if ( vc != null ) vcs.add(vc); } return new Pair<VCFHeader, List<VariantContext>>(vcfHeader, vcs); } finally { codec.close(vcfSource); } }
@Override public VCFCodec makeCodec() { return new VCFCodec(); }
/** * Returns a list of VariantContext records from a VCF file * * @param vcfFile VCF file * * @throws IOException if the file does not exist or can not be opened * * @return list of VariantContext records */ private static List<VariantContext> getVariantContexts(final File vcfFile) throws IOException { final VCFCodec codec = new VCFCodec(); final FileInputStream s = new FileInputStream(vcfFile); final LineIterator lineIteratorVCF = codec.makeSourceFromStream(new PositionalBufferedStream(s)); codec.readHeader(lineIteratorVCF); final List<VariantContext> VCs = new ArrayList<>(); while ( lineIteratorVCF.hasNext() ) { final String line = lineIteratorVCF.next(); Assert.assertFalse(line == null); VCs.add(codec.decode(line)); } return VCs; }
private VCFHeader createHeader(String headerStr) { VCFCodec codec = new VCFCodec(); VCFHeader header = (VCFHeader) codec.readActualHeader(new LineIteratorImpl(new SynchronousLineReader( new StringReader(headerStr)))); Assert.assertEquals(header.getMetaDataInInputOrder().size(), VCF4headerStringCount); return header; }
private VCFCodec getVCFCodec() { if(this.getVcfHeader() == null){ return null; } if(this.vcfCodec == null){ VCFCodec vcfCodec= new VCFCodec(); vcfCodec.setVCFHeader(this.getVcfHeader(), Utils.getVCFHeaderVersion(this.getVcfHeader())); this.vcfCodec= vcfCodec; } return this.vcfCodec; }
BufferedInputStream bis = new BufferedInputStream(in); InputStream is = VCFFormat.isGzip(bis) ? new GZIPInputStream(bis) : bis; headerCodec = new VCFCodec().readHeader(new AsciiLineReaderIterator(new AsciiLineReader(is))); } catch (TribbleException e) { logger.warn("Exception while trying to read VCF header from file:", e);
@Test public void testVCFHeaderSampleRenamingSingleSampleVCF() throws Exception { final VCFCodec codec = new VCFCodec(); codec.setRemappedSampleName("FOOSAMPLE"); final AsciiLineReaderIterator vcfIterator = new AsciiLineReaderIterator(AsciiLineReader.from(new FileInputStream(variantTestDataRoot + "HiSeq.10000.vcf"))); final VCFHeader header = (VCFHeader) codec.readHeader(vcfIterator).getHeaderValue(); Assert.assertEquals(header.getNGenotypeSamples(), 1, "Wrong number of samples in remapped header"); Assert.assertEquals(header.getGenotypeSamples().get(0), "FOOSAMPLE", "Sample name in remapped header has incorrect value"); int recordCount = 0; while (vcfIterator.hasNext() && recordCount < 10) { recordCount++; final VariantContext vcfRecord = codec.decode(vcfIterator.next()); Assert.assertEquals(vcfRecord.getSampleNames().size(), 1, "Wrong number of samples in vcf record after remapping"); Assert.assertEquals(vcfRecord.getSampleNames().iterator().next(), "FOOSAMPLE", "Wrong sample in vcf record after remapping"); } }
@Override public VariantContext convert(CharSequence buff) { return this.codec.decode(buff.toString()); }
@Test(expectedExceptions = TribbleException.class) public void testVCFHeaderSampleRenamingMultiSampleVCF() throws Exception { final VCFCodec codec = new VCFCodec(); codec.setRemappedSampleName("FOOSAMPLE"); final AsciiLineReaderIterator vcfIterator = new AsciiLineReaderIterator(AsciiLineReader.from(new FileInputStream(variantTestDataRoot + "ex2.vcf"))); final VCFHeader header = (VCFHeader) codec.readHeader(vcfIterator).getHeaderValue(); }
@Test public void testGetTabixFormat() { Assert.assertEquals(new VCFCodec().getTabixFormat(), TabixFormat.VCF); Assert.assertEquals(new VCF3Codec().getTabixFormat(), TabixFormat.VCF); }
public VCFRecordCodec(final VCFHeader header, final boolean allowMissingFieldsInHeader) { this.vcfEncoder = new VCFEncoder(header, allowMissingFieldsInHeader, false); // Explicitly set the version because it's not available in the header itself. this.vcfDecoder.setVCFHeader(header, VCFHeaderVersion.VCF4_2); }
/** A VCFHeader is read from the input Path. */ public VCFRecordWriter( Path output, Path input, boolean writeHeader, TaskAttemptContext ctx) throws IOException { final AsciiLineReader r = new AsciiLineReader( input.getFileSystem(ctx.getConfiguration()).open(input)); final FeatureCodecHeader h = codec.readHeader(new AsciiLineReaderIterator(r)); if (h == null || !(h.getHeaderValue() instanceof VCFHeader)) throw new IOException("No VCF header found in "+ input); r.close(); init(output, (VCFHeader) h.getHeaderValue(), writeHeader, ctx); } public VCFRecordWriter(
public static VariantContextContainer readAllVCs(final File input, final VCFCodec codec) throws FileNotFoundException { final LineIterator lineIterator = new LineIteratorImpl(new SynchronousLineReader(new BufferedInputStream(new FileInputStream(input)))); final VCFHeader vcfHeader = (VCFHeader) codec.readActualHeader(lineIterator); return new VariantContextTestProvider.VariantContextContainer(vcfHeader, new VariantContextTestProvider.VCIterable<LineIterator>(codec, vcfHeader) { @Override public boolean hasNext() { return lineIterator.hasNext(); } @Override public LineIterator nextSource() { return lineIterator; } }); }
private static AbstractFeatureReader<VariantContext, LineIterator> getReaderFromPath(final Path variantPath) { final String variantURI = variantPath.toAbsolutePath().toUri().toString(); try { return AbstractFeatureReader.getFeatureReader(variantURI, null, new VCFCodec(), false, Function.identity(), Function.identity()); } catch (final TribbleException e) { throw new PicardException("Failed to create reader from " + variantURI, e); } } }
@Test public void HCTestDanglingTailMergingForDeletions() throws IOException { final String base = String.format("-T HaplotypeCaller --disableDithering --pcr_indel_model NONE -R %s -I %s", REF, NA12878_BAM) + " --no_cmdline_in_header -o %s -L 20:10130740-10130800 --allowNonUniqueKmersInRef"; final WalkerTestSpec spec = new WalkerTestSpec(base, 1, Arrays.asList("")); final File outputVCF = executeTest("HCTestDanglingTailMergingForDeletions", spec).getFirst().get(0); // confirm that the call is the correct one final VCFCodec codec = new VCFCodec(); final FileInputStream s = new FileInputStream(outputVCF); final LineIterator lineIterator = codec.makeSourceFromStream(new PositionalBufferedStream(s)); codec.readHeader(lineIterator); final String line = lineIterator.next(); Assert.assertFalse(line == null); final VariantContext vc = codec.decode(line); Assert.assertTrue(vc.isBiallelic()); Assert.assertTrue(vc.getReference().basesMatch("ATGTATG")); Assert.assertTrue(vc.getAlternateAllele(0).basesMatch("A")); }
final VCFCodec headerParser = new VCFCodec(); this.header = (VCFHeader) headerParser.readActualHeader(lineIterator); bps.close(); } catch ( IOException e ) {