Metadata-Version: 2.4
Name: nephrosim
Version: 0.1.0
Summary: Gymnasium environments for reinforcement learning in hemodialysis optimization
Project-URL: Repository, https://github.com/HassDhia/nephrosim
Project-URL: Documentation, https://github.com/HassDhia/nephrosim#readme
Author-email: Hass Dhia <partners@smarttechinvest.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Requires-Python: >=3.10
Requires-Dist: gymnasium>=0.29
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.11
Provides-Extra: all
Requires-Dist: matplotlib>=3.7; extra == 'all'
Requires-Dist: mypy; extra == 'all'
Requires-Dist: pytest-cov; extra == 'all'
Requires-Dist: pytest>=7.0; extra == 'all'
Requires-Dist: ruff; extra == 'all'
Requires-Dist: stable-baselines3>=2.0; extra == 'all'
Requires-Dist: torch>=2.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: plot
Requires-Dist: matplotlib>=3.7; extra == 'plot'
Provides-Extra: train
Requires-Dist: stable-baselines3>=2.0; extra == 'train'
Requires-Dist: torch>=2.0; extra == 'train'
Description-Content-Type: text/markdown

# NephroSim

Gymnasium environments for reinforcement learning in hemodialysis optimization.

## Installation

```bash
pip install nephrosim
```

## Quick Start

```python
import gymnasium as gym
import nephrosim

env = gym.make("nephrosim/UreaClearing-v0")
obs, info = env.reset()

for _ in range(240):
    action = env.action_space.sample()
    obs, reward, terminated, truncated, info = env.step(action)
    if terminated or truncated:
        break
```

## Environments

| Environment | Observation | Action | Objective |
|---|---|---|---|
| `UreaClearing-v0` | 7-dim | 2-dim (Qb, Qd) | Maximize Kt/V |
| `UltrafiltrationControl-v0` | 8-dim | 1-dim (UF rate) | Remove fluid safely |
| `PhosphateMgmt-v0` | 6-dim | 1-dim (binder dose) | Weekly phosphate control |
| `FullDialysisSession-v0` | 11-dim | 3-dim (Qb, Qd, UF) | Multi-objective |

## Citation

```bibtex
@article{dhia2026nephrosim,
  title={NephroSim: Gymnasium Environments for Reinforcement Learning in Hemodialysis Optimization},
  author={Dhia, Hass},
  year={2026},
  institution={Smart Technology Investments Research Institute}
}
```

## License

MIT
