stjames 0.0.112__py3-none-any.whl → 0.0.115__py3-none-any.whl
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.
Potentially problematic release.
This version of stjames might be problematic. Click here for more details.
- stjames/method.py +21 -8
- stjames/workflows/pka.py +4 -4
- stjames/workflows/pose_analysis_md.py +5 -3
- {stjames-0.0.112.dist-info → stjames-0.0.115.dist-info}/METADATA +1 -1
- {stjames-0.0.112.dist-info → stjames-0.0.115.dist-info}/RECORD +8 -8
- {stjames-0.0.112.dist-info → stjames-0.0.115.dist-info}/WHEEL +0 -0
- {stjames-0.0.112.dist-info → stjames-0.0.115.dist-info}/licenses/LICENSE +0 -0
- {stjames-0.0.112.dist-info → stjames-0.0.115.dist-info}/top_level.txt +0 -0
stjames/method.py
CHANGED
|
@@ -8,7 +8,10 @@ class Method(LowercaseStrEnum):
|
|
|
8
8
|
HARTREE_FOCK = "hf"
|
|
9
9
|
HF3C = "hf_3c"
|
|
10
10
|
|
|
11
|
+
# DFT methods
|
|
12
|
+
## Pure functionals
|
|
11
13
|
PBE = "pbe"
|
|
14
|
+
BP86 = "bp86"
|
|
12
15
|
B973C = "b97_3c"
|
|
13
16
|
B97D3BJ = "b97_d3bj"
|
|
14
17
|
R2SCAN = "r2scan"
|
|
@@ -16,45 +19,53 @@ class Method(LowercaseStrEnum):
|
|
|
16
19
|
TPSS = "tpss"
|
|
17
20
|
M06L = "m06l"
|
|
18
21
|
|
|
22
|
+
## Hybrid functionals
|
|
19
23
|
PBE0 = "pbe0"
|
|
20
24
|
B3LYP = "b3lyp"
|
|
21
25
|
TPSSH = "tpssh"
|
|
22
26
|
M06 = "m06"
|
|
23
27
|
M062X = "m062x"
|
|
24
28
|
|
|
29
|
+
## Range-separated hybrid functionals
|
|
25
30
|
CAMB3LYP = "camb3lyp"
|
|
26
31
|
WB97XD3 = "wb97x_d3"
|
|
27
32
|
WB97XV = "wb97x_v"
|
|
33
|
+
WB97X3C = "wb97x_3c"
|
|
28
34
|
WB97MV = "wb97m_v"
|
|
29
35
|
WB97MD3BJ = "wb97m_d3bj"
|
|
30
|
-
WB97X3C = "wb97x_3c"
|
|
31
36
|
|
|
37
|
+
## Double hybrid functionals
|
|
32
38
|
DSDBLYPD3BJ = "dsd_blyp_d3bj"
|
|
33
39
|
|
|
40
|
+
## ML functionals
|
|
41
|
+
SKALA = "skala"
|
|
42
|
+
|
|
43
|
+
# NNPs
|
|
34
44
|
AIMNET2_WB97MD3 = "aimnet2_wb97md3"
|
|
45
|
+
|
|
35
46
|
MACE_MP_0 = "mace_mp_0"
|
|
36
47
|
MACE_MP_0B2_L = "mace_mp_0b2_l"
|
|
48
|
+
|
|
37
49
|
OMOL25_CONSERVING_S = "omol25_conserving_s"
|
|
38
50
|
UMA_M_OMOL = "uma_m_omol"
|
|
39
51
|
UMA_S_OMOL = "uma_s_omol"
|
|
40
52
|
ORB_V3_CONSERVATIVE_INF_OMAT = "orb_v3_conservative_inf_omat"
|
|
41
53
|
ORB_V3_CONSERVATIVE_OMOL = "orb_v3_conservative_omol"
|
|
42
54
|
|
|
55
|
+
EGRET_1 = "egret_1"
|
|
56
|
+
EGRET_1E = "egret_1e"
|
|
57
|
+
EGRET_1T = "egret_1t"
|
|
58
|
+
|
|
59
|
+
# Semiempirical methods
|
|
43
60
|
GFN_FF = "gfn_ff"
|
|
44
61
|
GFN0_XTB = "gfn0_xtb"
|
|
45
62
|
GFN1_XTB = "gfn1_xtb"
|
|
46
63
|
GFN2_XTB = "gfn2_xtb"
|
|
47
64
|
G_XTB = "g_xtb"
|
|
48
65
|
|
|
49
|
-
#
|
|
50
|
-
BP86 = "bp86"
|
|
51
|
-
|
|
66
|
+
# Force fields
|
|
52
67
|
OFF_SAGE_2_2_1 = "off_sage_2_2_1"
|
|
53
68
|
|
|
54
|
-
EGRET_1 = "egret_1"
|
|
55
|
-
EGRET_1E = "egret_1e"
|
|
56
|
-
EGRET_1T = "egret_1t"
|
|
57
|
-
|
|
58
69
|
def default_engine(self, *, is_periodic: bool = False) -> Engine:
|
|
59
70
|
"""
|
|
60
71
|
Return the canonical Engine for this quantum-chemistry method.
|
|
@@ -86,6 +97,8 @@ class Method(LowercaseStrEnum):
|
|
|
86
97
|
return Engine.OPENFF
|
|
87
98
|
case Method.EGRET_1 | Method.EGRET_1E | Method.EGRET_1T:
|
|
88
99
|
return Engine.EGRET
|
|
100
|
+
case Method.SKALA:
|
|
101
|
+
return Engine.PYSCF
|
|
89
102
|
case _:
|
|
90
103
|
# All remaining methods (HF, DFT, composite, etc.) fall back to Psi4
|
|
91
104
|
return Engine.PSI4
|
stjames/workflows/pka.py
CHANGED
|
@@ -10,7 +10,7 @@ from ..molecule import Molecule
|
|
|
10
10
|
from ..solvent import Solvent
|
|
11
11
|
from .workflow import DBCalculation, MoleculeWorkflow, SMILESWorkflow
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
CHEMPROP_NEVOLIANIS2025_ALLOWED_SOLVENTS = {
|
|
14
14
|
Solvent.WATER,
|
|
15
15
|
Solvent.DIMETHYLSULFOXIDE,
|
|
16
16
|
Solvent.DIMETHYLFORMAMIDE,
|
|
@@ -24,7 +24,7 @@ CHEMPROP_NEVOLIANUS2025_ALLOWED_SOLVENTS = {
|
|
|
24
24
|
|
|
25
25
|
class MicroscopicpKaMethod(LowercaseStrEnum):
|
|
26
26
|
AIMNET2_WAGEN2024 = "aimnet2_wagen2024"
|
|
27
|
-
|
|
27
|
+
CHEMPROP_NEVOLIANIS2025 = "chemprop_nevolianis2025"
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class pKaMicrostate(Base):
|
|
@@ -102,8 +102,8 @@ class pKaWorkflow(SMILESWorkflow, MoleculeWorkflow):
|
|
|
102
102
|
case MicroscopicpKaMethod.AIMNET2_WAGEN2024:
|
|
103
103
|
if self.solvent is not Solvent.WATER:
|
|
104
104
|
raise ValueError(f"{self.microscopic_pka_method} only supports water")
|
|
105
|
-
case MicroscopicpKaMethod.
|
|
106
|
-
if self.solvent not in
|
|
105
|
+
case MicroscopicpKaMethod.CHEMPROP_NEVOLIANIS2025:
|
|
106
|
+
if self.solvent not in CHEMPROP_NEVOLIANIS2025_ALLOWED_SOLVENTS:
|
|
107
107
|
raise ValueError(f"Solvent `{self.solvent}` is not supported by method `{self.microscopic_pka_method}`.")
|
|
108
108
|
if len(self.protonate_atoms) or len(self.deprotonate_atoms):
|
|
109
109
|
raise ValueError(f"Method `{self.microscopic_pka_method}` does not support selecting atoms by number.")
|
|
@@ -5,7 +5,7 @@ from pydantic import AfterValidator, PositiveFloat, PositiveInt, model_validator
|
|
|
5
5
|
from ..base import Base, round_float
|
|
6
6
|
from ..pdb import PDB
|
|
7
7
|
from ..types import UUID, round_list
|
|
8
|
-
from .workflow import
|
|
8
|
+
from .workflow import SMILESWorkflow
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class BindingPoseContact(Base):
|
|
@@ -36,7 +36,7 @@ class BindingPoseTrajectory(Base):
|
|
|
36
36
|
contacts: list[BindingPoseContact] = []
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
class PoseAnalysisMolecularDynamicsWorkflow(
|
|
39
|
+
class PoseAnalysisMolecularDynamicsWorkflow(SMILESWorkflow):
|
|
40
40
|
"""
|
|
41
41
|
Pose analysis molecular dynamics workflow.
|
|
42
42
|
|
|
@@ -45,12 +45,13 @@ class PoseAnalysisMolecularDynamicsWorkflow(MoleculeWorkflow):
|
|
|
45
45
|
If, for whatever reason, the workflow is initialized with both a `target_uuid` and a `target`, the UUID will be ignored.
|
|
46
46
|
|
|
47
47
|
Inherited:
|
|
48
|
-
:param
|
|
48
|
+
:param initial_smiles: ligand's SMILES
|
|
49
49
|
:param mode: Mode for workflow (currently unused)
|
|
50
50
|
|
|
51
51
|
New:
|
|
52
52
|
:param protein: PDB of the protein.
|
|
53
53
|
:param protein_uuid: UUID of the protein.
|
|
54
|
+
:param ligand_residue_name: ligand's residue name
|
|
54
55
|
:param num_trajectories: how many trajectories to run
|
|
55
56
|
:param equilibration_time_ns: how long to equilibrate trajectories for, in nanoseconds
|
|
56
57
|
:param simulation_time_ns: how long to run trajectories for, in nanoseconds
|
|
@@ -73,6 +74,7 @@ class PoseAnalysisMolecularDynamicsWorkflow(MoleculeWorkflow):
|
|
|
73
74
|
|
|
74
75
|
protein: PDB | None = None
|
|
75
76
|
protein_uuid: UUID | None = None
|
|
77
|
+
ligand_residue_name: str = "LIG"
|
|
76
78
|
|
|
77
79
|
num_trajectories: PositiveInt = 4
|
|
78
80
|
equilibration_time_ns: Annotated[PositiveFloat, AfterValidator(round_float(3))] = 5
|
|
@@ -9,7 +9,7 @@ stjames/constraint.py,sha256=B6oV0rYjmAWr8gpi5f03gRy_uuqjUURVDVwoez5Cfbg,2442
|
|
|
9
9
|
stjames/correction.py,sha256=ZVErCcj4TPyZeKrdvXVjHa0tFynsCaoy96QZUVxWFM8,413
|
|
10
10
|
stjames/engine.py,sha256=jaOHi3nhKZG85HAvKu-HuDl1Hh9nnJfhmOez2ghZXWA,293
|
|
11
11
|
stjames/message.py,sha256=Rq6QqmHZKecWxYH8fVyXmuoCCPZv8YinvgykSeorXSU,216
|
|
12
|
-
stjames/method.py,sha256=
|
|
12
|
+
stjames/method.py,sha256=rVIGevry4u6Zl9Bme5E7XxxzXD12aCvEdt-0oSiCFtI,4965
|
|
13
13
|
stjames/mode.py,sha256=xw46Cc7f3eTS8i35qECi-8DocAlANhayK3w4akD4HBU,496
|
|
14
14
|
stjames/molecule.py,sha256=4Tsa_gRC4C-qGPop24jRIs2q07r0LGbSRb-ApOaZa5c,20839
|
|
15
15
|
stjames/opt_settings.py,sha256=HjKbyFWcxD10FZfbqLxx1RKT0rcXGBr8bmi4ms4U3Sw,684
|
|
@@ -55,8 +55,8 @@ stjames/workflows/macropka.py,sha256=Krj0xXuB-u57Kqlf4bbRiHDUWCpliFr6YPiYqPmYaWk
|
|
|
55
55
|
stjames/workflows/molecular_dynamics.py,sha256=HqWNxxPSAphfI0DdbTERFkq8UeBjEvhnA_ETv0xw_RY,3522
|
|
56
56
|
stjames/workflows/multistage_opt.py,sha256=UN-4WLsT2WEjO5KqDPrcCkb708Co-ZScHx3g2bto768,16597
|
|
57
57
|
stjames/workflows/nmr.py,sha256=1QEF4SB6dWIr-jzLEZ7V972UnRUOTufOJSHwIGyV3dM,2681
|
|
58
|
-
stjames/workflows/pka.py,sha256=
|
|
59
|
-
stjames/workflows/pose_analysis_md.py,sha256=
|
|
58
|
+
stjames/workflows/pka.py,sha256=i-jzl2lN0yRWc0tgrWSBCplITEByfRyEQrlUhjnzcBc,4580
|
|
59
|
+
stjames/workflows/pose_analysis_md.py,sha256=KLxSSuM60UpVawDI2xTvsMXoLHFIlA2CtVbpD0uePF4,4803
|
|
60
60
|
stjames/workflows/protein_cofolding.py,sha256=cN0WUh8trrWwzNvoU75hB-VectIer-g5sMKgibQJcfE,4293
|
|
61
61
|
stjames/workflows/redox_potential.py,sha256=7S18t9Y3eynSnA3lZbRlvLfdbgeBopdiigLzt1zxg5c,3871
|
|
62
62
|
stjames/workflows/scan.py,sha256=DXQBpa2t2PowAtOwmdgpxaSLq--fEShljzAGSb8Nf5U,2993
|
|
@@ -65,8 +65,8 @@ stjames/workflows/spin_states.py,sha256=0degmE-frovgoXweshZyjfjqL7nkbaFoO9YoJhvQ
|
|
|
65
65
|
stjames/workflows/strain.py,sha256=paYxDDQTB1eYP_c2kLVz1-QX7Vpw0LLb3ujnFin_SOM,1834
|
|
66
66
|
stjames/workflows/tautomer.py,sha256=7eYKziGPg8Km6lfowTzSkgJfJ4SHUPrAmnTf8Bi-SB0,1164
|
|
67
67
|
stjames/workflows/workflow.py,sha256=OE05pt2ZOd8TzTOlBngXCVg9wv_553ZR60VNRPlq0f8,1953
|
|
68
|
-
stjames-0.0.
|
|
69
|
-
stjames-0.0.
|
|
70
|
-
stjames-0.0.
|
|
71
|
-
stjames-0.0.
|
|
72
|
-
stjames-0.0.
|
|
68
|
+
stjames-0.0.115.dist-info/licenses/LICENSE,sha256=i05z7xEhyrg6f8j0lR3XYjShnF-MJGFQ-DnpsZ8yiVI,1084
|
|
69
|
+
stjames-0.0.115.dist-info/METADATA,sha256=SXjEZ5InRPFPo1QtWBhil1BqW-YIjY9b-xH8pt1F-3Y,1725
|
|
70
|
+
stjames-0.0.115.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
71
|
+
stjames-0.0.115.dist-info/top_level.txt,sha256=FYCwxl6quhYOAgG-mnPQcCK8vsVM7B8rIUrO-WrQ_PI,8
|
|
72
|
+
stjames-0.0.115.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|