stjames 0.0.112__tar.gz → 0.0.115__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.112/stjames.egg-info → stjames-0.0.115}/PKG-INFO +1 -1
  2. {stjames-0.0.112 → stjames-0.0.115}/pyproject.toml +1 -1
  3. {stjames-0.0.112 → stjames-0.0.115}/stjames/method.py +21 -8
  4. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/pka.py +4 -4
  5. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/pose_analysis_md.py +5 -3
  6. {stjames-0.0.112 → stjames-0.0.115/stjames.egg-info}/PKG-INFO +1 -1
  7. {stjames-0.0.112 → stjames-0.0.115}/LICENSE +0 -0
  8. {stjames-0.0.112 → stjames-0.0.115}/README.md +0 -0
  9. {stjames-0.0.112 → stjames-0.0.115}/setup.cfg +0 -0
  10. {stjames-0.0.112 → stjames-0.0.115}/stjames/__init__.py +0 -0
  11. {stjames-0.0.112 → stjames-0.0.115}/stjames/_deprecated_solvent_settings.py +0 -0
  12. {stjames-0.0.112 → stjames-0.0.115}/stjames/atom.py +0 -0
  13. {stjames-0.0.112 → stjames-0.0.115}/stjames/atomium_stjames/__init__.py +0 -0
  14. {stjames-0.0.112 → stjames-0.0.115}/stjames/atomium_stjames/data.py +0 -0
  15. {stjames-0.0.112 → stjames-0.0.115}/stjames/atomium_stjames/mmcif.py +0 -0
  16. {stjames-0.0.112 → stjames-0.0.115}/stjames/atomium_stjames/pdb.py +0 -0
  17. {stjames-0.0.112 → stjames-0.0.115}/stjames/atomium_stjames/utilities.py +0 -0
  18. {stjames-0.0.112 → stjames-0.0.115}/stjames/base.py +0 -0
  19. {stjames-0.0.112 → stjames-0.0.115}/stjames/basis_set.py +0 -0
  20. {stjames-0.0.112 → stjames-0.0.115}/stjames/calculation.py +0 -0
  21. {stjames-0.0.112 → stjames-0.0.115}/stjames/compute_settings.py +0 -0
  22. {stjames-0.0.112 → stjames-0.0.115}/stjames/constraint.py +0 -0
  23. {stjames-0.0.112 → stjames-0.0.115}/stjames/correction.py +0 -0
  24. {stjames-0.0.112 → stjames-0.0.115}/stjames/data/__init__.py +0 -0
  25. {stjames-0.0.112 → stjames-0.0.115}/stjames/data/bragg_radii.json +0 -0
  26. {stjames-0.0.112 → stjames-0.0.115}/stjames/data/elements.py +0 -0
  27. {stjames-0.0.112 → stjames-0.0.115}/stjames/data/isotopes.json +0 -0
  28. {stjames-0.0.112 → stjames-0.0.115}/stjames/data/nist_isotopes.json +0 -0
  29. {stjames-0.0.112 → stjames-0.0.115}/stjames/data/read_nist_isotopes.py +0 -0
  30. {stjames-0.0.112 → stjames-0.0.115}/stjames/data/symbol_element.json +0 -0
  31. {stjames-0.0.112 → stjames-0.0.115}/stjames/engine.py +0 -0
  32. {stjames-0.0.112 → stjames-0.0.115}/stjames/message.py +0 -0
  33. {stjames-0.0.112 → stjames-0.0.115}/stjames/mode.py +0 -0
  34. {stjames-0.0.112 → stjames-0.0.115}/stjames/molecule.py +0 -0
  35. {stjames-0.0.112 → stjames-0.0.115}/stjames/opt_settings.py +0 -0
  36. {stjames-0.0.112 → stjames-0.0.115}/stjames/optimization/__init__.py +0 -0
  37. {stjames-0.0.112 → stjames-0.0.115}/stjames/optimization/freezing_string_method.py +0 -0
  38. {stjames-0.0.112 → stjames-0.0.115}/stjames/pdb.py +0 -0
  39. {stjames-0.0.112 → stjames-0.0.115}/stjames/periodic_cell.py +0 -0
  40. {stjames-0.0.112 → stjames-0.0.115}/stjames/py.typed +0 -0
  41. {stjames-0.0.112 → stjames-0.0.115}/stjames/scf_settings.py +0 -0
  42. {stjames-0.0.112 → stjames-0.0.115}/stjames/settings.py +0 -0
  43. {stjames-0.0.112 → stjames-0.0.115}/stjames/solvent.py +0 -0
  44. {stjames-0.0.112 → stjames-0.0.115}/stjames/status.py +0 -0
  45. {stjames-0.0.112 → stjames-0.0.115}/stjames/task.py +0 -0
  46. {stjames-0.0.112 → stjames-0.0.115}/stjames/thermochem_settings.py +0 -0
  47. {stjames-0.0.112 → stjames-0.0.115}/stjames/types.py +0 -0
  48. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/__init__.py +0 -0
  49. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/admet.py +0 -0
  50. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/basic_calculation.py +0 -0
  51. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/bde.py +0 -0
  52. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/conformer.py +0 -0
  53. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/conformer_search.py +0 -0
  54. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/descriptors.py +0 -0
  55. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/docking.py +0 -0
  56. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/double_ended_ts_search.py +0 -0
  57. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/electronic_properties.py +0 -0
  58. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/fukui.py +0 -0
  59. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
  60. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/ion_mobility.py +0 -0
  61. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/irc.py +0 -0
  62. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/macropka.py +0 -0
  63. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/molecular_dynamics.py +0 -0
  64. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/multistage_opt.py +0 -0
  65. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/nmr.py +0 -0
  66. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/protein_cofolding.py +0 -0
  67. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/redox_potential.py +0 -0
  68. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/scan.py +0 -0
  69. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/solubility.py +0 -0
  70. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/spin_states.py +0 -0
  71. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/strain.py +0 -0
  72. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/tautomer.py +0 -0
  73. {stjames-0.0.112 → stjames-0.0.115}/stjames/workflows/workflow.py +0 -0
  74. {stjames-0.0.112 → stjames-0.0.115}/stjames.egg-info/SOURCES.txt +0 -0
  75. {stjames-0.0.112 → stjames-0.0.115}/stjames.egg-info/dependency_links.txt +0 -0
  76. {stjames-0.0.112 → stjames-0.0.115}/stjames.egg-info/requires.txt +0 -0
  77. {stjames-0.0.112 → stjames-0.0.115}/stjames.egg-info/top_level.txt +0 -0
  78. {stjames-0.0.112 → stjames-0.0.115}/tests/test_constraints.py +0 -0
  79. {stjames-0.0.112 → stjames-0.0.115}/tests/test_from_extxyz.py +0 -0
  80. {stjames-0.0.112 → stjames-0.0.115}/tests/test_molecule.py +0 -0
  81. {stjames-0.0.112 → stjames-0.0.115}/tests/test_pdb.py +0 -0
  82. {stjames-0.0.112 → stjames-0.0.115}/tests/test_rounding.py +0 -0
  83. {stjames-0.0.112 → stjames-0.0.115}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.112
3
+ Version: 0.0.115
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.112"
3
+ version = "0.0.115"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -8,7 +8,10 @@ class Method(LowercaseStrEnum):
8
8
  HARTREE_FOCK = "hf"
9
9
  HF3C = "hf_3c"
10
10
 
11
+ # DFT methods
12
+ ## Pure functionals
11
13
  PBE = "pbe"
14
+ BP86 = "bp86"
12
15
  B973C = "b97_3c"
13
16
  B97D3BJ = "b97_d3bj"
14
17
  R2SCAN = "r2scan"
@@ -16,45 +19,53 @@ class Method(LowercaseStrEnum):
16
19
  TPSS = "tpss"
17
20
  M06L = "m06l"
18
21
 
22
+ ## Hybrid functionals
19
23
  PBE0 = "pbe0"
20
24
  B3LYP = "b3lyp"
21
25
  TPSSH = "tpssh"
22
26
  M06 = "m06"
23
27
  M062X = "m062x"
24
28
 
29
+ ## Range-separated hybrid functionals
25
30
  CAMB3LYP = "camb3lyp"
26
31
  WB97XD3 = "wb97x_d3"
27
32
  WB97XV = "wb97x_v"
33
+ WB97X3C = "wb97x_3c"
28
34
  WB97MV = "wb97m_v"
29
35
  WB97MD3BJ = "wb97m_d3bj"
30
- WB97X3C = "wb97x_3c"
31
36
 
37
+ ## Double hybrid functionals
32
38
  DSDBLYPD3BJ = "dsd_blyp_d3bj"
33
39
 
40
+ ## ML functionals
41
+ SKALA = "skala"
42
+
43
+ # NNPs
34
44
  AIMNET2_WB97MD3 = "aimnet2_wb97md3"
45
+
35
46
  MACE_MP_0 = "mace_mp_0"
36
47
  MACE_MP_0B2_L = "mace_mp_0b2_l"
48
+
37
49
  OMOL25_CONSERVING_S = "omol25_conserving_s"
38
50
  UMA_M_OMOL = "uma_m_omol"
39
51
  UMA_S_OMOL = "uma_s_omol"
40
52
  ORB_V3_CONSERVATIVE_INF_OMAT = "orb_v3_conservative_inf_omat"
41
53
  ORB_V3_CONSERVATIVE_OMOL = "orb_v3_conservative_omol"
42
54
 
55
+ EGRET_1 = "egret_1"
56
+ EGRET_1E = "egret_1e"
57
+ EGRET_1T = "egret_1t"
58
+
59
+ # Semiempirical methods
43
60
  GFN_FF = "gfn_ff"
44
61
  GFN0_XTB = "gfn0_xtb"
45
62
  GFN1_XTB = "gfn1_xtb"
46
63
  GFN2_XTB = "gfn2_xtb"
47
64
  G_XTB = "g_xtb"
48
65
 
49
- # this was going to be removed, but Jonathon wrote such a nice basis set test... it's off the front end.
50
- BP86 = "bp86"
51
-
66
+ # Force fields
52
67
  OFF_SAGE_2_2_1 = "off_sage_2_2_1"
53
68
 
54
- EGRET_1 = "egret_1"
55
- EGRET_1E = "egret_1e"
56
- EGRET_1T = "egret_1t"
57
-
58
69
  def default_engine(self, *, is_periodic: bool = False) -> Engine:
59
70
  """
60
71
  Return the canonical Engine for this quantum-chemistry method.
@@ -86,6 +97,8 @@ class Method(LowercaseStrEnum):
86
97
  return Engine.OPENFF
87
98
  case Method.EGRET_1 | Method.EGRET_1E | Method.EGRET_1T:
88
99
  return Engine.EGRET
100
+ case Method.SKALA:
101
+ return Engine.PYSCF
89
102
  case _:
90
103
  # All remaining methods (HF, DFT, composite, etc.) fall back to Psi4
91
104
  return Engine.PSI4
@@ -10,7 +10,7 @@ from ..molecule import Molecule
10
10
  from ..solvent import Solvent
11
11
  from .workflow import DBCalculation, MoleculeWorkflow, SMILESWorkflow
12
12
 
13
- CHEMPROP_NEVOLIANUS2025_ALLOWED_SOLVENTS = {
13
+ CHEMPROP_NEVOLIANIS2025_ALLOWED_SOLVENTS = {
14
14
  Solvent.WATER,
15
15
  Solvent.DIMETHYLSULFOXIDE,
16
16
  Solvent.DIMETHYLFORMAMIDE,
@@ -24,7 +24,7 @@ CHEMPROP_NEVOLIANUS2025_ALLOWED_SOLVENTS = {
24
24
 
25
25
  class MicroscopicpKaMethod(LowercaseStrEnum):
26
26
  AIMNET2_WAGEN2024 = "aimnet2_wagen2024"
27
- CHEMPROP_NEVOLIANUS2025 = "chemprop_nevolianus2025"
27
+ CHEMPROP_NEVOLIANIS2025 = "chemprop_nevolianis2025"
28
28
 
29
29
 
30
30
  class pKaMicrostate(Base):
@@ -102,8 +102,8 @@ class pKaWorkflow(SMILESWorkflow, MoleculeWorkflow):
102
102
  case MicroscopicpKaMethod.AIMNET2_WAGEN2024:
103
103
  if self.solvent is not Solvent.WATER:
104
104
  raise ValueError(f"{self.microscopic_pka_method} only supports water")
105
- case MicroscopicpKaMethod.CHEMPROP_NEVOLIANUS2025:
106
- if self.solvent not in CHEMPROP_NEVOLIANUS2025_ALLOWED_SOLVENTS:
105
+ case MicroscopicpKaMethod.CHEMPROP_NEVOLIANIS2025:
106
+ if self.solvent not in CHEMPROP_NEVOLIANIS2025_ALLOWED_SOLVENTS:
107
107
  raise ValueError(f"Solvent `{self.solvent}` is not supported by method `{self.microscopic_pka_method}`.")
108
108
  if len(self.protonate_atoms) or len(self.deprotonate_atoms):
109
109
  raise ValueError(f"Method `{self.microscopic_pka_method}` does not support selecting atoms by number.")
@@ -5,7 +5,7 @@ from pydantic import AfterValidator, PositiveFloat, PositiveInt, model_validator
5
5
  from ..base import Base, round_float
6
6
  from ..pdb import PDB
7
7
  from ..types import UUID, round_list
8
- from .workflow import MoleculeWorkflow
8
+ from .workflow import SMILESWorkflow
9
9
 
10
10
 
11
11
  class BindingPoseContact(Base):
@@ -36,7 +36,7 @@ class BindingPoseTrajectory(Base):
36
36
  contacts: list[BindingPoseContact] = []
37
37
 
38
38
 
39
- class PoseAnalysisMolecularDynamicsWorkflow(MoleculeWorkflow):
39
+ class PoseAnalysisMolecularDynamicsWorkflow(SMILESWorkflow):
40
40
  """
41
41
  Pose analysis molecular dynamics workflow.
42
42
 
@@ -45,12 +45,13 @@ class PoseAnalysisMolecularDynamicsWorkflow(MoleculeWorkflow):
45
45
  If, for whatever reason, the workflow is initialized with both a `target_uuid` and a `target`, the UUID will be ignored.
46
46
 
47
47
  Inherited:
48
- :param initial_molecule: Molecule of interest
48
+ :param initial_smiles: ligand's SMILES
49
49
  :param mode: Mode for workflow (currently unused)
50
50
 
51
51
  New:
52
52
  :param protein: PDB of the protein.
53
53
  :param protein_uuid: UUID of the protein.
54
+ :param ligand_residue_name: ligand's residue name
54
55
  :param num_trajectories: how many trajectories to run
55
56
  :param equilibration_time_ns: how long to equilibrate trajectories for, in nanoseconds
56
57
  :param simulation_time_ns: how long to run trajectories for, in nanoseconds
@@ -73,6 +74,7 @@ class PoseAnalysisMolecularDynamicsWorkflow(MoleculeWorkflow):
73
74
 
74
75
  protein: PDB | None = None
75
76
  protein_uuid: UUID | None = None
77
+ ligand_residue_name: str = "LIG"
76
78
 
77
79
  num_trajectories: PositiveInt = 4
78
80
  equilibration_time_ns: Annotated[PositiveFloat, AfterValidator(round_float(3))] = 5
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.112
3
+ Version: 0.0.115
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