stjames 0.0.102__py3-none-any.whl → 0.0.104__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/engine.py +1 -2
- stjames/method.py +4 -9
- stjames/types.py +20 -10
- stjames/workflows/conformer_search.py +9 -4
- stjames/workflows/docking.py +3 -3
- stjames/workflows/ion_mobility.py +41 -3
- stjames/workflows/macropka.py +4 -4
- stjames/workflows/multistage_opt.py +7 -2
- stjames/workflows/nmr.py +3 -3
- stjames/workflows/protein_cofolding.py +2 -2
- stjames/workflows/solubility.py +2 -2
- {stjames-0.0.102.dist-info → stjames-0.0.104.dist-info}/METADATA +1 -1
- {stjames-0.0.102.dist-info → stjames-0.0.104.dist-info}/RECORD +16 -16
- {stjames-0.0.102.dist-info → stjames-0.0.104.dist-info}/WHEEL +0 -0
- {stjames-0.0.102.dist-info → stjames-0.0.104.dist-info}/licenses/LICENSE +0 -0
- {stjames-0.0.102.dist-info → stjames-0.0.104.dist-info}/top_level.txt +0 -0
stjames/engine.py
CHANGED
|
@@ -4,12 +4,11 @@ from .base import LowercaseStrEnum
|
|
|
4
4
|
class Engine(LowercaseStrEnum):
|
|
5
5
|
AIMNET2 = "aimnet2"
|
|
6
6
|
MACE = "mace"
|
|
7
|
-
OCP24 = "ocp24"
|
|
8
7
|
OMOL25 = "omol25"
|
|
9
8
|
ORB = "orb"
|
|
10
9
|
TBLITE = "tblite"
|
|
11
10
|
XTB = "xtb"
|
|
12
|
-
|
|
11
|
+
TERACHEM = "terachem"
|
|
13
12
|
PYSCF = "pyscf"
|
|
14
13
|
PSI4 = "psi4"
|
|
15
14
|
OPENFF = "openff"
|
stjames/method.py
CHANGED
|
@@ -34,12 +34,11 @@ class Method(LowercaseStrEnum):
|
|
|
34
34
|
AIMNET2_WB97MD3 = "aimnet2_wb97md3"
|
|
35
35
|
MACE_MP_0 = "mace_mp_0"
|
|
36
36
|
MACE_MP_0B2_L = "mace_mp_0b2_l"
|
|
37
|
-
OCP24_S = "ocp24_s"
|
|
38
|
-
OCP24_L = "ocp24_l"
|
|
39
37
|
OMOL25_CONSERVING_S = "omol25_conserving_s"
|
|
40
38
|
UMA_M_OMOL = "uma_m_omol"
|
|
41
39
|
UMA_S_OMOL = "uma_s_omol"
|
|
42
40
|
ORB_V3_CONSERVATIVE_INF_OMAT = "orb_v3_conservative_inf_omat"
|
|
41
|
+
ORB_V3_CONSERVATIVE_OMOL = "orb_v3_conservative_omol"
|
|
43
42
|
|
|
44
43
|
GFN_FF = "gfn_ff"
|
|
45
44
|
GFN0_XTB = "gfn0_xtb"
|
|
@@ -77,11 +76,9 @@ class Method(LowercaseStrEnum):
|
|
|
77
76
|
return Engine.AIMNET2
|
|
78
77
|
case Method.MACE_MP_0B2_L:
|
|
79
78
|
return Engine.MACE
|
|
80
|
-
case Method.OCP24_S | Method.OCP24_L:
|
|
81
|
-
return Engine.OCP24
|
|
82
79
|
case Method.OMOL25_CONSERVING_S | Method.UMA_M_OMOL | Method.UMA_S_OMOL:
|
|
83
80
|
return Engine.OMOL25
|
|
84
|
-
case Method.ORB_V3_CONSERVATIVE_INF_OMAT:
|
|
81
|
+
case Method.ORB_V3_CONSERVATIVE_INF_OMAT | Method.ORB_V3_CONSERVATIVE_OMOL:
|
|
85
82
|
return Engine.ORB
|
|
86
83
|
case method if method in XTB_METHODS:
|
|
87
84
|
return Engine.TBLITE if is_periodic else Engine.XTB
|
|
@@ -96,12 +93,11 @@ class Method(LowercaseStrEnum):
|
|
|
96
93
|
|
|
97
94
|
PrepackagedNNPMethod = Literal[
|
|
98
95
|
Method.AIMNET2_WB97MD3,
|
|
99
|
-
Method.OCP24_S,
|
|
100
|
-
Method.OCP24_L,
|
|
101
96
|
Method.OMOL25_CONSERVING_S,
|
|
102
97
|
Method.UMA_M_OMOL,
|
|
103
98
|
Method.UMA_S_OMOL,
|
|
104
99
|
Method.ORB_V3_CONSERVATIVE_INF_OMAT,
|
|
100
|
+
Method.ORB_V3_CONSERVATIVE_OMOL,
|
|
105
101
|
Method.EGRET_1,
|
|
106
102
|
Method.EGRET_1E,
|
|
107
103
|
Method.EGRET_1T,
|
|
@@ -109,12 +105,11 @@ PrepackagedNNPMethod = Literal[
|
|
|
109
105
|
|
|
110
106
|
PREPACKAGED_NNP_METHODS = [
|
|
111
107
|
Method.AIMNET2_WB97MD3,
|
|
112
|
-
Method.OCP24_S,
|
|
113
|
-
Method.OCP24_L,
|
|
114
108
|
Method.OMOL25_CONSERVING_S,
|
|
115
109
|
Method.UMA_M_OMOL,
|
|
116
110
|
Method.UMA_S_OMOL,
|
|
117
111
|
Method.ORB_V3_CONSERVATIVE_INF_OMAT,
|
|
112
|
+
Method.ORB_V3_CONSERVATIVE_OMOL,
|
|
118
113
|
Method.EGRET_1,
|
|
119
114
|
Method.EGRET_1E,
|
|
120
115
|
Method.EGRET_1T,
|
stjames/types.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Callable, Iterable, TypeAlias
|
|
1
|
+
from typing import Callable, Iterable, Protocol, TypeAlias, overload
|
|
2
2
|
|
|
3
3
|
UUID: TypeAlias = str
|
|
4
4
|
|
|
@@ -10,22 +10,32 @@ FloatPerAtom: TypeAlias = list[float]
|
|
|
10
10
|
Matrix3x3: TypeAlias = tuple[Vector3D, Vector3D, Vector3D]
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
"""
|
|
13
|
+
class _Iterable_Rounder(Protocol):
|
|
14
|
+
"""Callable with return types conditioned on the input type(s)."""
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
@overload
|
|
17
|
+
def __call__(self, values: None, /) -> None: ...
|
|
18
|
+
@overload
|
|
19
|
+
def __call__(self, values: Iterable[float], /) -> list[float]: ...
|
|
20
|
+
@overload
|
|
21
|
+
def __call__(self, values: Iterable[float | None], /) -> list[float | None]: ...
|
|
18
22
|
|
|
19
|
-
return rounder
|
|
20
23
|
|
|
24
|
+
def round_list(round_to: int = 6) -> _Iterable_Rounder:
|
|
25
|
+
"""Round values (even if Nones), preserving types."""
|
|
21
26
|
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
@overload
|
|
28
|
+
def rounder(values: None, /) -> None: ...
|
|
29
|
+
@overload
|
|
30
|
+
def rounder(values: Iterable[float], /) -> list[float]: ...
|
|
31
|
+
@overload
|
|
32
|
+
def rounder(values: Iterable[float | None], /) -> list[float | None]: ...
|
|
24
33
|
|
|
25
|
-
def rounder(values: Iterable[float] | None) -> list[float] | None:
|
|
34
|
+
def rounder(values: Iterable[float] | Iterable[float | None] | None, /) -> list[float] | list[float | None] | None:
|
|
26
35
|
if values is None:
|
|
27
36
|
return None
|
|
28
|
-
|
|
37
|
+
|
|
38
|
+
return [round(v, round_to) if v is not None else None for v in values]
|
|
29
39
|
|
|
30
40
|
return rounder
|
|
31
41
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Conformer search workflow."""
|
|
2
2
|
|
|
3
3
|
from abc import ABC
|
|
4
|
-
from typing import Annotated, Self, Sequence, TypeVar
|
|
4
|
+
from typing import Annotated, Literal, Self, Sequence, TypeVar
|
|
5
5
|
|
|
6
6
|
from pydantic import AfterValidator, BaseModel, Field, field_validator, model_validator
|
|
7
7
|
|
|
@@ -94,6 +94,7 @@ class ETKDGSettings(ConformerGenSettings):
|
|
|
94
94
|
num_confs_considered: int = 100
|
|
95
95
|
max_mmff_iterations: int = 500
|
|
96
96
|
max_mmff_energy: float | None = 30
|
|
97
|
+
settings_type: Literal["etkdg"] = "etkdg"
|
|
97
98
|
|
|
98
99
|
@field_validator("constraints")
|
|
99
100
|
def check_constraints(cls, constraints: Sequence[Constraint]) -> Sequence[Constraint]:
|
|
@@ -209,6 +210,7 @@ class iMTDSettings(ConformerGenSettings, ABC):
|
|
|
209
210
|
speed: iMTDSpeeds = iMTDSpeeds.QUICK
|
|
210
211
|
reopt: bool = _sentinel # type: ignore [assignment]
|
|
211
212
|
free_energy_weights: bool = False
|
|
213
|
+
settings_type: Literal["imtd"] = "imtd"
|
|
212
214
|
|
|
213
215
|
@model_validator(mode="after")
|
|
214
216
|
def validate_and_build_imtdgc_settings(self) -> Self:
|
|
@@ -253,6 +255,9 @@ class iMTDsMTDSettings(iMTDSettings):
|
|
|
253
255
|
run_type: str = "imtd-smtd"
|
|
254
256
|
|
|
255
257
|
|
|
258
|
+
ConformerGenSettingsUnion = Annotated[ETKDGSettings | iMTDSettings, Field(discriminator="settings_type")]
|
|
259
|
+
|
|
260
|
+
|
|
256
261
|
class ConformerGenMixin(BaseModel):
|
|
257
262
|
"""
|
|
258
263
|
Mixin for workflows that need conformer generation.
|
|
@@ -265,7 +270,7 @@ class ConformerGenMixin(BaseModel):
|
|
|
265
270
|
"""
|
|
266
271
|
|
|
267
272
|
conf_gen_mode: Mode = Mode.RAPID
|
|
268
|
-
conf_gen_settings:
|
|
273
|
+
conf_gen_settings: ConformerGenSettingsUnion = _sentinel # type: ignore [assignment]
|
|
269
274
|
constraints: Sequence[Constraint] = tuple()
|
|
270
275
|
nci: bool = False
|
|
271
276
|
max_confs: int | None = None
|
|
@@ -273,8 +278,8 @@ class ConformerGenMixin(BaseModel):
|
|
|
273
278
|
@model_validator(mode="after")
|
|
274
279
|
def validate_and_build_conf_gen_settings(self) -> Self:
|
|
275
280
|
"""Validate and build the ConformerGenSettings."""
|
|
276
|
-
if self.conf_gen_settings is not _sentinel
|
|
277
|
-
|
|
281
|
+
if self.conf_gen_settings is not _sentinel:
|
|
282
|
+
return self
|
|
278
283
|
|
|
279
284
|
match self.conf_gen_mode:
|
|
280
285
|
case Mode.MANUAL:
|
stjames/workflows/docking.py
CHANGED
|
@@ -7,7 +7,7 @@ from pydantic import AfterValidator, ConfigDict, field_validator, model_validato
|
|
|
7
7
|
from ..base import Base, round_float
|
|
8
8
|
from ..pdb import PDB
|
|
9
9
|
from ..types import UUID, Vector3D
|
|
10
|
-
from .conformer_search import
|
|
10
|
+
from .conformer_search import ConformerGenSettingsUnion, ETKDGSettings
|
|
11
11
|
from .workflow import MoleculeWorkflow
|
|
12
12
|
|
|
13
13
|
|
|
@@ -79,12 +79,12 @@ class DockingWorkflow(MoleculeWorkflow):
|
|
|
79
79
|
pocket: tuple[Vector3D, Vector3D]
|
|
80
80
|
|
|
81
81
|
do_csearch: bool = True
|
|
82
|
-
conformer_gen_settings:
|
|
82
|
+
conformer_gen_settings: ConformerGenSettingsUnion = ETKDGSettings(mode="reckless")
|
|
83
83
|
|
|
84
84
|
do_optimization: bool = True
|
|
85
85
|
# optimization_settings - here in future once we have a cleaner mode sol'n, ccw 7.9.25
|
|
86
86
|
|
|
87
|
-
docking_settings:
|
|
87
|
+
docking_settings: VinaSettings = VinaSettings()
|
|
88
88
|
|
|
89
89
|
do_pose_refinement: bool = True
|
|
90
90
|
|
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
"""Ion mobility workflow."""
|
|
2
2
|
|
|
3
|
-
from typing import Annotated
|
|
3
|
+
from typing import Annotated, Self
|
|
4
4
|
|
|
5
|
-
from pydantic import AfterValidator
|
|
5
|
+
from pydantic import AfterValidator, computed_field, model_validator
|
|
6
6
|
|
|
7
|
-
from ..base import round_optional_float
|
|
7
|
+
from ..base import Base, round_optional_float
|
|
8
|
+
from ..data import ELEMENT_SYMBOL
|
|
8
9
|
from ..types import UUID, round_list
|
|
9
10
|
from .workflow import MoleculeWorkflow
|
|
10
11
|
|
|
11
12
|
|
|
13
|
+
class IonMobilityForcefieldElement(Base):
|
|
14
|
+
"""
|
|
15
|
+
A single atom specification for the ion-mobility forcefield.
|
|
16
|
+
|
|
17
|
+
:param name: the name of the element (e.g. "Hydrogen")
|
|
18
|
+
:param atomic_number: the element's atomic number
|
|
19
|
+
:param mass: the mass of the element in Daltons (e.g. 1.00794)
|
|
20
|
+
:param sigma: the sigma Lennard-Jones parameter, in Å
|
|
21
|
+
:param epsilon: the epsilon Lennard-Jones parameter, in kcal/mol
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
name: str
|
|
25
|
+
atomic_number: int
|
|
26
|
+
mass: float
|
|
27
|
+
sigma: float
|
|
28
|
+
epsilon: float
|
|
29
|
+
|
|
30
|
+
@computed_field # type: ignore[misc, prop-decorator, unused-ignore]
|
|
31
|
+
@property
|
|
32
|
+
def symbol(self) -> str:
|
|
33
|
+
return ELEMENT_SYMBOL[self.atomic_number]
|
|
34
|
+
|
|
35
|
+
|
|
12
36
|
class IonMobilityWorkflow(MoleculeWorkflow):
|
|
13
37
|
"""
|
|
14
38
|
Workflow for calculating hydrogen bond basicity.
|
|
@@ -22,6 +46,8 @@ class IonMobilityWorkflow(MoleculeWorkflow):
|
|
|
22
46
|
:param temperature: the temperature, in Kelvin
|
|
23
47
|
:param do_csearch: whether to perform a conformational search
|
|
24
48
|
:param do_optimization: whether to perform an optimization
|
|
49
|
+
:param forcefield: the forcefield used to describe atom–gas interactions.
|
|
50
|
+
if None, the default forcefield will be used.
|
|
25
51
|
|
|
26
52
|
Results:
|
|
27
53
|
:param conformers: the UUIDs of the conformers
|
|
@@ -37,6 +63,8 @@ class IonMobilityWorkflow(MoleculeWorkflow):
|
|
|
37
63
|
do_csearch: bool = True
|
|
38
64
|
do_optimization: bool = True
|
|
39
65
|
|
|
66
|
+
forcefield: list[IonMobilityForcefieldElement] | None = None
|
|
67
|
+
|
|
40
68
|
conformers: list[UUID] = []
|
|
41
69
|
|
|
42
70
|
conformer_ccs: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
@@ -45,3 +73,13 @@ class IonMobilityWorkflow(MoleculeWorkflow):
|
|
|
45
73
|
|
|
46
74
|
average_ccs: Annotated[float | None, AfterValidator(round_optional_float(3))] = None
|
|
47
75
|
average_ccs_stdev: Annotated[float | None, AfterValidator(round_optional_float(3))] = None
|
|
76
|
+
|
|
77
|
+
@model_validator(mode="after")
|
|
78
|
+
def check_supported_atoms(self) -> Self:
|
|
79
|
+
"""Validate that user-supplied forcefields have correct atoms."""
|
|
80
|
+
if self.forcefield is not None:
|
|
81
|
+
supported_atoms = set(e.atomic_number for e in self.forcefield)
|
|
82
|
+
if not all(z in supported_atoms for z in self.initial_molecule.atomic_numbers):
|
|
83
|
+
raise ValueError("Provided forcefield does not support all elements in input structure!")
|
|
84
|
+
|
|
85
|
+
return self
|
stjames/workflows/macropka.py
CHANGED
|
@@ -4,7 +4,7 @@ from typing import Annotated, Optional, Self
|
|
|
4
4
|
|
|
5
5
|
from pydantic import AfterValidator, model_validator
|
|
6
6
|
|
|
7
|
-
from ..base import Base, round_float
|
|
7
|
+
from ..base import Base, round_float, round_optional_float
|
|
8
8
|
from ..types import round_list
|
|
9
9
|
from .workflow import SMILESWorkflow
|
|
10
10
|
|
|
@@ -72,9 +72,9 @@ class MacropKaWorkflow(SMILESWorkflow):
|
|
|
72
72
|
|
|
73
73
|
microstates: list[MacropKaMicrostate] = []
|
|
74
74
|
pKa_values: list[MacropKaValue] = []
|
|
75
|
-
isoelectric_point: Annotated[Optional[float], AfterValidator(
|
|
76
|
-
solvation_energy: Annotated[Optional[float], AfterValidator(
|
|
77
|
-
kpuu_probability: Annotated[Optional[float], AfterValidator(
|
|
75
|
+
isoelectric_point: Annotated[Optional[float], AfterValidator(round_optional_float(3))] = None
|
|
76
|
+
solvation_energy: Annotated[Optional[float], AfterValidator(round_optional_float(3))] = None
|
|
77
|
+
kpuu_probability: Annotated[Optional[float], AfterValidator(round_optional_float(3))] = None
|
|
78
78
|
|
|
79
79
|
microstate_weights_by_pH: list[
|
|
80
80
|
tuple[
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Multi-stage optimization workflow."""
|
|
2
2
|
|
|
3
|
+
import logging
|
|
3
4
|
import re
|
|
4
5
|
from typing import Self, Sequence
|
|
5
6
|
|
|
@@ -18,6 +19,8 @@ from ..task import Task
|
|
|
18
19
|
from ..types import UUID
|
|
19
20
|
from .workflow import MoleculeWorkflow
|
|
20
21
|
|
|
22
|
+
logger = logging.getLogger(__name__)
|
|
23
|
+
|
|
21
24
|
|
|
22
25
|
class MultiStageOptSettings(BaseModel):
|
|
23
26
|
"""
|
|
@@ -109,7 +112,8 @@ class MultiStageOptSettings(BaseModel):
|
|
|
109
112
|
pass
|
|
110
113
|
|
|
111
114
|
case (mode, True):
|
|
112
|
-
|
|
115
|
+
logger.debug(f"Mode {mode=} specified with optimization_settings or singlepoint_settings, ignoring")
|
|
116
|
+
pass
|
|
113
117
|
|
|
114
118
|
case (mode, False):
|
|
115
119
|
self._assign_settings_by_mode(mode)
|
|
@@ -253,7 +257,8 @@ class MultiStageOptMixin(BaseModel):
|
|
|
253
257
|
pass
|
|
254
258
|
|
|
255
259
|
case (mso_mode, msos) if msos is not _sentinel_msos:
|
|
256
|
-
|
|
260
|
+
logger.debug(f"Mode {mso_mode=} specified with multistage_opt_settings, ignoring")
|
|
261
|
+
pass
|
|
257
262
|
|
|
258
263
|
case (mso_mode, _):
|
|
259
264
|
self.multistage_opt_settings = MultiStageOptSettings(
|
stjames/workflows/nmr.py
CHANGED
|
@@ -8,7 +8,7 @@ from ..base import Base, LowercaseStrEnum, round_float
|
|
|
8
8
|
from ..mode import Mode
|
|
9
9
|
from ..settings import Settings
|
|
10
10
|
from ..solvent import Solvent
|
|
11
|
-
from ..types import UUID, round_list
|
|
11
|
+
from ..types import UUID, round_list
|
|
12
12
|
from .conformer_search import ConformerGenSettings, iMTDSettings
|
|
13
13
|
from .multistage_opt import MultiStageOptSettings
|
|
14
14
|
from .workflow import MoleculeWorkflow
|
|
@@ -66,8 +66,8 @@ class NMRSpectroscopyWorkflow(MoleculeWorkflow):
|
|
|
66
66
|
|
|
67
67
|
conformers: list[UUID] = []
|
|
68
68
|
boltzmann_weights: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
69
|
-
per_conformer_chemical_shifts: list[Annotated[list[float | None], AfterValidator(
|
|
70
|
-
chemical_shifts: Annotated[list[float | None], AfterValidator(
|
|
69
|
+
per_conformer_chemical_shifts: list[Annotated[list[float | None], AfterValidator(round_list(3))]] = []
|
|
70
|
+
chemical_shifts: Annotated[list[float | None], AfterValidator(round_list(3))] = []
|
|
71
71
|
symmetry_equivalent_nuclei: list[list[int]] = []
|
|
72
72
|
|
|
73
73
|
predicted_peaks: dict[int, list[NMRPeak]] = {}
|
|
@@ -5,7 +5,7 @@ from typing import Annotated, Literal
|
|
|
5
5
|
from pydantic import AfterValidator, BaseModel, ConfigDict
|
|
6
6
|
|
|
7
7
|
from ..base import LowercaseStrEnum, round_float
|
|
8
|
-
from ..types import UUID,
|
|
8
|
+
from ..types import UUID, round_list
|
|
9
9
|
from .workflow import FASTAWorkflow
|
|
10
10
|
|
|
11
11
|
|
|
@@ -86,4 +86,4 @@ class ProteinCofoldingWorkflow(FASTAWorkflow):
|
|
|
86
86
|
scores: CofoldingScores | None = None
|
|
87
87
|
model: CofoldingModel = CofoldingModel.BOLTZ_2
|
|
88
88
|
affinity_score: AffinityScore | None = None
|
|
89
|
-
lddt: Annotated[list[float] | None, AfterValidator(
|
|
89
|
+
lddt: Annotated[list[float] | None, AfterValidator(round_list(3))] = None
|
stjames/workflows/solubility.py
CHANGED
|
@@ -5,7 +5,7 @@ from typing import Annotated, Self
|
|
|
5
5
|
from pydantic import AfterValidator, BaseModel, model_validator
|
|
6
6
|
|
|
7
7
|
from ..base import LowercaseStrEnum
|
|
8
|
-
from ..types import round_list
|
|
8
|
+
from ..types import round_list
|
|
9
9
|
from .workflow import SMILESWorkflow
|
|
10
10
|
|
|
11
11
|
|
|
@@ -24,7 +24,7 @@ class SolubilityResult(BaseModel):
|
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
26
|
solubilities: Annotated[list[float], AfterValidator(round_list(6))]
|
|
27
|
-
uncertainties: Annotated[list[float | None], AfterValidator(
|
|
27
|
+
uncertainties: Annotated[list[float | None], AfterValidator(round_list(6))]
|
|
28
28
|
|
|
29
29
|
@model_validator(mode="after")
|
|
30
30
|
def check_size(self) -> Self:
|
|
@@ -7,9 +7,9 @@ stjames/calculation.py,sha256=O2LwwQ_cOLmDOGXTHA9J71YbUZXigUSbvbLA-fSVm3w,915
|
|
|
7
7
|
stjames/compute_settings.py,sha256=wuYE6W4WqP3oFHwAeEp7XQ0oMz_MNLucWgrsuJ4kEFQ,268
|
|
8
8
|
stjames/constraint.py,sha256=B6oV0rYjmAWr8gpi5f03gRy_uuqjUURVDVwoez5Cfbg,2442
|
|
9
9
|
stjames/correction.py,sha256=ZVErCcj4TPyZeKrdvXVjHa0tFynsCaoy96QZUVxWFM8,413
|
|
10
|
-
stjames/engine.py,sha256=
|
|
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=tMdngVD7kU5ob285YD2-2UVq1gwf0T7dkGF0qYSNoWQ,4453
|
|
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=LEwGXUEKq5TfU5rr60Z4QQBhCqiw1Ch5w0M_lXawWo8,642
|
|
@@ -22,7 +22,7 @@ stjames/solvent.py,sha256=u037tmu-9oa21s-WEDZ7VC7nuNVjkqR2ML4JWjWSME4,1158
|
|
|
22
22
|
stjames/status.py,sha256=KQHDqWSd4kBLow23YLcfOkFdtqN61RFZI-jf2zANWRY,501
|
|
23
23
|
stjames/task.py,sha256=OLINRqe66o7t8arffilwmggrF_7TH0L79u6DhGruxV8,329
|
|
24
24
|
stjames/thermochem_settings.py,sha256=ZTLz31v8Ltutde5Nfm0vH5YahWjcfFWfr_R856KffxE,517
|
|
25
|
-
stjames/types.py,sha256=
|
|
25
|
+
stjames/types.py,sha256=PGEZeqGnomgWUSHcMuUftzvZt7l4VwaQ1Pi-7vEkibg,4773
|
|
26
26
|
stjames/atomium_stjames/__init__.py,sha256=gZkzC7i9D_fmWUTN55gtygITo3-qvJUda5CXLR0jyCQ,306
|
|
27
27
|
stjames/atomium_stjames/data.py,sha256=-hzwBpTHq5JetsOVyopUJswKnKAkMtJ_XkONxjXVupU,5675
|
|
28
28
|
stjames/atomium_stjames/mmcif.py,sha256=em1fNt6577OaUjL7Pctru7aJp3ceZ9kEnj5w6BRWdVs,27090
|
|
@@ -42,30 +42,30 @@ stjames/workflows/admet.py,sha256=h8ph6oeRCxU3-_jqRRWPg3RZcheu9JzCHiWqSC9VYKY,12
|
|
|
42
42
|
stjames/workflows/basic_calculation.py,sha256=sAgHBcNHE72ZbZPB9vyZShALRC4zOVw6It6cpJlbX2A,911
|
|
43
43
|
stjames/workflows/bde.py,sha256=g_In-caftXiimrhfdptHjpfrYQUs3vF58qYmRnaTN8g,10825
|
|
44
44
|
stjames/workflows/conformer.py,sha256=18aO6ngMBeGAmQkBdLGCCHr398RIYr1v2hD2IT1u4cc,3005
|
|
45
|
-
stjames/workflows/conformer_search.py,sha256=
|
|
45
|
+
stjames/workflows/conformer_search.py,sha256=clWFstrz-y1N1x8KtbY7kYUdLrWFSlTLKr-9KnJxt8M,13625
|
|
46
46
|
stjames/workflows/descriptors.py,sha256=T4tc7xdtBdxESGO86KR323jPQ2pgwxBqgV0khA6MEgQ,584
|
|
47
|
-
stjames/workflows/docking.py,sha256=
|
|
47
|
+
stjames/workflows/docking.py,sha256=JG-c6um2tVNeu5H1uzpdQEM5RGMXKgcGNKptTstqj9o,3864
|
|
48
48
|
stjames/workflows/double_ended_ts_search.py,sha256=ovJgEVFc6c3mijCE3TKAY70YvqNmAZ5Y4XgV4-tIxBI,3127
|
|
49
49
|
stjames/workflows/electronic_properties.py,sha256=GT3-NC7w-dbcOJ-3AzJ7LgzH6frTbiH2Iyb9BCa-SvY,4112
|
|
50
50
|
stjames/workflows/fukui.py,sha256=095GDGSSEc5PDD1aoKM8J7icgR5tfwS5Bs9XxFQHge4,2387
|
|
51
51
|
stjames/workflows/hydrogen_bond_basicity.py,sha256=q9eXty68ZyCmrB6G_8bfeOT8Ui_IQquRPu6z-3rNreQ,1589
|
|
52
|
-
stjames/workflows/ion_mobility.py,sha256=
|
|
52
|
+
stjames/workflows/ion_mobility.py,sha256=5vUjEYCnF9sN3dTqqEgWAq0jAfdoFvkLubemoXE8DLc,3125
|
|
53
53
|
stjames/workflows/irc.py,sha256=ZP7icylW8rgo_Uh7h3bmyumn0ru1IyF-61nP5Jnmq3M,3402
|
|
54
|
-
stjames/workflows/macropka.py,sha256=
|
|
54
|
+
stjames/workflows/macropka.py,sha256=Krj0xXuB-u57Kqlf4bbRiHDUWCpliFr6YPiYqPmYaWk,3803
|
|
55
55
|
stjames/workflows/molecular_dynamics.py,sha256=HqWNxxPSAphfI0DdbTERFkq8UeBjEvhnA_ETv0xw_RY,3522
|
|
56
|
-
stjames/workflows/multistage_opt.py,sha256=
|
|
57
|
-
stjames/workflows/nmr.py,sha256=
|
|
56
|
+
stjames/workflows/multistage_opt.py,sha256=UN-4WLsT2WEjO5KqDPrcCkb708Co-ZScHx3g2bto768,16597
|
|
57
|
+
stjames/workflows/nmr.py,sha256=2314qzkAFt-Wu6IDC2AI7eedYocqcCxIy9uZWkHMz_Q,2671
|
|
58
58
|
stjames/workflows/pka.py,sha256=j3vBh2YM3nJzJ1XJKPsmYahRCeaU9n3P-G-u9_moaFw,2065
|
|
59
59
|
stjames/workflows/pose_analysis_md.py,sha256=ES0XlzaLpTjhLrNvcB0zFZa1b1ZHXekN72EbLsx0Skw,4723
|
|
60
|
-
stjames/workflows/protein_cofolding.py,sha256=
|
|
60
|
+
stjames/workflows/protein_cofolding.py,sha256=ZjHER5DsO2vgCpgqttcNIU8xISN5B4DdqdrTxLKFsKY,2998
|
|
61
61
|
stjames/workflows/redox_potential.py,sha256=7S18t9Y3eynSnA3lZbRlvLfdbgeBopdiigLzt1zxg5c,3871
|
|
62
62
|
stjames/workflows/scan.py,sha256=DXQBpa2t2PowAtOwmdgpxaSLq--fEShljzAGSb8Nf5U,2993
|
|
63
|
-
stjames/workflows/solubility.py,sha256=
|
|
63
|
+
stjames/workflows/solubility.py,sha256=DhsOxThAslWihpvOKJINNeMiBWSEzRsdqBlfgo2PwX4,2961
|
|
64
64
|
stjames/workflows/spin_states.py,sha256=0degmE-frovgoXweshZyjfjqL7nkbaFoO9YoJhvQnaI,4748
|
|
65
65
|
stjames/workflows/tautomer.py,sha256=7eYKziGPg8Km6lfowTzSkgJfJ4SHUPrAmnTf8Bi-SB0,1164
|
|
66
66
|
stjames/workflows/workflow.py,sha256=OE05pt2ZOd8TzTOlBngXCVg9wv_553ZR60VNRPlq0f8,1953
|
|
67
|
-
stjames-0.0.
|
|
68
|
-
stjames-0.0.
|
|
69
|
-
stjames-0.0.
|
|
70
|
-
stjames-0.0.
|
|
71
|
-
stjames-0.0.
|
|
67
|
+
stjames-0.0.104.dist-info/licenses/LICENSE,sha256=i05z7xEhyrg6f8j0lR3XYjShnF-MJGFQ-DnpsZ8yiVI,1084
|
|
68
|
+
stjames-0.0.104.dist-info/METADATA,sha256=QxRGE9VE23ySAMwV5fF1-76H1oupQDGabT8aTMdUz7k,1725
|
|
69
|
+
stjames-0.0.104.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
70
|
+
stjames-0.0.104.dist-info/top_level.txt,sha256=FYCwxl6quhYOAgG-mnPQcCK8vsVM7B8rIUrO-WrQ_PI,8
|
|
71
|
+
stjames-0.0.104.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|