stjames 0.0.69__tar.gz → 0.0.71__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 (79) hide show
  1. {stjames-0.0.69/stjames.egg-info → stjames-0.0.71}/PKG-INFO +1 -1
  2. {stjames-0.0.69 → stjames-0.0.71}/pyproject.toml +1 -1
  3. {stjames-0.0.69 → stjames-0.0.71}/stjames/atomium_stjames/mmcif.py +1 -1
  4. {stjames-0.0.69 → stjames-0.0.71}/stjames/opt_settings.py +1 -0
  5. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/__init__.py +3 -0
  6. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/macropka.py +23 -7
  7. stjames-0.0.71/stjames/workflows/protein_cofolding.py +31 -0
  8. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/workflow.py +13 -0
  9. {stjames-0.0.69 → stjames-0.0.71/stjames.egg-info}/PKG-INFO +1 -1
  10. {stjames-0.0.69 → stjames-0.0.71}/stjames.egg-info/SOURCES.txt +1 -0
  11. {stjames-0.0.69 → stjames-0.0.71}/LICENSE +0 -0
  12. {stjames-0.0.69 → stjames-0.0.71}/README.md +0 -0
  13. {stjames-0.0.69 → stjames-0.0.71}/setup.cfg +0 -0
  14. {stjames-0.0.69 → stjames-0.0.71}/stjames/__init__.py +0 -0
  15. {stjames-0.0.69 → stjames-0.0.71}/stjames/_deprecated_solvent_settings.py +0 -0
  16. {stjames-0.0.69 → stjames-0.0.71}/stjames/atom.py +0 -0
  17. {stjames-0.0.69 → stjames-0.0.71}/stjames/atomium_stjames/__init__.py +0 -0
  18. {stjames-0.0.69 → stjames-0.0.71}/stjames/atomium_stjames/data.py +0 -0
  19. {stjames-0.0.69 → stjames-0.0.71}/stjames/atomium_stjames/pdb.py +0 -0
  20. {stjames-0.0.69 → stjames-0.0.71}/stjames/atomium_stjames/utilities.py +0 -0
  21. {stjames-0.0.69 → stjames-0.0.71}/stjames/base.py +0 -0
  22. {stjames-0.0.69 → stjames-0.0.71}/stjames/basis_set.py +0 -0
  23. {stjames-0.0.69 → stjames-0.0.71}/stjames/calculation.py +0 -0
  24. {stjames-0.0.69 → stjames-0.0.71}/stjames/compute_settings.py +0 -0
  25. {stjames-0.0.69 → stjames-0.0.71}/stjames/constraint.py +0 -0
  26. {stjames-0.0.69 → stjames-0.0.71}/stjames/correction.py +0 -0
  27. {stjames-0.0.69 → stjames-0.0.71}/stjames/data/__init__.py +0 -0
  28. {stjames-0.0.69 → stjames-0.0.71}/stjames/data/bragg_radii.json +0 -0
  29. {stjames-0.0.69 → stjames-0.0.71}/stjames/data/elements.py +0 -0
  30. {stjames-0.0.69 → stjames-0.0.71}/stjames/data/isotopes.json +0 -0
  31. {stjames-0.0.69 → stjames-0.0.71}/stjames/data/nist_isotopes.json +0 -0
  32. {stjames-0.0.69 → stjames-0.0.71}/stjames/data/read_nist_isotopes.py +0 -0
  33. {stjames-0.0.69 → stjames-0.0.71}/stjames/data/symbol_element.json +0 -0
  34. {stjames-0.0.69 → stjames-0.0.71}/stjames/diis_settings.py +0 -0
  35. {stjames-0.0.69 → stjames-0.0.71}/stjames/grid_settings.py +0 -0
  36. {stjames-0.0.69 → stjames-0.0.71}/stjames/int_settings.py +0 -0
  37. {stjames-0.0.69 → stjames-0.0.71}/stjames/message.py +0 -0
  38. {stjames-0.0.69 → stjames-0.0.71}/stjames/method.py +0 -0
  39. {stjames-0.0.69 → stjames-0.0.71}/stjames/mode.py +0 -0
  40. {stjames-0.0.69 → stjames-0.0.71}/stjames/molecule.py +0 -0
  41. {stjames-0.0.69 → stjames-0.0.71}/stjames/pdb.py +0 -0
  42. {stjames-0.0.69 → stjames-0.0.71}/stjames/periodic_cell.py +0 -0
  43. {stjames-0.0.69 → stjames-0.0.71}/stjames/py.typed +0 -0
  44. {stjames-0.0.69 → stjames-0.0.71}/stjames/scf_settings.py +0 -0
  45. {stjames-0.0.69 → stjames-0.0.71}/stjames/settings.py +0 -0
  46. {stjames-0.0.69 → stjames-0.0.71}/stjames/solvent.py +0 -0
  47. {stjames-0.0.69 → stjames-0.0.71}/stjames/status.py +0 -0
  48. {stjames-0.0.69 → stjames-0.0.71}/stjames/task.py +0 -0
  49. {stjames-0.0.69 → stjames-0.0.71}/stjames/thermochem_settings.py +0 -0
  50. {stjames-0.0.69 → stjames-0.0.71}/stjames/types.py +0 -0
  51. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/admet.py +0 -0
  52. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/basic_calculation.py +0 -0
  53. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/bde.py +0 -0
  54. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/conformer.py +0 -0
  55. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/conformer_search.py +0 -0
  56. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/descriptors.py +0 -0
  57. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/docking.py +0 -0
  58. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/electronic_properties.py +0 -0
  59. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/fukui.py +0 -0
  60. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
  61. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/ion_mobility.py +0 -0
  62. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/irc.py +0 -0
  63. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/molecular_dynamics.py +0 -0
  64. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/multistage_opt.py +0 -0
  65. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/pka.py +0 -0
  66. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/redox_potential.py +0 -0
  67. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/scan.py +0 -0
  68. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/solubility.py +0 -0
  69. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/spin_states.py +0 -0
  70. {stjames-0.0.69 → stjames-0.0.71}/stjames/workflows/tautomer.py +0 -0
  71. {stjames-0.0.69 → stjames-0.0.71}/stjames.egg-info/dependency_links.txt +0 -0
  72. {stjames-0.0.69 → stjames-0.0.71}/stjames.egg-info/requires.txt +0 -0
  73. {stjames-0.0.69 → stjames-0.0.71}/stjames.egg-info/top_level.txt +0 -0
  74. {stjames-0.0.69 → stjames-0.0.71}/tests/test_constraints.py +0 -0
  75. {stjames-0.0.69 → stjames-0.0.71}/tests/test_from_extxyz.py +0 -0
  76. {stjames-0.0.69 → stjames-0.0.71}/tests/test_molecule.py +0 -0
  77. {stjames-0.0.69 → stjames-0.0.71}/tests/test_pdb.py +0 -0
  78. {stjames-0.0.69 → stjames-0.0.71}/tests/test_rounding.py +0 -0
  79. {stjames-0.0.69 → stjames-0.0.71}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.69
3
+ Version: 0.0.71
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.69"
3
+ version = "0.0.71"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -425,7 +425,7 @@ def update_models_list(mmcif_dict: dict[str, Any], data_dict: dict[str, Any]) ->
425
425
 
426
426
  data_dict["models"] = []
427
427
  types = {e["id"]: e["type"] for e in mmcif_dict.get("entity", {})}
428
- names = {e["id"]: e["name"] for e in mmcif_dict.get("chem_comp", {}) if e["mon_nstd_flag"] != "y"}
428
+ names = {e["id"]: e["name"] for e in mmcif_dict.get("chem_comp", {}) if e.get("mon_nstd_flag", "n") != "y"}
429
429
  entities = {m["id"]: m["entity_id"] for m in mmcif_dict.get("struct_asym", [])}
430
430
 
431
431
  # sequences = make_sequences(mmcif_dict)
@@ -9,6 +9,7 @@ from .constraint import Constraint
9
9
  class OptimizationSettings(Base):
10
10
  max_steps: PositiveInt = 250
11
11
  transition_state: bool = False
12
+ recalc_hess_every: int = 0 # Recalculate the hessian every `n` steps (or never with 0)
12
13
 
13
14
  # when are we converged? (Hartree and Hartree/Å)
14
15
  max_gradient_threshold: PositiveFloat = 7e-4
@@ -18,6 +18,7 @@ from .macropka import *
18
18
  from .molecular_dynamics import *
19
19
  from .multistage_opt import *
20
20
  from .pka import *
21
+ from .protein_cofolding import *
21
22
  from .redox_potential import *
22
23
  from .scan import *
23
24
  from .solubility import *
@@ -42,6 +43,7 @@ WORKFLOW_NAME = Literal[
42
43
  "molecular_dynamics",
43
44
  "multistage_opt",
44
45
  "pka",
46
+ "protein_cofolding",
45
47
  "redox_potential",
46
48
  "scan",
47
49
  "solubility",
@@ -70,5 +72,6 @@ WORKFLOW_MAPPING: dict[WORKFLOW_NAME, Workflow] = {
70
72
  "scan": ScanWorkflow, # type: ignore [dict-item]
71
73
  "solubility": SolubilityWorkflow, # type: ignore [dict-item]
72
74
  "spin_states": SpinStatesWorkflow, # type: ignore [dict-item]
75
+ "protein_cofolding": ProteinCofoldingWorkflow, # type: ignore [dict-item]
73
76
  "tautomers": TautomerWorkflow, # type: ignore [dict-item]
74
77
  }
@@ -45,24 +45,35 @@ class MacropKaWorkflow(SMILESWorkflow):
45
45
  :param initial_smiles:
46
46
 
47
47
  New:
48
- :param temperature: the temperature, in K
49
- :param min_pH: for precomputed microstate weights
50
- :param max_pH: for precomputed microstate weights
48
+ :param min_pH: for precomputed microstate weights, logD, etc
49
+ :param max_pH: for precomputed microstate weights, logD, etc
50
+ :param max_charge: max charge to consider for microstates
51
+ :param min_charge: min charge to consider for microstates
52
+ :param compute_aqueous_solubility: whether or not to compute aqueous solubility
53
+ :param compute_solvation_energy: whether to run a csearch + compute the solvation energy (for Kpuu)
51
54
 
52
55
  Results:
53
56
  :param microstates: microstates
54
57
  :param pKa_values: macroscopic pKa values
55
- :param microstate_weights_by_pH: precompute the % of different microstates
58
+ :param isoelectric_point: the isoelectric point (in pH units)
59
+ :param solvation_energy: the solvation energy, in kcal/mol
60
+ :param microstate_weights_by_pH: the % of different microstates by pH
61
+ :param logD_by_pH: the distribution constant (water/octanol) by pH
62
+ :param aqueous_solubility_by_pH: the log(S)/L of the compound in water, by pH
56
63
  """
57
64
 
58
65
  min_pH: Annotated[float, AfterValidator(round_float(3))] = 0.0
59
66
  max_pH: Annotated[float, AfterValidator(round_float(3))] = 14.0
60
-
61
67
  max_charge: int = 2
62
68
  min_charge: int = -2
69
+ compute_aqueous_solubility: bool = False
70
+ compute_solvation_energy: bool = True
63
71
 
64
72
  microstates: list[MacropKaMicrostate] = []
65
73
  pKa_values: list[MacropKaValue] = []
74
+ isoelectric_point: Annotated[Optional[float], AfterValidator(round_float(3))] = None
75
+ solvation_energy: Annotated[Optional[float], AfterValidator(round_float(3))] = None
76
+
66
77
  microstate_weights_by_pH: list[
67
78
  tuple[
68
79
  Annotated[float, AfterValidator(round_float(3))],
@@ -70,8 +81,6 @@ class MacropKaWorkflow(SMILESWorkflow):
70
81
  ]
71
82
  ] = []
72
83
 
73
- isoelectric_point: Annotated[Optional[float], AfterValidator(round_float(3))] = None
74
-
75
84
  logD_by_pH: list[
76
85
  tuple[
77
86
  Annotated[float, AfterValidator(round_float(3))],
@@ -79,6 +88,13 @@ class MacropKaWorkflow(SMILESWorkflow):
79
88
  ]
80
89
  ] = []
81
90
 
91
+ aqueous_solubility_by_pH: list[
92
+ tuple[
93
+ Annotated[float, AfterValidator(round_float(3))],
94
+ Annotated[float, AfterValidator(round_float(3))],
95
+ ]
96
+ ] = []
97
+
82
98
  @model_validator(mode="after")
83
99
  def check_weights(self) -> Self:
84
100
  for _, weights in self.microstate_weights_by_pH:
@@ -0,0 +1,31 @@
1
+ """Protein Cofolding Workflow."""
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from ..types import UUID
6
+ from .workflow import FASTAWorkflow
7
+
8
+
9
+ class CofoldingScores(BaseModel):
10
+ confidence_score: float
11
+ ptm: float # predicted template modelling score
12
+ iptm: float # interface predicted template modelling score
13
+
14
+
15
+ class ProteinCofoldingWorkflow(FASTAWorkflow):
16
+ """
17
+ A workflow for predicting structures. Especially protein structures.
18
+
19
+ Inherited:
20
+ :param initial_fasta: fasta string of interest
21
+
22
+ New:
23
+ :param use_msa_server: whether to use the MSA server
24
+ :param use_templates_server: whether to use the templates server
25
+ :param predicted_structure_uuid: UUID of the predicted structure
26
+ """
27
+
28
+ use_msa_server: bool = False
29
+ use_templates_server: bool = False
30
+ predicted_structure_uuid: UUID | None = None
31
+ scores: CofoldingScores | None = None
@@ -22,6 +22,19 @@ class Workflow(Base):
22
22
  return repr(self)
23
23
 
24
24
 
25
+ class FASTAWorkflow(Workflow):
26
+ """
27
+ Base class for Workflows that operate on a fasta string.
28
+
29
+ :param initial_fasta: fasta string of interest
30
+ """
31
+
32
+ initial_fasta: str
33
+
34
+ def __repr__(self) -> str:
35
+ return f"<{type(self).__name__} {self.initial_fasta}>"
36
+
37
+
25
38
  class SMILESWorkflow(Workflow):
26
39
  """
27
40
  Base class for Workflows that operate on a single SMILES string.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.69
3
+ Version: 0.0.71
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
@@ -62,6 +62,7 @@ stjames/workflows/macropka.py
62
62
  stjames/workflows/molecular_dynamics.py
63
63
  stjames/workflows/multistage_opt.py
64
64
  stjames/workflows/pka.py
65
+ stjames/workflows/protein_cofolding.py
65
66
  stjames/workflows/redox_potential.py
66
67
  stjames/workflows/scan.py
67
68
  stjames/workflows/solubility.py
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