@Test public void parseConsequenceTypeSOTerm() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=soAcc:\"1583\"", 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 parseExactSift2() { 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 parseRegionChromosomeStartEnd() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(REGION.key(), "1:66381-76381,1:98766-117987"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=(chromosome:\"1\"+AND+start:[66381+TO+*]+AND+end:[*+TO+76381])+OR+(chromosome:\"1\"+AND+start:[98766+TO+*]+AND+end:[*+TO+117987])", solrQuery.toString()); }
@Test public void parseConsequenceTypeSOAcc() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_CONSEQUENCE_TYPE.key(), "SO:0001792,SO:0001619"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=soAcc:\"1792\"+OR+soAcc:\"1619\"", solrQuery.toString()); }
@Test public void parsePopMafScoreMissing() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); // (* -popFreq__1kG_phase3__YRI:*) OR popFreq_1kG_phase3__YRI:[0.01 TO *] 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()); }
@Test public void parseNoPopMaf() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:GWD!=0.061946902"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=-popFreq__1kG_phase3__GWD:0.061946902", solrQuery.toString()); }
@Test public void parseNoExactSift() { 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 parseHPOs() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_HPO.key(), "HP%3A000365,HP%3A0000007"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=(traits:\"HP%253A000365\"+OR+traits:\"HP%253A0000007\")", solrQuery.toString()); }
@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()); }
@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()); }
@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()); }
@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 parsePhylop() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_CONSERVATION.key(), "phylop<-1.0"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=phylop:{-100.0+TO+-1.0}", solrQuery.toString()); }
@Test public void parseExactPopMaf() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:GWD==0.061946902"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=popFreq__1kG_phase3__GWD:0.061946902", solrQuery.toString()); }
@Test public void parseAnnot() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant"); query.put(ANNOT_XREF.key(), "RIPK2,NCF4"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=geneToSoAcc:\"RIPK2_1583\"+OR+geneToSoAcc:\"NCF4_1583\"", solrQuery.toString()); }
@Test public void parseAnnotCT1() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); // consequence types and genes // no xrefs or regions: genes AND cts query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant,coding_sequence_variant"); query.put(ANNOT_XREF.key(), "RIPK2,NCF4"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=geneToSoAcc:\"RIPK2_1583\"+OR+geneToSoAcc:\"RIPK2_1580\"+OR+geneToSoAcc:\"NCF4_1583\"+OR+geneToSoAcc:\"NCF4_1580\"", solrQuery.toString()); }
@Test public void parseAnnotCT4() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); // 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(REGION.key(), "1,2"); query.put(ANNOT_XREF.key(), "RIPK2,NCF4"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"RIPK2\"+OR+xrefs:\"NCF4\"+OR+(chromosome:\"1\")+OR+(chromosome:\"2\")", solrQuery.toString()); }
@Test public void parsePhylopAndGene() { QueryOptions queryOptions = new QueryOptions(); Query query = new Query(); query.put(GENE.key(), "WASH7P"); query.put(ANNOT_CONSERVATION.key(), "phylop<-1.0"); SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions); display(query, queryOptions, solrQuery); assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"WASH7P\"&fq=phylop:{-100.0+TO+-1.0}", 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()); }