Skip to content

WIP: Add bcrlarch to cf-paired-loci phylo benchmarking framework#336

Draft
davidrich27 wants to merge 5 commits intopsathyrella:mainfrom
matsengrp:benchmark-add-bcrlarch
Draft

WIP: Add bcrlarch to cf-paired-loci phylo benchmarking framework#336
davidrich27 wants to merge 5 commits intopsathyrella:mainfrom
matsengrp:benchmark-add-bcrlarch

Conversation

@davidrich27
Copy link

@davidrich27 davidrich27 commented Feb 12, 2026

Summary

  • Register bcrlarch as a phylogenetic inference method in partis so it can be benchmarked alongside iqtree, raxml, gctree, gctree-mut-mult, igphyml via the cf-paired-loci.py validation pipeline
  • Add run-validation.sh wrapper script for running the pipeline with standard parameters

Changes

partis/treeutils.py — register bcrlarch in the phylo inference machinery:

  • Add to inf_anc_methods and all_phylo_methods method lists
  • getcmd(): generate a run.sh that activates the bcr-larch-experiments pixi environment and runs bcrlarch-run.py (same pattern as raxml's shell wrapper)
  • ofn(): output tree.nwk / inferred-seqs.fa (same as gctree/igphyml)
  • read_inf_seqs(): read inferred ancestors from inferred-seqs.fa (same pattern as gctree)

test/cf-paired-loci.py — add 'bcrlarch' to phylo_actions, which auto-generates bcrlarch-tree-perf and wires it into --actions bcrlarch and --actions tree-perf

run-validation.sh (new) — wrapper script for the validation pipeline with standard parameters (obs-times, sim-events, carry-cap, etc.) and a --tree-perf-basic shortcut that includes bcrlarch

Notes

  • Assumes bcr-larch-experiments/ is a sibling directory to partis/, resolved via os.path.dirname(utils.get_partis_dir())
  • Uses pixi shell-hook for environment activation (unlike gctree/igphyml which use mamba)
  • The bcrlarch-run.py runner script follows the same interface as gctree/igphyml: --infname, --outdir, --root-label; outputs tree.nwk and inferred-seqs.fa

Test plan

  • ./run-validation.sh --actions bcrlarch --dry-run
  • Run on one cluster manually to verify tree.nwk and inferred-seqs.fa output
  • ./run-validation.sh --actions bcrlarch-tree-perf

davidrich27 and others added 5 commits February 12, 2026 12:24
add_to_scan_cmd crashed with TypeError when vstr was Python None (rather
than string 'None'), which occurs when all scan variables have single
values. Also add bcrl_methods to the padded_seq_info_list initialization
so bcrlarch-pars gets proper ambiguous base handling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add --smoke-test flag that runs the full bcrlarch-pars pipeline with
minimal settings (1 event, 1 time point, 1 replicate, no parallelism)
for end-to-end validation. Also update default output path to
_benchmark_output/ and add _temp/ and _benchmark_output/ to .gitignore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant