public QueryResult<VariantAnnotation> getAnnotation(String name, Query query, QueryOptions options, String sessionId) throws StorageEngineException, CatalogException, IOException { QueryOptions finalOptions = VariantQueryUtils.validateAnnotationQueryOptions(options); return secure(query, finalOptions, sessionId, (engine) -> engine.getAnnotation(name, query, finalOptions)); }
query.put(VariantQueryParam.ID.key(), cliOptions.id); QueryResult<VariantAnnotation> queryResult = variantStorageEngine.getAnnotation(cliOptions.annotationId, query, options);
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()); }
public void testQueries(VariantStorageEngine variantStorageEngine) throws StorageEngineException { long count = variantStorageEngine.count(new Query()).first(); long partialCount = 0; int batchSize = (int) Math.ceil(count / 10.0); for (int i = 0; i < 10; i++) { partialCount += variantStorageEngine.getAnnotation("v2", null, new QueryOptions(QueryOptions.LIMIT, batchSize) .append(QueryOptions.SKIP, batchSize * i)).getResult().size(); } assertEquals(count, partialCount); for (int chr = 1; chr < 22; chr += 2) { Query query = new Query(VariantQueryParam.REGION.key(), chr + "," + (chr + 1)); count = variantStorageEngine.count(query).first(); partialCount = variantStorageEngine.getAnnotation("v2", query, new QueryOptions()).getResult().size(); assertEquals(count, partialCount); } String consequenceTypes = VariantField.ANNOTATION_CONSEQUENCE_TYPES.fieldName().replace(VariantField.ANNOTATION.fieldName() + ".", ""); for (VariantAnnotation annotation : variantStorageEngine.getAnnotation("v2", null, new QueryOptions(QueryOptions.INCLUDE, consequenceTypes)).getResult()) { assertEquals(1, annotation.getConsequenceTypes().size()); } for (VariantAnnotation annotation : variantStorageEngine.getAnnotation("v2", null, new QueryOptions(QueryOptions.EXCLUDE, consequenceTypes)).getResult()) { assertTrue(annotation.getConsequenceTypes() == null || annotation.getConsequenceTypes().isEmpty()); } // Get annotations from a deleted snapshot thrown.expectMessage("Variant Annotation snapshot \"v1\" not found!"); assertEquals(0, variantStorageEngine.getAnnotation("v1", null, null).getResult().size()); }
@Test public void testMultiAnnotations() throws Exception { VariantStorageEngine variantStorageEngine = getVariantStorageEngine(); runDefaultETL(smallInputUri, variantStorageEngine, newStudyConfiguration(), new ObjectMap(VariantStorageEngine.Options.ANNOTATE.key(), false)); variantStorageEngine.getOptions() .append(VARIANT_ANNOTATOR_CLASSNAME, TestAnnotator.class.getName()) .append(ANNOTATOR, VariantAnnotatorFactory.AnnotationSource.OTHER); variantStorageEngine.saveAnnotation("v0", new ObjectMap()); variantStorageEngine.annotate(new Query(), new ObjectMap(TestAnnotator.ANNOT_KEY, "v1").append(OVERWRITE_ANNOTATIONS, true)); variantStorageEngine.saveAnnotation("v1", new ObjectMap()); variantStorageEngine.annotate(new Query(), new ObjectMap(TestAnnotator.ANNOT_KEY, "v2").append(OVERWRITE_ANNOTATIONS, true)); variantStorageEngine.saveAnnotation("v2", new ObjectMap()); variantStorageEngine.annotate(new Query(VariantQueryParam.REGION.key(), "1"), new ObjectMap(TestAnnotator.ANNOT_KEY, "v3").append(OVERWRITE_ANNOTATIONS, true)); assertEquals(0, variantStorageEngine.getAnnotation("v0", null, null).getResult().size()); checkAnnotationSnapshot(variantStorageEngine, "v1", "v1"); checkAnnotationSnapshot(variantStorageEngine, "v2", "v2"); checkAnnotationSnapshot(variantStorageEngine, VariantAnnotationManager.CURRENT, VariantAnnotationManager.CURRENT, "v3", new Query(VariantQueryParam.REGION.key(), "1")); checkAnnotationSnapshot(variantStorageEngine, VariantAnnotationManager.CURRENT, "v2", "v2", new Query(VariantQueryParam.REGION.key(), "2")); variantStorageEngine.deleteAnnotation("v1", new ObjectMap()); testQueries(variantStorageEngine); }