Metadata-Version: 2.4
Name: dnakit
Version: 0.1.4
Summary: Deterministic tools for DNA sequence analysis
Author: DNAKit contributors
License-Expression: MIT
Project-URL: Homepage, https://github.com/mapengsen/DNAKit
Project-URL: Documentation, https://mapengsen.github.io/DNAKit/en/
Project-URL: Repository, https://github.com/mapengsen/DNAKit
Project-URL: Issues, https://github.com/mapengsen/DNAKit/issues
Project-URL: Changelog, https://mapengsen.github.io/DNAKit/en/changelog/
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: DISCLAIMER.md
Requires-Dist: PyYAML>=6.0
Requires-Dist: rich>=13.7
Requires-Dist: tomli>=2.0; python_version < "3.11"
Requires-Dist: typer>=0.12
Provides-Extra: bio-analysis
Requires-Dist: numpy<3,>=1.26; extra == "bio-analysis"
Requires-Dist: scipy<2,>=1.11; extra == "bio-analysis"
Requires-Dist: scikit-learn<2,>=1.5; extra == "bio-analysis"
Provides-Extra: bio-formats
Requires-Dist: biopython<2,>=1.85; extra == "bio-formats"
Provides-Extra: bio-reads
Requires-Dist: pysam<0.25,>=0.22; extra == "bio-reads"
Provides-Extra: bio-plots
Requires-Dist: matplotlib<4,>=3.8; extra == "bio-plots"
Provides-Extra: bio-assembly
Requires-Dist: pydna<6,>=5.5; extra == "bio-assembly"
Provides-Extra: bio
Requires-Dist: dnakit[bio-analysis,bio-assembly,bio-formats,bio-plots,bio-reads]; extra == "bio"
Provides-Extra: bio-validation
Requires-Dist: scikit-bio<0.8,>=0.7.3; extra == "bio-validation"
Requires-Dist: statsmodels<1,>=0.14; extra == "bio-validation"
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: hypothesis>=6.100; extra == "dev"
Requires-Dist: mypy>=1.11; extra == "dev"
Requires-Dist: numpy<3,>=1.26; extra == "dev"
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: ruff>=0.8; extra == "dev"
Requires-Dist: scikit-learn<2,>=1.5; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"
Requires-Dist: types-PyYAML>=6.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
Requires-Dist: mkdocs-material<10,>=9.5; extra == "docs"
Requires-Dist: mkdocs-static-i18n<2,>=1.3.1; extra == "docs"
Requires-Dist: mkdocstrings[python]<1,>=0.27; extra == "docs"
Requires-Dist: nbmake<2,>=1.5; extra == "docs"
Provides-Extra: viz
Requires-Dist: CairoSVG<3,>=2.7; extra == "viz"
Requires-Dist: Pillow<13,>=10; extra == "viz"
Provides-Extra: io
Requires-Dist: pyarrow<26,>=19; extra == "io"
Provides-Extra: validation
Requires-Dist: biopython<2,>=1.85; extra == "validation"
Provides-Extra: external-tools
Requires-Dist: tooluniverse<2,>=1.4; extra == "external-tools"
Provides-Extra: agent
Requires-Dist: fastmcp<4,>=3.4.5; extra == "agent"
Provides-Extra: neural
Requires-Dist: huggingface-hub<2,>=0.28; extra == "neural"
Requires-Dist: numpy<3,>=1.26; extra == "neural"
Requires-Dist: scikit-learn<2,>=1.5; extra == "neural"
Requires-Dist: torch<3,>=2.5; extra == "neural"
Requires-Dist: transformers<5,>=4.49; extra == "neural"
Provides-Extra: training
Requires-Dist: huggingface-hub<2,>=0.28; extra == "training"
Requires-Dist: numpy<3,>=1.26; extra == "training"
Requires-Dist: openpyxl<4,>=3.1; extra == "training"
Requires-Dist: pandas<4,>=2.2; extra == "training"
Requires-Dist: pyarrow<26,>=19; extra == "training"
Requires-Dist: scikit-learn<2,>=1.5; extra == "training"
Requires-Dist: torch<3,>=2.5; extra == "training"
Requires-Dist: transformers<5,>=4.49; extra == "training"
Requires-Dist: xlrd<3,>=2.0; extra == "training"
Provides-Extra: ml
Requires-Dist: numpy<3,>=1.26; extra == "ml"
Requires-Dist: scikit-learn<2,>=1.5; extra == "ml"
Requires-Dist: joblib<2,>=1.4; extra == "ml"
Requires-Dist: threadpoolctl<4,>=3.1; extra == "ml"
Requires-Dist: openpyxl<4,>=3.1; extra == "ml"
Requires-Dist: pandas<4,>=2.2; extra == "ml"
Requires-Dist: pyarrow<26,>=19; extra == "ml"
Requires-Dist: xlrd<3,>=2.0; extra == "ml"
Provides-Extra: xgboost
Requires-Dist: dnakit[ml]; extra == "xgboost"
Requires-Dist: xgboost<4,>=2.1; extra == "xgboost"
Provides-Extra: lightgbm
Requires-Dist: dnakit[ml]; extra == "lightgbm"
Requires-Dist: lightgbm<5,>=4.5; extra == "lightgbm"
Provides-Extra: catboost
Requires-Dist: dnakit[ml]; extra == "catboost"
Requires-Dist: catboost<2,>=1.2; extra == "catboost"
Provides-Extra: neural-caduceus
Requires-Dist: mamba-ssm<3,>=2.2; extra == "neural-caduceus"
Provides-Extra: neural-enformer
Requires-Dist: enformer-pytorch<1,>=0.8.11; extra == "neural-enformer"
Provides-Extra: neural-evo2
Requires-Dist: evo2<0.7,>=0.5.3; (python_version >= "3.11" and python_version < "3.13") and extra == "neural-evo2"
Dynamic: license-file

<p align="right">
  <a href="https://github.com/mapengsen/DNAKit/blob/main/README_CN.md">简体中文</a> | <strong>English</strong>
</p>

<p align="center">
  <img alt="DNAKit logo" src="https://raw.githubusercontent.com/mapengsen/DNAKit/main/docs/assets/images/DNAKit-icon.png" width="40%">
</p>

<p align="center">
  <a href="https://github.com/mapengsen/DNAKit/actions/workflows/ci.yml">
    <img src="https://github.com/mapengsen/DNAKit/actions/workflows/ci.yml/badge.svg?branch=main&event=push" alt="CI status">
  </a>
  <a href="https://mapengsen.github.io/DNAKit/en/">
    <img src="https://img.shields.io/badge/docs-GitHub%20Pages-4051b5" alt="Documentation">
  </a>
  <a href="https://www.python.org/downloads/">
    <img src="https://img.shields.io/badge/Python-3.10%2B-3776AB" alt="Python 3.10+">
  </a>
  <a href="https://github.com/mapengsen/DNAKit/blob/main/LICENSE">
    <img src="https://img.shields.io/github/license/mapengsen/DNAKit" alt="MIT license">
  </a>
</p>

<p align="center">
  <a href="https://pypi.org/project/dnakit/">
    <img src="https://img.shields.io/pypi/v/dnakit?include_prereleases=true&label=PyPI&logo=pypi&cacheSeconds=300" alt="PyPI version">
  </a>
  <a href="https://github.com/mapengsen/DNAKit/tree/main/packaging/bioconda">
    <img src="https://img.shields.io/badge/Bioconda-recipe-43B02A?logo=anaconda&logoColor=white" alt="Bioconda recipe">
  </a>
  <a href="https://github.com/mapengsen/DNAKit/tree/main/galaxy/dnakit">
    <img src="https://img.shields.io/badge/Galaxy-wrapper-2C3143?logo=galaxy&logoColor=white" alt="Galaxy wrapper">
  </a>
  <a href="https://github.com/mapengsen/DNAKit/tree/main/packaging/guix">
    <img src="https://img.shields.io/badge/GNU%20Guix-package-A42E2B?logo=gnu&logoColor=white" alt="GNU Guix package">
  </a>
</p>

<p align="center">
  <a href="https://mapengsen.github.io/DNAKit/">
    <img src="https://img.shields.io/badge/MCP_Server-Available-blue" alt="DNAKit MCP server">
  </a>
  <a href="https://mapengsen.github.io/DNAKit/">
    <img src="https://img.shields.io/badge/Website-DNAKit-blue" alt="DNAKit website">
  </a>
  <a href="https://mapengsen.github.io/DNAKit/en/wechat/">
    <img src="https://img.shields.io/badge/WeChat-Community-07C160" alt="WeChat community">
  </a>
  <a href="https://x.com/PengsenMa">
    <img src="https://img.shields.io/badge/X-Follow-000000" alt="Follow Pengsen Ma on X">
  </a>
</p>

<p align="center">
  <strong>DNAKit: A Comprehensive Toolkit for Efficient DNA Research</strong>
</p>

# What is DNAKit?

DNAKit is a reproducible Python toolkit for DNA sequence analysis, positioned as an "RDKit for
DNA." It covers standardization, sequence and annotation formats, basic operations, descriptors,
pattern scanning, thermodynamics, fingerprints, similarity analysis, clustering and dataset
splitting, comprehensive evaluation, molecular-biology simulation, and visualization. DNA
foundation models can optionally be used for direct property prediction or to extract
representations for k-means clustering.

# Installation and quick start

Install the current release:

```bash
pip install dnakit==0.1.4
```

Install the optional VEP, ClinVar, dbSNP, gnomAD, dN/dS, and Golden Gate
backend with `pip install "dnakit[external-tools]"`.

To expose DNAKit to an MCP-capable Agent, install `dnakit[agent]` and configure the
`dnakit-mcp` command in the Agent client.

To contribute to development, clone the repository and create the complete Conda environment:

```bash
conda env create -f environment-dev.yml
conda activate dnakit-dev
```

Then explore the [feature tree](https://mapengsen.github.io/DNAKit/en/api/features/function_tree/).

# Additional distribution platforms

The repository provides [Bioconda and GNU Guix recipes](https://github.com/mapengsen/DNAKit/tree/main/packaging)
and a [Galaxy Tool Shed wrapper](https://github.com/mapengsen/DNAKit/tree/main/galaxy/dnakit).
These files target `0.1.1`. Until they are reviewed and published by their respective platforms,
use the PyPI installation method above.

# Documentation

The complete English documentation is available from the
[DNAKit documentation homepage](https://mapengsen.github.io/DNAKit/en/), including the
[feature tree](https://mapengsen.github.io/DNAKit/en/api/features/function_tree/) and
[FAQ](https://mapengsen.github.io/DNAKit/en/faq/).

# Support and community

**GitHub repository:**

[github.com/mapengsen/DNAKit](https://github.com/mapengsen/DNAKit)

For questions, feedback, or suggestions, see:

- [FAQ](https://mapengsen.github.io/DNAKit/en/faq/)
- [GitHub Issues](https://github.com/mapengsen/DNAKit/issues)

# Changelog

See [CHANGELOG.md](https://github.com/mapengsen/DNAKit/blob/main/CHANGELOG.md) for release notes.

# Citation

The DNAKit project paper has not yet been published. Cite the current version as:

```text
DNAKit contributors. DNAKit 0.1.4, 2026. https://github.com/mapengsen/DNAKit
```

The paper has been submitted for publication, this section will be updated after the paper is published. When using specific algorithms,databases, or optional backends, cite their corresponding sources as well.

The working tree also provides [bioinformatics Python APIs](docs/api/features/27_bioinformatics.en.md): native DNA encodings, generative metrics, statistics and specification-based optimization, plus optional format codecs and specialist alignment/NGS backends. Install these with `python -m pip install -e ".[bio]"`.
