Metadata-Version: 2.4
Name: ioNERDSS
Version: 2.1.1
Summary: Package for preparing NERDSS inputs and analysing outputs.
Author-email: Yue Moon Ying <yying7@jh.edu>, Mankun Sang <msang2@jhu.edu>, Samuel L Foley <sfoley13@jh.edu>, "Zixiu (Hugh) Liu" <zliu140@jhu.edu>, Sikao Guo <sikaoguo@gmail.com>
License: GPL-3.0
Keywords: NERDSS Simulation,Model Setup,Analysis Tools
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy<3,>=1.26.4
Requires-Dist: pandas
Requires-Dist: matplotlib
Requires-Dist: seaborn
Requires-Dist: tqdm
Requires-Dist: PyOpenGL
Requires-Dist: biopython
Requires-Dist: scipy<2,>=1.13.1
Requires-Dist: scikit-learn
Requires-Dist: requests
Requires-Dist: ipympl
Requires-Dist: networkx
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: proaffinity
Requires-Dist: numpy==1.26.4; extra == "proaffinity"
Requires-Dist: scipy==1.13.1; extra == "proaffinity"
Requires-Dist: torch==2.2.2; extra == "proaffinity"
Requires-Dist: torchvision==0.17.2; extra == "proaffinity"
Requires-Dist: torchaudio==2.2.2; extra == "proaffinity"
Requires-Dist: torch_geometric==2.3.0; extra == "proaffinity"
Requires-Dist: scikit-learn>=1.5.0; extra == "proaffinity"
Requires-Dist: transformers==4.38; extra == "proaffinity"
Requires-Dist: tokenizers==0.15.2; extra == "proaffinity"
Requires-Dist: huggingface-hub>=0.33.2; extra == "proaffinity"
Requires-Dist: safetensors>=0.5.3; extra == "proaffinity"
Requires-Dist: accelerate>=0.26; extra == "proaffinity"
Provides-Extra: ovito-rendering
Requires-Dist: ovito; extra == "ovito-rendering"
Requires-Dist: imageio; extra == "ovito-rendering"
Requires-Dist: Pillow; extra == "ovito-rendering"
Provides-Extra: jupyter
Requires-Dist: jupyter; extra == "jupyter"
Requires-Dist: jupyterlab; extra == "jupyter"
Requires-Dist: ipykernel; extra == "jupyter"
Requires-Dist: ipywidgets; extra == "jupyter"
Provides-Extra: simularium
Requires-Dist: simulariumio; extra == "simularium"
Requires-Dist: MDAnalysis; extra == "simularium"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6; extra == "docs"
Provides-Extra: all
Requires-Dist: pytest; extra == "all"
Requires-Dist: pytest-cov; extra == "all"
Requires-Dist: ovito; extra == "all"
Requires-Dist: imageio; extra == "all"
Requires-Dist: Pillow; extra == "all"
Requires-Dist: jupyter; extra == "all"
Requires-Dist: jupyterlab; extra == "all"
Requires-Dist: ipykernel; extra == "all"
Requires-Dist: ipywidgets; extra == "all"
Requires-Dist: mkdocs>=1.6; extra == "all"
Requires-Dist: ioNERDSS[proaffinity]; extra == "all"
Dynamic: license-file

[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://johnsonbiophysicslab.github.io/ionerdss/)
[![Run Unit Tests](https://github.com/JohnsonBiophysicsLab/ionerdss/actions/workflows/unittest.yml/badge.svg?branch=main&event=push)](https://github.com/JohnsonBiophysicsLab/ionerdss/actions/workflows/unittest.yml)
![PyPI](https://img.shields.io/pypi/v/ioNERDSS.svg)
![PyPI - Downloads](https://img.shields.io/pypi/dm/ioNERDSS.svg)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/ioNERDSS.svg)


![ioNERDSS Banner](https://raw.githubusercontent.com/JohnsonBiophysicsLab/ionerdss/main/website/assets/banner.png)


> ### Try NERDSS / ioNERDSS online  
> Try NERDSS / ioNERDSS on the webserver at **nerdssdemo.org** without local installation.  
>[![Webserver](https://img.shields.io/badge/Webserver-nerdssdemo.org-blue?style=for-the-badge&logo=internet-explorer)](https://nerdssdemo.org)


[![Documentation](https://img.shields.io/badge/Documentation-ioNERDSS%20site-lightgrey?style=for-the-badge&logo=readthedocs)](https://johnsonbiophysicslab.github.io/ionerdss/)
[![Article](https://img.shields.io/badge/Article-bioRxiv-orange?style=for-the-badge&logo=readme)](https://www.biorxiv.org/content/10.64898/2026.01.27.702082v1)
[![PyPI](https://img.shields.io/badge/PyPI-ioNERDSS-blue?style=for-the-badge&logo=pypi)](https://pypi.org/project/ioNERDSS/)
[![GitHub](https://img.shields.io/badge/GitHub-Source-black?style=for-the-badge&logo=github)](https://github.com/JohnsonBiophysicsLab/ionerdss)
[![Learn More](https://img.shields.io/badge/Learn%20More-Website-9cf?style=for-the-badge&logo=info)](https://johnsonbiophysicslab.github.io/NERDSS/)

**ionerdss** is a Python library for building NERDSS-ready models from structures, running simulation workflows, and analyzing simulation outputs.

## Installation

### 1. From PyPI

Requires Python 3.10 or later.

```bash
pip install ioNERDSS
```

To include optional features:

```bash
pip install "ioNERDSS[jupyter]"
pip install "ioNERDSS[ovito_rendering]"
pip install "ioNERDSS[proaffinity]"
```

The ODE pipeline does not require a separate extra; it is included in the main package install.

### 2. For development

```bash
git clone https://github.com/JohnsonBiophysicsLab/ionerdss.git
cd ionerdss
pip install -e ".[test,jupyter]"
pytest
```

For the full contributor environment:

```bash
pip install -e ".[all]"
```

## Usage

```python
import ionerdss as ion

system = ion.build_system_from_pdb(
    source="6bno",
    workspace_path="6bno_dir",
    ode_enabled=True,
)

analyzer = ion.Analyzer("path/to/simulation/root")
analyzer.plot.free_energy()
```

## Tutorials

Current examples live under `tutorials/` and are the supported starting point for notebook-based workflows:

- `tutorials/quick_start_6bno.ipynb`
- `tutorials/ionerdss_tutorial_5l93.ipynb`
- `tutorials/ionerdss_tutorial_6bno.ipynb`
- `tutorials/ionerdss_tutorial_8y7s.ipynb`
- `tutorials/additional_examples/4yd9.ipynb`

Open them locally with Jupyter:

```bash
git clone https://github.com/JohnsonBiophysicsLab/ionerdss.git
cd ionerdss
pip install -e ".[jupyter]"
jupyter lab tutorials/
```

Hosted documentation and tutorial index:

- Docs: [johnsonbiophysicslab.github.io/ionerdss](https://johnsonbiophysicslab.github.io/ionerdss/)
- Tutorials page: [Tutorials](https://johnsonbiophysicslab.github.io/ionerdss/tutorials/)

### Run a quick trial with our server

Go to the [NERDSS server](http://52.15.142.249:5000/).

## Documentation

The documentation site is published with GitHub Pages from the `website/` folder.

To preview it locally:

```bash
pip install -e ".[docs]"
mkdocs serve -f website/mkdocs.yml
```

Then open `http://127.0.0.1:8000/`.

## Running tests

```bash
pytest
```

## Docker development environment

```bash
docker build --no-cache -t ionerdss_dev .
docker run -it --rm -v $(pwd):/app -p 8888:8888 ionerdss_dev
```

This creates a containerized environment with Jupyter Lab accessible at `http://localhost:8888`.

## License

This project is licensed under the GPL-3.0 License.
