FactorForge
Open-source constraint-based CDS design and pre-synthesis sequence review for plant CDS workflows, with primary support for Nicotiana benthamiana (Tobacco BY-2: experimental).
FactorForge performs deterministic CDS design with CAI/GC metrics, PolyA-signal screening, and Golden Gate/MoClo-aware checks. It is positioned as a pre-synthesis review harness: it helps teams generate reproducible CDS candidates, inspect assembly-relevant sequence constraints, and package design metadata before downstream synthesis, cloning, or experimental review. Primary support: N. benthamiana (agroinfiltration). Experimental host context: Tobacco BY-2 (--host by2).
FactorForge v3.5.1 uses independently versioned engines:
| Generation | Engine | Version | Availability |
|---|---|---|---|
| Gen 1 | Rule/profile | 1.0.0 | Stable, public |
| Gen 2 | DP v2 | 2.0.1 | Stable, public default feasibility path |
| Gen 2 | DP v2.1.1 | 2.1.1 | Explicit local-guard path; computational evidence only |
| Gen 3 | sLLM Hybrid | 0.2.0-preview.1 | Feature-gated constrained-generation research preview |
| Rescue | Adaptive partial DP | 1.0.0 | Exact suffix rescue conditioned on a verified prefix |
→ Full Documentation · Roadmap
Quick Start
pip install factorforge-cds
factorforge optimize my_protein.fasta -o output.fasta
Or use the web app — no installation required.
Access Options
| Method | Description | Link |
|---|---|---|
| Web App | No installation, demo & light use | factorforge.eijex.com |
| CLI / Python | Local use, batch processing, data privacy | pip install factorforge-cds |
| Docker | Full web interface locally | docker pull ghcr.io/eijex/factorforge-cds:latest |
| Eijex MCP | MCP-compatible agent access | mcp.eijex.com |
Repository Structure
The supported deterministic engines are the profile engine, stable DP v2, and the explicit DP v2.1.1 development candidate under:
src/factorforge/engines/profile/
src/factorforge/engines/dp_v2.py
src/factorforge/engines/dp_v2_1_1.py
src/factorforge/engines/sllm/
src/factorforge/discovery/
DP v2.1.1 adds an exact active-layer 5′ GC guard and Aho-Corasick rejection of homopolymers of 6 nt or longer to the v2.1 initiation-aware objective. It emits local-composition metrics and, when ViennaRNA and sufficient transcript context are available, a separately evaluated 5′ MFE value. It is not the default; its single-target calibration does not establish holdout generalization or biological performance.
The v3.5.1 discovery-slate surface generates versioned Top-K research candidates, applies a shared deterministic hard-constraint filter, and records generator and fallback lineage. The sLLM path is disabled by default. A partial-DP rescue solves an exact suffix conditioned on the retained prefix; it is not a claim of global optimality and does not establish biological performance.
Historical implementation tracks are preserved under archive/ for provenance
and are not imported by the installed package or exposed as supported engines.
⚠️ Validation Status
FactorForge outputs are in-silico only and have not been experimentally validated in wet-lab conditions. These checks support reviewability and reproducibility; they do not guarantee expression, yield, synthesis acceptance, folding, glycosylation, regulatory approval, or downstream biological performance. See Validation and VALIDATION.md.
Citing
FactorForge v3.5.3 (2026). Open-source constraint-based CDS design and sequence review.
Eijex. https://github.com/eijex/factorforge-cds
Maintainer
Mun-Kyu Kim (@eijex)
Optional PostgreSQL support
Install pip install "factorforge-cds[postgres]" only when using the PostgreSQL
connector. Explicit local SQLite checkpoints do not require a PostgreSQL driver.
Database integration tests require an explicitly configured DATABASE_URL.
License
GNU Affero General Public License v3.0 — see LICENSE.
Disclaimer: FactorForge is provided for research purposes only. Outputs are computational and have not been experimentally validated.
Get in Touch
- Sponsor — Support our research via GitHub Sponsors or PayPal
- Docs — eijex.github.io/factorforge-cds
- Wet-lab Feedback — Public-safe feedback summaries are welcome via Share Wet-lab Feedback (GitHub). Do not submit raw sequences, confidential construct details, internal batch IDs, patient data, private contact information, exact process parameters, or confidential partner/customer data. Email
eijex.lab@gmail.comfor private or sensitive summaries. See VALIDATION.md before submitting. - Sequence Policy Profiles — FactorForge applies the sequence-review policy
chosen by the user; it does not define or approve a laboratory SOP. The web
app provides an illustrative YAML example and active-profile export.
Sequence-free, non-confidential suggestions can be submitted through the
public policy-template form; use
eijex.lab@gmail.comfor private or laboratory-specific profiles. See the sequence policy boundary. - GitHub Issues — bugs, features: github.com/eijex/factorforge-cds/issues
- Email — eijex.lab@gmail.com
- FactorForge — factorforge.eijex.com
- Eijex MCP — mcp.eijex.com
- Lab — www.eijex.com
Metadata
Release files for factorforge-cds 3.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| factorforge_cds-3.5.3.tar.gz | 288.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| factorforge_cds-3.5.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 587.1 kB
Release files / factorforge_cds-3.5.3.tar.gz
| Download URL | factorforge_cds-3.5.3.tar.gz |
|---|---|
| Size | 288.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b96d21c1a90177fefaacb438b574520836a4f4accb81d624bd6b31ba58c49e03
|
|
BLAKE2b-256 checksum How to use checksums |
aa9f1137c689c11f1ee0c9f55dcf588150a3679567a7b3bad67c754d0dc95e09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / factorforge_cds-3.5.3-py3-none-any.whl
| Download URL | factorforge_cds-3.5.3-py3-none-any.whl |
|---|---|
| Size | 299.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3bcedd03d862d526e1d0caa4b796f19fc1c6b440d8f0bb1958e90e0735e20553
|
|
BLAKE2b-256 checksum How to use checksums |
756a7c347f2a8180f0b2886f0e6a164fe1a59a28ffc3a7af8bf5b3d13a5ff1e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency log