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.
- {stjames-0.0.121/stjames.egg-info → stjames-0.0.122}/PKG-INFO +1 -1
- {stjames-0.0.121 → stjames-0.0.122}/pyproject.toml +1 -1
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/__init__.py +3 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/conformer_search.py +26 -2
- stjames-0.0.122/stjames/workflows/msa.py +31 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/workflow.py +10 -0
- {stjames-0.0.121 → stjames-0.0.122/stjames.egg-info}/PKG-INFO +1 -1
- {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/SOURCES.txt +1 -0
- {stjames-0.0.121 → stjames-0.0.122}/LICENSE +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/README.md +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/setup.cfg +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/__init__.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/_deprecated_solvent_settings.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/atom.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/__init__.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/data.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/mmcif.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/pdb.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/atomium_stjames/utilities.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/base.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/basis_set.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/calculation.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/compute_settings.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/constraint.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/correction.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/data/__init__.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/data/bragg_radii.json +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/data/elements.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/data/isotopes.json +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/data/nist_isotopes.json +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/data/read_nist_isotopes.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/data/symbol_element.json +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/engine.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/message.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/method.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/mode.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/molecule.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/opt_settings.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/optimization/__init__.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/optimization/freezing_string_method.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/pdb.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/periodic_cell.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/py.typed +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/scf_settings.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/settings.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/solvent.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/status.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/task.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/thermochem_settings.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/types.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/admet.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/basic_calculation.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/batch_docking.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/bde.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/conformer.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/descriptors.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/docking.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/double_ended_ts_search.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/electronic_properties.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/fukui.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/ion_mobility.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/irc.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/macropka.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/molecular_dynamics.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/multistage_opt.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/nmr.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/pka.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/pose_analysis_md.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/protein_binder_design.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/protein_cofolding.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/redox_potential.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/scan.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/solubility.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/spin_states.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/strain.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames/workflows/tautomer.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/dependency_links.txt +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/requires.txt +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/stjames.egg-info/top_level.txt +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/tests/test_constraints.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/tests/test_from_extxyz.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/tests/test_molecule.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/tests/test_pdb.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/tests/test_rounding.py +0 -0
- {stjames-0.0.121 → stjames-0.0.122}/tests/test_settings.py +0 -0
|
@@ -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
|
|
|
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
|
|
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
|
|
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
|
|
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
|