package org.opencb.opencga.storage.core.search.solr; import org.apache.solr.client.solrj.SolrQuery; import org.junit.Test; import org.opencb.biodata.models.variant.Variant; import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; import org.opencb.opencga.storage.core.config.SearchConfiguration; import org.opencb.opencga.storage.core.config.StorageConfiguration; import org.opencb.opencga.storage.core.search.VariantSearchManager; import org.opencb.opencga.storage.core.variant.adaptors.VariantDBAdaptor; /** * Created by jtarraga on 03/03/17. */ public class ParseSolrQueryTest { public String collection = "test444"; public String study = "test444"; public void executeQuery(Query query, QueryOptions queryOptions) { SolrQueryParser solrQueryParser = new SolrQueryParser(null); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); String host = "http://localhost:8983/solr/"; String user = ""; String password = ""; boolean active = true; int rows = 10; StorageConfiguration config = new StorageConfiguration(); config.setSearch(new SearchConfiguration(host, collection, user, password, active, rows)); VariantSearchManager searchManager = new VariantSearchManager(null, config); try { SolrVariantIterator iterator = searchManager.iterator(collection, query, queryOptions); System.out.println("Num. found = " + iterator.getNumFound()); while (iterator.hasNext()) { Variant variant = iterator.next(); System.out.println(variant.toJson()); break; } } catch (Exception e) { e.printStackTrace(); } } private void display(Query query, QueryOptions queryOptions, SolrQuery solrQuery) { System.out.println("Query : " + query.toJson()); System.out.println("Query options: " + queryOptions.toJson()); System.out.println("Solr query : " + solrQuery.toString()); System.out.println(); } public void parseXref() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_XREF.key(), "rs574335987"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=xrefs:\"rs574335987\"".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseConsequenceTypeSOTerm() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=soAcc:1583".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseConsequenceTypeSOAcc() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSEQUENCE_TYPE.key(), "SO:0001792,SO:0001619"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=soAcc:1792+OR+soAcc:1619".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseGeneAndConsequenceType() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.GENE.key(), "WASH7P"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSEQUENCE_TYPE.key(), "SO:0001792"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseRegion() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1:17700"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(chromosome:1+AND+start:17700)".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseType() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.TYPE.key(), "CNV,SNV"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(type:\"CNV\"+OR+type:\"SNV\")".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parsePhylop() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSERVATION.key(), "phylop<-1.0"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=phylop:{-100.0+TO+-1.0}".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parsePhylopAndGene() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.GENE.key(), "WASH7P"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSERVATION.key(), "phylop<-1.0"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=xrefs:\"WASH7P\"&fq=phylop:{-100.0+TO+-1.0}".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parsePhylopAndGeneAndPop() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.GENE.key(), "WASH7P"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSERVATION.key(), "phylop<-1.0"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:ALL>0.1"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=xrefs:\"WASH7P\"&fq=phylop:{-100.0+TO+-1.0}&fq=popFreq__1kG_phase3__ALL:{0.1+TO+*]".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseSiftScore() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==tolerated,polyphen==bening"); //query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift>0.5,polyphen==bening"); //query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_SIFT.key(), "tolerated"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(siftDesc:\"tolerated\"+OR+polyphenDesc:\"bening\")".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parsePopMafScore() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:YRI<0.01"); // query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:ALL<0.0002"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=popFreq__1kG_phase3__YRI:{-100.0+TO+0.01}".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parsePopMafScoreMissing() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); // (* -popFreq__1kG_phase3__YRI:*) OR popFreq_1kG_phase3__YRI:[0.01 TO *] query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:YRI<<0.01"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=((*+-popFreq__1kG_phase3__YRI:*)+OR+popFreq__1kG_phase3__YRI:[0+TO+0.01})".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parsePhastCons() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSERVATION.key(), "phastCons>0.02"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=phastCons:{0.02+TO+*]".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parsePhastConsMissing() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSERVATION.key(), "phastCons>>0.02"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(phastCons:{0.02+TO+*]+OR+phastCons:\\-100.0)".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseSiftMissing() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift<<0.01"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=sift:[-100.0+TO+0.01}".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseNoPhastCons() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSERVATION.key(), "phastCons!=0.035999998450279236"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=-phastCons:0.035999998450279236".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseExactPhastCons() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSERVATION.key(), "phastCons=0.035999998450279236"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=phastCons:0.035999998450279236".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseNoPopMaf() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:GWD!=0.061946902"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=-popFreq__1kG_phase3__GWD:0.061946902".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseExactPopMaf() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:GWD==0.061946902"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=popFreq__1kG_phase3__GWD:0.061946902".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseExactSiftDesc() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==tolerated"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=siftDesc:\"tolerated\"".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseExactSiftDesc2() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift=tolerated"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=siftDesc:\"tolerated\"".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseNoExactSiftDesc() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift!=tolerated"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); // execute // executeQuery(query, queryOptions); } public void parseExactSift() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==-0.3"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=sift:\\-0.3".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseExactSift2() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift=-0.3"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=sift:\\-0.3".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseNoExactSift() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_PROTEIN_SUBSTITUTION.key(), "sift!=-0.3"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=-sift:\\-0.3".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseRegionChromosome() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1,3"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(chromosome:1)+OR+(chromosome:3)".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseRegionChromosomeStart() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1:66381,1:98769"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(chromosome:1+AND+start:66381)+OR+(chromosome:1+AND+start:98769)".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseRegionChromosomeStartEnd() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1:66381-76381,1:98766-117987"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(chromosome:1+AND+start:[66381+TO+*]+AND+end:[*+TO+76381])+OR+(chromosome:1+AND+start:[98766+TO+*]+AND+end:[*+TO+117987])".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseAnnot() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); //query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1,2"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_XREF.key(), "RIPK2,NCF4"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=geneToSoAcc:RIPK2_1583+OR+geneToSoAcc:NCF4_1583".equals(solrQuery.toString())); // execute // executeQuery(query, queryOptions); } public void parseAnnotCT1() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); // consequence types and genes // no xrefs or regions: genes AND cts query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant,coding_sequence_variant"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_XREF.key(), "RIPK2,NCF4"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=geneToSoAcc:RIPK2_1583+OR+geneToSoAcc:RIPK2_1580+OR+geneToSoAcc:NCF4_1583+OR+geneToSoAcc:NCF4_1580".equals(solrQuery.toString())); // execute //executeQuery(query, queryOptions); } public void parseAnnotCT2() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); // consequence types and genes and xrefs/regions // otherwise: [((xrefs OR regions) AND cts) OR (genes AND cts)] query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1,2"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant,coding_sequence_variant"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_XREF.key(), "RIPK2,NCF4"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(((chromosome:1)+OR+(chromosome:2))+AND+(soAcc:1583+OR+soAcc:1580))+OR+(geneToSoAcc:RIPK2_1583+OR+geneToSoAcc:RIPK2_1580+OR+geneToSoAcc:NCF4_1583+OR+geneToSoAcc:NCF4_1580)".equals(solrQuery.toString())); //execute //executeQuery(query, queryOptions); } public void parseAnnotCT3() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); // consequence types but no genes: (xrefs OR regions) AND cts // in this case, the resulting string will never be null, because there are some consequence types!! query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1,2"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant,coding_sequence_variant"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=((chromosome:1)+OR+(chromosome:2))+AND+(soAcc:1583+OR+soAcc:1580)".equals(solrQuery.toString())); // execute //executeQuery(query, queryOptions); } public void parseAnnotCT4() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); // no consequence types: (xrefs OR regions) but we must add "OR genes", i.e.: xrefs OR regions OR genes // we must make an OR with xrefs, genes and regions and add it to the "AND" filter list query.put(VariantDBAdaptor.VariantQueryParams.REGION.key(), "1,2"); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_XREF.key(), "RIPK2,NCF4"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=xrefs:\"RIPK2\"+OR+xrefs:\"NCF4\"+OR+(chromosome:1)+OR+(chromosome:2)".equals(solrQuery.toString())); // execute //executeQuery(query, queryOptions); } public void parseTraits() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_TRAITS.key(), "melanoma,recessive"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(traits:\"melanoma\"+OR+traits:\"recessive\")".equals(solrQuery.toString())); // execute //executeQuery(query, queryOptions); } public void parseHPOs() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_HPO.key(), "HP%3A000365,HP%3A0000007"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=(traits:\"HP%253A000365\"+OR+traits:\"HP%253A0000007\")".equals(solrQuery.toString())); // execute //executeQuery(query, queryOptions); } public void parseClinVars() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); //query.put(VariantDBAdaptor.VariantQueryParams.STUDIES.key(), study); query.put(VariantDBAdaptor.VariantQueryParams.ANNOT_CLINVAR.key(), "RCV000010071"); SolrQuery solrQuery = new SolrQueryParser(null).parse(query, queryOptions); display(query, queryOptions, solrQuery); assert("q=*:*&fq=xrefs:\"RCV000010071\"&fq=traits:\"RCV000010071\"".equals(solrQuery.toString())); // execute //executeQuery(query, queryOptions); } @Test public void testParsing() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); // executeQuery(query, queryOptions); parseAnnot(); parseAnnotCT1(); parseAnnotCT2(); parseAnnotCT3(); parseAnnotCT4(); parseSiftMissing(); parsePhastCons(); parsePhastConsMissing(); parsePopMafScore(); parsePopMafScoreMissing(); parseConsequenceTypeSOAcc(); parseConsequenceTypeSOTerm(); parseNoPhastCons(); parseExactPhastCons(); parseNoPopMaf(); parseExactPopMaf(); parseExactSiftDesc(); parseExactSiftDesc2(); parseNoExactSiftDesc(); parseExactSift(); parseExactSift2(); parseNoExactSift(); parseRegionChromosome(); parseRegionChromosomeStart(); parseRegionChromosomeStartEnd(); parseSiftScore(); parseXref(); parsePhylop(); parseConsequenceTypeSOAcc(); parseConsequenceTypeSOTerm(); parseRegion(); parseType(); parsePhylop(); parsePhylopAndGene(); parsePhylopAndGeneAndPop(); parseTraits(); parseHPOs(); parseClinVars(); } }