VcfInfoAttributes(String name, String samTag, int count, VCFHeaderLineType type, String description) { this(new VCFInfoHeaderLine(name, count, type, description), samTag); } VcfInfoAttributes(String name, String samTag, VCFHeaderLineCount count, VCFHeaderLineType type, String description) {
public String attribute() { return header != null ? header.getID() : null; } /**
public void addHeadersInfixes(VCFHeader header, String prefix, String infix, String note) { try (VCFFileReader reader = new VCFFileReader(new File(genericVcfOptions.getPathVcfFile()), false)) { fileHeader = reader.getFileHeader(); } for (String fieldName : genericVcfOptions.getFieldNames()) { final VCFInfoHeaderLine headerLine = fileHeader.getInfoHeaderLine(fieldName); final VCFHeaderLineCount countType = headerLine.getCountType(); // TODO(holtgrewe): support more counts, could require using "|" for nested lists VCFInfoHeaderLine line; if (countType == VCFHeaderLineCount.R) { line = new VCFInfoHeaderLine(prefix + infix + fieldName, VCFHeaderLineCount.R, headerLine.getType(), "Field " + fieldName + " from file " + genericVcfOptions.getPathVcfFile() + note); } else if (countType == VCFHeaderLineCount.A) { line = new VCFInfoHeaderLine(prefix + infix + fieldName, VCFHeaderLineCount.A, headerLine.getType(), "Field " + fieldName + " from file " + genericVcfOptions.getPathVcfFile() + note); } else if (countType == VCFHeaderLineCount.INTEGER) { if (headerLine.getCount() != 1) { throw new RuntimeException("Unsupported integer count " + headerLine.getCount()); } line = new VCFInfoHeaderLine(prefix + infix + fieldName, 1, headerLine.getType(), "Field " + fieldName + " from file " + genericVcfOptions.getPathVcfFile() + note); } else { throw new RuntimeException("Unsupported count type " + countType); } header.addMetaDataLine(line); } }
private void writeInfoString(final Map<String, String> infoFields, final Appendable vcfoutput) throws IOException { if ( infoFields.isEmpty() ) { vcfoutput.append(VCFConstants.EMPTY_INFO_FIELD); return; } boolean isFirst = true; for (final Map.Entry<String, String> entry : infoFields.entrySet()) { if (isFirst) isFirst = false; else vcfoutput.append(VCFConstants.INFO_FIELD_SEPARATOR); vcfoutput.append(entry.getKey()); if ( ! entry.getValue().isEmpty()) { final VCFInfoHeaderLine metaData = this.header.getInfoHeaderLine(entry.getKey()); if ( metaData == null || metaData.getCountType() != VCFHeaderLineCount.INTEGER || metaData.getCount() != 0 ) { vcfoutput.append('='); vcfoutput.append(entry.getValue()); } } } }
hInfo.add(new VCFInfoHeaderLine(expression.fullName, 1, VCFHeaderLineType.String, "ID field transferred from external VCF resource")); continue; if ( line instanceof VCFInfoHeaderLine ) { final VCFInfoHeaderLine infoline = (VCFInfoHeaderLine)line; if ( infoline.getID().equals(expression.fieldName) ) { targetHeaderLine = infoline; break; if ( targetHeaderLine.getCountType() == VCFHeaderLineCount.INTEGER ) hInfo.add(new VCFInfoHeaderLine(expression.fullName, targetHeaderLine.getCount(), targetHeaderLine.getType(), targetHeaderLine.getDescription())); else hInfo.add(new VCFInfoHeaderLine(expression.fullName, targetHeaderLine.getCountType(), targetHeaderLine.getType(), targetHeaderLine.getDescription())); } else { hInfo.add(new VCFInfoHeaderLine(expression.fullName, VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "Value transferred from another external VCF resource"));
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)); } } }
String key= headerLine.getID(); if(jsScript.contains('{' + key + '}') || jsScript.contains("{INFO/" + key + '}')){ Object unkValue= ctx.getAttributes().get(key); listParam.append("["); for(Object unk : unknList){ listParam.append(this.formatObjectForJS(key, unk, vcfHeader.getInfoHeaderLine(key).getType()) + ", "); fmtValue= this.formatObjectForJS(key, unkValue, vcfHeader.getInfoHeaderLine(key).getType()); } catch(NullPointerException e){ if(headerLine.getType().equals(VCFHeaderLineType.Flag)){
value = infoValueSplit.get(0); final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key); if ( headerLine != null && headerLine.getType() == VCFHeaderLineType.Flag && value.equals("0") ) { key = infoFields.get(i); final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key); if ( headerLine != null && headerLine.getType() != VCFHeaderLineType.Flag ) { if ( GeneralUtils.DEBUG_MODE_ENABLED && ! warnedAboutNoEqualsForNonFlag ) { System.err.println("Found info key " + key + " without a = value, but the header says the field is of type " + headerLine.getType() + " but this construct is only value for FLAG type fields"); warnedAboutNoEqualsForNonFlag = true;
if (((VCFInfoHeaderLine) headerLine).getCountType() == VCFHeaderLineCount.A) { infoHeaderAltAllelesLineNames.add(((VCFInfoHeaderLine) headerLine).getID());
if ( mleLine.getCountType() != VCFHeaderLineCount.A ) { throw new UserException("VCF does not have a properly formatted MLEAC field: the count type should be \"A\""); if ( mleLine.getType() != VCFHeaderLineType.Integer ) { throw new UserException("VCF does not have a properly formatted MLEAC field: the field type should be \"Integer\"");
final boolean useRefAndAltAlleles = VCFHeaderLineCount.R == hInfo.getCountType(); final boolean useAltAlleles = VCFHeaderLineCount.A == hInfo.getCountType();
return line; String description= vcfHdr.getDescription(); Map<Integer, String> hdrIndexToName= new HashMap<Integer, String>(); List<String> header= Splitter.on("|").splitToList(description.replaceAll(".*Format: ", ""));
private void writeInfoString(final Map<String, String> infoFields, final Appendable vcfoutput) throws IOException { if ( infoFields.isEmpty() ) { vcfoutput.append(VCFConstants.EMPTY_INFO_FIELD); return; } boolean isFirst = true; for (final Map.Entry<String, String> entry : infoFields.entrySet()) { if (isFirst) isFirst = false; else vcfoutput.append(VCFConstants.INFO_FIELD_SEPARATOR); vcfoutput.append(entry.getKey()); if ( ! entry.getValue().isEmpty()) { final VCFInfoHeaderLine metaData = this.header.getInfoHeaderLine(entry.getKey()); if ( metaData == null || metaData.getCountType() != VCFHeaderLineCount.INTEGER || metaData.getCount() != 0 ) { vcfoutput.append('='); vcfoutput.append(entry.getValue()); } } } }
VCFInfoHeaderLine infoHeaderLine = (VCFInfoHeaderLine) headerLine; if (infoHeaderLine.getType().equals(VCFHeaderLineType.Flag)) { System.err.println("WARNING: Flag type fields are not handled by GenomicsDB currently - skipping field " +infoHeaderLine.getID()); continue; .setName(infoHeaderLine.getID()) .setType(infoHeaderLine.getType().toString()) .setLength(infoHeaderLine.getType() == VCFHeaderLineType.String ? "var" : getLength(infoHeaderLine)); if (infoHeaderLine.getID().equals("DP") && dpIndex != -1) { GenomicsDBVidMapProto.InfoField prevDPield = remove(infoFields, dpIndex); if (infoHeaderLine.getID().equals("DP")) { dpIndex = infoFields.indexOf(infoField);
value = infoValueSplit.get(0); final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key); if ( headerLine != null && headerLine.getType() == VCFHeaderLineType.Flag && value.equals("0") ) { key = infoFields.get(i); final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key); if ( headerLine != null && headerLine.getType() != VCFHeaderLineType.Flag ) { if ( GeneralUtils.DEBUG_MODE_ENABLED && ! warnedAboutNoEqualsForNonFlag ) { System.err.println("Found info key " + key + " without a = value, but the header says the field is of type " + headerLine.getType() + " but this construct is only value for FLAG type fields"); warnedAboutNoEqualsForNonFlag = true;
Assert.assertEquals(originalEscapingQuoteInfoLine.getDescription(), "This description has an escaped \" quote in it"); Assert.assertEquals(originalEscapingBackslashInfoLine.getDescription(), "This description has an escaped \\ backslash in it"); Assert.assertEquals(originalEscapingNonQuoteOrBackslashInfoLine.getDescription(), "This other value has a \\n newline in it"); Assert.assertEquals(firstCopyEscapingQuoteInfoLine.getDescription(), "This description has an escaped \" quote in it"); Assert.assertEquals(firstCopyEscapingBackslashInfoLine.getDescription(), "This description has an escaped \\ backslash in it"); Assert.assertEquals(firstCopyEscapingNonQuoteOrBackslashInfoLine.getDescription(), "This other value has a \\n newline in it"); Assert.assertEquals(secondCopyEscapingQuoteInfoLine.getDescription(), "This description has an escaped \" quote in it"); Assert.assertEquals(secondCopyEscapingBackslashInfoLine.getDescription(), "This description has an escaped \\ backslash in it"); Assert.assertEquals(secondCopyEscapingNonQuoteOrBackslashInfoLine.getDescription(), "This other value has a \\n newline in it");
VCFHeaderLine getVcfHeaderLine() { return new VCFInfoHeaderLine(id, VCFHeaderLineCount.A, vcfHeaderLineType, description); } }
private void writeInfoString(final Map<String, String> infoFields, final StringBuilder builder) { if ( infoFields.isEmpty() ) { builder.append(VCFConstants.EMPTY_INFO_FIELD); return; } boolean isFirst = true; for (final Map.Entry<String, String> entry : infoFields.entrySet()) { if (isFirst) isFirst = false; else builder.append(VCFConstants.INFO_FIELD_SEPARATOR); builder.append(entry.getKey()); if ( ! entry.getValue().equals("")) { final VCFInfoHeaderLine metaData = this.header.getInfoHeaderLine(entry.getKey()); if ( metaData == null || metaData.getCountType() != VCFHeaderLineCount.INTEGER || metaData.getCount() != 0 ) { builder.append("="); builder.append(entry.getValue()); } } } }
public void makeHeaderInfoMap(final Set<VCFHeaderLine> hInfo ){ for ( VCFHeaderLine hLine : hInfo ) { if ( hLine instanceof VCFInfoHeaderLine ) hInfoMap.put( ((VCFInfoHeaderLine)hLine).getID(), (VCFInfoHeaderLine)hLine); } }
value = infoValueArray[0]; final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key); if ( headerLine != null && headerLine.getType() == VCFHeaderLineType.Flag && value.equals("0") ) { key = infoFieldArray[i]; final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key); if ( headerLine != null && headerLine.getType() != VCFHeaderLineType.Flag ) { if ( GeneralUtils.DEBUG_MODE_ENABLED && ! warnedAboutNoEqualsForNonFlag ) { System.err.println("Found info key " + key + " without a = value, but the header says the field is of type " + headerLine.getType() + " but this construct is only value for FLAG type fields"); warnedAboutNoEqualsForNonFlag = true;