Metadata-Version: 2.4
Name: reaxkit
Version: 2.0.0
Summary: A toolkit for parsing, analyzing, and visualizing ReaxFF simulation data.
Author-email: Ali Mohammadi <alimohammadi2265@gmail.com>, Adri van Duin <acv13@psu.edu>, Yun Kyung Shin <yks2@psu.edu>, Alireza Sepehrinezhad <alireza.sepehri@psu.edu>, Seyed Mahmoud Mortazavi <mahmoud.mortazavi72@gmail.com>, Anirban Phukan <akp6421@psu.edu>, Jupjeet Dhingra <jvd6198@psu.edu>
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.md
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: tqdm
Requires-Dist: rich
Requires-Dist: tabulate
Requires-Dist: PyYAML
Requires-Dist: rapidfuzz
Provides-Extra: plot
Requires-Dist: matplotlib; extra == "plot"
Requires-Dist: seaborn; extra == "plot"
Requires-Dist: plotly; extra == "plot"
Requires-Dist: imageio; extra == "plot"
Provides-Extra: webui
Requires-Dist: dash; extra == "webui"
Requires-Dist: dash_bootstrap_templates; extra == "webui"
Requires-Dist: fastapi; extra == "webui"
Provides-Extra: trajectory
Requires-Dist: MDAnalysis; extra == "trajectory"
Requires-Dist: freud-analysis; extra == "trajectory"
Requires-Dist: ovito; extra == "trajectory"
Requires-Dist: pyvoro; extra == "trajectory"
Provides-Extra: materials
Requires-Dist: ase; extra == "materials"
Requires-Dist: mp_api; extra == "materials"
Requires-Dist: pymatgen; extra == "materials"
Provides-Extra: graph
Requires-Dist: networkx; extra == "graph"
Requires-Dist: igraph; extra == "graph"
Provides-Extra: ml
Requires-Dist: dscribe; extra == "ml"
Requires-Dist: spacy; extra == "ml"
Requires-Dist: scikit-learn; extra == "ml"
Provides-Extra: io
Requires-Dist: openpyxl; extra == "io"
Requires-Dist: h5py; extra == "io"
Requires-Dist: python-docx; extra == "io"
Requires-Dist: zstandard; extra == "io"
Provides-Extra: engines
Requires-Dist: lammps; extra == "engines"
Requires-Dist: scm; extra == "engines"
Provides-Extra: all
Requires-Dist: reaxkit[engines,graph,io,materials,ml,plot,trajectory,webui]; extra == "all"
Dynamic: license-file

# ReaxKit

**ReaxKit** is a modular, extensible Python toolkit for **pre‑processing, post‑processing, and analysis of ReaxFF** molecular dynamics simulations.
It provides a clean separation between file parsing, analysis routines, and reproducible workflows, with **Python APIs**, a **CLI interface**, and a **Dash-based GUI**.

ReaxKit is designed for researchers who want a transparent, scriptable bridge between raw ReaxFF data and quantitative, publication‑ready results.

---

## Key Capabilities

### Engine
- Shared engine abstractions for consistent parsing and generating input/output files across 3 different ReaxFF simulation engines, namely `ams`, `lammps`, `reaxff`
- Example IO and generator modules under the `reaxff` engine:
  - ReaxFF input and output files such as `xmolout`, `fort.7`, `fort.13`, `molfra`, and more
  - Input generators for `control`, `geo`, `eregime`, `tregime`, and related files

### Analysis
- Engine-agnostic analyzers built on ReaxKit's domain data models
- Analyzer tasks organized around separated request, result, and task objects
- Analysis components separated from engine IO so the same computations can be reused across scripts, workflows, web UI, and presentation modules

### Workflows
- Reproducible workflows organized by data handling, file tools, meta orchestration, presentation, and study design
- Automation paths for common ReaxFF pre-processing, analysis, post-processing, and presentation tasks

### Web UI
- Dash-based interface components for interactive ReaxFF data inspection
- Backend, UI, and presentation layers for browser-driven workflows

### Presentation
- Publication-ready plotting utilities:
  - 2D plots, dual-axis plots, tornado plots, 3D scatter, and heatmaps
- Video generators

### Utilities
- Shared data, media, and numerical utilities
- Common infrastructure used by analysis, workflows, web UI, and presentation modules

See the full documentation (API reference, tutorials, examples) on [ReaxKit Site](https://ali-m-dinani.github.io/reaxkit/).

---

## Project Layout

```
src/reaxkit/
├── analysis/        # Engine-agnostic analysis tasks
├── cli/             # Command-line entry points
├── core/            # Registries and shared core infrastructure
├── data/            # Packaged reference data and resources
├── domain/          # Central data models, requests, and results
├── engine/          # IO handlers and input generators
├── help/            # Introspection and help system
├── presentation/    # Plotting, active-site views, and media presentation
├── utils/           # Shared data, media, and numerical utilities
├── webui/           # Dash/web interface backend, UI, and presentation layers
└── workflows/       # Workflow orchestration and automation
```

---

##  Testing

Run unit tests with:

```bash
pytest -s tests/
```

to test the package and get the timing for their execution.

---

## Citation

If you use ReaxKit in your work, please cite:

```text
Dinani, A. M., van Duin, A., Shin, Y. K., & Sepehrinezhad, A. (2025).
ReaxKit: A modular Python toolkit for ReaxFF simulation analysis.
Zenodo. https://doi.org/10.5281/zenodo.18485384

Source code: https://github.com/ali-m-dinani/reaxkit
```

---

## Future Directions

* Implement machine learning-based surrogate models for rapid property prediction and active-site identification.
* Develop a plugin system for user-contributed analysis routines and visualization components.
* Integrate with Jupyter notebooks for interactive analysis and visualization.

If you have any feature request, you can submit it through the ReaxKit's GitHub page, or directly sending an email to `Dinani@psu.edu`.

---
## Additional resources:

- [AUTHORS.md](AUTHORS.md) —  Full credits and acknowledgments.
- [LICENSE](LICENSE) — Full license terms under the **MIT License**
