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.

Files changed (83) hide show
  1. {stjames-0.0.103/stjames.egg-info → stjames-0.0.105}/PKG-INFO +1 -1
  2. {stjames-0.0.103 → stjames-0.0.105}/pyproject.toml +1 -1
  3. stjames-0.0.105/stjames/workflows/ion_mobility.py +85 -0
  4. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/nmr.py +2 -2
  5. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/solubility.py +2 -1
  6. {stjames-0.0.103 → stjames-0.0.105/stjames.egg-info}/PKG-INFO +1 -1
  7. stjames-0.0.103/stjames/workflows/ion_mobility.py +0 -47
  8. {stjames-0.0.103 → stjames-0.0.105}/LICENSE +0 -0
  9. {stjames-0.0.103 → stjames-0.0.105}/README.md +0 -0
  10. {stjames-0.0.103 → stjames-0.0.105}/setup.cfg +0 -0
  11. {stjames-0.0.103 → stjames-0.0.105}/stjames/__init__.py +0 -0
  12. {stjames-0.0.103 → stjames-0.0.105}/stjames/_deprecated_solvent_settings.py +0 -0
  13. {stjames-0.0.103 → stjames-0.0.105}/stjames/atom.py +0 -0
  14. {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/__init__.py +0 -0
  15. {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/data.py +0 -0
  16. {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/mmcif.py +0 -0
  17. {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/pdb.py +0 -0
  18. {stjames-0.0.103 → stjames-0.0.105}/stjames/atomium_stjames/utilities.py +0 -0
  19. {stjames-0.0.103 → stjames-0.0.105}/stjames/base.py +0 -0
  20. {stjames-0.0.103 → stjames-0.0.105}/stjames/basis_set.py +0 -0
  21. {stjames-0.0.103 → stjames-0.0.105}/stjames/calculation.py +0 -0
  22. {stjames-0.0.103 → stjames-0.0.105}/stjames/compute_settings.py +0 -0
  23. {stjames-0.0.103 → stjames-0.0.105}/stjames/constraint.py +0 -0
  24. {stjames-0.0.103 → stjames-0.0.105}/stjames/correction.py +0 -0
  25. {stjames-0.0.103 → stjames-0.0.105}/stjames/data/__init__.py +0 -0
  26. {stjames-0.0.103 → stjames-0.0.105}/stjames/data/bragg_radii.json +0 -0
  27. {stjames-0.0.103 → stjames-0.0.105}/stjames/data/elements.py +0 -0
  28. {stjames-0.0.103 → stjames-0.0.105}/stjames/data/isotopes.json +0 -0
  29. {stjames-0.0.103 → stjames-0.0.105}/stjames/data/nist_isotopes.json +0 -0
  30. {stjames-0.0.103 → stjames-0.0.105}/stjames/data/read_nist_isotopes.py +0 -0
  31. {stjames-0.0.103 → stjames-0.0.105}/stjames/data/symbol_element.json +0 -0
  32. {stjames-0.0.103 → stjames-0.0.105}/stjames/engine.py +0 -0
  33. {stjames-0.0.103 → stjames-0.0.105}/stjames/message.py +0 -0
  34. {stjames-0.0.103 → stjames-0.0.105}/stjames/method.py +0 -0
  35. {stjames-0.0.103 → stjames-0.0.105}/stjames/mode.py +0 -0
  36. {stjames-0.0.103 → stjames-0.0.105}/stjames/molecule.py +0 -0
  37. {stjames-0.0.103 → stjames-0.0.105}/stjames/opt_settings.py +0 -0
  38. {stjames-0.0.103 → stjames-0.0.105}/stjames/optimization/__init__.py +0 -0
  39. {stjames-0.0.103 → stjames-0.0.105}/stjames/optimization/freezing_string_method.py +0 -0
  40. {stjames-0.0.103 → stjames-0.0.105}/stjames/pdb.py +0 -0
  41. {stjames-0.0.103 → stjames-0.0.105}/stjames/periodic_cell.py +0 -0
  42. {stjames-0.0.103 → stjames-0.0.105}/stjames/py.typed +0 -0
  43. {stjames-0.0.103 → stjames-0.0.105}/stjames/scf_settings.py +0 -0
  44. {stjames-0.0.103 → stjames-0.0.105}/stjames/settings.py +0 -0
  45. {stjames-0.0.103 → stjames-0.0.105}/stjames/solvent.py +0 -0
  46. {stjames-0.0.103 → stjames-0.0.105}/stjames/status.py +0 -0
  47. {stjames-0.0.103 → stjames-0.0.105}/stjames/task.py +0 -0
  48. {stjames-0.0.103 → stjames-0.0.105}/stjames/thermochem_settings.py +0 -0
  49. {stjames-0.0.103 → stjames-0.0.105}/stjames/types.py +0 -0
  50. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/__init__.py +0 -0
  51. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/admet.py +0 -0
  52. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/basic_calculation.py +0 -0
  53. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/bde.py +0 -0
  54. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/conformer.py +0 -0
  55. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/conformer_search.py +0 -0
  56. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/descriptors.py +0 -0
  57. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/docking.py +0 -0
  58. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/double_ended_ts_search.py +0 -0
  59. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/electronic_properties.py +0 -0
  60. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/fukui.py +0 -0
  61. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
  62. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/irc.py +0 -0
  63. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/macropka.py +0 -0
  64. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/molecular_dynamics.py +0 -0
  65. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/multistage_opt.py +0 -0
  66. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/pka.py +0 -0
  67. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/pose_analysis_md.py +0 -0
  68. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/protein_cofolding.py +0 -0
  69. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/redox_potential.py +0 -0
  70. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/scan.py +0 -0
  71. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/spin_states.py +0 -0
  72. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/tautomer.py +0 -0
  73. {stjames-0.0.103 → stjames-0.0.105}/stjames/workflows/workflow.py +0 -0
  74. {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/SOURCES.txt +0 -0
  75. {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/dependency_links.txt +0 -0
  76. {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/requires.txt +0 -0
  77. {stjames-0.0.103 → stjames-0.0.105}/stjames.egg-info/top_level.txt +0 -0
  78. {stjames-0.0.103 → stjames-0.0.105}/tests/test_constraints.py +0 -0
  79. {stjames-0.0.103 → stjames-0.0.105}/tests/test_from_extxyz.py +0 -0
  80. {stjames-0.0.103 → stjames-0.0.105}/tests/test_molecule.py +0 -0
  81. {stjames-0.0.103 → stjames-0.0.105}/tests/test_pdb.py +0 -0
  82. {stjames-0.0.103 → stjames-0.0.105}/tests/test_rounding.py +0 -0
  83. {stjames-0.0.103 → stjames-0.0.105}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.103
3
+ Version: 0.0.105
4
4
  Summary: standardized JSON atom/molecule encoding scheme
5
5
  Author-email: Corin Wagen <corin@rowansci.com>
6
6
  Project-URL: Homepage, https://github.com/rowansci/stjames
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "stjames"
3
- version = "0.0.103"
3
+ version = "0.0.105"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -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 ConformerGenSettings, iMTDSettings
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: ConformerGenSettings | None = iMTDSettings(mode="careful")
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.103
3
+ Version: 0.0.105
4
4
  Summary: standardized JSON atom/molecule encoding scheme
5
5
  Author-email: Corin Wagen <corin@rowansci.com>
6
6
  Project-URL: Homepage, https://github.com/rowansci/stjames
@@ -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