warp-md 0.1.0__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {warp_md-0.1.0 → warp_md-0.1.2}/Cargo.lock +6 -6
- warp_md-0.1.2/LICENSE +21 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/PKG-INFO +1 -1
- warp_md-0.1.2/README.md +89 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/Cargo.toml +1 -1
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/Cargo.toml +1 -1
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-io/Cargo.toml +1 -1
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-py/Cargo.toml +1 -1
- {warp_md-0.1.0 → warp_md-0.1.2}/pyproject.toml +9 -1
- {warp_md-0.1.0 → warp_md-0.1.2}/Cargo.toml +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/src/elements.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/src/error.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/src/frame.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/src/interner.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/src/lib.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/src/selection.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-core/src/system.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/correlators/mod.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/correlators/multi_tau.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/correlators/ring.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/executor.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/feature_store.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/lib.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/common.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/conductivity.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/dielectric.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/dipole.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/equipartition.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/grouping.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/hbond.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/ion_pair.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/legacy/mod.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/legacy/param.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/legacy/topol.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/mod.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/msd.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/rotacf.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/structure_factor.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/analysis/water_count.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/mod.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/bond_angle.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/bond_length.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/chain_rg.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/common.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/contour.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/end_to_end.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/mod.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/polymer/persistence.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/rdf.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/rg.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/src/plans/rmsd.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/tests/correlators.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/tests/feature_store.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-engine/tests/trj_analysis_sample.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-io/src/dcd.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-io/src/gro.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-io/src/lib.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-io/src/pdb.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-io/src/xtc.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/crates/traj-py/src/lib.rs +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/python/warp_md/__init__.py +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/python/warp_md/builder.py +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/python/warp_md/cli.py +0 -0
- {warp_md-0.1.0 → warp_md-0.1.2}/python/warp_md/tests/test_cli_help.py +0 -0
|
@@ -587,11 +587,11 @@ dependencies = [
|
|
|
587
587
|
|
|
588
588
|
[[package]]
|
|
589
589
|
name = "traj-core"
|
|
590
|
-
version = "0.1.
|
|
590
|
+
version = "0.1.2"
|
|
591
591
|
|
|
592
592
|
[[package]]
|
|
593
593
|
name = "traj-engine"
|
|
594
|
-
version = "0.1.
|
|
594
|
+
version = "0.1.2"
|
|
595
595
|
dependencies = [
|
|
596
596
|
"bytemuck",
|
|
597
597
|
"libloading",
|
|
@@ -606,7 +606,7 @@ dependencies = [
|
|
|
606
606
|
|
|
607
607
|
[[package]]
|
|
608
608
|
name = "traj-gpu"
|
|
609
|
-
version = "0.1.
|
|
609
|
+
version = "0.1.2"
|
|
610
610
|
dependencies = [
|
|
611
611
|
"cudarc",
|
|
612
612
|
"traj-core",
|
|
@@ -615,7 +615,7 @@ dependencies = [
|
|
|
615
615
|
|
|
616
616
|
[[package]]
|
|
617
617
|
name = "traj-io"
|
|
618
|
-
version = "0.1.
|
|
618
|
+
version = "0.1.2"
|
|
619
619
|
dependencies = [
|
|
620
620
|
"tempfile",
|
|
621
621
|
"traj-core",
|
|
@@ -624,11 +624,11 @@ dependencies = [
|
|
|
624
624
|
|
|
625
625
|
[[package]]
|
|
626
626
|
name = "traj-kernels"
|
|
627
|
-
version = "0.1.
|
|
627
|
+
version = "0.1.2"
|
|
628
628
|
|
|
629
629
|
[[package]]
|
|
630
630
|
name = "traj-py"
|
|
631
|
-
version = "0.1.
|
|
631
|
+
version = "0.1.2"
|
|
632
632
|
dependencies = [
|
|
633
633
|
"numpy",
|
|
634
634
|
"pyo3",
|
warp_md-0.1.2/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ayodele Ifeoluwa Faleti
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
warp_md-0.1.2/README.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# warp-md
|
|
2
|
+
|
|
3
|
+
CPU-first MVP scaffold for MD trajectory IO + analysis, with optional CUDA path.
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
- Rust workspace scaffolded with core, IO, engine, GPU stub, kernels placeholder, and PyO3 bindings.
|
|
8
|
+
- Implemented: PDB/GRO topology readers, DCD reader (32/64-bit markers, best-effort unit cell), XTC reader (xdrfile), selection engine, CPU Rg/RMSD/MSD/RDF, polymer analyses (end-to-end, contour length, chain Rg, bond length/angle distributions, persistence length), and analysis suite (rotational ACF, conductivity, dielectric, dipole alignment, ion-pair correlation, structure factor, water grid, equipartition temperature, H-bond counts).
|
|
9
|
+
- Correlator plans use streaming multi-tau by default (bounded memory); ring-buffer and FFT modes are available for short-time exactness or small streams.
|
|
10
|
+
- Feature store support: chunked binary + JSON index for offline/long-run feature capture (`feature_store` module).
|
|
11
|
+
- CUDA: optional GPU path (per-frame feature extraction and kernels) behind `--features cuda` and requires CUDA driver + nvrtc at runtime. Persistence length and parts of the analysis suite remain CPU reductions for now.
|
|
12
|
+
|
|
13
|
+
## Build and test
|
|
14
|
+
|
|
15
|
+
Rust:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
cargo test
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
CUDA build (requires CUDA runtime libraries present):
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
cargo test -p traj-engine --features cuda
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
If the CUDA toolkit isn't detected, set `CUDA_HOME` (or `CUDA_PATH`) so `cudarc` can resolve the version.
|
|
28
|
+
|
|
29
|
+
Python (requires maturin):
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
maturin develop
|
|
33
|
+
python -c "import warp_md; print(warp_md.System)"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Python usage (CPU)
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
from warp_md import System, Trajectory, RgPlan, EndToEndPlan, MsdPlan
|
|
40
|
+
|
|
41
|
+
system = System.from_pdb("example.pdb")
|
|
42
|
+
selection = system.select("name CA")
|
|
43
|
+
traj = Trajectory.open_dcd("traj.dcd", system)
|
|
44
|
+
plan = RgPlan(selection, mass_weighted=False)
|
|
45
|
+
rg = plan.run(traj, system, device="auto")
|
|
46
|
+
poly = EndToEndPlan(selection)
|
|
47
|
+
end_to_end = poly.run(traj, system, device="auto")
|
|
48
|
+
msd = MsdPlan(selection, group_by="resid")
|
|
49
|
+
time, data = msd.run(traj, system)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## CLI (Python)
|
|
53
|
+
|
|
54
|
+
Single-command CLI for agents, plus config-driven runs.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# one-command analysis
|
|
58
|
+
warp-md rg --topology top.pdb --traj traj.xtc --selection "protein"
|
|
59
|
+
warp-md rdf --topology top.pdb --traj traj.xtc --sel-a "resname SOL and name OW" --sel-b "resname SOL and name OW" --bins 200 --r-max 10
|
|
60
|
+
|
|
61
|
+
# config runner
|
|
62
|
+
warp-md example > config.json
|
|
63
|
+
warp-md run config.json
|
|
64
|
+
warp-md list-plans
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
By default, the CLI prints a JSON summary to stdout. Use `--no-summary` to disable.
|
|
68
|
+
YAML configs require `pip install warp-md[cli]`.
|
|
69
|
+
|
|
70
|
+
## Documentation
|
|
71
|
+
|
|
72
|
+
- Getting started and full walkthrough: `docs/tutorial.md`
|
|
73
|
+
- Full API + module reference: `docs/reference.md`
|
|
74
|
+
- Validation + accuracy comparison: `docs/validation.md`
|
|
75
|
+
- Docs index: `docs/README.md`
|
|
76
|
+
|
|
77
|
+
## Python builder helpers
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from warp_md import charges_from_table, group_types_from_selections
|
|
81
|
+
|
|
82
|
+
charges = charges_from_table(system, "charges.tsv")
|
|
83
|
+
group_types = group_types_from_selections(
|
|
84
|
+
system,
|
|
85
|
+
system.select("resname BMIM or resname BF4"),
|
|
86
|
+
"resid",
|
|
87
|
+
["resname BMIM", "resname BF4"],
|
|
88
|
+
)
|
|
89
|
+
```
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "warp-md"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.2"
|
|
8
8
|
description = "warp-md Python bindings"
|
|
9
9
|
requires-python = ">=3.9"
|
|
10
10
|
dependencies = [
|
|
@@ -21,3 +21,11 @@ warp-md = "warp_md.cli:main"
|
|
|
21
21
|
manifest-path = "crates/traj-py/Cargo.toml"
|
|
22
22
|
module-name = "warp_md.traj_py"
|
|
23
23
|
python-source = "python"
|
|
24
|
+
include = [
|
|
25
|
+
"Cargo.toml",
|
|
26
|
+
"Cargo.lock",
|
|
27
|
+
"README.md",
|
|
28
|
+
"LICENSE",
|
|
29
|
+
"crates/**",
|
|
30
|
+
"python/**",
|
|
31
|
+
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|