variantAnnotation.setAdditionalAttributes(new HashMap<>()); if (variantAnnotation.getAdditionalAttributes().containsKey(GROUP_NAME.key())) { additionalAttribute = variantAnnotation.getAdditionalAttributes().get(GROUP_NAME.key()); } else { additionalAttribute = new AdditionalAttribute(new HashMap<>()); variantAnnotation.getAdditionalAttributes().put(GROUP_NAME.key(), additionalAttribute); additionalAttribute.getAttribute().put(VariantField.AdditionalAttributes.RELEASE.key(), release); additionalAttribute.getAttribute().put(VariantField.AdditionalAttributes.INDEX_SYNCHRONIZATION.key(), syncStatus.key()); additionalAttribute.getAttribute().put(VariantField.AdditionalAttributes.INDEX_STUDIES.key(), studies.stream().map(Object::toString).collect(Collectors.joining(","))); additionalAttribute.getAttribute().put(VariantField.AdditionalAttributes.ANNOTATION_ID.key(), annotationId);
va.setAdditionalAttributes(new HashMap<>()); va.getAdditionalAttributes().compute(VariantField.AdditionalAttributes.GROUP_NAME.key(), (key, value) -> { if (value == null) { HashMap<String, String> map = new HashMap<>(1); value = new AdditionalAttribute(map); value.getAttribute().put(VariantField.AdditionalAttributes.ANNOTATION_ID.key(), annotationIds.get(((Number) o).intValue())); return value;
annotation.setAdditionalAttributes(new HashMap<>()); if (annotation.getAdditionalAttributes().containsKey(GROUP_NAME.key())) { additionalAttribute = annotation.getAdditionalAttributes().get(GROUP_NAME.key()); } else { additionalAttribute = new AdditionalAttribute(new HashMap<>()); annotation.getAdditionalAttributes().put(GROUP_NAME.key(), additionalAttribute); .toString(); additionalAttribute.getAttribute().put(RELEASE.key(), release);
new AdditionalAttribute(Collections.singletonMap(VARIANT_ID.key(), variant.toString())); if (variantAnnotation.getAdditionalAttributes() == null) { variantAnnotation .setAdditionalAttributes(Collections.singletonMap(GROUP_NAME.key(), additionalAttribute)); } else { variantAnnotation.getAdditionalAttributes().put(GROUP_NAME.key(), additionalAttribute);
if (variant.getAnnotation() != null && variant.getAnnotation().getAdditionalAttributes() != null && variant.getAnnotation().getAdditionalAttributes().get(GROUP_NAME.key()) != null) { AdditionalAttribute additionalAttribute = variant.getAnnotation().getAdditionalAttributes().get(GROUP_NAME.key()); String indexedStudies = additionalAttribute.getAttribute().get(INDEX_STUDIES.key());
if (variant.getAnnotation() != null && variant.getAnnotation().getAdditionalAttributes() != null && variant.getAnnotation().getAdditionalAttributes().get(GROUP_NAME.key()) != null) { AdditionalAttribute additionalAttribute = variant.getAnnotation().getAdditionalAttributes().get(GROUP_NAME.key()); String sync = additionalAttribute.getAttribute().get(AdditionalAttributes.INDEX_SYNCHRONIZATION.key()); if (VariantStorageEngine.SyncStatus.SYNCHRONIZED.key().equals(sync)) { String indexedStudiesStr = additionalAttribute.getAttribute().get(AdditionalAttributes.INDEX_STUDIES.key()); if (StringUtils.isNotEmpty(indexedStudiesStr)) { String[] indexedStudies = indexedStudiesStr.split(",");
String id; if (variantAnnotation.getAdditionalAttributes() != null && variantAnnotation.getAdditionalAttributes().containsKey(GROUP_NAME.key())) { String variantString = variantAnnotation.getAdditionalAttributes() .get(GROUP_NAME.key()) .getAttribute() .get(VARIANT_ID.key()); id = variantConverter.buildStorageId(new Variant(variantString)); } else {
Put buildPut(VariantAnnotation variantAnnotation) { Map<PhoenixHelper.Column, ?> map = convert(variantAnnotation); byte[] bytesRowKey = null; if (variantAnnotation.getAdditionalAttributes() != null) { AdditionalAttribute additionalAttribute = variantAnnotation.getAdditionalAttributes().get(GROUP_NAME.key()); if (additionalAttribute != null) { String variantString = additionalAttribute .getAttribute() .get(VARIANT_ID.key()); if (StringUtils.isNotEmpty(variantString)) { bytesRowKey = generateVariantRowKey(new Variant(variantString)); } } } if (bytesRowKey == null) { bytesRowKey = VariantPhoenixKeyFactory.generateSimpleVariantRowKey( variantAnnotation.getChromosome(), variantAnnotation.getStart(), variantAnnotation.getReference(), variantAnnotation.getAlternate()); } Put put = new Put(bytesRowKey); for (PhoenixHelper.Column column : VariantPhoenixHelper.PRIMARY_KEY) { map.remove(column); } map.forEach((column, value) -> add(put, column, value)); return put; }
@Override public List<VariantAnnotation> annotate(List<Variant> variants) throws VariantAnnotatorException { if (fail) { throw new VariantAnnotatorException("Fail because reasons"); } return variants.stream().map(v -> { VariantAnnotation a = new VariantAnnotation(); a.setChromosome(v.getChromosome()); a.setStart(v.getStart()); a.setEnd(v.getEnd()); a.setReference(v.getReference()); a.setAlternate(v.getAlternate()); a.setId("an id -- " + key); ConsequenceType ct = new ConsequenceType(); ct.setGeneName("a gene"); ct.setSequenceOntologyTerms(Collections.emptyList()); ct.setExonOverlap(Collections.emptyList()); ct.setTranscriptAnnotationFlags(Collections.emptyList()); a.setConsequenceTypes(Collections.singletonList(ct)); a.setAdditionalAttributes( Collections.singletonMap(GROUP_NAME.key(), new AdditionalAttribute(Collections.singletonMap(VARIANT_ID.key(), v.toString())))); return a; }).collect(Collectors.toList()); }
public void checkAnnotationSnapshot(VariantStorageEngine variantStorageEngine, String annotationName, String expectedAnnotationName, String expectedId, Query query) throws Exception { int count = 0; for (VariantAnnotation annotation: variantStorageEngine.getAnnotation(annotationName, query, null).getResult()) { assertEquals("an id -- " + expectedId, annotation.getId()); // assertEquals("1", annotation.getAdditionalAttributes().get("opencga").getAttribute().get("release")); assertEquals(expectedAnnotationName, annotation.getAdditionalAttributes().get(GROUP_NAME.key()) .getAttribute().get(VariantField.AdditionalAttributes.ANNOTATION_ID.key())); count++; } assertEquals(count, variantStorageEngine.count(query).first().intValue()); }