Skip to content

Releases: eijex/factorforge-cds

v3.2.1 — FactorForge

Choose a tag to compare

@github-actions github-actions released this 16 Jun 10:38

Added

  • Protein risk annotation layer for CDS sequences
    • Transmembrane helix prediction (Kyte-Doolittle, window=19, threshold=1.6)
    • Signal peptide heuristic (N-terminal 30 aa scan)
    • Risk classification: HIGH / MEDIUM / LOW / UNKNOWN

Fixed

  • Correct CAI provenance annotation in benchmark output (Job 110)
  • Correct Type IIS restriction site warning status (Job 110)
  • Pin JSON files to LF line endings for Windows reproducibility
  • Add pandas to dev test dependencies
  • Manifest SHA-256 reproducibility drift on Windows (JSON/EOL normalization)
  • wet-lab result GitHub template: add protein_class options (Reporter / Antigen / Cytokine) and validation consent checkbox

Changed

  • Add Google Form as wet-lab submission channel alongside GitHub Issue and email
  • Standardize wet-lab submission link labels across README, docs, and web app

Docs

  • Add public-safe FactorForge agent guidance
  • Expand release checklist with public surface audit steps

Chore

  • Bump actions/configure-pages, codecov/codecov-action, actions/deploy-pages, actions/setup-python, softprops/action-gh-release (Dependabot)

v3.2.0 — FactorForge

Choose a tag to compare

@github-actions github-actions released this 11 Jun 09:57

Added

  • MFE metadata fields — Design Package and API response now include mfe_used (bool), mfe_status (computed / not_computed), and mfe_warning (string when ViennaRNA unavailable). score_components added to expose per-term weights used in composite score calculation.
  • Design Package schema v1.0.0 — Formal IUPAC/FASTA I/O contracts and MFE null invariant established (090).
  • Registry production constants exportDEFAULT_CAI_TARGET, DEFAULT_GC_LOW, DEFAULT_GC_HIGH importable as public production constants (091).
  • Benchmark seed injection--seed flag for deterministic reruns; most_frequent_codon tie-breaking deduplication (099).
  • Codon table provenance disclosurecodon_table_manifest.json with sha256 pin, build_path_status: incomplete, and known limitations for nbenthamiana_codons.json (097).

Fixed

  • Domestication Silence Failpipeline.py now raises ValueError when restriction-site domestication fails (previously returned the undomesticated sequence silently as success).
  • Pipeline Output Validatorvalidate_cds_output() is now called in pipeline.py before final sequence return, catching AA identity violations and internal stops at the pipeline level.
  • MFE not-computed valuemfe_kcal_mol is now null (not 0.0) when ViennaRNA is unavailable. Composite score is unchanged; this corrects misleading metadata only.
  • Input validator — IUPAC ambiguous DNA/AA sequence misclassification corrected (098).

Documentation

  • Stale constant corrections — 5 doc/comment locations corrected to match live code.
  • Claim wording alignment — Public-facing API and CLI output wording unified; no expression-level or yield improvement claims (092).
  • Formal benchmark — N. benthamiana SGN CDS (N=49,257, seed=320). All metrics are in-silico; no wet-lab validation claimed.

v3.1.9 — FactorForge

Choose a tag to compare

@github-actions github-actions released this 04 Jun 07:37

Documentation

  • Internal housekeeping — project tracking references updated. No engine changes.

v3.1.8 — FactorForge

Choose a tag to compare

@github-actions github-actions released this 01 Jun 15:19

Breaking Changes

  • gc_target profile default changed — calling gc_target without an explicit target_gc now produces sequences targeting ~60% GC (host midpoint) instead of the previous 42.5%. If you relied on the 42.5% default, pass target_gc=42.5 explicitly to preserve the old behavior.

Changed

  • gc_target profile default — now targets the host-profile GC midpoint (60% for N. benthamiana) when target_gc is not supplied, instead of the legacy hardcoded 42.5%. To target a lower GC, pass target_gc explicitly. Output sequences from gc_target without an explicit target will differ.
  • GC scoringcalculate_composite_score now scores GC using a band function (gc_band_score): full score inside [gc_min, gc_max], linear decay outside over gc_decay_width (default 20 pp). Replaces the previous 1 - |GC - GC_opt|/50 proximity formula, which under-discriminated GC quality.
  • assembly_friendly scoring weights — changed from balanced-identical (0.5, 0.3, 0.2) to (0.3, 0.4, 0.3) (lower CAI pressure, higher GC/MFE weight) to align scoring with its Type IIS site-avoidance translation strategy.
  • feasibility.py defaultstarget_cai 0.92 → 0.82 (achievable; aligns with industry >0.8 practice); target_gc 41–44% → 55–65%; fallback GC ranges realigned to the 55–65% output distribution.

Fixed

  • Homopolymer thresholds documented — expression-stability (≥6 nt) and synthesis/manufacturing (≥8 nt) scans now use named constants (HOMOPOLYMER_EXPRESSION_WARN_NT, HOMOPOLYMER_SYNTHESIS_WARN_NT) and emit context/threshold_nt metadata so the two intentionally different thresholds are no longer mistaken for a bug.
  • Misleading docs removedgc_target no longer described as "42.5% (N. benthamiana optimal)"; 42.5% was a legacy assumption inconsistent with the 55–65% codon-table output.
  • CLI docs correcteddocs/cli.md --gc-min/--gc-max defaults fixed from 40/55 to the actual 55/65.

Documentation

  • docs/profiles.md — added missing assembly_friendly profile; corrected gc_target description.
  • docs/tutorials/gfp-nbenthamiana.md — regenerated profile-comparison metrics under the new GC scoring and gc_target default.

v3.1.7 — FactorForge

Choose a tag to compare

@github-actions github-actions released this 31 May 08:35

Added

  • Web UI host selector — expression host toggle (N. benthamiana / BY-2 Experimental) in the input panel. BY-2 selection disables Feasibility Best objective and shows experimental warning. Result panel displays active host profile.
  • E2E smoke tests — 5 Playwright smoke tests covering UI load, protein input, BY-2 host toggle, Feasibility Best guard, and result rendering. Runs automatically after each deployment via e2e.yml.

Documentation

  • Eijex MCP access — added Eijex MCP as access option in README.md and docs/index.md
  • API endpoints — added POST /api/optimize, /compare, /batch endpoints section to docs/cli.md
  • MCP getting started — added Eijex MCP connection guide to docs/getting-started.md
  • ml_enhanced profiledocs/profiles.md에 ml_enhanced 프로파일 문서화
  • AGENTS.md — 새 API 엔드포인트 추가 시 eijex-mcp 동기화 항목 명시

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.

v3.1.5 — FactorForge

Choose a tag to compare

@github-actions github-actions released this 28 May 08:28

Fixed

  • Data file packagingpyproject.tomlpackage-data 누락으로 pip installnbenthamiana_codons.json 경로 오류 발생하던 버그 수정. PyPI wheel에 JSON 데이터 파일이 포함되지 않았던 문제.
  • Path resolutiondomesticator.py, pipeline.py, analysis/metrics.pyparents[N] 하드코딩을 get_data_path() 사용으로 통일. 설치 환경에서 경로가 Lib/data/로 잘못 해석되던 문제 수정.
  • CI matrix — Python 3.13 + Windows (windows-latest) 테스트 추가 (3.10/3.11/3.12/3.13 × ubuntu/windows 8개 조합).

v3.1.4 — Release infrastructure & benchmark correction

Choose a tag to compare

@munkyukim86 munkyukim86 released this 27 May 07:36

Added

  • CITATION.cff — GitHub "Cite this repository" button
  • SECURITY.md — vulnerability reporting policy
  • ROADMAP.md — public development direction (v3.2, ML v4, wet-lab scope)
  • bump_version.py — automates version string updates across 14 files
  • Development history — v1→v2→v3-alpha→v3.x→v4 lineage documented

Changed

  • Public engine namingfactorforge.engines.profile / CLI --engine profile formalized
  • Benchmark corrected — CAI 0.76, GC% 59.77%, target 55–65% (N=3,876 SGN CDS, balanced profile)

Fixed

  • Stale test versiontest_design_package.py product_version 3.1.1 → 3.1.3

FactorForge v3.1.3

Choose a tag to compare

@munkyukim86 munkyukim86 released this 26 May 03:14

Fixed

  • Disabled profile cards — tooltips now accessible on hover; added "Pending wet-lab validation before enabling" notice to 5′ Ramp and Viral Delivery cards
  • Viral Delivery tooltip — corrected citation; updated to Peccoud et al. 2024 (PMC11718241)
  • Analytics notice — clarified: "Submitted sequences are not logged or stored"

Full changelog: https://github.com/eijex/factorforge-cds/blob/main/CHANGELOG.md
Documentation: https://eijex.github.io/factorforge-cds/
PyPI: pip install factorforge-cds==3.1.3

v3.1.2 — Ramp/Viral Delivery parameter fix

Choose a tag to compare

@munkyukim86 munkyukim86 released this 26 May 03:09

What's Changed

Fixed

  • viral_delivery scoring — corrected citation reference; adjusted weights: w_gc 0.25→0.35, w_mfe 0.40→0.30 per PMC11718241 (Peccoud et al. 2024)
  • 5' Ramp deoptimization — N-terminal deoptimization strength reduced from bottom 50% to bottom 25%; aligns with PMC11718241 tAI_ramp 0.8–1.2 optimal range

Changed

  • Changelog label: "ML Research Track" → "Research Track"

Full Changelog: v3.1.1...v3.1.2