rust-simulation-tools 0.2.4__tar.gz → 0.2.5__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.
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/Cargo.lock +233 -0
- rust_simulation_tools-0.2.5/Cargo.toml +8 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/PKG-INFO +172 -7
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/README.md +170 -5
- rust_simulation_tools-0.2.5/crates/am1/Cargo.toml +7 -0
- rust_simulation_tools-0.2.5/crates/am1/src/charges.rs +30 -0
- rust_simulation_tools-0.2.5/crates/am1/src/fock.rs +223 -0
- rust_simulation_tools-0.2.5/crates/am1/src/hamiltonian.rs +128 -0
- rust_simulation_tools-0.2.5/crates/am1/src/lib.rs +77 -0
- rust_simulation_tools-0.2.5/crates/am1/src/molecule.rs +117 -0
- rust_simulation_tools-0.2.5/crates/am1/src/nuclear.rs +103 -0
- rust_simulation_tools-0.2.5/crates/am1/src/overlap.rs +780 -0
- rust_simulation_tools-0.2.5/crates/am1/src/params.rs +461 -0
- rust_simulation_tools-0.2.5/crates/am1/src/scf.rs +368 -0
- rust_simulation_tools-0.2.5/crates/am1/src/two_electron.rs +1336 -0
- rust_simulation_tools-0.2.5/crates/am1/tests/debug_benzene.rs +212 -0
- rust_simulation_tools-0.2.5/crates/am1/tests/validation_sqm.rs +499 -0
- rust_simulation_tools-0.2.5/crates/antechamber/Cargo.toml +9 -0
- rust_simulation_tools-0.2.5/crates/antechamber/data/ATOMTYPE_BCC.DEF +254 -0
- rust_simulation_tools-0.2.5/crates/antechamber/data/ATOMTYPE_GFF2.DEF +429 -0
- rust_simulation_tools-0.2.5/crates/antechamber/data/BCCPARM.DAT +405 -0
- rust_simulation_tools-0.2.5/crates/antechamber/data/GASPARM.DAT +40 -0
- rust_simulation_tools-0.2.5/crates/antechamber/data/RADIUS.DAT +140 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/aromatic.rs +220 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/atomtype.rs +738 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/bcc.rs +134 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/bondtype.rs +104 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/data.rs +19 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/equivalence.rs +100 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/gasteiger.rs +179 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/lib.rs +167 -0
- rust_simulation_tools-0.2.5/crates/antechamber/src/molecule.rs +273 -0
- rust_simulation_tools-0.2.5/crates/antechamber/tests/validation.rs +300 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/bindings/Cargo.toml +5 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/bindings/src/lib.rs +993 -1
- rust_simulation_tools-0.2.5/crates/core/data/lib/amino19.lib +3570 -0
- rust_simulation_tools-0.2.5/crates/core/data/lib/aminoct12.lib +3344 -0
- rust_simulation_tools-0.2.5/crates/core/data/lib/aminont12.lib +3303 -0
- rust_simulation_tools-0.2.5/crates/core/data/lib/atomic_ions.lib +2480 -0
- rust_simulation_tools-0.2.5/crates/core/data/lib/lipid21.lib +4471 -0
- rust_simulation_tools-0.2.5/crates/core/data/lib/solvents.lib +156904 -0
- rust_simulation_tools-0.2.5/crates/core/data/parm/frcmod.ff19SB +2111 -0
- rust_simulation_tools-0.2.5/crates/core/data/parm/frcmod.ionslm_126_opc +125 -0
- rust_simulation_tools-0.2.5/crates/core/data/parm/frcmod.opc +25 -0
- rust_simulation_tools-0.2.5/crates/core/data/parm/gaff2.dat +13181 -0
- rust_simulation_tools-0.2.5/crates/core/data/parm/lipid21.dat +359 -0
- rust_simulation_tools-0.2.5/crates/core/data/parm/parm19.dat +1083 -0
- rust_simulation_tools-0.2.5/crates/core/src/amber/inpcrd_writer.rs +113 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/amber/mod.rs +2 -0
- rust_simulation_tools-0.2.5/crates/core/src/amber/prmtop_writer.rs +724 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/fingerprint.rs +1 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/atom_types.rs +86 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/data.rs +20 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/frcmod.rs +490 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/loader.rs +203 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/mod.rs +32 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/parameters.rs +370 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/parm_dat.rs +672 -0
- rust_simulation_tools-0.2.5/crates/core/src/forcefield/residue_lib.rs +645 -0
- rust_simulation_tools-0.2.5/crates/core/src/graph.rs +278 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/lib.rs +7 -0
- rust_simulation_tools-0.2.5/crates/core/src/mmcif.rs +1044 -0
- rust_simulation_tools-0.2.5/crates/core/src/mol2.rs +511 -0
- rust_simulation_tools-0.2.5/crates/core/src/pdb.rs +801 -0
- rust_simulation_tools-0.2.5/crates/core/src/pdb_writer.rs +415 -0
- rust_simulation_tools-0.2.5/crates/core/src/sdf.rs +526 -0
- rust_simulation_tools-0.2.5/crates/ipsae/Cargo.toml +7 -0
- rust_simulation_tools-0.2.5/crates/ipsae/src/lib.rs +58 -0
- rust_simulation_tools-0.2.5/crates/ipsae/src/parser.rs +268 -0
- rust_simulation_tools-0.2.5/crates/ipsae/src/scoring.rs +511 -0
- rust_simulation_tools-0.2.5/crates/ipsae/tests/integration.rs +203 -0
- rust_simulation_tools-0.2.5/crates/minimize/Cargo.toml +14 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/bonded.rs +849 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/config.rs +106 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/force.rs +338 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/io.rs +255 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/lib.rs +17 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/minimizer.rs +446 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/neighbor_list.rs +425 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/nonbonded.rs +876 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/pbc.rs +190 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/pme.rs +1589 -0
- rust_simulation_tools-0.2.5/crates/minimize/src/restraints.rs +347 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/benches/mmpbsa_bench.rs +1 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/examples/mmpbsa_binding.rs +1 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/binding.rs +116 -5
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/decomposition.rs +1 -1
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/mdcrd.rs +16 -6
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/pb_energy.rs +69 -5
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/pb_grid.rs +342 -65
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/pb_solver.rs +533 -241
- rust_simulation_tools-0.2.5/crates/tleap/Cargo.toml +11 -0
- rust_simulation_tools-0.2.5/crates/tleap/src/builder.rs +1206 -0
- rust_simulation_tools-0.2.5/crates/tleap/src/ions.rs +654 -0
- rust_simulation_tools-0.2.5/crates/tleap/src/lib.rs +19 -0
- rust_simulation_tools-0.2.5/crates/tleap/src/parameterize.rs +1143 -0
- rust_simulation_tools-0.2.5/crates/tleap/src/solvate.rs +432 -0
- rust_simulation_tools-0.2.5/crates/tleap/src/system.rs +461 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/pyproject.toml +2 -2
- rust_simulation_tools-0.2.4/Cargo.toml +0 -8
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/Cargo.toml +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/benches/core_bench.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/amber/inpcrd.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/amber/prmtop.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/kabsch.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/sasa.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/ast.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/error.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/eval.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/keywords.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/mod.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/parser.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/selection.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/selection/token.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/trajectory/dcd.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/trajectory/mod.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/util.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/core/src/wrapping.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/Cargo.toml +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/examples/bench_pb_real.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/entropy.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/gb_energy.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/lib.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/mm_energy.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/sa_energy.rs +0 -0
- {rust_simulation_tools-0.2.4 → rust_simulation_tools-0.2.5}/crates/mmpbsa/src/subsystem.rs +0 -0
|
@@ -38,6 +38,12 @@ version = "1.5.0"
|
|
|
38
38
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
39
39
|
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
|
|
40
40
|
|
|
41
|
+
[[package]]
|
|
42
|
+
name = "bitflags"
|
|
43
|
+
version = "2.10.0"
|
|
44
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
45
|
+
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
|
|
46
|
+
|
|
41
47
|
[[package]]
|
|
42
48
|
name = "bumpalo"
|
|
43
49
|
version = "3.19.1"
|
|
@@ -187,6 +193,45 @@ version = "1.15.0"
|
|
|
187
193
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
188
194
|
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
189
195
|
|
|
196
|
+
[[package]]
|
|
197
|
+
name = "errno"
|
|
198
|
+
version = "0.3.14"
|
|
199
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
200
|
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
201
|
+
dependencies = [
|
|
202
|
+
"libc",
|
|
203
|
+
"windows-sys",
|
|
204
|
+
]
|
|
205
|
+
|
|
206
|
+
[[package]]
|
|
207
|
+
name = "fastrand"
|
|
208
|
+
version = "2.3.0"
|
|
209
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
210
|
+
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
|
|
211
|
+
|
|
212
|
+
[[package]]
|
|
213
|
+
name = "getrandom"
|
|
214
|
+
version = "0.2.17"
|
|
215
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
216
|
+
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
|
|
217
|
+
dependencies = [
|
|
218
|
+
"cfg-if",
|
|
219
|
+
"libc",
|
|
220
|
+
"wasi",
|
|
221
|
+
]
|
|
222
|
+
|
|
223
|
+
[[package]]
|
|
224
|
+
name = "getrandom"
|
|
225
|
+
version = "0.3.4"
|
|
226
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
227
|
+
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
|
|
228
|
+
dependencies = [
|
|
229
|
+
"cfg-if",
|
|
230
|
+
"libc",
|
|
231
|
+
"r-efi",
|
|
232
|
+
"wasip2",
|
|
233
|
+
]
|
|
234
|
+
|
|
190
235
|
[[package]]
|
|
191
236
|
name = "half"
|
|
192
237
|
version = "2.7.1"
|
|
@@ -258,6 +303,12 @@ version = "0.2.176"
|
|
|
258
303
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
259
304
|
checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174"
|
|
260
305
|
|
|
306
|
+
[[package]]
|
|
307
|
+
name = "linux-raw-sys"
|
|
308
|
+
version = "0.11.0"
|
|
309
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
310
|
+
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
|
|
311
|
+
|
|
261
312
|
[[package]]
|
|
262
313
|
name = "log"
|
|
263
314
|
version = "0.4.29"
|
|
@@ -433,6 +484,24 @@ version = "1.11.1"
|
|
|
433
484
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
434
485
|
checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
|
|
435
486
|
|
|
487
|
+
[[package]]
|
|
488
|
+
name = "ppv-lite86"
|
|
489
|
+
version = "0.2.21"
|
|
490
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
491
|
+
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
|
|
492
|
+
dependencies = [
|
|
493
|
+
"zerocopy",
|
|
494
|
+
]
|
|
495
|
+
|
|
496
|
+
[[package]]
|
|
497
|
+
name = "primal-check"
|
|
498
|
+
version = "0.3.4"
|
|
499
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
500
|
+
checksum = "dc0d895b311e3af9902528fbb8f928688abbd95872819320517cc24ca6b2bd08"
|
|
501
|
+
dependencies = [
|
|
502
|
+
"num-integer",
|
|
503
|
+
]
|
|
504
|
+
|
|
436
505
|
[[package]]
|
|
437
506
|
name = "proc-macro2"
|
|
438
507
|
version = "1.0.101"
|
|
@@ -514,6 +583,42 @@ dependencies = [
|
|
|
514
583
|
"proc-macro2",
|
|
515
584
|
]
|
|
516
585
|
|
|
586
|
+
[[package]]
|
|
587
|
+
name = "r-efi"
|
|
588
|
+
version = "5.3.0"
|
|
589
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
590
|
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
|
591
|
+
|
|
592
|
+
[[package]]
|
|
593
|
+
name = "rand"
|
|
594
|
+
version = "0.8.5"
|
|
595
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
596
|
+
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
|
597
|
+
dependencies = [
|
|
598
|
+
"libc",
|
|
599
|
+
"rand_chacha",
|
|
600
|
+
"rand_core",
|
|
601
|
+
]
|
|
602
|
+
|
|
603
|
+
[[package]]
|
|
604
|
+
name = "rand_chacha"
|
|
605
|
+
version = "0.3.1"
|
|
606
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
607
|
+
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
|
608
|
+
dependencies = [
|
|
609
|
+
"ppv-lite86",
|
|
610
|
+
"rand_core",
|
|
611
|
+
]
|
|
612
|
+
|
|
613
|
+
[[package]]
|
|
614
|
+
name = "rand_core"
|
|
615
|
+
version = "0.6.4"
|
|
616
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
617
|
+
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
|
618
|
+
dependencies = [
|
|
619
|
+
"getrandom 0.2.17",
|
|
620
|
+
]
|
|
621
|
+
|
|
517
622
|
[[package]]
|
|
518
623
|
name = "rawpointer"
|
|
519
624
|
version = "0.2.1"
|
|
@@ -569,6 +674,22 @@ version = "0.8.8"
|
|
|
569
674
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
570
675
|
checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
|
|
571
676
|
|
|
677
|
+
[[package]]
|
|
678
|
+
name = "rst-am1"
|
|
679
|
+
version = "0.1.0"
|
|
680
|
+
dependencies = [
|
|
681
|
+
"nalgebra",
|
|
682
|
+
]
|
|
683
|
+
|
|
684
|
+
[[package]]
|
|
685
|
+
name = "rst-antechamber"
|
|
686
|
+
version = "0.1.0"
|
|
687
|
+
dependencies = [
|
|
688
|
+
"log",
|
|
689
|
+
"rst-am1",
|
|
690
|
+
"rst-core",
|
|
691
|
+
]
|
|
692
|
+
|
|
572
693
|
[[package]]
|
|
573
694
|
name = "rst-bindings"
|
|
574
695
|
version = "0.2.1"
|
|
@@ -577,8 +698,13 @@ dependencies = [
|
|
|
577
698
|
"numpy",
|
|
578
699
|
"pyo3",
|
|
579
700
|
"rayon",
|
|
701
|
+
"rst-am1",
|
|
702
|
+
"rst-antechamber",
|
|
580
703
|
"rst-core",
|
|
704
|
+
"rst-ipsae",
|
|
705
|
+
"rst-minimize",
|
|
581
706
|
"rst-mmpbsa",
|
|
707
|
+
"rst-tleap",
|
|
582
708
|
"rustc-hash 2.1.1",
|
|
583
709
|
]
|
|
584
710
|
|
|
@@ -592,6 +718,25 @@ dependencies = [
|
|
|
592
718
|
"rayon",
|
|
593
719
|
]
|
|
594
720
|
|
|
721
|
+
[[package]]
|
|
722
|
+
name = "rst-ipsae"
|
|
723
|
+
version = "0.1.0"
|
|
724
|
+
dependencies = [
|
|
725
|
+
"rayon",
|
|
726
|
+
]
|
|
727
|
+
|
|
728
|
+
[[package]]
|
|
729
|
+
name = "rst-minimize"
|
|
730
|
+
version = "0.1.0"
|
|
731
|
+
dependencies = [
|
|
732
|
+
"log",
|
|
733
|
+
"rayon",
|
|
734
|
+
"rst-core",
|
|
735
|
+
"rustfft",
|
|
736
|
+
"tempfile",
|
|
737
|
+
"thiserror",
|
|
738
|
+
]
|
|
739
|
+
|
|
595
740
|
[[package]]
|
|
596
741
|
name = "rst-mmpbsa"
|
|
597
742
|
version = "0.1.0"
|
|
@@ -603,6 +748,17 @@ dependencies = [
|
|
|
603
748
|
"thiserror",
|
|
604
749
|
]
|
|
605
750
|
|
|
751
|
+
[[package]]
|
|
752
|
+
name = "rst-tleap"
|
|
753
|
+
version = "0.1.0"
|
|
754
|
+
dependencies = [
|
|
755
|
+
"log",
|
|
756
|
+
"rand",
|
|
757
|
+
"rst-antechamber",
|
|
758
|
+
"rst-core",
|
|
759
|
+
"thiserror",
|
|
760
|
+
]
|
|
761
|
+
|
|
606
762
|
[[package]]
|
|
607
763
|
name = "rustc-hash"
|
|
608
764
|
version = "1.1.0"
|
|
@@ -615,6 +771,33 @@ version = "2.1.1"
|
|
|
615
771
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
616
772
|
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
|
617
773
|
|
|
774
|
+
[[package]]
|
|
775
|
+
name = "rustfft"
|
|
776
|
+
version = "6.4.1"
|
|
777
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
778
|
+
checksum = "21db5f9893e91f41798c88680037dba611ca6674703c1a18601b01a72c8adb89"
|
|
779
|
+
dependencies = [
|
|
780
|
+
"num-complex",
|
|
781
|
+
"num-integer",
|
|
782
|
+
"num-traits",
|
|
783
|
+
"primal-check",
|
|
784
|
+
"strength_reduce",
|
|
785
|
+
"transpose",
|
|
786
|
+
]
|
|
787
|
+
|
|
788
|
+
[[package]]
|
|
789
|
+
name = "rustix"
|
|
790
|
+
version = "1.1.2"
|
|
791
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
792
|
+
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
|
|
793
|
+
dependencies = [
|
|
794
|
+
"bitflags",
|
|
795
|
+
"errno",
|
|
796
|
+
"libc",
|
|
797
|
+
"linux-raw-sys",
|
|
798
|
+
"windows-sys",
|
|
799
|
+
]
|
|
800
|
+
|
|
618
801
|
[[package]]
|
|
619
802
|
name = "rustversion"
|
|
620
803
|
version = "1.0.22"
|
|
@@ -695,6 +878,12 @@ dependencies = [
|
|
|
695
878
|
"wide",
|
|
696
879
|
]
|
|
697
880
|
|
|
881
|
+
[[package]]
|
|
882
|
+
name = "strength_reduce"
|
|
883
|
+
version = "0.2.4"
|
|
884
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
885
|
+
checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82"
|
|
886
|
+
|
|
698
887
|
[[package]]
|
|
699
888
|
name = "syn"
|
|
700
889
|
version = "2.0.106"
|
|
@@ -712,6 +901,19 @@ version = "0.12.16"
|
|
|
712
901
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
713
902
|
checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
|
|
714
903
|
|
|
904
|
+
[[package]]
|
|
905
|
+
name = "tempfile"
|
|
906
|
+
version = "3.23.0"
|
|
907
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
908
|
+
checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
|
|
909
|
+
dependencies = [
|
|
910
|
+
"fastrand",
|
|
911
|
+
"getrandom 0.3.4",
|
|
912
|
+
"once_cell",
|
|
913
|
+
"rustix",
|
|
914
|
+
"windows-sys",
|
|
915
|
+
]
|
|
916
|
+
|
|
715
917
|
[[package]]
|
|
716
918
|
name = "thiserror"
|
|
717
919
|
version = "2.0.18"
|
|
@@ -742,6 +944,16 @@ dependencies = [
|
|
|
742
944
|
"serde_json",
|
|
743
945
|
]
|
|
744
946
|
|
|
947
|
+
[[package]]
|
|
948
|
+
name = "transpose"
|
|
949
|
+
version = "0.2.3"
|
|
950
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
951
|
+
checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e"
|
|
952
|
+
dependencies = [
|
|
953
|
+
"num-integer",
|
|
954
|
+
"strength_reduce",
|
|
955
|
+
]
|
|
956
|
+
|
|
745
957
|
[[package]]
|
|
746
958
|
name = "typenum"
|
|
747
959
|
version = "1.18.0"
|
|
@@ -770,6 +982,21 @@ dependencies = [
|
|
|
770
982
|
"winapi-util",
|
|
771
983
|
]
|
|
772
984
|
|
|
985
|
+
[[package]]
|
|
986
|
+
name = "wasi"
|
|
987
|
+
version = "0.11.1+wasi-snapshot-preview1"
|
|
988
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
989
|
+
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|
990
|
+
|
|
991
|
+
[[package]]
|
|
992
|
+
name = "wasip2"
|
|
993
|
+
version = "1.0.2+wasi-0.2.9"
|
|
994
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
995
|
+
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
|
996
|
+
dependencies = [
|
|
997
|
+
"wit-bindgen",
|
|
998
|
+
]
|
|
999
|
+
|
|
773
1000
|
[[package]]
|
|
774
1001
|
name = "wasm-bindgen"
|
|
775
1002
|
version = "0.2.108"
|
|
@@ -859,6 +1086,12 @@ dependencies = [
|
|
|
859
1086
|
"windows-link",
|
|
860
1087
|
]
|
|
861
1088
|
|
|
1089
|
+
[[package]]
|
|
1090
|
+
name = "wit-bindgen"
|
|
1091
|
+
version = "0.51.0"
|
|
1092
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1093
|
+
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
|
1094
|
+
|
|
862
1095
|
[[package]]
|
|
863
1096
|
name = "zerocopy"
|
|
864
1097
|
version = "0.8.36"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rust_simulation_tools
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
|
-
Requires-Dist: numpy>=
|
|
6
|
+
Requires-Dist: numpy>=2.0
|
|
7
7
|
Summary: Fast algorithms for MD trajectories
|
|
8
8
|
Author-email: Matt Sinclair <msinclair@anl.gov>
|
|
9
9
|
Requires-Python: >=3.10
|
|
@@ -37,11 +37,15 @@ maturin develop --release
|
|
|
37
37
|
|
|
38
38
|
## Features
|
|
39
39
|
|
|
40
|
-
- **File I/O**: AMBER topology/coordinates, DCD and MDCRD trajectories
|
|
40
|
+
- **File I/O**: AMBER topology/coordinates, DCD and MDCRD trajectories; PDB, mmCIF, mol2, SDF structures
|
|
41
|
+
- **System building**: tleap-style `SystemBuilder` — force fields, solvation, ions, prmtop/inpcrd output
|
|
42
|
+
- **Ligand parameterization**: built-in antechamber — GAFF2 atom typing + AM1-BCC charges (no AmberTools needed)
|
|
41
43
|
- **Selections**: VMD-style atom selection with property access
|
|
42
44
|
- **Analysis**: SASA, trajectory unwrapping, Kabsch alignment
|
|
43
45
|
- **Fingerprints**: Per-residue interaction energies (LJ + electrostatic)
|
|
46
|
+
- **Minimization**: Steepest-descent + conjugate-gradient with optional restraints
|
|
44
47
|
- **MM-PBSA/GBSA**: Binding free energy with per-residue decomposition
|
|
48
|
+
- **Interface scoring**: ipSAE, pDockQ, pDockQ2, LIS, ipTM for predicted complexes
|
|
45
49
|
|
|
46
50
|
## Quick Start
|
|
47
51
|
|
|
@@ -59,6 +63,58 @@ dcd = DcdReader("trajectory.dcd")
|
|
|
59
63
|
trajectory, boxes = dcd.read_all()
|
|
60
64
|
```
|
|
61
65
|
|
|
66
|
+
### Build a System
|
|
67
|
+
|
|
68
|
+
The `SystemBuilder` parameterizes structures and writes simulation-ready AMBER
|
|
69
|
+
files — no AmberTools install required.
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from rust_simulation_tools import SystemBuilder
|
|
73
|
+
|
|
74
|
+
builder = SystemBuilder()
|
|
75
|
+
builder.load_protein_ff19sb() # protein force field
|
|
76
|
+
builder.load_gaff2() # small-molecule force field
|
|
77
|
+
builder.load_water_opc() # OPC water model
|
|
78
|
+
|
|
79
|
+
# Load structures (PDB / mmCIF for proteins, mol2/SDF for ligands)
|
|
80
|
+
protein = builder.load_pdb("protein.pdb")
|
|
81
|
+
ligand = builder.load_ligand("ligand.sdf", net_charge=0) # auto GAFF2 + AM1-BCC
|
|
82
|
+
|
|
83
|
+
# Combine, solvate, ionize
|
|
84
|
+
system = builder.combine([protein, ligand])
|
|
85
|
+
builder.solvate_box(system, buffer=12.0)
|
|
86
|
+
builder.add_salt(system, "Na+", "Cl-", concentration=0.150) # neutralize + 150 mM
|
|
87
|
+
|
|
88
|
+
# Write output
|
|
89
|
+
builder.write_amber(system, "complex.prmtop", "complex.inpcrd")
|
|
90
|
+
builder.write_pdb(system, "complex.pdb")
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
For implicit solvent, skip `load_water_opc`/solvation and write the topology
|
|
94
|
+
directly. See `examples/example_explicit_solvent.py`,
|
|
95
|
+
`example_implicit_solvent.py`, and `example_protein_ligand.py`.
|
|
96
|
+
|
|
97
|
+
### Parameterize a Ligand
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
import rust_simulation_tools as rst
|
|
101
|
+
|
|
102
|
+
# Standalone: write a parameterized mol2 (GAFF2 types + charges)
|
|
103
|
+
rst.parameterize_ligand(
|
|
104
|
+
"ligand.sdf", "ligand_gaff2.mol2",
|
|
105
|
+
net_charge=0,
|
|
106
|
+
charge_method="am1bcc", # or "gasteiger" (faster, less accurate)
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
# Raw AM1 Mulliken charges from atomic numbers + coordinates
|
|
110
|
+
import numpy as np
|
|
111
|
+
charges = rst.compute_am1_charges(
|
|
112
|
+
np.array([8, 1, 1], dtype=np.int64), # O, H, H
|
|
113
|
+
np.array([[0, 0, 0], [0, 0.757, 0.587], [0, -0.757, 0.587]], dtype=float),
|
|
114
|
+
charge=0,
|
|
115
|
+
)
|
|
116
|
+
```
|
|
117
|
+
|
|
62
118
|
### Atom Selection
|
|
63
119
|
|
|
64
120
|
Select atoms using VMD-style expressions. The `select()` method returns a `Selection` object with direct property access.
|
|
@@ -97,9 +153,12 @@ from rust_simulation_tools import compute_sasa_from_topology
|
|
|
97
153
|
|
|
98
154
|
# Single frame
|
|
99
155
|
sasa = compute_sasa_from_topology(topo, coords)
|
|
100
|
-
print(f"Total SASA: {sasa['total']:.1f} A^2")
|
|
101
|
-
print(f"Per-atom: {sasa['per_atom'].shape}")
|
|
102
|
-
print(f"Per-residue: {sasa['per_residue']}")
|
|
156
|
+
print(f"Total SASA: {sasa['total']:.1f} A^2") # float
|
|
157
|
+
print(f"Per-atom: {sasa['per_atom'].shape}") # ndarray (n_atoms,)
|
|
158
|
+
print(f"Per-residue: {sasa['per_residue'].shape}") # ndarray (n_residues,), by residue index
|
|
159
|
+
|
|
160
|
+
# Trajectory: total -> ndarray (n_frames,), per_residue -> list of per-frame dicts
|
|
161
|
+
traj_sasa = compute_sasa_trajectory_from_topology(topo, trajectory)
|
|
103
162
|
```
|
|
104
163
|
|
|
105
164
|
### Trajectory Alignment
|
|
@@ -187,6 +246,53 @@ for res in sorted(decomp.receptor_residues, key=lambda r: r.total())[:5]:
|
|
|
187
246
|
print(f"{res.residue_label}{res.residue_index}: {res.total():.2f} kcal/mol")
|
|
188
247
|
```
|
|
189
248
|
|
|
249
|
+
### Energy Minimization
|
|
250
|
+
|
|
251
|
+
Steepest-descent + conjugate-gradient minimization with optional positional
|
|
252
|
+
restraints and a full energy-component breakdown.
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
from rust_simulation_tools import minimize, MinimizeConfig
|
|
256
|
+
|
|
257
|
+
config = MinimizeConfig(
|
|
258
|
+
max_cycles=5000,
|
|
259
|
+
sd_cycles=100, # initial steepest-descent steps
|
|
260
|
+
convergence_rms=0.01,
|
|
261
|
+
cutoff=10.0,
|
|
262
|
+
restraint_mask="backbone", # optional; omit for unrestrained
|
|
263
|
+
restraint_weight=10.0,
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
result = minimize("system.prmtop", "system.inpcrd", config=config, output="min.inpcrd")
|
|
267
|
+
print(f"Energy: {result.final_energy:.2f} kcal/mol converged={result.converged}")
|
|
268
|
+
|
|
269
|
+
ec = result.energy_components # bond, angle, dihedral, vdw,
|
|
270
|
+
print(ec.total(), ec.vdw, ec.elec_recip) # elec_direct, elec_recip, vdw_14, elec_14
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Use `minimize_topology(topo, "system.inpcrd", ...)` to reuse a pre-loaded
|
|
274
|
+
topology. See `examples/example_minimization.py`.
|
|
275
|
+
|
|
276
|
+
### Interface Scoring (ipSAE)
|
|
277
|
+
|
|
278
|
+
Score predicted complexes (AlphaFold-Multimer, Boltz, Chai) from pLDDT and PAE.
|
|
279
|
+
|
|
280
|
+
```python
|
|
281
|
+
import numpy as np
|
|
282
|
+
from rust_simulation_tools import compute_ipsae
|
|
283
|
+
|
|
284
|
+
plddt = np.load("plddt.npy") # per-residue, 0-100 scale, shape (N,)
|
|
285
|
+
pae = np.load("pae.npy").flatten() # predicted aligned error, flattened (N*N,)
|
|
286
|
+
|
|
287
|
+
results = compute_ipsae("model.pdb", plddt, pae) # PDB or CIF
|
|
288
|
+
for pair in results["max_pairs"]: # also "directed_pairs"
|
|
289
|
+
print(f"{pair['chain1']}-{pair['chain2']}: "
|
|
290
|
+
f"ipSAE={pair['ipSAE']:.3f} pDockQ={pair['pDockQ']:.3f} LIS={pair['LIS']:.3f}")
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
`compute_ipsae_from_arrays(coords, chains, chain_types, plddt, pae)` does the same
|
|
294
|
+
from in-memory arrays. See `examples/example_ipsae.py`.
|
|
295
|
+
|
|
190
296
|
## API Reference
|
|
191
297
|
|
|
192
298
|
### File I/O
|
|
@@ -198,6 +304,31 @@ for res in sorted(decomp.receptor_residues, key=lambda r: r.total())[:5]:
|
|
|
198
304
|
| `DcdReader(path)` | DCD trajectory reader |
|
|
199
305
|
| `MdcrdReader(path, n_atoms, has_box)` | AMBER ASCII trajectory reader |
|
|
200
306
|
|
|
307
|
+
### System Building
|
|
308
|
+
|
|
309
|
+
| Method | Description |
|
|
310
|
+
|--------|-------------|
|
|
311
|
+
| `SystemBuilder()` | Create a tleap-style builder |
|
|
312
|
+
| `.load_protein_ff19sb()`, `.load_gaff2()`, `.load_water_opc()` | Load force fields / water model |
|
|
313
|
+
| `.load_custom_frcmod(path)`, `.load_custom_lib(path)` | Load custom ligand parameters |
|
|
314
|
+
| `.load_pdb(path)`, `.load_mmcif(path)`, `.load_mol2(path)` | Load a structure, returns `System` |
|
|
315
|
+
| `.load_ligand(path, net_charge=0)` | Load + parameterize a ligand (GAFF2 + AM1-BCC) |
|
|
316
|
+
| `.combine([systems])` | Merge systems into one `System` |
|
|
317
|
+
| `.solvate_box(system, buffer=12.0, closeness=1.0)` | Solvate in an OPC water box |
|
|
318
|
+
| `.add_ions(system, ion, count=None)` | Add ions (`"neutralize"`, int count, or float conc.) |
|
|
319
|
+
| `.add_salt(system, cation="Na+", anion="Cl-", concentration=0.150)` | Neutralize + add salt |
|
|
320
|
+
| `.write_amber(system, prmtop, inpcrd)`, `.write_prmtop/.write_inpcrd/.write_pdb` | Write output |
|
|
321
|
+
|
|
322
|
+
`System` exposes `.n_atoms`, `.n_residues`, `.total_charge`, `.box_dimensions`,
|
|
323
|
+
`.box_angles`.
|
|
324
|
+
|
|
325
|
+
### Parameterization
|
|
326
|
+
|
|
327
|
+
| Function | Description |
|
|
328
|
+
|----------|-------------|
|
|
329
|
+
| `parameterize_ligand(input, output, net_charge=0, charge_method="am1bcc")` | Write a GAFF2/charge-assigned mol2 (`"am1bcc"` or `"gasteiger"`) |
|
|
330
|
+
| `compute_am1_charges(atomic_numbers, coords, charge=0)` | Raw AM1 Mulliken charges |
|
|
331
|
+
|
|
201
332
|
### AmberTopology
|
|
202
333
|
|
|
203
334
|
| Property/Method | Description |
|
|
@@ -234,10 +365,24 @@ for res in sorted(decomp.receptor_residues, key=lambda r: r.total())[:5]:
|
|
|
234
365
|
| Function | Description |
|
|
235
366
|
|----------|-------------|
|
|
236
367
|
| `compute_sasa_from_topology(topo, coords)` | SASA using topology for radii |
|
|
368
|
+
| `compute_sasa_trajectory_from_topology(topo, trajectory)` | Per-frame SASA over a trajectory |
|
|
237
369
|
| `calculate_sasa(coords, radii, residue_indices)` | SASA with explicit radii |
|
|
238
370
|
| `kabsch_align(trajectory, reference, align_indices)` | RMSD-minimizing alignment |
|
|
239
371
|
| `unwrap_dcd(path)` | Remove PBC artifacts from DCD |
|
|
240
372
|
| `unwrap_system(trajectory, boxes)` | Remove PBC artifacts |
|
|
373
|
+
| `FingerprintSession(prmtop, trajectory)` | Per-residue LJ/electrostatic fingerprints |
|
|
374
|
+
|
|
375
|
+
### Minimization
|
|
376
|
+
|
|
377
|
+
| Function | Description |
|
|
378
|
+
|----------|-------------|
|
|
379
|
+
| `minimize(prmtop, inpcrd, config=None, output=None)` | Minimize from files, returns `MinimizeResult` |
|
|
380
|
+
| `minimize_topology(topo, inpcrd, config=None, output=None)` | Minimize with a pre-loaded topology |
|
|
381
|
+
| `MinimizeConfig(max_cycles, sd_cycles, convergence_rms, cutoff, restraint_mask, restraint_weight, initial_step_size)` | Minimization settings |
|
|
382
|
+
|
|
383
|
+
`MinimizeResult` exposes `.final_energy`, `.final_rms`, `.cycles`, `.converged`,
|
|
384
|
+
`.energy_components` (`.bond`, `.angle`, `.dihedral`, `.vdw`, `.elec_direct`,
|
|
385
|
+
`.elec_recip`, `.vdw_14`, `.elec_14`, `.total()`).
|
|
241
386
|
|
|
242
387
|
### MM-PBSA/GBSA
|
|
243
388
|
|
|
@@ -249,7 +394,27 @@ for res in sorted(decomp.receptor_residues, key=lambda r: r.total())[:5]:
|
|
|
249
394
|
| `compute_mm_energy(topo, coords)` | Molecular mechanics energy |
|
|
250
395
|
| `compute_gb_energy(topo, coords, params)` | GB solvation energy |
|
|
251
396
|
| `compute_pb_energy(topo, coords, params)` | PB solvation energy |
|
|
252
|
-
| `
|
|
397
|
+
| `compute_sa_energy(topo, coords, params)` | Nonpolar surface-area energy |
|
|
398
|
+
| `interaction_entropy(frames, temperature)` | Interaction-entropy correction |
|
|
399
|
+
| `quasi_harmonic_entropy(...)` | Quasi-harmonic entropy estimate |
|
|
400
|
+
|
|
401
|
+
Parameter objects: `GbParams`, `PbParams`, `SaParams`, `GbModel`.
|
|
402
|
+
|
|
403
|
+
### Interface Scoring
|
|
404
|
+
|
|
405
|
+
| Function | Description |
|
|
406
|
+
|----------|-------------|
|
|
407
|
+
| `compute_ipsae(structure_path, plddt, pae, pdockq_cutoff=8.0, pae_cutoff=12.0)` | ipSAE/pDockQ/LIS/ipTM from a PDB/CIF file |
|
|
408
|
+
| `compute_ipsae_from_arrays(coords, chains, chain_types, plddt, pae, ...)` | Same, from in-memory arrays |
|
|
409
|
+
|
|
410
|
+
## Agent Skills
|
|
411
|
+
|
|
412
|
+
The [`skills/`](skills) directory contains [agent skills](skills/README.md) that
|
|
413
|
+
teach AI coding assistants (e.g. Claude Code) how to use this package — system
|
|
414
|
+
building, ligand parameterization, trajectory analysis, MM-PBSA, minimization,
|
|
415
|
+
and ipSAE scoring. They are mirrored under `.claude/skills/` so they load
|
|
416
|
+
automatically when working in this repo. See [`skills/README.md`](skills/README.md)
|
|
417
|
+
for the full list and how to install them elsewhere.
|
|
253
418
|
|
|
254
419
|
## Development
|
|
255
420
|
|