/** * Parse string values, e.g.: dbSNP, type, chromosome,... This function takes into account multiple values and * the separator between them can be: * "," or ";" to apply a "OR" condition * * @param name Parameter name * @param value Parameter value * @return A list of strings, each string represents a boolean condition */ public String parseCategoryTermValue(String name, String value) { return parseCategoryTermValue(name, value, "", false); }
public VariantSolrIterator(SolrClient solrClient, String collection, SolrQuery solrQuery, VariantSearchToVariantConverter converter) throws IOException, SolrServerException { variantSearchSolrIterator = new VariantSearchSolrIterator(solrClient, collection, solrQuery); this.variantSearchToVariantConverter = converter; }
@Override public boolean hasNext() { return variantSearchSolrIterator.hasNext(); }
@Test public void parseXref() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_XREF.key(), "rs574335987"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"rs574335987\"", solrQuery.toString()); }
public void checkLoadResult(long expected, VariantSearchLoadResult loadResult) { assertEquals(expected, loadResult.getNumLoadedVariants()); if (expected != loadResult.getNumProcessedVariants()) { System.err.println("More object than needed were fetched from the DB"); } }
public VariantSearchManager getVariantSearchManager() throws StorageEngineException { if (variantSearchManager.get() == null) { synchronized (variantSearchManager) { if (variantSearchManager.get() == null) { // TODO One day we should use reflection here reading from storage-configuration.yml variantSearchManager.set(new VariantSearchManager(getStudyConfigurationManager(), configuration)); } } } return variantSearchManager.get(); }
/** * Return a Solr variant iterator to retrieve VariantSearchModel objects from a Solr core/collection * according a given query. * * @param collection Collection name * @param query Query * @param queryOptions Query options * @return Solr VariantSearch iterator * @throws VariantSearchException VariantSearchException */ public VariantSearchSolrIterator nativeIterator(String collection, Query query, QueryOptions queryOptions) throws VariantSearchException { try { SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); return new VariantSearchSolrIterator(solrManager.getSolrClient(), collection, solrQuery); } catch (SolrServerException e) { throw new VariantSearchException("Error getting variant iterator (native)", e); } }
protected VariantSearchLoadListener newVariantSearchLoadListener() throws StorageEngineException { return VariantSearchLoadListener.empty(); }
public SolrQueryParser(StudyConfigurationManager studyConfigurationManager) { this.studyConfigurationManager = studyConfigurationManager; initChromosomeMap(); }
public long getNumFound() { return variantSearchSolrIterator.getNumFound(); }
@Override public void close() throws IOException { cellBaseUtils = null; if (variantSearchManager.get() != null) { try { variantSearchManager.get().close(); } finally { variantSearchManager.set(null); } } } }
@Override public Variant next() { count++; return variantSearchToVariantConverter.convertToDataModelType(variantSearchSolrIterator.next()); }
@Test public void parseSiftScore() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==tolerated,polyphen==bening"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=(siftDesc:\"tolerated\"+OR+polyphenDesc:\"bening\")", solrQuery.toString()); }
@Override public VariantSearchModel next() { // Sanity check if (hasNext()) { return solrIterator.next(); } else { throw new NoSuchElementException(); } }
/** * Parse string values, e.g.: dbSNP, type, chromosome,... This function takes into account multiple values and * the separator between them can be: * "," or ";" to apply a "OR" condition * * @param name Parameter name * @param value Parameter value * @param partialSearch Flag to partial search * @return A list of strings, each string represents a boolean condition */ public String parseCategoryTermValue(String name, String value, boolean partialSearch) { return parseCategoryTermValue(name, value, "", partialSearch); }
@Test public void parsePopMafScore() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:YRI<0.01"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=(popFreq__1kG_phase3__YRI:[0+TO+0.01}+OR+(*+-popFreq__1kG_phase3__YRI:*))", solrQuery.toString()); }
public long getNumFound() { // Sanity check if (solrResponse == null) { hasNext(); } return solrResponse == null ? 0 : solrResponse.getResults().getNumFound(); } }
@Test public void parseClinVars() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_CLINVAR.key(), "RCV000010071"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"RCV000010071\"", solrQuery.toString()); }
@Test public void parseExactSift() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==-0.3"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=sift:\\-0.3", solrQuery.toString()); }
@Test public void parseSample() { QueryOptions queryOptions = new QueryOptions(); queryOptions.put(QueryOptions.EXCLUDE, VariantField.STUDIES_FILES); Query query = new Query(); query.put(STUDY.key(), studyName); query.put(GENOTYPE.key(), "NA12877:1/0,NA12878:1/1"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); String fl = ",sampleFormat__*__format,sampleFormat__platinum__sampleName,sampleFormat__platinum__NA12877,sampleFormat__platinum__NA12878"; assertEquals(flBase + fl + "&q=*:*&fq=((gt__" + studyName + "__NA12878:\"1/1\")+OR+(gt__" + studyName + "__NA12877:\"1/0\"))", solrQuery.toString()); }