Skip to content

v3.1.6 — FactorForge

Choose a tag to compare

@github-actions github-actions released this 30 May 14:54

Added

  • SynCodonLM scoring dimension — optional 5th composite score component (w_syncodonlm, default 0.0). Integrates Boehringer-Ingelheim's BERT-based codon language model (SynCodonLM, NAR 2025; HuggingFace: jheuschkel/SynCodonLM-V2). Graceful fallback (score 0.5, WARNING) when transformers is not installed. No change to existing scoring behavior.
  • ml_enhanced scoring profilew_cai=0.35, w_gc=0.25, w_mfe=0.15, w_syncodonlm=0.25. Opt-in; existing four profiles unchanged.
  • [ml] optional dependency grouppip install factorforge-cds[ml] installs transformers>=4.40 and torch>=2.0 for SynCodonLM inference.
  • scoring_ml.pySynCodonLMScorer class with lazy model loading; calculate_syncodonlm_score(sequence, organism).
  • Profile comparison modefactorforge optimize input.fasta --engine profile --compare-profiles balanced,high_cai,gc_target outputs a side-by-side CAI / GC% / score table. First profile result saved to --output when specified. POST /api/optimize/compare endpoint added with same functionality via JSON API.
  • Tutorial: GFP N. benthamiana — end-to-end worked example at docs/tutorials/gfp-nbenthamiana.md. Covers CLI, Python API, profile comparison, and MoClo assembly preparation.
  • Batch optimization APIPOST /api/optimize/batch accepts up to 20 sequences in a single request. Returns per-sequence CAI, GC%, score, and optimized CDS. Auto-generates IDs (seq_1, seq_2, ...) when omitted. CLI multi-FASTA was already supported.
  • Tobacco BY-2 host support (experimental)--host by2 CLI flag and "host": "by2" API field optimize for N. tabacum BY-2 suspension culture cells using a Kazusa-derived codon table (1,534 CDS, species 4097). Default host remains nbenthamiana. CAI difference between hosts is < 0.05. Experimental: uses N. tabacum codon usage as proxy; not wet-lab validated for BY-2 expression performance.
  • Structure prediction links — AlphaFold DB and ESM Atlas fold links appear in the result panel after optimization. No API calls — links open external services with the input sequence.