Skip to main content

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).

License Python PyPI CI codecov DOI Web App Buy Me A Coffee

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.10 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

Experimental codon-distribution and evidence-ledger modules in the development checkout are scaffolds, not a validated laboratory policy or active learned recommendation service. Computational checks do not establish synthesis readiness or biological performance. Private inputs and collaborator packages must remain outside public repositories and dashboards.

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.x 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.10 (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

FactorForge design, CLI, Python API, and file export do not require a database. PostgreSQL persistence is an explicit Eijex integration path for retaining shared campaign and candidate identities; it is not enabled by default.

The extra pins eijex-db-core==0.1.2. Supply its approved wheel bundle using pip install --find-links PATH_TO_BUNDLE "factorforge-cds[postgres]"; the shared package is not assumed to have been published on PyPI. Standalone installation does not require it. The deployment must also provide a compatible eijex-db-core package and set FACTORFORGE_DATABASE_URL. FactorForge contains no default database credentials and does not silently fall back to another backend. See Persistence.

Explicit local SQLite research checkpoints in factorforge.db.connector remain a separate local-only utility and are not the shared DBTL system of record.

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

Testing status

The web UI now labels watermark as disabled and distinguishes the sequence-only baseline from experimental structure-conditioned testing. The local approved workflow supports explicit 1DP-only or paired 3DP mode. 3DP availability is local research testing; it is not a new public optimization endpoint or a biological-performance claim. See web UI boundaries.

Direct 3DP browser testing (unreleased)

The FactorForge form supports explicit 1DP/3DP selection. 3DP uploads a PDB/mmCIF file, selects chain and one-based file model order, and requires reviewed one-based protein positions. The selected observed chain must exactly match the complete protein; partial or homologous structures require the retained local reviewed mapping workflow. Direct requests use /api/optimize with design_mode=paired_3dp and structure_context={content,format,chain,model,positions,positions_reviewed,target_adaptiveness,penalty_weight}.

Limits: 3–300 amino acids, structure content 250 KB, HTTP JSON body 1 MB. Both candidates use the configured codon reference, requested GC and canonical motif exclusions plus custom additions. Invalid inputs and infeasible candidates fail without a baseline fallback. Existing sequence-only settings and API requests remain supported. 3DP uses its explicit DP settings and does not apply Kozak, TpA, template or seed transformations. SOP checks are reported for both candidates; regeneration is manual and never silently changes mode. Watermark stays disabled.

This is stateless computational testing, with no external service dependencies or remote database recording. Those existing integrations remain available for later operational use. The structure file is not retained in the response or browser history; normal design results may be retained in local browser history. Submit only public-safe inputs. Structural conformity metrics are codon-weight proxies, not folding/expression measurements. These source changes are not deployed or a new package release.

Current public policy UI (2026-10-12)

Custom SOP management is paused. The built-in FactorForge default policy is applied; upload/export/preset/editing controls are hidden and disabled. Their code and previous browser configuration remain available for later reactivation through ENABLE_CUSTOM_SOP. Saved custom SOPs are ignored without deletion. 1DP/3DP mode selection and explicit structure inputs remain active. This supersedes the earlier public SOP upload/export instructions. Public API contracts are retained.

Scientific web observations

Direct 1DP/3DP browser testing reports sense-CDS RNA motif scans and available initiation-window MFE in results, downloadable reports and local history. Structure confidence observations can suggest positions for explicit acceptance and review; unsupported inputs do not invent positions. These checks do not establish expression, yield or folding benefits. The default policy remains active and custom SOP management remains paused. See docs/experimental-structure.md for the API and measurement boundary.

Local reviewed structure file workflow

factorforge nbfold annotate and factorforge nbfold optimize provide the experimental local Phase A/B workflow for exact-match structure files and an explicit user review manifest. See NB-Fold documentation.

Web structure handling now requires exact-match uploaded PDB/mmCIF coordinates and explicit reviewed positions. Automatic external folding, artificial structure/confidence fallback, and auto-approval are disabled. Structure metrics are synthetic reconstruction checks; independent public-structure/DSSP validation remains open.

Experimental human-reference prototype

factorforge.engines.stemcell_3dp.StemCell3DPOptimizer is a local experimental interface using a generic human-frequency reference and provisional Eijex review criteria. It is not an MSC/iPSC-calibrated model or a laboratory-approved SOP. See prototype boundaries. It is not a new production web host.

Local research candidate: DP v2.2

The opt-in Python DPV220Optimizer shares the v2.1.1 DP core and adds reviewed position penalties. The experimental generic-human adapter uses this core; existing plant web/NB-Fold routes retain their prior objective. See the model card for usage, relaxation reporting and engineering validation boundaries. This is not an expression or folding claim.

Metadata

Release files for factorforge-cds 3.5.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for factorforge-cds 3.5.10
File Size Uploaded Provenance
factorforge_cds-3.5.10.tar.gz 492.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for factorforge-cds 3.5.10
File Interpreter ABI Platform
factorforge_cds-3.5.10-py3-none-any.whl Python 3 none any Details

Total release size: 954.0 kB

Release files / factorforge_cds-3.5.10.tar.gz

Download URL factorforge_cds-3.5.10.tar.gz
Size 492.5 kB
Tags Source
SHA-256 checksum
How to use checksums
af77a781ed522a6c9a303a90d962c37645f9d28b4970ba0adfe764884ac2ea0a
BLAKE2b-256 checksum
How to use checksums
22467e73fea412f0f221cc70a04736185e2a04c841fb448475e8a4afe23f0940
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 24, 2026.

Transparency log

Release files / factorforge_cds-3.5.10-py3-none-any.whl

Download URL factorforge_cds-3.5.10-py3-none-any.whl
Size 461.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
514c5736f483ab53fdfdc127d7c183defb80f71a7aa53cd5b93bef90d48d7196
BLAKE2b-256 checksum
How to use checksums
d23363eaa2e4455b8ebfa0533bb9a5316d8d5e7fce0f4d198a36669f34cd2a20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 24, 2026.

Transparency log

Security for factorforge-cds 3.5.10

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for factorforge_cds-3.5.10.tar.gz

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 Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

3.5.10 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page