stjames 0.0.94__tar.gz → 0.0.95__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 (80) hide show
  1. {stjames-0.0.94/stjames.egg-info → stjames-0.0.95}/PKG-INFO +1 -1
  2. {stjames-0.0.94 → stjames-0.0.95}/pyproject.toml +1 -1
  3. stjames-0.0.95/stjames/scf_settings.py +19 -0
  4. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/__init__.py +3 -0
  5. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/ion_mobility.py +11 -6
  6. stjames-0.0.95/stjames/workflows/nmr.py +54 -0
  7. {stjames-0.0.94 → stjames-0.0.95/stjames.egg-info}/PKG-INFO +1 -1
  8. {stjames-0.0.94 → stjames-0.0.95}/stjames.egg-info/SOURCES.txt +1 -0
  9. stjames-0.0.94/stjames/scf_settings.py +0 -7
  10. {stjames-0.0.94 → stjames-0.0.95}/LICENSE +0 -0
  11. {stjames-0.0.94 → stjames-0.0.95}/README.md +0 -0
  12. {stjames-0.0.94 → stjames-0.0.95}/setup.cfg +0 -0
  13. {stjames-0.0.94 → stjames-0.0.95}/stjames/__init__.py +0 -0
  14. {stjames-0.0.94 → stjames-0.0.95}/stjames/_deprecated_solvent_settings.py +0 -0
  15. {stjames-0.0.94 → stjames-0.0.95}/stjames/atom.py +0 -0
  16. {stjames-0.0.94 → stjames-0.0.95}/stjames/atomium_stjames/__init__.py +0 -0
  17. {stjames-0.0.94 → stjames-0.0.95}/stjames/atomium_stjames/data.py +0 -0
  18. {stjames-0.0.94 → stjames-0.0.95}/stjames/atomium_stjames/mmcif.py +0 -0
  19. {stjames-0.0.94 → stjames-0.0.95}/stjames/atomium_stjames/pdb.py +0 -0
  20. {stjames-0.0.94 → stjames-0.0.95}/stjames/atomium_stjames/utilities.py +0 -0
  21. {stjames-0.0.94 → stjames-0.0.95}/stjames/base.py +0 -0
  22. {stjames-0.0.94 → stjames-0.0.95}/stjames/basis_set.py +0 -0
  23. {stjames-0.0.94 → stjames-0.0.95}/stjames/calculation.py +0 -0
  24. {stjames-0.0.94 → stjames-0.0.95}/stjames/compute_settings.py +0 -0
  25. {stjames-0.0.94 → stjames-0.0.95}/stjames/constraint.py +0 -0
  26. {stjames-0.0.94 → stjames-0.0.95}/stjames/correction.py +0 -0
  27. {stjames-0.0.94 → stjames-0.0.95}/stjames/data/__init__.py +0 -0
  28. {stjames-0.0.94 → stjames-0.0.95}/stjames/data/bragg_radii.json +0 -0
  29. {stjames-0.0.94 → stjames-0.0.95}/stjames/data/elements.py +0 -0
  30. {stjames-0.0.94 → stjames-0.0.95}/stjames/data/isotopes.json +0 -0
  31. {stjames-0.0.94 → stjames-0.0.95}/stjames/data/nist_isotopes.json +0 -0
  32. {stjames-0.0.94 → stjames-0.0.95}/stjames/data/read_nist_isotopes.py +0 -0
  33. {stjames-0.0.94 → stjames-0.0.95}/stjames/data/symbol_element.json +0 -0
  34. {stjames-0.0.94 → stjames-0.0.95}/stjames/engine.py +0 -0
  35. {stjames-0.0.94 → stjames-0.0.95}/stjames/message.py +0 -0
  36. {stjames-0.0.94 → stjames-0.0.95}/stjames/method.py +0 -0
  37. {stjames-0.0.94 → stjames-0.0.95}/stjames/mode.py +0 -0
  38. {stjames-0.0.94 → stjames-0.0.95}/stjames/molecule.py +0 -0
  39. {stjames-0.0.94 → stjames-0.0.95}/stjames/opt_settings.py +0 -0
  40. {stjames-0.0.94 → stjames-0.0.95}/stjames/pdb.py +0 -0
  41. {stjames-0.0.94 → stjames-0.0.95}/stjames/periodic_cell.py +0 -0
  42. {stjames-0.0.94 → stjames-0.0.95}/stjames/py.typed +0 -0
  43. {stjames-0.0.94 → stjames-0.0.95}/stjames/settings.py +0 -0
  44. {stjames-0.0.94 → stjames-0.0.95}/stjames/solvent.py +0 -0
  45. {stjames-0.0.94 → stjames-0.0.95}/stjames/status.py +0 -0
  46. {stjames-0.0.94 → stjames-0.0.95}/stjames/task.py +0 -0
  47. {stjames-0.0.94 → stjames-0.0.95}/stjames/thermochem_settings.py +0 -0
  48. {stjames-0.0.94 → stjames-0.0.95}/stjames/types.py +0 -0
  49. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/admet.py +0 -0
  50. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/basic_calculation.py +0 -0
  51. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/bde.py +0 -0
  52. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/conformer.py +0 -0
  53. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/conformer_search.py +0 -0
  54. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/descriptors.py +0 -0
  55. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/docking.py +0 -0
  56. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/electronic_properties.py +0 -0
  57. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/fukui.py +0 -0
  58. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
  59. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/irc.py +0 -0
  60. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/macropka.py +0 -0
  61. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/molecular_dynamics.py +0 -0
  62. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/multistage_opt.py +0 -0
  63. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/pka.py +0 -0
  64. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/pose_analysis_md.py +0 -0
  65. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/protein_cofolding.py +0 -0
  66. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/redox_potential.py +0 -0
  67. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/scan.py +0 -0
  68. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/solubility.py +0 -0
  69. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/spin_states.py +0 -0
  70. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/tautomer.py +0 -0
  71. {stjames-0.0.94 → stjames-0.0.95}/stjames/workflows/workflow.py +0 -0
  72. {stjames-0.0.94 → stjames-0.0.95}/stjames.egg-info/dependency_links.txt +0 -0
  73. {stjames-0.0.94 → stjames-0.0.95}/stjames.egg-info/requires.txt +0 -0
  74. {stjames-0.0.94 → stjames-0.0.95}/stjames.egg-info/top_level.txt +0 -0
  75. {stjames-0.0.94 → stjames-0.0.95}/tests/test_constraints.py +0 -0
  76. {stjames-0.0.94 → stjames-0.0.95}/tests/test_from_extxyz.py +0 -0
  77. {stjames-0.0.94 → stjames-0.0.95}/tests/test_molecule.py +0 -0
  78. {stjames-0.0.94 → stjames-0.0.95}/tests/test_pdb.py +0 -0
  79. {stjames-0.0.94 → stjames-0.0.95}/tests/test_rounding.py +0 -0
  80. {stjames-0.0.94 → stjames-0.0.95}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.94
3
+ Version: 0.0.95
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.94"
3
+ version = "0.0.95"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -0,0 +1,19 @@
1
+ from .base import Base, LowercaseStrEnum
2
+
3
+
4
+ class UseSOSCF(LowercaseStrEnum):
5
+ ALWAYS = "always"
6
+ UPON_FAILURE = "upon_failure"
7
+ NEVER = "never"
8
+
9
+
10
+ class SCFSettings(Base):
11
+ """
12
+ Settings for SCF convergence.
13
+
14
+ :param max_iters: the maximum number of SCF iterations to permit
15
+ :param soscf: whether or not to use SOSCF (second-order SCF).
16
+ """
17
+
18
+ max_iters: int = 250
19
+ soscf: UseSOSCF = UseSOSCF.UPON_FAILURE
@@ -17,6 +17,7 @@ from .irc import *
17
17
  from .macropka import *
18
18
  from .molecular_dynamics import *
19
19
  from .multistage_opt import *
20
+ from .nmr import *
20
21
  from .pka import *
21
22
  from .pose_analysis_md import *
22
23
  from .protein_cofolding import *
@@ -43,6 +44,7 @@ WORKFLOW_NAME = Literal[
43
44
  "macropka",
44
45
  "molecular_dynamics",
45
46
  "multistage_opt",
47
+ "nmr",
46
48
  "pka",
47
49
  "pose_analysis_md",
48
50
  "protein_cofolding",
@@ -69,6 +71,7 @@ WORKFLOW_MAPPING: dict[WORKFLOW_NAME, Workflow] = {
69
71
  "macropka": MacropKaWorkflow, # type: ignore [dict-item]
70
72
  "molecular_dynamics": MolecularDynamicsWorkflow, # type: ignore [dict-item]
71
73
  "multistage_opt": MultiStageOptWorkflow, # type: ignore [dict-item]
74
+ "nmr": NMRSpectroscopyWorkflow, # type: ignore [dict-item]
72
75
  "pka": pKaWorkflow, # type: ignore [dict-item]
73
76
  "pose_analysis_md": PoseAnalysisMolecularDynamicsWorkflow, # type: ignore [dict-item]
74
77
  "protein_cofolding": ProteinCofoldingWorkflow, # type: ignore [dict-item]
@@ -1,6 +1,11 @@
1
1
  """Ion mobility workflow."""
2
2
 
3
- from ..types import UUID
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
4
9
  from .workflow import MoleculeWorkflow
5
10
 
6
11
 
@@ -34,9 +39,9 @@ class IonMobilityWorkflow(MoleculeWorkflow):
34
39
 
35
40
  conformers: list[UUID] = []
36
41
 
37
- conformer_ccs: list[float] = []
38
- conformer_ccs_stdev: list[float] = []
39
- boltzmann_weights: list[float] = []
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))] = []
40
45
 
41
- average_ccs: float | None = None
42
- average_ccs_stdev: float | None = None
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
@@ -0,0 +1,54 @@
1
+ """Nuclear-magnetic-resonance spectroscopy workflow."""
2
+
3
+ from typing import Annotated
4
+
5
+ from pydantic import AfterValidator
6
+
7
+ from ..base import LowercaseStrEnum
8
+ from ..mode import Mode
9
+ from ..settings import Settings
10
+ from ..solvent import Solvent
11
+ from ..types import UUID, round_list
12
+ from .conformer_search import ConformerGenSettings, iMTDSettings
13
+ from .multistage_opt import MultiStageOptSettings
14
+ from .workflow import MoleculeWorkflow
15
+
16
+
17
+ class NMRMethod(LowercaseStrEnum):
18
+ MAGNETZERO = "magnet-zero"
19
+
20
+
21
+ class NMRSpectroscopyWorkflow(MoleculeWorkflow):
22
+ """
23
+ Workflow for calculating NMR spectra.
24
+
25
+ Inherited:
26
+ :param initial_molecule: Molecule of interest
27
+ :param mode: Mode for workflow (currently unused)
28
+
29
+ New:
30
+ :param nmr_method: how to run the NMR calculations
31
+ :param solvent: the solvent in which to run the calculations
32
+ :param conf_gen_settings : the conformer-search settings. if `None`, no conformer search will be performed
33
+ :param multistage_opt_settings: the optimization settings. if `None`, no optimization will be performed
34
+
35
+ Results:
36
+ :param conformers: list of conformer UUIDs
37
+ :param boltzmann_weights: the boltzmann weights for each conformer
38
+ :param per_conformer_isotopic_shieldings: the per-atom shieldings for each conformer
39
+ :param isotopic_shieldings: the per-atom shieldings
40
+ """
41
+
42
+ nmr_method: NMRMethod = NMRMethod.MAGNETZERO
43
+ solvent: Solvent = Solvent.CHLOROFORM
44
+
45
+ conf_gen_settings: ConformerGenSettings | None = iMTDSettings(mode="careful")
46
+ multistage_opt_settings: MultiStageOptSettings | None = MultiStageOptSettings(
47
+ mode=Mode.MANUAL,
48
+ optimization_settings=[Settings(method="aimnet2_wb97md3")],
49
+ )
50
+
51
+ conformers: list[UUID] = []
52
+ boltzmann_weights: Annotated[list[float], AfterValidator(round_list(3))] = []
53
+ per_conformer_isotropic_shieldings: list[Annotated[list[float], AfterValidator(round_list(3))]] = []
54
+ isotropic_shieldings: Annotated[list[float], AfterValidator(round_list(3))] = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.94
3
+ Version: 0.0.95
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
@@ -59,6 +59,7 @@ stjames/workflows/irc.py
59
59
  stjames/workflows/macropka.py
60
60
  stjames/workflows/molecular_dynamics.py
61
61
  stjames/workflows/multistage_opt.py
62
+ stjames/workflows/nmr.py
62
63
  stjames/workflows/pka.py
63
64
  stjames/workflows/pose_analysis_md.py
64
65
  stjames/workflows/protein_cofolding.py
@@ -1,7 +0,0 @@
1
- from pydantic import BaseModel
2
-
3
-
4
- class SCFSettings(BaseModel):
5
- max_iters: int = 250
6
-
7
- soscf: bool = False
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