warp-md 0.1.3__tar.gz → 0.1.4__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.
Files changed (70) hide show
  1. {warp_md-0.1.3 → warp_md-0.1.4}/Cargo.lock +6 -6
  2. warp_md-0.1.4/LICENSE +21 -0
  3. warp_md-0.1.4/MANIFEST.in +9 -0
  4. {warp_md-0.1.3 → warp_md-0.1.4}/PKG-INFO +1 -1
  5. warp_md-0.1.4/README.md +89 -0
  6. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/Cargo.toml +1 -1
  7. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/Cargo.toml +2 -2
  8. warp_md-0.1.4/crates/traj-gpu/Cargo.toml +13 -0
  9. warp_md-0.1.4/crates/traj-gpu/src/cuda.rs +1887 -0
  10. warp_md-0.1.4/crates/traj-gpu/src/lib.rs +20 -0
  11. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-io/Cargo.toml +1 -1
  12. warp_md-0.1.4/crates/traj-kernels/Cargo.toml +8 -0
  13. warp_md-0.1.4/crates/traj-kernels/src/lib.rs +1159 -0
  14. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-py/Cargo.toml +1 -1
  15. {warp_md-0.1.3 → warp_md-0.1.4}/pyproject.toml +12 -1
  16. {warp_md-0.1.3 → warp_md-0.1.4}/Cargo.toml +0 -0
  17. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/src/elements.rs +0 -0
  18. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/src/error.rs +0 -0
  19. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/src/frame.rs +0 -0
  20. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/src/interner.rs +0 -0
  21. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/src/lib.rs +0 -0
  22. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/src/selection.rs +0 -0
  23. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-core/src/system.rs +0 -0
  24. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/correlators/mod.rs +0 -0
  25. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/correlators/multi_tau.rs +0 -0
  26. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/correlators/ring.rs +0 -0
  27. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/executor.rs +0 -0
  28. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/feature_store.rs +0 -0
  29. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/lib.rs +0 -0
  30. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/common.rs +0 -0
  31. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/conductivity.rs +0 -0
  32. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/dielectric.rs +0 -0
  33. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/dipole.rs +0 -0
  34. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/equipartition.rs +0 -0
  35. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/grouping.rs +0 -0
  36. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/hbond.rs +0 -0
  37. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/ion_pair.rs +0 -0
  38. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/legacy/mod.rs +0 -0
  39. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/legacy/param.rs +0 -0
  40. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/legacy/topol.rs +0 -0
  41. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/mod.rs +0 -0
  42. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/msd.rs +0 -0
  43. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/rotacf.rs +0 -0
  44. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/structure_factor.rs +0 -0
  45. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/analysis/water_count.rs +0 -0
  46. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/mod.rs +0 -0
  47. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/bond_angle.rs +0 -0
  48. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/bond_length.rs +0 -0
  49. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/chain_rg.rs +0 -0
  50. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/common.rs +0 -0
  51. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/contour.rs +0 -0
  52. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/end_to_end.rs +0 -0
  53. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/mod.rs +0 -0
  54. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/polymer/persistence.rs +0 -0
  55. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/rdf.rs +0 -0
  56. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/rg.rs +0 -0
  57. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/src/plans/rmsd.rs +0 -0
  58. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/tests/correlators.rs +0 -0
  59. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/tests/feature_store.rs +0 -0
  60. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-engine/tests/trj_analysis_sample.rs +0 -0
  61. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-io/src/dcd.rs +0 -0
  62. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-io/src/gro.rs +0 -0
  63. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-io/src/lib.rs +0 -0
  64. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-io/src/pdb.rs +0 -0
  65. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-io/src/xtc.rs +0 -0
  66. {warp_md-0.1.3 → warp_md-0.1.4}/crates/traj-py/src/lib.rs +0 -0
  67. {warp_md-0.1.3 → warp_md-0.1.4}/python/warp_md/__init__.py +0 -0
  68. {warp_md-0.1.3 → warp_md-0.1.4}/python/warp_md/builder.py +0 -0
  69. {warp_md-0.1.3 → warp_md-0.1.4}/python/warp_md/cli.py +0 -0
  70. {warp_md-0.1.3 → warp_md-0.1.4}/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.3"
590
+ version = "0.1.4"
591
591
 
592
592
  [[package]]
593
593
  name = "traj-engine"
594
- version = "0.1.3"
594
+ version = "0.1.4"
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.3"
609
+ version = "0.1.4"
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.3"
618
+ version = "0.1.4"
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.3"
627
+ version = "0.1.4"
628
628
 
629
629
  [[package]]
630
630
  name = "traj-py"
631
- version = "0.1.3"
631
+ version = "0.1.4"
632
632
  dependencies = [
633
633
  "numpy",
634
634
  "pyo3",
warp_md-0.1.4/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.
@@ -0,0 +1,9 @@
1
+ include Cargo.toml
2
+ include Cargo.lock
3
+ include pyproject.toml
4
+ include README.md
5
+ include LICENSE
6
+ recursive-include crates *
7
+ recursive-include python *
8
+ recursive-include scripts *
9
+ recursive-include docs *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: warp-md
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Requires-Dist: numpy
5
5
  Requires-Dist: pyyaml ; extra == 'cli'
6
6
  Provides-Extra: cli
@@ -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
+ ```
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "traj-core"
3
- version = "0.1.3"
3
+ version = "0.1.4"
4
4
  edition = "2021"
5
5
  license = "MIT"
6
6
 
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "traj-engine"
3
- version = "0.1.3"
3
+ version = "0.1.4"
4
4
  edition = "2021"
5
5
  license = "MIT"
6
6
 
@@ -8,7 +8,7 @@ license = "MIT"
8
8
  traj-core = { path = "../traj-core" }
9
9
  traj-io = { path = "../traj-io" }
10
10
  nalgebra = "0.32"
11
- traj-gpu = { path = "../traj-gpu", optional = true }
11
+ traj-gpu = { path = "../traj-gpu" }
12
12
  rustfft = "6.2"
13
13
  bytemuck = { version = "1.15", features = ["extern_crate_alloc"] }
14
14
  serde = { version = "1.0", features = ["derive"] }
@@ -0,0 +1,13 @@
1
+ [package]
2
+ name = "traj-gpu"
3
+ version = "0.1.4"
4
+ edition = "2021"
5
+ license = "MIT"
6
+
7
+ [dependencies]
8
+ traj-core = { path = "../traj-core" }
9
+ traj-kernels = { path = "../traj-kernels" }
10
+ cudarc = { version = "0.19", optional = true, features = ["driver", "nvrtc", "cuda-12040"] }
11
+
12
+ [features]
13
+ cuda = ["cudarc"]