FactorForge - open-source constraint-based CDS design engine by Eijex.
Project description
FactorForge
Open-source constraint-based CDS design engine for plant expression workflows, with initial focus on Nicotiana benthamiana and Tobacco BY-2.
FactorForge optimizes protein sequences into host-compatible CDS by maximizing CAI, controlling GC content, eliminating PolyA signals, and producing MoClo/Golden Gate-ready constructs. Supports N. benthamiana (agroinfiltration) and Tobacco BY-2 (--host by2, bioreactor/cGMP workflows).
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-cds.vercel.app |
| 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 |
Repository Structure
The supported production engine is the deterministic profile engine under:
src/factorforge/engines/profile/
Historical implementation tracks are preserved under archive/ for provenance
and are not imported by the installed package or exposed as supported engines.
Development History
FactorForge has gone through several implementation generations before the current public release:
| Generation | Status | Description |
|---|---|---|
| v1 — NBent_OptiCodon | Internal | Thesis-derived codon optimization baseline for N. benthamiana |
| v2 — Rule-Based Engine | Internal → Production | Deterministic, constraint-aware design engine; became the foundation for the public release |
| v3-alpha — ML Prototype | Archived | ML-based design attempt; performance was insufficient for production use; preserved under archive/v3-ml-prototype/ |
| v3.0+ — Current release | Public | Open-source release of the matured v2 engine under factorforge.engines.profile |
| v3.7+ — ML Engine | Planned | ML-based design as --engine ml; added once sufficient wet-lab data is available |
The archive/ directory preserves all three earlier tracks for provenance. None are installed or exposed by the current package.
⚠️ Validation Status
FactorForge predictions are in-silico only and have not been experimentally validated in wet-lab conditions. See Validation and VALIDATION.md.
Citing
FactorForge v3.1.6 (2026). Open-source constraint-based CDS design engine.
Eijex. https://github.com/eijex/factorforge-cds
A citable publication is in preparation.
Contributors
| Name | Role | |
|---|---|---|
| 👤 | Mun-Kyu Kim (@eijex) | Author & maintainer |
| 🤖 | Claude (Anthropic) | Design, analysis, planning |
| 🤖 | Codex (OpenAI) | Implementation |
License
GNU Affero General Public License v3.0 — see LICENSE.
Disclaimer: FactorForge is provided for research purposes only. Predictions are computational and have not been experimentally validated.
Get in Touch
- Docs — eijex.github.io/factorforge-cds
- Wet-lab Results — Submit via Google Form (recommended) or GitHub Issue
- GitHub Issues — bugs, features: github.com/eijex/factorforge-cds/issues
- Email — eijex.lab@gmail.com
- Web — factorforge-cds.vercel.app
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file factorforge_cds-3.1.6.tar.gz.
File metadata
- Download URL: factorforge_cds-3.1.6.tar.gz
- Upload date:
- Size: 90.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b253aa03ede54038733778e3b35ecb2050ad8ddd64c8524fffd2dcaad2e1a01
|
|
| MD5 |
2ea7f11a2f2df7a8c4d71e39094db1bc
|
|
| BLAKE2b-256 |
42e589a72c7f23829a56eb69718623b410134f0f2b0140a0f341cb52e81db615
|
Provenance
The following attestation bundles were made for factorforge_cds-3.1.6.tar.gz:
Publisher:
publish.yml on eijex/factorforge-cds
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
factorforge_cds-3.1.6.tar.gz -
Subject digest:
4b253aa03ede54038733778e3b35ecb2050ad8ddd64c8524fffd2dcaad2e1a01 - Sigstore transparency entry: 1675542162
- Sigstore integration time:
-
Permalink:
eijex/factorforge-cds@56af0877771b21fd523221f2e5581a2fde0e1a5b -
Branch / Tag:
refs/tags/v3.1.6 - Owner: https://github.com/eijex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@56af0877771b21fd523221f2e5581a2fde0e1a5b -
Trigger Event:
push
-
Statement type:
File details
Details for the file factorforge_cds-3.1.6-py3-none-any.whl.
File metadata
- Download URL: factorforge_cds-3.1.6-py3-none-any.whl
- Upload date:
- Size: 103.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78aadf37a8f9cac842e98480d82a498ccafeee163c16298030f27bc31a6dfb75
|
|
| MD5 |
c09c3413b70c99d5c1850b94ff8b27fb
|
|
| BLAKE2b-256 |
1bb61ff66991eb5f24adf296d4541786ef09d484aa2388a845774a139386e19c
|
Provenance
The following attestation bundles were made for factorforge_cds-3.1.6-py3-none-any.whl:
Publisher:
publish.yml on eijex/factorforge-cds
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
factorforge_cds-3.1.6-py3-none-any.whl -
Subject digest:
78aadf37a8f9cac842e98480d82a498ccafeee163c16298030f27bc31a6dfb75 - Sigstore transparency entry: 1675542180
- Sigstore integration time:
-
Permalink:
eijex/factorforge-cds@56af0877771b21fd523221f2e5581a2fde0e1a5b -
Branch / Tag:
refs/tags/v3.1.6 - Owner: https://github.com/eijex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@56af0877771b21fd523221f2e5581a2fde0e1a5b -
Trigger Event:
push
-
Statement type: