private VCFHeaderLine convertTo(String key, String value) { return new VCFHeaderLine(key.toString(), value.toString()); }
@Override public VcfHeader convert(VCFHeader header) { VcfHeader avroVcfHeader = new VcfHeader(); LinkedHashMap<String, List<Object>> meta = new LinkedHashMap<>(); avroVcfHeader.setMeta(meta); for (VCFHeaderLine line : header.getMetaDataInInputOrder()) { if (line.getKey().equalsIgnoreCase("fileFormat")) { avroVcfHeader.setFileFormat(line.getValue()); continue; } Object value; if (line.getValue().isEmpty()) { value = VCFHeaderLineTranslator.parseLine(VCFHeaderVersion.VCF4_2, line.toString(), null); } else { value = line.getValue(); } if (!meta.containsKey(line.getKey())) { meta.put(line.getKey(), new LinkedList<>()); } meta.get(line.getKey()).add(value); } return avroVcfHeader; }
public static Set<VCFHeaderLine> withUpdatedContigsAsLines(final Set<VCFHeaderLine> oldLines, final File referenceFile, final SAMSequenceDictionary refDict, final boolean referenceNameOnly) { final Set<VCFHeaderLine> lines = new LinkedHashSet<>(oldLines.size()); for (final VCFHeaderLine line : oldLines) { if (line instanceof VCFContigHeaderLine) continue; // skip old contig lines if (line.getKey().equals(VCFHeader.REFERENCE_KEY)) continue; // skip the old reference key lines.add(line); } for (final VCFHeaderLine contigLine : makeContigHeaderLines(refDict, referenceFile)) lines.add(contigLine); final String referenceValue; if (referenceFile != null) { if (referenceNameOnly) { final int extensionStart = referenceFile.getName().lastIndexOf('.'); referenceValue = extensionStart == -1 ? referenceFile.getName() : referenceFile.getName().substring(0, extensionStart); } else { referenceValue = "file://" + referenceFile.getAbsolutePath(); } lines.add(new VCFHeaderLine(VCFHeader.REFERENCE_KEY, referenceValue)); } return lines; }
if (line.getKey().equals("reference")) { newLines.add(new VCFHeaderLine(line.getKey(), ARGS.refTargetFASTA)); } else if (line.getKey().equals("source")) { newLines.add(new VCFHeaderLine(line.getKey(), line.getValue() + "_and_" + GENOME_WARP_VERSION)); hasSource = true; } else if (line.getKey().equals("fileformat")) { version = VCFHeaderVersion.toHeaderVersion(line.getValue()); if (version == null) { throw new IllegalArgumentException("malformed version: " + line.getValue()); } else if (line.getKey().equals(VCFConstants.CONTIG_HEADER_KEY)) { continue; } else { newLines.add(new VCFHeaderLine("source", GENOME_WARP_VERSION)); long chrSize = entry.getValue(); newLines.add(new VCFContigHeaderLine(VCFHeaderLine.toStringEncoding( createContigEntry(currName, chrSize, ARGS.targetAssembly, ARGS.species)), version, VCFConstants.CONTIG_HEADER_KEY, i++));
/** * Get the VCFHeaderLine whose key equals key. Returns null if no such line exists * @param key * @return */ public VCFHeaderLine getMetaDataLine(final String key) { for (final VCFHeaderLine line: mMetaData) { if ( line.getKey().equals(key) ) return line; } return null; }
headerLines.add(new VCFHeaderLine(OUTPUT_VCF_HEADER_VERSION_LINE_KEY, snpEffVersionLine.getValue())); headerLines.add(new VCFHeaderLine(OUTPUT_VCF_HEADER_COMMAND_LINE_KEY, snpEffCommandLine.getValue()));
public String toString() { return toStringEncoding(); }
public DBSNPInfo build(VCFHeader vcfHeader) { String fileDate = vcfHeader.getMetaDataLine("fileDate").getValue(); String source = vcfHeader.getMetaDataLine("source").getValue(); int dbSNPBuildID = Integer.parseInt(vcfHeader.getMetaDataLine("dbSNP_BUILD_ID").getValue()); String reference = vcfHeader.getMetaDataLine("reference").getValue(); String phasing = vcfHeader.getMetaDataLine("phasing").getValue(); return new DBSNPInfo(fileDate, source, dbSNPBuildID, reference, phasing); }
@Override public int compareTo(Object other) { return toString().compareTo(other.toString()); }
@Override public boolean equals( final Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() || ! super.equals(o) ) { return false; } final VCFSimpleHeaderLine that = (VCFSimpleHeaderLine) o; return name.equals(that.name) && genericFields.equals(that.genericFields); }
if ( line.shouldBeAddedToDictionary() ) { final VCFIDHeaderLine idLine = (VCFIDHeaderLine)line; if ( ! seen.contains(idLine.getID())) {
/** * Get the VCFHeaderLine whose key equals key. Returns null if no such line exists * @param key * @return */ public VCFHeaderLine getMetaDataLine(final String key) { for (final VCFHeaderLine line: mMetaData) { if ( line.getKey().equals(key) ) return line; } return null; }
public static Set<VCFHeaderLine> withUpdatedContigsAsLines(final Set<VCFHeaderLine> oldLines, final File referenceFile, final SAMSequenceDictionary refDict, final boolean referenceNameOnly) { final Set<VCFHeaderLine> lines = new LinkedHashSet<>(oldLines.size()); for (final VCFHeaderLine line : oldLines) { if (line instanceof VCFContigHeaderLine) continue; // skip old contig lines if (line.getKey().equals(VCFHeader.REFERENCE_KEY)) continue; // skip the old reference key lines.add(line); } for (final VCFHeaderLine contigLine : makeContigHeaderLines(refDict, referenceFile)) lines.add(contigLine); final String referenceValue; if (referenceFile != null) { if (referenceNameOnly) { final int extensionStart = referenceFile.getName().lastIndexOf('.'); referenceValue = extensionStart == -1 ? referenceFile.getName() : referenceFile.getName().substring(0, extensionStart); } else { referenceValue = "file://" + referenceFile.getAbsolutePath(); } lines.add(new VCFHeaderLine(VCFHeader.REFERENCE_KEY, referenceValue)); } return lines; }
/** * A test to ensure that if we add a line to a VCFHeader it will persist through * a round-trip write/read cycle via VariantContextWriter/VCFFileReader */ @Test public void testModifyHeader() { final File originalVCF = new File("src/test/resources/htsjdk/variant/HiSeq.10000.vcf"); final VCFFileReader reader = new VCFFileReader(originalVCF, false); final VCFHeader header = reader.getFileHeader(); reader.close(); header.addMetaDataLine(new VCFHeaderLine("FOOBAR", "foovalue")); final File outputVCF = createTempFile("testModifyHeader", IOUtil.VCF_FILE_EXTENSION); final VariantContextWriter writer = new VariantContextWriterBuilder().setOutputFile(outputVCF).setOptions(EnumSet.of(Options.ALLOW_MISSING_FIELDS_IN_HEADER)).build(); writer.writeHeader(header); writer.close(); final VCFFileReader roundtripReader = new VCFFileReader(outputVCF, false); final VCFHeader roundtripHeader = roundtripReader.getFileHeader(); roundtripReader.close(); Assert.assertNotNull(roundtripHeader.getOtherHeaderLine("FOOBAR"), "Could not find FOOBAR header line after a write/read cycle"); Assert.assertEquals(roundtripHeader.getOtherHeaderLine("FOOBAR").getValue(), "foovalue", "Wrong value for FOOBAR header line after a write/read cycle"); }
public String toString() { return toStringEncoding(); }