stjames 0.0.117__tar.gz → 0.0.119__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 (85) hide show
  1. {stjames-0.0.117/stjames.egg-info → stjames-0.0.119}/PKG-INFO +1 -1
  2. {stjames-0.0.117 → stjames-0.0.119}/pyproject.toml +1 -1
  3. stjames-0.0.119/stjames/workflows/batch_docking.py +46 -0
  4. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/workflow.py +25 -5
  5. {stjames-0.0.117 → stjames-0.0.119/stjames.egg-info}/PKG-INFO +1 -1
  6. {stjames-0.0.117 → stjames-0.0.119}/stjames.egg-info/SOURCES.txt +1 -0
  7. {stjames-0.0.117 → stjames-0.0.119}/LICENSE +0 -0
  8. {stjames-0.0.117 → stjames-0.0.119}/README.md +0 -0
  9. {stjames-0.0.117 → stjames-0.0.119}/setup.cfg +0 -0
  10. {stjames-0.0.117 → stjames-0.0.119}/stjames/__init__.py +0 -0
  11. {stjames-0.0.117 → stjames-0.0.119}/stjames/_deprecated_solvent_settings.py +0 -0
  12. {stjames-0.0.117 → stjames-0.0.119}/stjames/atom.py +0 -0
  13. {stjames-0.0.117 → stjames-0.0.119}/stjames/atomium_stjames/__init__.py +0 -0
  14. {stjames-0.0.117 → stjames-0.0.119}/stjames/atomium_stjames/data.py +0 -0
  15. {stjames-0.0.117 → stjames-0.0.119}/stjames/atomium_stjames/mmcif.py +0 -0
  16. {stjames-0.0.117 → stjames-0.0.119}/stjames/atomium_stjames/pdb.py +0 -0
  17. {stjames-0.0.117 → stjames-0.0.119}/stjames/atomium_stjames/utilities.py +0 -0
  18. {stjames-0.0.117 → stjames-0.0.119}/stjames/base.py +0 -0
  19. {stjames-0.0.117 → stjames-0.0.119}/stjames/basis_set.py +0 -0
  20. {stjames-0.0.117 → stjames-0.0.119}/stjames/calculation.py +0 -0
  21. {stjames-0.0.117 → stjames-0.0.119}/stjames/compute_settings.py +0 -0
  22. {stjames-0.0.117 → stjames-0.0.119}/stjames/constraint.py +0 -0
  23. {stjames-0.0.117 → stjames-0.0.119}/stjames/correction.py +0 -0
  24. {stjames-0.0.117 → stjames-0.0.119}/stjames/data/__init__.py +0 -0
  25. {stjames-0.0.117 → stjames-0.0.119}/stjames/data/bragg_radii.json +0 -0
  26. {stjames-0.0.117 → stjames-0.0.119}/stjames/data/elements.py +0 -0
  27. {stjames-0.0.117 → stjames-0.0.119}/stjames/data/isotopes.json +0 -0
  28. {stjames-0.0.117 → stjames-0.0.119}/stjames/data/nist_isotopes.json +0 -0
  29. {stjames-0.0.117 → stjames-0.0.119}/stjames/data/read_nist_isotopes.py +0 -0
  30. {stjames-0.0.117 → stjames-0.0.119}/stjames/data/symbol_element.json +0 -0
  31. {stjames-0.0.117 → stjames-0.0.119}/stjames/engine.py +0 -0
  32. {stjames-0.0.117 → stjames-0.0.119}/stjames/message.py +0 -0
  33. {stjames-0.0.117 → stjames-0.0.119}/stjames/method.py +0 -0
  34. {stjames-0.0.117 → stjames-0.0.119}/stjames/mode.py +0 -0
  35. {stjames-0.0.117 → stjames-0.0.119}/stjames/molecule.py +0 -0
  36. {stjames-0.0.117 → stjames-0.0.119}/stjames/opt_settings.py +0 -0
  37. {stjames-0.0.117 → stjames-0.0.119}/stjames/optimization/__init__.py +0 -0
  38. {stjames-0.0.117 → stjames-0.0.119}/stjames/optimization/freezing_string_method.py +0 -0
  39. {stjames-0.0.117 → stjames-0.0.119}/stjames/pdb.py +0 -0
  40. {stjames-0.0.117 → stjames-0.0.119}/stjames/periodic_cell.py +0 -0
  41. {stjames-0.0.117 → stjames-0.0.119}/stjames/py.typed +0 -0
  42. {stjames-0.0.117 → stjames-0.0.119}/stjames/scf_settings.py +0 -0
  43. {stjames-0.0.117 → stjames-0.0.119}/stjames/settings.py +0 -0
  44. {stjames-0.0.117 → stjames-0.0.119}/stjames/solvent.py +0 -0
  45. {stjames-0.0.117 → stjames-0.0.119}/stjames/status.py +0 -0
  46. {stjames-0.0.117 → stjames-0.0.119}/stjames/task.py +0 -0
  47. {stjames-0.0.117 → stjames-0.0.119}/stjames/thermochem_settings.py +0 -0
  48. {stjames-0.0.117 → stjames-0.0.119}/stjames/types.py +0 -0
  49. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/__init__.py +0 -0
  50. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/admet.py +0 -0
  51. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/basic_calculation.py +0 -0
  52. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/bde.py +0 -0
  53. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/conformer.py +0 -0
  54. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/conformer_search.py +0 -0
  55. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/descriptors.py +0 -0
  56. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/docking.py +0 -0
  57. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/double_ended_ts_search.py +0 -0
  58. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/electronic_properties.py +0 -0
  59. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/fukui.py +0 -0
  60. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
  61. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/ion_mobility.py +0 -0
  62. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/irc.py +0 -0
  63. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/macropka.py +0 -0
  64. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/molecular_dynamics.py +0 -0
  65. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/multistage_opt.py +0 -0
  66. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/nmr.py +0 -0
  67. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/pka.py +0 -0
  68. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/pose_analysis_md.py +0 -0
  69. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/protein_binder_design.py +0 -0
  70. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/protein_cofolding.py +0 -0
  71. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/redox_potential.py +0 -0
  72. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/scan.py +0 -0
  73. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/solubility.py +0 -0
  74. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/spin_states.py +0 -0
  75. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/strain.py +0 -0
  76. {stjames-0.0.117 → stjames-0.0.119}/stjames/workflows/tautomer.py +0 -0
  77. {stjames-0.0.117 → stjames-0.0.119}/stjames.egg-info/dependency_links.txt +0 -0
  78. {stjames-0.0.117 → stjames-0.0.119}/stjames.egg-info/requires.txt +0 -0
  79. {stjames-0.0.117 → stjames-0.0.119}/stjames.egg-info/top_level.txt +0 -0
  80. {stjames-0.0.117 → stjames-0.0.119}/tests/test_constraints.py +0 -0
  81. {stjames-0.0.117 → stjames-0.0.119}/tests/test_from_extxyz.py +0 -0
  82. {stjames-0.0.117 → stjames-0.0.119}/tests/test_molecule.py +0 -0
  83. {stjames-0.0.117 → stjames-0.0.119}/tests/test_pdb.py +0 -0
  84. {stjames-0.0.117 → stjames-0.0.119}/tests/test_rounding.py +0 -0
  85. {stjames-0.0.117 → stjames-0.0.119}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.117
3
+ Version: 0.0.119
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.117"
3
+ version = "0.0.119"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -0,0 +1,46 @@
1
+ """High-throughput docking workflow."""
2
+
3
+ from typing import Annotated
4
+
5
+ from pydantic import AfterValidator, ConfigDict, field_validator
6
+
7
+ from ..pdb import PDB
8
+ from ..types import UUID, Vector3D, round_list
9
+ from .docking import VinaSettings
10
+ from .workflow import BatchSMILESWorkflow
11
+
12
+
13
+ class BatchDockingWorkflow(BatchSMILESWorkflow):
14
+ """
15
+ Docking workflow.
16
+
17
+ Note that the protein can be supplied either by UUID or raw PDB object.
18
+ We anticipate that the former will dominate deployed usage, but the latter is handy for isolated testing.
19
+ If, for whatever reason, the workflow is initialized with both a `target_uuid` and a `target`, the UUID will be ignored.
20
+
21
+ Inherited:
22
+ :param smiles_list: list of SMILES
23
+
24
+ New:
25
+ :param target: PDB of the protein, or the UUID of the protein.
26
+ :param pocket: center (x, y, z) and size (x, y, z) of the pocket
27
+ :param docking_settings: how to run each docking calculation
28
+
29
+ Results:
30
+ :param best_scores: the best score for each SMILES string
31
+ """
32
+
33
+ model_config = ConfigDict(arbitrary_types_allowed=True)
34
+
35
+ target: PDB | UUID
36
+ pocket: tuple[Vector3D, Vector3D]
37
+
38
+ docking_settings: VinaSettings = VinaSettings()
39
+ best_scores: Annotated[list[float | None], AfterValidator(round_list(3))] = []
40
+
41
+ @field_validator("pocket", mode="after")
42
+ def validate_pocket(cls, pocket: tuple[Vector3D, Vector3D]) -> tuple[Vector3D, Vector3D]:
43
+ _center, size = pocket
44
+ if any(q <= 0 for q in size):
45
+ raise ValueError(f"Pocket size must be positive, got: {size}")
46
+ return pocket
@@ -22,21 +22,31 @@ class Workflow(Base):
22
22
  return repr(self)
23
23
 
24
24
 
25
+ class ProteinSequence(Base):
26
+ """
27
+ Protein sequence metadata including cyclic flag.
28
+
29
+ :param sequence: amino-acid sequence string
30
+ :param cyclic: whether this sequence forms a cyclic peptide (defaults to False)
31
+ """
32
+
33
+ sequence: str
34
+ cyclic: bool = False
35
+
36
+
25
37
  class FASTAWorkflow(Workflow):
26
38
  """
27
39
  Base class for Workflows that operate on protein sequences and SMILES.
28
40
 
29
- :param initial_protein_sequences: protein sequences of interest
41
+ :param initial_protein_sequences: proteins to evaluate, either plain sequence strings or ProteinSequence objects with cyclic flags
30
42
  :param initial_smiles_list: SMILES strings of interest
43
+ :param ligand_binding_affinity_index: optional index selecting which ligand affinity to evaluate
31
44
  """
32
45
 
33
- initial_protein_sequences: list[str]
46
+ initial_protein_sequences: list[ProteinSequence] | list[str]
34
47
  initial_smiles_list: list[str] | None = None
35
48
  ligand_binding_affinity_index: int | None = None
36
49
 
37
- def __repr__(self) -> str:
38
- return f"<{type(self).__name__} {self.initial_protein_sequences} {self.initial_smiles_list}>"
39
-
40
50
 
41
51
  class SMILESWorkflow(Workflow):
42
52
  """
@@ -51,6 +61,16 @@ class SMILESWorkflow(Workflow):
51
61
  return f"<{type(self).__name__} {self.initial_smiles}>"
52
62
 
53
63
 
64
+ class BatchSMILESWorkflow(Workflow):
65
+ """
66
+ Base class for Workflows that operate on a list of SMILES strings.
67
+
68
+ :param smiles_list: SMILES strings of interest
69
+ """
70
+
71
+ smiles_list: list[str]
72
+
73
+
54
74
  class MoleculeWorkflow(Workflow):
55
75
  """
56
76
  Base class for Workflows that operate on a single molecule.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.117
3
+ Version: 0.0.119
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
@@ -48,6 +48,7 @@ stjames/optimization/freezing_string_method.py
48
48
  stjames/workflows/__init__.py
49
49
  stjames/workflows/admet.py
50
50
  stjames/workflows/basic_calculation.py
51
+ stjames/workflows/batch_docking.py
51
52
  stjames/workflows/bde.py
52
53
  stjames/workflows/conformer.py
53
54
  stjames/workflows/conformer_search.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