public void checkConservationScore(Query query, Predicate<Double> doublePredicate, String source) { checkScore(query, doublePredicate, source, VariantAnnotation::getConservation); }
public void checkFunctionalScore(Query query, Predicate<Double> doublePredicate, String source) { checkScore(query, doublePredicate, source, VariantAnnotation::getFunctionalScore); }
public void checkScore(Query query, Predicate<Double> doublePredicate, String source, Function<VariantAnnotation, List<Score>> mapper) { checkScore(query, scores -> scores.stream().anyMatch(score -> score.getSource().equalsIgnoreCase(source) && doublePredicate.test(score.getScore())), mapper); }
checkScore(new Query(ANNOT_CONSERVATION.key(), "gerp<=0.5,phastCons<0.5"), ((Predicate<List<Score>>) scores -> scores.stream().anyMatch(s -> s.getSource().equalsIgnoreCase("gerp") && s.getScore() <= 0.5)) .or(scores -> scores.stream().anyMatch(s -> s.getSource().equalsIgnoreCase("phastCons") && s.getScore() < 0.5)), VariantAnnotation::getConservation); checkScore(new Query(ANNOT_CONSERVATION.key(), "gerp<=0.5;phastCons<0.5"), ((Predicate<List<Score>>) scores -> scores.stream().anyMatch(s -> s.getSource().equalsIgnoreCase("gerp") && s.getScore() <= 0.5)) .and(scores -> scores.stream().anyMatch(s -> s.getSource().equalsIgnoreCase("phastCons") && s.getScore() < 0.5)), VariantAnnotation::getConservation); checkScore(new Query(ANNOT_CONSERVATION.key(), "gerp<<0.5"), scores -> scores.stream().anyMatch(s -> s.getSource().equalsIgnoreCase("gerp") && s.getScore() < 0.5) VariantAnnotation::getConservation); checkScore(new Query(ANNOT_CONSERVATION.key(), "phastCons>>=0.5"), scores -> scores.stream().anyMatch(s -> s.getSource().equalsIgnoreCase("phastCons") && s.getScore() >= 0.5) VariantAnnotation::getConservation); checkScore(new Query(ANNOT_CONSERVATION.key(), "gerp<<=0.5;phastCons<0.5"), scores -> (scores.stream().anyMatch(s -> s.getSource().equalsIgnoreCase("gerp") && s.getScore() <= 0.5) || scores.stream().noneMatch(s -> s.getSource().equalsIgnoreCase("gerp")))
checkScore(new Query(ANNOT_FUNCTIONAL_SCORE.key(), "cadd_scaled<<0.5"), ((Predicate<List<Score>>) scores -> scores.stream() .anyMatch(s -> s.getSource().equalsIgnoreCase("cadd_scaled") && s.getScore() < 0.5)) VariantAnnotation::getFunctionalScore); checkScore(new Query(ANNOT_FUNCTIONAL_SCORE.key(), "cadd_scaled<<=0.5"), ((Predicate<List<Score>>) scores -> scores.stream() .anyMatch(s -> s.getSource().equalsIgnoreCase("cadd_scaled") && s.getScore() <= 0.5)) VariantAnnotation::getFunctionalScore); checkScore(new Query(ANNOT_FUNCTIONAL_SCORE.key(), "cadd_raw>>0.5"), ((Predicate<List<Score>>) scores -> scores.stream() .anyMatch(s -> s.getSource().equalsIgnoreCase("cadd_raw") && s.getScore() > 0.5)) VariantAnnotation::getFunctionalScore); checkScore(new Query(ANNOT_FUNCTIONAL_SCORE.key(), "cadd_raw>>=0.5"), ((Predicate<List<Score>>) scores -> scores.stream() .anyMatch(s -> s.getSource().equalsIgnoreCase("cadd_raw") && s.getScore() >= 0.5))