• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

openvax / topiary
87%
master: 90%

Build:
Build:
LAST BUILD BRANCH: v5.16.2
DEFAULT BRANCH: master
Repo Added 05 Jan 2018 08:34PM UTC
Files 35
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH v5.0.0
branch: v5.0.0
CHANGE BRANCH
x
Reset
  • v5.0.0
  • add-agents-md
  • add-cache-sharding
  • add-cached-predictor
  • add-model-colon-kind-syntax
  • add-netmhc-cache-loaders
  • add-protected-tissues-scope
  • add-self-proteome-nearest
  • antigen-fragment
  • bare-ident-brackets
  • best-allele-aggregation
  • cached-predictor-cli
  • cached-predictor-vaxrank-polish
  • chore/varcode-floor-122
  • ci-caching
  • cleanup-dsl-version-syntax
  • codex/mhctools-3-7-compat
  • codex/predict-wt-peptides
  • combine-predictor-results
  • csv-fasta-inputs
  • dsl-extensions
  • dsl-polish
  • dsl-polish-v5.0.1
  • dsl-refactor-v5
  • eval-context-default-methods
  • evaluate-scores-helper
  • expression-data
  • expression-dsl-v2
  • feature/peptide-property-dsl
  • filter-auto-aggregate
  • fix-127-autowrap-test
  • fix-165-backfill-value-from-score
  • fix-biopython-dependency
  • fix-deploy-python-selection
  • improve-cli-errors
  • inline-blosum62
  • io-wide-v4.11
  • lazy-varcode-imports
  • lens-loader
  • master
  • multi-model-disambiguation
  • openvax_switch
  • peptide-provenance
  • pirlygenes-5.1-expression-accessors
  • plumb-kind-support
  • pr-b-fragment-refactor
  • promote-kind-aliases-public
  • pvacseq-loader
  • refactor-for-protein-sequences
  • release-4.8.0
  • restore-varcode-cli-parser-delegation
  • shrink-cached-predictor-index
  • test-audit-v4.10
  • topiary-result
  • v4.10.0
  • v4.11.0
  • v4.11.1
  • v4.11.2
  • v4.12.0
  • v4.3.0
  • v4.3.1
  • v4.3.2
  • v4.4.0
  • v4.5.0
  • v4.5.1
  • v4.6.0
  • v4.8.0
  • v4.9.0
  • v5.0.1
  • v5.1.0
  • v5.10.0
  • v5.10.1
  • v5.10.2
  • v5.10.3
  • v5.10.4
  • v5.10.5
  • v5.10.6
  • v5.10.7
  • v5.10.8
  • v5.11.0
  • v5.12.0
  • v5.13.0
  • v5.14.0
  • v5.14.1
  • v5.15.0
  • v5.16.1
  • v5.16.2
  • v5.2.0
  • v5.4.0
  • v5.5.0
  • v5.6.0
  • v5.8.0
  • v5.9.0
  • v5.9.1

12 Apr 2026 08:15PM UTC coverage: 87.227% (+2.8%) from 84.431%
24315494917

push

github

web-flow
DSL refactor: unify filter tree + vectorize eval (#111) (#113)

Consolidates the historical filter classes (EpitopeFilter, ColumnFilter,
ExprFilter) and the RankingStrategy composite into a single DSLNode tree
whose .eval(ctx) returns a pd.Series indexed by peptide-allele group
tuples. Every node — arithmetic, comparison, boolean — composes freely.

Breaking changes (warrants 5.0.0):
- Removed: EpitopeFilter, ColumnFilter, ExprFilter, RankingStrategy,
  SortSpec, affinity_filter, presentation_filter, apply_ranking_strategy.
- TopiaryPredictor now takes filter_by (DSLNode) + sort_by (list[DSLNode])
  + sort_direction. Legacy kwargs (ic50_cutoff, percentile_cutoff,
  ranking, ranking_strategy, filter, rank_by) are dropped.
- parse_expr, parse_filter, parse_ranking collapsed into a single parse().
- Parser now accepts mixed |/& with standard precedence (& tighter than |);
  previously this raised.
- Unqualified Affinity.value on multi-method DataFrames raises a clear
  ambiguity error pointing at Affinity["modelname"]. Old behavior
  silently passed if any row met the threshold.
- apply_filter errors on non-boolean input (accepts {True, False, 0, 1,
  NaN}). NaN still maps to False.

New:
- Field gains an optional version parameter; Affinity["netmhcpan", "4.1b"]
  and affinity['netmhcpan', '4.1b'] in string DSL filter on both
  prediction_method_name and predictor_version.
- apply_filter / apply_sort split as the public entry points. apply_sort
  preserves the NaN-fallthrough-to-next-tiebreaker semantic, now
  vectorized over a float matrix.
- AggExpr (mean/geomean/minimum/maximum/median) vectorized via pandas
  skipna ops; geomean via nanmean(log()) with non-positive masked.
- BoolOp honors NaN → False policy cleanly under all dtypes.
- DSLNode.to_expr_string() round-trips through parse() for every node.
- ranking.py split into a package: nodes.py (1376), parser.py (492),
  apply.py (194), __init__.py (103 — pure re-exports).

Tests: 843 passing. Added ... (continued)

1135 of 1299 new or added lines in 8 files covered. (87.37%)

1 existing line in 1 file now uncovered.

2595 of 2975 relevant lines covered (87.23%)

2.62 hits per line

Relevant lines Covered
Build:
Build:
2975 RELEVANT LINES 2595 COVERED LINES
2.62 HITS PER LINE
Source Files on v5.0.0
  • Tree
  • List 28
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
24315494917 v5.0.0 DSL refactor: unify filter tree + vectorize eval (#111) (#113) Consolidates the historical filter classes (EpitopeFilter, ColumnFilter, ExprFilter) and the RankingStrategy composite into a single DSLNode tree whose .eval(ctx) returns a pd.Series ... push 12 Apr 2026 08:24PM UTC web-flow github
87.23
See All Builds (269)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc