Search in sources :

Example 1 with Filter

use of cc.redberry.primitives.Filter in project mixcr by milaboratory.

the class ActionExportParameters method getFilter.

@SuppressWarnings("unchecked")
public Filter<T> getFilter() {
    List<Filter<T>> filters = new ArrayList<>();
    final Chains chains = getChains();
    filters.add(new Filter<T>() {

        @Override
        public boolean accept(T object) {
            for (GeneType gt : GeneType.VJC_REFERENCE) {
                VDJCHit bestHit = object.getBestHit(gt);
                if (bestHit != null && chains.intersects(bestHit.getGene().getChains()))
                    return true;
            }
            return false;
        }
    });
    if (filters.isEmpty())
        return ACCEPT_ALL;
    if (filters.size() == 1)
        return filters.get(0);
    return and(filters.toArray(new Filter[filters.size()]));
}
Also used : Filter(cc.redberry.primitives.Filter) Chains(io.repseq.core.Chains) GeneType(io.repseq.core.GeneType) VDJCHit(com.milaboratory.mixcr.basictypes.VDJCHit)

Aggregations

Filter (cc.redberry.primitives.Filter)1 VDJCHit (com.milaboratory.mixcr.basictypes.VDJCHit)1 Chains (io.repseq.core.Chains)1 GeneType (io.repseq.core.GeneType)1