stjames 0.0.102__py3-none-any.whl → 0.0.103__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/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.103.dist-info}/METADATA +1 -1
- {stjames-0.0.102.dist-info → stjames-0.0.103.dist-info}/RECORD +15 -15
- {stjames-0.0.102.dist-info → stjames-0.0.103.dist-info}/WHEEL +0 -0
- {stjames-0.0.102.dist-info → stjames-0.0.103.dist-info}/licenses/LICENSE +0 -0
- {stjames-0.0.102.dist-info → stjames-0.0.103.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
|
|
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
52
|
stjames/workflows/ion_mobility.py,sha256=rvvAt4ZD-Npl0tHL7TEuaS3XKjHiMkSZVzyJoivdyps,1665
|
|
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.103.dist-info/licenses/LICENSE,sha256=i05z7xEhyrg6f8j0lR3XYjShnF-MJGFQ-DnpsZ8yiVI,1084
|
|
68
|
+
stjames-0.0.103.dist-info/METADATA,sha256=ncWtuaR7uYzpmbJ89kySb8O5pJwKJDFX9jBQ5OXl9GY,1725
|
|
69
|
+
stjames-0.0.103.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
70
|
+
stjames-0.0.103.dist-info/top_level.txt,sha256=FYCwxl6quhYOAgG-mnPQcCK8vsVM7B8rIUrO-WrQ_PI,8
|
|
71
|
+
stjames-0.0.103.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|