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;
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;
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 = 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;
@VisibleForTesting static Map<String, ListValue> getInfo(VariantContext vc, VCFHeader header) { Map<String, ListValue> toReturn = new HashMap<>(); for (Map.Entry<String, Object> entry : vc.getAttributes().entrySet()) { String currKey = entry.getKey(); VCFInfoHeaderLine metaData = header.getInfoHeaderLine(currKey); // All info fields must have a corresponding header field. if (metaData == null) { logger.log(Level.WARNING, String.format("Could not find matching VCF header field, " + "skipping info field %s", currKey)); continue; } Object currObject = entry.getValue(); ListValue.Builder listValueBuilder = ListValue.newBuilder(); VCFHeaderLineType type = metaData.getType(); if (!(currObject instanceof List)) { toReturn.put(currKey, listValueBuilder.addValues(createTypedValue(type, currObject)).build()); continue; } List<Object> currObjectList = (List<Object>) currObject; for (Object currObj : currObjectList) { listValueBuilder.addValues(createTypedValue(type, currObj)); } toReturn.put(currKey, listValueBuilder.build()); } return toReturn; }
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); } }
if ( mleLine.getType() != VCFHeaderLineType.Integer ) { throw new UserException("VCF does not have a properly formatted MLEAC field: the field type should be \"Integer\"");
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)); } } }
VCFHeaderLineType type = header.getInfoHeaderLine(currKey).getType(); if (currSize == 1) { toSet.put(currKey, parseObject(currKey, currValue.get(0), type));
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"));
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()); .setType(infoHeaderLine.getType().toString()) .setLength(infoHeaderLine.getType() == VCFHeaderLineType.String ? "var" : getLength(infoHeaderLine));