package org.genedb.querying.tmpquery;
import org.genedb.querying.core.QueryClass;
import org.genedb.querying.core.QueryParam;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.BooleanClause.Occur;
import java.util.List;
@QueryClass(
title="Coding and pseudogenes by protein length",
shortDesc="Get a list of transcripts ",
longDesc=""
)
public class ProteinTargetingSeqQuery extends OrganismLuceneQuery {
@QueryParam(
order=1,
title="Signal peptide"
)
private boolean sigP;
@QueryParam(
order=2,
title="GPI anchor"
)
private boolean gpi;
@QueryParam(
order=3,
title="Apicoplast"
)
private boolean apicoplast;
@Override
public String getQueryDescription() {
return "Search for SignalP, GPI anchored or Apicoplast proteins.";
}
@Override
public String getQueryName() {
return "Protein Targeting";
}
@Override
protected String getluceneIndexName() {
return "org.gmod.schema.mapped.Feature";
}
@Override
protected void getQueryTermsWithoutOrganisms(List<org.apache.lucene.search.Query> queries) {
BooleanQuery bq = new BooleanQuery();
if (sigP) {
bq.add(new TermQuery(new Term("signalP", "true")), Occur.MUST);
}
if (gpi) {
bq.add(new TermQuery(new Term("gpiAnchored", "true")), Occur.MUST);
}
if (apicoplast) {
bq.add(new TermQuery(new Term("apicoplast", "true")), Occur.MUST);
}
queries.add(bq);
//if (pseudogenes) {
// queries.add(geneOrPseudogeneQuery);
//} else {
//queries.add(geneQuery);
//}
// BooleanQuery organismQuery = makeQueryForOrganisms(orgNames);
// queries.add(organismQuery);
}
// ------ Autogenerated code below here
public boolean isSigP() {
return sigP;
}
public void setSigP(boolean sigP) {
this.sigP = sigP;
}
public boolean isGpi() {
return gpi;
}
public void setGpi(boolean gpi) {
this.gpi = gpi;
}
public boolean isApicoplast() {
return apicoplast;
}
public void setApicoplast(boolean apicoplast) {
this.apicoplast = apicoplast;
}
@Override
protected String[] getParamNames() {
return new String[] {"sigP", "gpi", "apicoplast"};
}
}