stjames 0.0.103__tar.gz → 0.0.105__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.
Potentially problematic release.
This version of stjames might be problematic. Click here for more details.
- {stjames-0.0.103/stjames.egg-info → stjames-0.0.105}/PKG-INFO +1 -1
- {stjames-0.0.103 → stjames-0.0.105}/pyproject.toml +1 -1
- stjames-0.0.105/stjames/workflows/ion_mobility.py +85 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/nmr.py +2 -2
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/solubility.py +2 -1
- {stjames-0.0.103 → stjames-0.0.105/stjames.egg-info}/PKG-INFO +1 -1
- stjames-0.0.103/stjames/workflows/ion_mobility.py +0 -47
- {stjames-0.0.103 → stjames-0.0.105}/LICENSE +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/README.md +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/setup.cfg +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/__init__.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/_deprecated_solvent_settings.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/atom.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/__init__.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/data.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/mmcif.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/pdb.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/utilities.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/base.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/basis_set.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/calculation.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/compute_settings.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/constraint.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/correction.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/data/__init__.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/data/bragg_radii.json +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/data/elements.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/data/isotopes.json +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/data/nist_isotopes.json +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/data/read_nist_isotopes.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/data/symbol_element.json +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/engine.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/message.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/method.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/mode.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/molecule.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/opt_settings.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/optimization/__init__.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/optimization/freezing_string_method.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/pdb.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/periodic_cell.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/py.typed +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/scf_settings.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/settings.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/solvent.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/status.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/task.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/thermochem_settings.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/types.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/__init__.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/admet.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/basic_calculation.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/bde.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/conformer.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/conformer_search.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/descriptors.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/docking.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/double_ended_ts_search.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/electronic_properties.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/fukui.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/irc.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/macropka.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/molecular_dynamics.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/multistage_opt.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/pka.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/pose_analysis_md.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/protein_cofolding.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/redox_potential.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/scan.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/spin_states.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/tautomer.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/workflow.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/SOURCES.txt +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/dependency_links.txt +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/requires.txt +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/top_level.txt +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/tests/test_constraints.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/tests/test_from_extxyz.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/tests/test_molecule.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/tests/test_pdb.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/tests/test_rounding.py +0 -0
- {stjames-0.0.103 → stjames-0.0.105}/tests/test_settings.py +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""Ion mobility workflow."""
|
|
2
|
+
|
|
3
|
+
from typing import Annotated, Self
|
|
4
|
+
|
|
5
|
+
from pydantic import AfterValidator, computed_field, model_validator
|
|
6
|
+
|
|
7
|
+
from ..base import Base, round_optional_float
|
|
8
|
+
from ..data import ELEMENT_SYMBOL
|
|
9
|
+
from ..types import UUID, round_list
|
|
10
|
+
from .workflow import MoleculeWorkflow
|
|
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
|
+
|
|
36
|
+
class IonMobilityWorkflow(MoleculeWorkflow):
|
|
37
|
+
"""
|
|
38
|
+
Workflow for calculating hydrogen bond basicity.
|
|
39
|
+
|
|
40
|
+
Inherited:
|
|
41
|
+
:param initial_molecule: Molecule of interest
|
|
42
|
+
:param mode: Mode for workflow (currently unused)
|
|
43
|
+
|
|
44
|
+
New:
|
|
45
|
+
:param protonate: automatically protonate the molecule
|
|
46
|
+
:param temperature: the temperature, in Kelvin
|
|
47
|
+
:param do_csearch: whether to perform a conformational search
|
|
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.
|
|
51
|
+
|
|
52
|
+
Results:
|
|
53
|
+
:param conformers: the UUIDs of the conformers
|
|
54
|
+
:param conformer_ccs: the collision cross section (Å**2) per conformer
|
|
55
|
+
:param conformer_ccs_stdev: the uncertainty in the same
|
|
56
|
+
:param conformer_weights: the Boltzmann weights at RT
|
|
57
|
+
:param average_ccs: the Boltzmann-weighted CCS for the ensemble
|
|
58
|
+
:param average_ccs_stdev: the uncertainty in the same
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
protonate: bool = False
|
|
62
|
+
temperature: float = 300
|
|
63
|
+
do_csearch: bool = True
|
|
64
|
+
do_optimization: bool = True
|
|
65
|
+
|
|
66
|
+
forcefield: list[IonMobilityForcefieldElement] | None = None
|
|
67
|
+
|
|
68
|
+
conformers: list[UUID] = []
|
|
69
|
+
|
|
70
|
+
conformer_ccs: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
71
|
+
conformer_ccs_stdev: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
72
|
+
boltzmann_weights: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
73
|
+
|
|
74
|
+
average_ccs: Annotated[float | None, AfterValidator(round_optional_float(3))] = None
|
|
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
|
|
@@ -9,7 +9,7 @@ from ..mode import Mode
|
|
|
9
9
|
from ..settings import Settings
|
|
10
10
|
from ..solvent import Solvent
|
|
11
11
|
from ..types import UUID, round_list
|
|
12
|
-
from .conformer_search import
|
|
12
|
+
from .conformer_search import ConformerGenSettingsUnion, iMTDSettings
|
|
13
13
|
from .multistage_opt import MultiStageOptSettings
|
|
14
14
|
from .workflow import MoleculeWorkflow
|
|
15
15
|
|
|
@@ -58,7 +58,7 @@ class NMRSpectroscopyWorkflow(MoleculeWorkflow):
|
|
|
58
58
|
nmr_method: NMRMethod = NMRMethod.MAGNETZERO
|
|
59
59
|
solvent: Solvent = Solvent.CHLOROFORM
|
|
60
60
|
|
|
61
|
-
conf_gen_settings:
|
|
61
|
+
conf_gen_settings: ConformerGenSettingsUnion | None = iMTDSettings(mode="careful")
|
|
62
62
|
multistage_opt_settings: MultiStageOptSettings | None = MultiStageOptSettings(
|
|
63
63
|
mode=Mode.MANUAL,
|
|
64
64
|
optimization_settings=[Settings(method="aimnet2_wb97md3", tasks=["optimize"])],
|
|
@@ -41,6 +41,7 @@ class SolubilityWorkflow(SMILESWorkflow):
|
|
|
41
41
|
|
|
42
42
|
Inputs:
|
|
43
43
|
:param initial_smiles: SMILES string of the molecule
|
|
44
|
+
:param solubility_method: model used for solubility prediction
|
|
44
45
|
:param solvents: list of solvent SMILES strings
|
|
45
46
|
:param temperatures: temperatures in K
|
|
46
47
|
|
|
@@ -48,8 +49,8 @@ class SolubilityWorkflow(SMILESWorkflow):
|
|
|
48
49
|
:param solubilities: {solvent: SolubilityResult}
|
|
49
50
|
"""
|
|
50
51
|
|
|
51
|
-
solubility_method: SolubilityMethod = SolubilityMethod.FASTSOLV
|
|
52
52
|
initial_smiles: str
|
|
53
|
+
solubility_method: SolubilityMethod = SolubilityMethod.FASTSOLV
|
|
53
54
|
solvents: list[str] = ["O"]
|
|
54
55
|
temperatures: list[float] = [298.15]
|
|
55
56
|
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"""Ion mobility workflow."""
|
|
2
|
-
|
|
3
|
-
from typing import Annotated
|
|
4
|
-
|
|
5
|
-
from pydantic import AfterValidator
|
|
6
|
-
|
|
7
|
-
from ..base import round_optional_float
|
|
8
|
-
from ..types import UUID, round_list
|
|
9
|
-
from .workflow import MoleculeWorkflow
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class IonMobilityWorkflow(MoleculeWorkflow):
|
|
13
|
-
"""
|
|
14
|
-
Workflow for calculating hydrogen bond basicity.
|
|
15
|
-
|
|
16
|
-
Inherited:
|
|
17
|
-
:param initial_molecule: Molecule of interest
|
|
18
|
-
:param mode: Mode for workflow (currently unused)
|
|
19
|
-
|
|
20
|
-
New:
|
|
21
|
-
:param protonate: automatically protonate the molecule
|
|
22
|
-
:param temperature: the temperature, in Kelvin
|
|
23
|
-
:param do_csearch: whether to perform a conformational search
|
|
24
|
-
:param do_optimization: whether to perform an optimization
|
|
25
|
-
|
|
26
|
-
Results:
|
|
27
|
-
:param conformers: the UUIDs of the conformers
|
|
28
|
-
:param conformer_ccs: the collision cross section (Å**2) per conformer
|
|
29
|
-
:param conformer_ccs_stdev: the uncertainty in the same
|
|
30
|
-
:param conformer_weights: the Boltzmann weights at RT
|
|
31
|
-
:param average_ccs: the Boltzmann-weighted CCS for the ensemble
|
|
32
|
-
:param average_ccs_stdev: the uncertainty in the same
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
protonate: bool = False
|
|
36
|
-
temperature: float = 300
|
|
37
|
-
do_csearch: bool = True
|
|
38
|
-
do_optimization: bool = True
|
|
39
|
-
|
|
40
|
-
conformers: list[UUID] = []
|
|
41
|
-
|
|
42
|
-
conformer_ccs: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
43
|
-
conformer_ccs_stdev: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
44
|
-
boltzmann_weights: Annotated[list[float], AfterValidator(round_list(3))] = []
|
|
45
|
-
|
|
46
|
-
average_ccs: Annotated[float | None, AfterValidator(round_optional_float(3))] = None
|
|
47
|
-
average_ccs_stdev: Annotated[float | None, AfterValidator(round_optional_float(3))] = None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|