stjames 0.0.121__tar.gz → 0.0.122__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 (86) hide show
  1. {stjames-0.0.121/stjames.egg-info → stjames-0.0.122}/PKG-INFO +1 -1
  2. {stjames-0.0.121 → stjames-0.0.122}/pyproject.toml +1 -1
  3. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/__init__.py +3 -0
  4. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/conformer_search.py +26 -2
  5. stjames-0.0.122/stjames/workflows/msa.py +31 -0
  6. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/workflow.py +10 -0
  7. {stjames-0.0.121 → stjames-0.0.122/stjames.egg-info}/PKG-INFO +1 -1
  8. {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/SOURCES.txt +1 -0
  9. {stjames-0.0.121 → stjames-0.0.122}/LICENSE +0 -0
  10. {stjames-0.0.121 → stjames-0.0.122}/README.md +0 -0
  11. {stjames-0.0.121 → stjames-0.0.122}/setup.cfg +0 -0
  12. {stjames-0.0.121 → stjames-0.0.122}/stjames/__init__.py +0 -0
  13. {stjames-0.0.121 → stjames-0.0.122}/stjames/_deprecated_solvent_settings.py +0 -0
  14. {stjames-0.0.121 → stjames-0.0.122}/stjames/atom.py +0 -0
  15. {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/__init__.py +0 -0
  16. {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/data.py +0 -0
  17. {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/mmcif.py +0 -0
  18. {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/pdb.py +0 -0
  19. {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/utilities.py +0 -0
  20. {stjames-0.0.121 → stjames-0.0.122}/stjames/base.py +0 -0
  21. {stjames-0.0.121 → stjames-0.0.122}/stjames/basis_set.py +0 -0
  22. {stjames-0.0.121 → stjames-0.0.122}/stjames/calculation.py +0 -0
  23. {stjames-0.0.121 → stjames-0.0.122}/stjames/compute_settings.py +0 -0
  24. {stjames-0.0.121 → stjames-0.0.122}/stjames/constraint.py +0 -0
  25. {stjames-0.0.121 → stjames-0.0.122}/stjames/correction.py +0 -0
  26. {stjames-0.0.121 → stjames-0.0.122}/stjames/data/__init__.py +0 -0
  27. {stjames-0.0.121 → stjames-0.0.122}/stjames/data/bragg_radii.json +0 -0
  28. {stjames-0.0.121 → stjames-0.0.122}/stjames/data/elements.py +0 -0
  29. {stjames-0.0.121 → stjames-0.0.122}/stjames/data/isotopes.json +0 -0
  30. {stjames-0.0.121 → stjames-0.0.122}/stjames/data/nist_isotopes.json +0 -0
  31. {stjames-0.0.121 → stjames-0.0.122}/stjames/data/read_nist_isotopes.py +0 -0
  32. {stjames-0.0.121 → stjames-0.0.122}/stjames/data/symbol_element.json +0 -0
  33. {stjames-0.0.121 → stjames-0.0.122}/stjames/engine.py +0 -0
  34. {stjames-0.0.121 → stjames-0.0.122}/stjames/message.py +0 -0
  35. {stjames-0.0.121 → stjames-0.0.122}/stjames/method.py +0 -0
  36. {stjames-0.0.121 → stjames-0.0.122}/stjames/mode.py +0 -0
  37. {stjames-0.0.121 → stjames-0.0.122}/stjames/molecule.py +0 -0
  38. {stjames-0.0.121 → stjames-0.0.122}/stjames/opt_settings.py +0 -0
  39. {stjames-0.0.121 → stjames-0.0.122}/stjames/optimization/__init__.py +0 -0
  40. {stjames-0.0.121 → stjames-0.0.122}/stjames/optimization/freezing_string_method.py +0 -0
  41. {stjames-0.0.121 → stjames-0.0.122}/stjames/pdb.py +0 -0
  42. {stjames-0.0.121 → stjames-0.0.122}/stjames/periodic_cell.py +0 -0
  43. {stjames-0.0.121 → stjames-0.0.122}/stjames/py.typed +0 -0
  44. {stjames-0.0.121 → stjames-0.0.122}/stjames/scf_settings.py +0 -0
  45. {stjames-0.0.121 → stjames-0.0.122}/stjames/settings.py +0 -0
  46. {stjames-0.0.121 → stjames-0.0.122}/stjames/solvent.py +0 -0
  47. {stjames-0.0.121 → stjames-0.0.122}/stjames/status.py +0 -0
  48. {stjames-0.0.121 → stjames-0.0.122}/stjames/task.py +0 -0
  49. {stjames-0.0.121 → stjames-0.0.122}/stjames/thermochem_settings.py +0 -0
  50. {stjames-0.0.121 → stjames-0.0.122}/stjames/types.py +0 -0
  51. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/admet.py +0 -0
  52. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/basic_calculation.py +0 -0
  53. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/batch_docking.py +0 -0
  54. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/bde.py +0 -0
  55. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/conformer.py +0 -0
  56. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/descriptors.py +0 -0
  57. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/docking.py +0 -0
  58. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/double_ended_ts_search.py +0 -0
  59. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/electronic_properties.py +0 -0
  60. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/fukui.py +0 -0
  61. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
  62. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/ion_mobility.py +0 -0
  63. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/irc.py +0 -0
  64. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/macropka.py +0 -0
  65. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/molecular_dynamics.py +0 -0
  66. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/multistage_opt.py +0 -0
  67. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/nmr.py +0 -0
  68. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/pka.py +0 -0
  69. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/pose_analysis_md.py +0 -0
  70. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/protein_binder_design.py +0 -0
  71. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/protein_cofolding.py +0 -0
  72. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/redox_potential.py +0 -0
  73. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/scan.py +0 -0
  74. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/solubility.py +0 -0
  75. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/spin_states.py +0 -0
  76. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/strain.py +0 -0
  77. {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/tautomer.py +0 -0
  78. {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/dependency_links.txt +0 -0
  79. {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/requires.txt +0 -0
  80. {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/top_level.txt +0 -0
  81. {stjames-0.0.121 → stjames-0.0.122}/tests/test_constraints.py +0 -0
  82. {stjames-0.0.121 → stjames-0.0.122}/tests/test_from_extxyz.py +0 -0
  83. {stjames-0.0.121 → stjames-0.0.122}/tests/test_molecule.py +0 -0
  84. {stjames-0.0.121 → stjames-0.0.122}/tests/test_pdb.py +0 -0
  85. {stjames-0.0.121 → stjames-0.0.122}/tests/test_rounding.py +0 -0
  86. {stjames-0.0.121 → stjames-0.0.122}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.121
3
+ Version: 0.0.122
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.121"
3
+ version = "0.0.122"
4
4
  description = "standardized JSON atom/molecule encoding scheme"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -18,6 +18,7 @@ from .ion_mobility import *
18
18
  from .irc import *
19
19
  from .macropka import *
20
20
  from .molecular_dynamics import *
21
+ from .msa import *
21
22
  from .multistage_opt import *
22
23
  from .nmr import *
23
24
  from .pka import *
@@ -49,6 +50,7 @@ WORKFLOW_NAME = Literal[
49
50
  "irc",
50
51
  "macropka",
51
52
  "molecular_dynamics",
53
+ "msa",
52
54
  "multistage_opt",
53
55
  "nmr",
54
56
  "pka",
@@ -81,6 +83,7 @@ WORKFLOW_MAPPING: dict[WORKFLOW_NAME, Workflow] = {
81
83
  "macropka": MacropKaWorkflow, # type: ignore [dict-item]
82
84
  "molecular_dynamics": MolecularDynamicsWorkflow, # type: ignore [dict-item]
83
85
  "multistage_opt": MultiStageOptWorkflow, # type: ignore [dict-item]
86
+ "msa": MSAWorkflow, # type: ignore [dict-item]
84
87
  "nmr": NMRSpectroscopyWorkflow, # type: ignore [dict-item]
85
88
  "pka": pKaWorkflow, # type: ignore [dict-item]
86
89
  "pose_analysis_md": PoseAnalysisMolecularDynamicsWorkflow, # type: ignore [dict-item]
@@ -3,9 +3,9 @@
3
3
  from abc import ABC
4
4
  from typing import Annotated, Literal, Self, Sequence, TypeVar
5
5
 
6
- from pydantic import AfterValidator, BaseModel, Field, field_validator, model_validator
6
+ from pydantic import AfterValidator, BaseModel, Field, PositiveInt, field_validator, model_validator
7
7
 
8
- from ..base import LowercaseStrEnum
8
+ from ..base import Base, LowercaseStrEnum
9
9
  from ..constraint import Constraint
10
10
  from ..method import Method, XTBMethod
11
11
  from ..mode import Mode
@@ -41,6 +41,28 @@ class ScreeningSettings(BaseModel):
41
41
  max_confs: int | None = None
42
42
 
43
43
 
44
+ class ConformerClusteringSettings(Base):
45
+ """
46
+ Settings for (optionally) clustering conformers based on three-dimensional properties.
47
+
48
+ The properties used for clustering are:
49
+ - Solvent-accessible surface area
50
+ - Polar solvent-accessible surface area
51
+ - Radius of gyration
52
+ - Plane of best fit
53
+ - Normalized principal moment ratios 1 and 2
54
+
55
+ Rowan uses k-means clustering to identify representative conformers.
56
+ This loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).
57
+
58
+ :param num_clusters: the number of clusters to include
59
+ :param conformers_per_cluster: the number of compounds to pick from each cluster
60
+ """
61
+
62
+ num_clusters: PositiveInt = 5
63
+ conformers_per_cluster: PositiveInt = 3
64
+
65
+
44
66
  class ConformerGenSettings(BaseModel):
45
67
  """
46
68
  Conformer generation settings.
@@ -310,6 +332,8 @@ class ConformerGenMixin(BaseModel):
310
332
  nci: bool = False
311
333
  max_confs: int | None = None
312
334
 
335
+ conformer_clustering_settings: ConformerClusteringSettings | None = None
336
+
313
337
  @model_validator(mode="after")
314
338
  def validate_and_build_conf_gen_settings(self) -> Self:
315
339
  """Validate and build the ConformerGenSettings."""
@@ -0,0 +1,31 @@
1
+ from ..base import LowercaseStrEnum
2
+ from .workflow import ProteinSequenceWorkflow
3
+
4
+
5
+ class MSAFormat(LowercaseStrEnum):
6
+ """Format of the MSA."""
7
+
8
+ COLABFOLD_DEFAULT = "colabfold_default"
9
+ AF3_JSON = "af3_json"
10
+
11
+
12
+ class MSAWorkflow(ProteinSequenceWorkflow):
13
+ """
14
+ Workflow for generating a MSA from protein sequences.
15
+
16
+ Inherited:
17
+ :param initial_protein_sequences: protein sequences of interest
18
+
19
+ New:
20
+ :param format: the format of the MSA return files
21
+
22
+ Results:
23
+ :param a3m_file: A3M file string
24
+ :param m8_file: M8 file string
25
+ :param af3_json_file: AF3 JSON file string
26
+ """
27
+
28
+ format: MSAFormat = MSAFormat.COLABFOLD_DEFAULT
29
+ a3m_file: str | None = None
30
+ m8_file: str | None = None
31
+ af3_json_file: str | None = None
@@ -95,6 +95,16 @@ class MoleculeWorkflow(Workflow):
95
95
  return mode
96
96
 
97
97
 
98
+ class ProteinSequenceWorkflow(Workflow):
99
+ """
100
+ Base class for Workflows that operate on protein sequences.
101
+
102
+ :param initial_protein_sequences: protein sequences of interest
103
+ """
104
+
105
+ protein_sequences: list[str]
106
+
107
+
98
108
  class DBCalculation(Base):
99
109
  """Encodes a calculation that's in the database. This isn't terribly useful by itself."""
100
110
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stjames
3
- Version: 0.0.121
3
+ Version: 0.0.122
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/ion_mobility.py
62
62
  stjames/workflows/irc.py
63
63
  stjames/workflows/macropka.py
64
64
  stjames/workflows/molecular_dynamics.py
65
+ stjames/workflows/msa.py
65
66
  stjames/workflows/multistage_opt.py
66
67
  stjames/workflows/nmr.py
67
68
  stjames/workflows/pka.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