stjames 0.0.68__tar.gz → 0.0.69__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 (78) hide show
  1. {stjames-0.0.68/stjames.egg-info → stjames-0.0.69}/PKG-INFO +1 -1
  2. {stjames-0.0.68 → stjames-0.0.69}/pyproject.toml +1 -1
  3. {stjames-0.0.68 → stjames-0.0.69}/stjames/method.py +3 -2
  4. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/__init__.py +3 -0
  5. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/fukui.py +13 -1
  6. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/macropka.py +27 -4
  7. {stjames-0.0.68 → stjames-0.0.69/stjames.egg-info}/PKG-INFO +1 -1
  8. {stjames-0.0.68 → stjames-0.0.69}/LICENSE +0 -0
  9. {stjames-0.0.68 → stjames-0.0.69}/README.md +0 -0
  10. {stjames-0.0.68 → stjames-0.0.69}/setup.cfg +0 -0
  11. {stjames-0.0.68 → stjames-0.0.69}/stjames/__init__.py +0 -0
  12. {stjames-0.0.68 → stjames-0.0.69}/stjames/_deprecated_solvent_settings.py +0 -0
  13. {stjames-0.0.68 → stjames-0.0.69}/stjames/atom.py +0 -0
  14. {stjames-0.0.68 → stjames-0.0.69}/stjames/atomium_stjames/__init__.py +0 -0
  15. {stjames-0.0.68 → stjames-0.0.69}/stjames/atomium_stjames/data.py +0 -0
  16. {stjames-0.0.68 → stjames-0.0.69}/stjames/atomium_stjames/mmcif.py +0 -0
  17. {stjames-0.0.68 → stjames-0.0.69}/stjames/atomium_stjames/pdb.py +0 -0
  18. {stjames-0.0.68 → stjames-0.0.69}/stjames/atomium_stjames/utilities.py +0 -0
  19. {stjames-0.0.68 → stjames-0.0.69}/stjames/base.py +0 -0
  20. {stjames-0.0.68 → stjames-0.0.69}/stjames/basis_set.py +0 -0
  21. {stjames-0.0.68 → stjames-0.0.69}/stjames/calculation.py +0 -0
  22. {stjames-0.0.68 → stjames-0.0.69}/stjames/compute_settings.py +0 -0
  23. {stjames-0.0.68 → stjames-0.0.69}/stjames/constraint.py +0 -0
  24. {stjames-0.0.68 → stjames-0.0.69}/stjames/correction.py +0 -0
  25. {stjames-0.0.68 → stjames-0.0.69}/stjames/data/__init__.py +0 -0
  26. {stjames-0.0.68 → stjames-0.0.69}/stjames/data/bragg_radii.json +0 -0
  27. {stjames-0.0.68 → stjames-0.0.69}/stjames/data/elements.py +0 -0
  28. {stjames-0.0.68 → stjames-0.0.69}/stjames/data/isotopes.json +0 -0
  29. {stjames-0.0.68 → stjames-0.0.69}/stjames/data/nist_isotopes.json +0 -0
  30. {stjames-0.0.68 → stjames-0.0.69}/stjames/data/read_nist_isotopes.py +0 -0
  31. {stjames-0.0.68 → stjames-0.0.69}/stjames/data/symbol_element.json +0 -0
  32. {stjames-0.0.68 → stjames-0.0.69}/stjames/diis_settings.py +0 -0
  33. {stjames-0.0.68 → stjames-0.0.69}/stjames/grid_settings.py +0 -0
  34. {stjames-0.0.68 → stjames-0.0.69}/stjames/int_settings.py +0 -0
  35. {stjames-0.0.68 → stjames-0.0.69}/stjames/message.py +0 -0
  36. {stjames-0.0.68 → stjames-0.0.69}/stjames/mode.py +0 -0
  37. {stjames-0.0.68 → stjames-0.0.69}/stjames/molecule.py +0 -0
  38. {stjames-0.0.68 → stjames-0.0.69}/stjames/opt_settings.py +0 -0
  39. {stjames-0.0.68 → stjames-0.0.69}/stjames/pdb.py +0 -0
  40. {stjames-0.0.68 → stjames-0.0.69}/stjames/periodic_cell.py +0 -0
  41. {stjames-0.0.68 → stjames-0.0.69}/stjames/py.typed +0 -0
  42. {stjames-0.0.68 → stjames-0.0.69}/stjames/scf_settings.py +0 -0
  43. {stjames-0.0.68 → stjames-0.0.69}/stjames/settings.py +0 -0
  44. {stjames-0.0.68 → stjames-0.0.69}/stjames/solvent.py +0 -0
  45. {stjames-0.0.68 → stjames-0.0.69}/stjames/status.py +0 -0
  46. {stjames-0.0.68 → stjames-0.0.69}/stjames/task.py +0 -0
  47. {stjames-0.0.68 → stjames-0.0.69}/stjames/thermochem_settings.py +0 -0
  48. {stjames-0.0.68 → stjames-0.0.69}/stjames/types.py +0 -0
  49. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/admet.py +0 -0
  50. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/basic_calculation.py +0 -0
  51. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/bde.py +0 -0
  52. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/conformer.py +0 -0
  53. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/conformer_search.py +0 -0
  54. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/descriptors.py +0 -0
  55. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/docking.py +0 -0
  56. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/electronic_properties.py +0 -0
  57. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
  58. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/ion_mobility.py +0 -0
  59. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/irc.py +0 -0
  60. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/molecular_dynamics.py +0 -0
  61. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/multistage_opt.py +0 -0
  62. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/pka.py +0 -0
  63. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/redox_potential.py +0 -0
  64. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/scan.py +0 -0
  65. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/solubility.py +0 -0
  66. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/spin_states.py +0 -0
  67. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/tautomer.py +0 -0
  68. {stjames-0.0.68 → stjames-0.0.69}/stjames/workflows/workflow.py +0 -0
  69. {stjames-0.0.68 → stjames-0.0.69}/stjames.egg-info/SOURCES.txt +0 -0
  70. {stjames-0.0.68 → stjames-0.0.69}/stjames.egg-info/dependency_links.txt +0 -0
  71. {stjames-0.0.68 → stjames-0.0.69}/stjames.egg-info/requires.txt +0 -0
  72. {stjames-0.0.68 → stjames-0.0.69}/stjames.egg-info/top_level.txt +0 -0
  73. {stjames-0.0.68 → stjames-0.0.69}/tests/test_constraints.py +0 -0
  74. {stjames-0.0.68 → stjames-0.0.69}/tests/test_from_extxyz.py +0 -0
  75. {stjames-0.0.68 → stjames-0.0.69}/tests/test_molecule.py +0 -0
  76. {stjames-0.0.68 → stjames-0.0.69}/tests/test_pdb.py +0 -0
  77. {stjames-0.0.68 → stjames-0.0.69}/tests/test_rounding.py +0 -0
  78. {stjames-0.0.68 → stjames-0.0.69}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.68
3
+ Version: 0.0.69
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.68"
3
+ version = "0.0.69"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -36,6 +36,7 @@ class Method(LowercaseStrEnum):
36
36
  OCP24_S = "ocp24_s"
37
37
  OCP24_L = "ocp24_l"
38
38
  ORB_V2 = "orb_v2"
39
+ ORB_V3_CONSERVATIVE_INF_OMAT = "orb_v3_conservative_inf_omat"
39
40
 
40
41
  GFN_FF = "gfn_ff"
41
42
  GFN0_XTB = "gfn0_xtb"
@@ -50,8 +51,8 @@ class Method(LowercaseStrEnum):
50
51
  RM1 = "rm1"
51
52
 
52
53
 
53
- PrepackagedNNPMethod = Literal[Method.AIMNET2_WB97MD3, Method.OCP24_S, Method.OCP24_L, Method.RM1]
54
- PREPACKAGED_NNP_METHODS = [Method.AIMNET2_WB97MD3, Method.OCP24_S, Method.OCP24_L, Method.RM1]
54
+ PrepackagedNNPMethod = Literal[Method.AIMNET2_WB97MD3, Method.OCP24_S, Method.OCP24_L, Method.RM1, Method.ORB_V3_CONSERVATIVE_INF_OMAT]
55
+ PREPACKAGED_NNP_METHODS = [Method.AIMNET2_WB97MD3, Method.OCP24_S, Method.OCP24_L, Method.RM1, Method.ORB_V3_CONSERVATIVE_INF_OMAT]
55
56
 
56
57
  CorrectableNNPMethod = Literal[Method.MACE_MP_0B2_L, Method.ORB_V2]
57
58
  CORRECTABLE_NNP_METHODS = [Method.MACE_MP_0B2_L, Method.ORB_V2]
@@ -14,6 +14,7 @@ from .fukui import *
14
14
  from .hydrogen_bond_basicity import *
15
15
  from .ion_mobility import *
16
16
  from .irc import *
17
+ from .macropka import *
17
18
  from .molecular_dynamics import *
18
19
  from .multistage_opt import *
19
20
  from .pka import *
@@ -37,6 +38,7 @@ WORKFLOW_NAME = Literal[
37
38
  "hydrogen_bond_basicity",
38
39
  "ion_mobility",
39
40
  "irc",
41
+ "macropka",
40
42
  "molecular_dynamics",
41
43
  "multistage_opt",
42
44
  "pka",
@@ -60,6 +62,7 @@ WORKFLOW_MAPPING: dict[WORKFLOW_NAME, Workflow] = {
60
62
  "hydrogen_bond_basicity": HydrogenBondBasicityWorkflow, # type: ignore [dict-item]
61
63
  "ion_mobility": IonMobilityWorkflow, # type: ignore [dict-item]
62
64
  "irc": IRCWorkflow, # type: ignore [dict-item]
65
+ "macropka": MacropKaWorkflow, # type: ignore [dict-item]
63
66
  "molecular_dynamics": MolecularDynamicsWorkflow, # type: ignore [dict-item]
64
67
  "multistage_opt": MultiStageOptWorkflow, # type: ignore [dict-item]
65
68
  "pka": pKaWorkflow, # type: ignore [dict-item]
@@ -5,6 +5,7 @@ from typing import Annotated
5
5
  from pydantic import AfterValidator
6
6
 
7
7
  from ..base import round_optional_float
8
+ from ..settings import Settings
8
9
  from ..types import UUID, FloatPerAtom, round_optional_float_per_atom
9
10
  from .workflow import MoleculeWorkflow
10
11
 
@@ -17,6 +18,12 @@ class FukuiIndexWorkflow(MoleculeWorkflow):
17
18
  :param initial_molecule: Molecule of interest
18
19
  :param mode: Mode for workflow (currently unused)
19
20
 
21
+ Settings:
22
+ :param opt_settings: if given, the settings for optimization. if none, no optimization will be conducted.
23
+ :param opt_engine: the engine for optimization
24
+ :param fukui_settings: the settings for Fukui index calculations.
25
+ :param fukui_engine: the engine for Fukui index calculations
26
+
20
27
  Results:
21
28
  :param optimization: UUID of optimization
22
29
  :param global_electrophilicity_index: global electrophilicity index
@@ -25,7 +32,12 @@ class FukuiIndexWorkflow(MoleculeWorkflow):
25
32
  :param fukui_zero: Fukui index for zero charges
26
33
  """
27
34
 
28
- # UUID of optimization
35
+ opt_settings: Settings | None = None
36
+ opt_engine: str | None = None
37
+
38
+ fukui_settings: Settings = Settings(method="gfn1_xtb")
39
+ fukui_engine: str | None = None
40
+
29
41
  optimization: UUID | None = None
30
42
 
31
43
  global_electrophilicity_index: Annotated[float | None, AfterValidator(round_optional_float(6))] = None
@@ -1,6 +1,6 @@
1
1
  """pKa workflow."""
2
2
 
3
- from typing import Annotated, Self
3
+ from typing import Annotated, Optional, Self
4
4
 
5
5
  from pydantic import AfterValidator, model_validator
6
6
 
@@ -55,18 +55,41 @@ class MacropKaWorkflow(SMILESWorkflow):
55
55
  :param microstate_weights_by_pH: precompute the % of different microstates
56
56
  """
57
57
 
58
- temperature: Annotated[float, AfterValidator(round_float(3))] = 298.0
59
58
  min_pH: Annotated[float, AfterValidator(round_float(3))] = 0.0
60
59
  max_pH: Annotated[float, AfterValidator(round_float(3))] = 14.0
61
60
 
61
+ max_charge: int = 2
62
+ min_charge: int = -2
63
+
62
64
  microstates: list[MacropKaMicrostate] = []
63
65
  pKa_values: list[MacropKaValue] = []
64
- microstate_weights_by_pH: dict[float, Annotated[list[float], AfterValidator(round_list(6))]] = {}
66
+ microstate_weights_by_pH: list[
67
+ tuple[
68
+ Annotated[float, AfterValidator(round_float(3))],
69
+ Annotated[list[float], AfterValidator(round_list(6))],
70
+ ]
71
+ ] = []
72
+
73
+ isoelectric_point: Annotated[Optional[float], AfterValidator(round_float(3))] = None
74
+
75
+ logD_by_pH: list[
76
+ tuple[
77
+ Annotated[float, AfterValidator(round_float(3))],
78
+ Annotated[float, AfterValidator(round_float(3))],
79
+ ]
80
+ ] = []
65
81
 
66
82
  @model_validator(mode="after")
67
83
  def check_weights(self) -> Self:
68
- for weights in self.microstate_weights_by_pH.values():
84
+ for _, weights in self.microstate_weights_by_pH:
69
85
  if len(weights) != len(self.microstates):
70
86
  raise ValueError("Length of microstate weights doesn't match!")
71
87
 
72
88
  return self
89
+
90
+ @model_validator(mode="after")
91
+ def check_minmax_charges(self) -> Self:
92
+ if self.min_charge >= self.max_charge:
93
+ raise ValueError("Incoherent min/max charge specification")
94
+
95
+ return self
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.68
3
+ Version: 0.0.69
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
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