Metadata-Version: 2.4
Name: dnadesign-tools
Version: 0.4.1
Summary: DNA sequence design pipelines and bioinformatics helpers.
Author: Eric South
Requires-Python: <3.13,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Provides-Extra: seqledger
Requires-Dist: biopython>=1.87; extra == "seqledger"
Requires-Dist: duckdb<2,>=1.5.5; extra == "seqledger"
Requires-Dist: pandas; extra == "seqledger"
Requires-Dist: pyarrow>=23.0.1; extra == "seqledger"
Requires-Dist: pydantic<3,>=2.12.5; extra == "seqledger"
Requires-Dist: pyyaml; extra == "seqledger"
Requires-Dist: rich; extra == "seqledger"
Requires-Dist: typer; extra == "seqledger"
Requires-Dist: psutil>=7.2.1; extra == "seqledger"
Provides-Extra: infer
Requires-Dist: dnadesign-tools[seqledger]; extra == "infer"
Requires-Dist: tqdm; extra == "infer"
Provides-Extra: ops
Requires-Dist: pydantic<3,>=2.12.5; extra == "ops"
Requires-Dist: pyyaml; extra == "ops"
Requires-Dist: typer; extra == "ops"
Requires-Dist: pyarrow>=23.0.1; extra == "ops"
Requires-Dist: click>=8.3.3; extra == "ops"
Provides-Extra: notify
Requires-Dist: typer; extra == "notify"
Requires-Dist: click>=8.3.3; extra == "notify"
Requires-Dist: keyring>=25.6.0; extra == "notify"
Requires-Dist: certifi>=2026.10.19; extra == "notify"
Provides-Extra: folding
Requires-Dist: pydantic<3,>=2.12.5; extra == "folding"
Requires-Dist: pyyaml; extra == "folding"
Requires-Dist: typer; extra == "folding"
Requires-Dist: psutil>=7.2.1; extra == "folding"
Requires-Dist: viennarna>=2.7.2; extra == "folding"
Provides-Extra: construct
Requires-Dist: dnadesign-tools[folding,seqledger]; extra == "construct"
Requires-Dist: vl-convert-python>=1.9.0; extra == "construct"
Provides-Extra: baserender
Requires-Dist: pydantic<3,>=2.12.5; extra == "baserender"
Requires-Dist: pyyaml; extra == "baserender"
Requires-Dist: typer; extra == "baserender"
Requires-Dist: pyarrow>=23.0.1; extra == "baserender"
Requires-Dist: matplotlib; extra == "baserender"
Requires-Dist: pillow>=13.0.0; extra == "baserender"
Requires-Dist: psutil>=7.2.1; extra == "baserender"
Provides-Extra: junction
Requires-Dist: pydantic<3,>=2.12.5; extra == "junction"
Requires-Dist: pyyaml; extra == "junction"
Requires-Dist: typer; extra == "junction"
Requires-Dist: matplotlib; extra == "junction"
Requires-Dist: psutil>=7.2.1; extra == "junction"
Provides-Extra: cluster
Requires-Dist: dnadesign-tools[seqledger]; extra == "cluster"
Requires-Dist: scanpy==1.10.3; extra == "cluster"
Requires-Dist: igraph; extra == "cluster"
Requires-Dist: leidenalg; extra == "cluster"
Requires-Dist: scikit-learn<2,>=1.8; extra == "cluster"
Requires-Dist: scipy>=1.17.0; extra == "cluster"
Requires-Dist: seaborn; extra == "cluster"
Requires-Dist: matplotlib; extra == "cluster"
Requires-Dist: umap-learn>=0.5.11; extra == "cluster"
Requires-Dist: python-levenshtein; extra == "cluster"
Requires-Dist: click>=8.3.3; extra == "cluster"
Provides-Extra: latentdna
Requires-Dist: dnadesign-tools[seqledger]; extra == "latentdna"
Requires-Dist: anndata; extra == "latentdna"
Requires-Dist: igraph; extra == "latentdna"
Requires-Dist: leidenalg; extra == "latentdna"
Requires-Dist: pynndescent; extra == "latentdna"
Requires-Dist: scipy>=1.17.0; extra == "latentdna"
Requires-Dist: scikit-learn<2,>=1.8; extra == "latentdna"
Requires-Dist: matplotlib; extra == "latentdna"
Requires-Dist: umap-learn>=0.5.11; extra == "latentdna"
Provides-Extra: latentdna-notebook
Requires-Dist: dnadesign-tools[latentdna]; extra == "latentdna-notebook"
Requires-Dist: marimo>=0.23.16; extra == "latentdna-notebook"
Provides-Extra: cruncher
Requires-Dist: dnadesign-tools[baserender]; extra == "cruncher"
Requires-Dist: biopython>=1.87; extra == "cruncher"
Requires-Dist: python-levenshtein; extra == "cruncher"
Requires-Dist: arviz>=0.23.0; extra == "cruncher"
Requires-Dist: certifi>=2026.10.19; extra == "cruncher"
Requires-Dist: click>=8.3.3; extra == "cruncher"
Requires-Dist: logomaker; extra == "cruncher"
Requires-Dist: numba; extra == "cruncher"
Requires-Dist: pandas; extra == "cruncher"
Requires-Dist: pysam>=0.23.3; extra == "cruncher"
Requires-Dist: rich; extra == "cruncher"
Requires-Dist: tqdm; extra == "cruncher"
Provides-Extra: cruncher-notebook
Requires-Dist: dnadesign-tools[cruncher]; extra == "cruncher-notebook"
Requires-Dist: marimo>=0.23.16; extra == "cruncher-notebook"
Provides-Extra: permuter
Requires-Dist: pandas; extra == "permuter"
Requires-Dist: pyarrow>=23.0.1; extra == "permuter"
Requires-Dist: pydantic<3,>=2.12.5; extra == "permuter"
Requires-Dist: pyyaml; extra == "permuter"
Requires-Dist: rich; extra == "permuter"
Requires-Dist: typer; extra == "permuter"
Requires-Dist: matplotlib; extra == "permuter"
Requires-Dist: seaborn; extra == "permuter"
Requires-Dist: psutil>=7.2.1; extra == "permuter"
Provides-Extra: opal
Requires-Dist: pandas; extra == "opal"
Requires-Dist: pyarrow>=23.0.1; extra == "opal"
Requires-Dist: polars>=1.36.1; extra == "opal"
Requires-Dist: scikit-learn<2,>=1.8; extra == "opal"
Requires-Dist: scipy>=1.17.0; extra == "opal"
Requires-Dist: joblib; extra == "opal"
Requires-Dist: pydantic<3,>=2.12.5; extra == "opal"
Requires-Dist: pyyaml; extra == "opal"
Requires-Dist: rich; extra == "opal"
Requires-Dist: typer; extra == "opal"
Requires-Dist: typing-extensions; extra == "opal"
Requires-Dist: matplotlib; extra == "opal"
Requires-Dist: openpyxl; extra == "opal"
Provides-Extra: opal-notebook
Requires-Dist: dnadesign-tools[opal]; extra == "opal-notebook"
Requires-Dist: marimo>=0.23.16; extra == "opal-notebook"
Requires-Dist: altair>=6.0.0; extra == "opal-notebook"
Requires-Dist: plotly>=6.9.0; extra == "opal-notebook"
Requires-Dist: vegafusion>=2.0.3; extra == "opal-notebook"
Requires-Dist: vl-convert-python>=1.9.0; extra == "opal-notebook"
Requires-Dist: pillow>=13.0.0; extra == "opal-notebook"
Provides-Extra: full
Requires-Dist: dnadesign-tools[baserender,cluster,construct,cruncher-notebook,folding,infer,junction,latentdna-notebook,notify,opal-notebook,ops,permuter,seqledger]; extra == "full"
Requires-Dist: anyio>=4.14.2; extra == "full"
Requires-Dist: markdown-it-py<5,>=4.0.0; extra == "full"
Requires-Dist: pygments>=2.20.0; extra == "full"
Requires-Dist: xlrd; extra == "full"
Requires-Dist: torch<2.14,>=2.13; ((sys_platform == "darwin" and platform_machine == "arm64") or (sys_platform == "linux" and platform_machine == "x86_64")) and extra == "full"
Requires-Dist: netcdf4>=1.7.3; extra == "full"
Requires-Dist: fastparquet>=2025.12.0; extra == "full"
Requires-Dist: filelock<5,>=4.2.4; extra == "full"
Requires-Dist: zstd!=1.5.7.3,>=1.5.7.2; extra == "full"
Requires-Dist: py3dmol==2.5.5; extra == "full"
Provides-Extra: infer-evo2
Requires-Dist: dnadesign-tools[infer]; extra == "infer-evo2"
Requires-Dist: torch<2.14,>=2.13; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: pip>=26.1.2; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: setuptools>=84.1.0; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: wheel>=0.48.0; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: packaging; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: ninja; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: cmake>=3.18; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: flash-attn<3,>=2.8.3.post2; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: transformer-engine[pytorch]<3,>=2.0; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: evo2>=0.5.3; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: onnx>=1.22.0; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Requires-Dist: transformers; (sys_platform == "linux" and platform_machine == "x86_64") and extra == "infer-evo2"
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file

![dnadesign sequence toolkit](https://raw.githubusercontent.com/e-south/dnadesign/v0.4.1/assets/dnadesign-banner.png)

[![CI](https://github.com/e-south/dnadesign/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/e-south/dnadesign/actions/workflows/ci.yaml)
[![Codecov](https://codecov.io/gh/e-south/dnadesign/graph/badge.svg)](https://codecov.io/gh/e-south/dnadesign)
[![MIT license](https://img.shields.io/badge/license-MIT-3D8068.svg)](https://github.com/e-south/dnadesign/blob/main/LICENSE)

`dnadesign` brings together tools for sequence design, modeling, and analysis in
one Python monorepo. Use each tool independently or combine them through public
APIs, command-line interfaces, and shared data formats.

## Available tools

Each tool's documentation covers its setup, examples, inputs, and outputs.

### Design, modeling, and analysis

| Tool | Description |
| --- | --- |
| [**seqledger**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/seqledger/) | Store, check, and sync tables of sequence records. |
| [**infer**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/infer/) | Run sequence models and add their predictions to datasets. |
| [**construct**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/construct/) | Build DNA constructs from reusable templates. |
| [**junction**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/junction/) | Turn exact DNA targets into checked three-way-junction oligo plans. |
| [**opal**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/opal/) | Use measured results to choose which DNA designs to test next. |
| [**cluster**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/cluster/) | Group similar rows and visualize the groups. |
| [**latentdna**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/latentdna/) | Compare sequence features and save tables and plots for review. |
| [**cruncher**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/cruncher/) | Design DNA sequences and assembly plans within stated limits. |
| [**permuter**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/permuter/) | Create sequence variants and evaluate them with selected tools. |
| [**aligner**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/aligner/) | Compare pairs or sets of DNA and protein sequences. |
| [**thread**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/thread/) | Prepare protein-design jobs and check the predicted structures. |

### Draw and inspect results

| Tool | Description |
| --- | --- |
| [**folding**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/folding/) | Predict and draw how RNA sequences fold. |
| [**baserender**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/baserender/) | Draw annotated sequence maps from saved jobs. |

### Run and monitor jobs

| Tool | Description |
| --- | --- |
| [**ops**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/ops/) | Find, run, and inspect jobs across dnadesign. |
| [**notify**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/notify/) | Send notifications for local and scheduled jobs. |

### Data shared between tools

| Tool | Description |
| --- | --- |
| [**contracts**](https://github.com/e-south/dnadesign/tree/v0.4.1/src/dnadesign/contracts/) | Define versioned file formats shared between tools. |

## Contributing and reference

- [Installation](https://github.com/e-south/dnadesign/blob/v0.4.1/docs/setup/installation.md): runtime dependencies and installation profiles.
- [Docs index](https://github.com/e-south/dnadesign/blob/v0.4.1/docs/README.md): workflow and tool documentation.
- [Architecture](https://github.com/e-south/dnadesign/blob/v0.4.1/ARCHITECTURE.md), [Design](https://github.com/e-south/dnadesign/blob/v0.4.1/DESIGN.md) and [Reliability](https://github.com/e-south/dnadesign/blob/v0.4.1/RELIABILITY.md): boundaries and operating principles.
- [Developer docs](https://github.com/e-south/dnadesign/blob/v0.4.1/docs/dev/README.md): contribute changes and run validation checks.
- [Security](https://github.com/e-south/dnadesign/blob/v0.4.1/SECURITY.md), [Plans](https://github.com/e-south/dnadesign/blob/v0.4.1/PLANS.md) and [Quality score](https://github.com/e-south/dnadesign/blob/v0.4.1/QUALITY_SCORE.md): security policy and maintenance.
