private void queryGeneCT(String gene, String so, Query query, Matcher<VariantAnnotation> regionMatcher) { logger.info(query.toJson()); queryResult = query(query, null); logger.info(" -> numResults " + queryResult.getNumResults()); Matcher<String> geneMatcher; List<String> genes = Arrays.asList(gene.split(",")); if (gene.contains(",")) { geneMatcher = anyOf(genes.stream().map(CoreMatchers::is).collect(Collectors.toList())); } else { geneMatcher = is(gene); } assertThat(queryResult, everyResult(allVariants, hasAnnotation( anyOf( allOf( hasAnyGeneOf(genes), withAny("consequence type", VariantAnnotation::getConsequenceTypes, allOf( with("gene", ConsequenceType::getGeneName, geneMatcher), withAny("SO", ConsequenceType::getSequenceOntologyTerms, with("accession", SequenceOntologyTerm::getAccession, is(so)))))) , allOf( regionMatcher, // not(hasAnyGeneOf(genes)), hasSO(hasItem(so)) ))))); }
CellBaseUtils cellBaseUtils = variantStorageEngine.getCellBaseUtils(); genes = cellBaseUtils.getGenesByGo(query.getAsStringList(ANNOT_GO.key())); assertThat(result, everyResult(hasAnnotation(hasAnyGeneOf(genes)))); totalResults = result.getNumResults(); assertThat(result, everyResult(hasAnnotation(hasAnyGeneOf(genes)))); assertThat(result, everyResult(hasAnnotation(hasAnyGeneOf(genes)))); assertNotEquals(0, result.getNumResults()); totalResults += result.getNumResults(); assertThat(result, everyResult(hasAnnotation(hasAnyGeneOf(genes)))); assertNotEquals(0, result.getNumResults()); assertEquals(result.getNumResults(), totalResults);
@Test public void testExpressionQuery() throws StorageEngineException { Collection<String> genes; Query query = new Query(ANNOT_EXPRESSION.key(), "non_existing_tissue"); QueryResult<Variant> result = variantStorageEngine.get(query, null); assertEquals(0, result.getNumResults()); for (String tissue : Arrays.asList("umbilical cord", "midbrain")) { query = new Query(ANNOT_EXPRESSION.key(), tissue); result = variantStorageEngine.get(query, null); System.out.println("result.getNumResults() = " + result.getNumResults()); assertNotEquals(0, result.getNumResults()); assertNotEquals(allVariants.getNumResults(), result.getNumResults()); genes = variantStorageEngine.getCellBaseUtils() .getGenesByExpression(query.getAsStringList(ANNOT_EXPRESSION.key())); assertThat(result, everyResult(hasAnnotation(hasAnyGeneOf(genes)))); } }