stjames 0.0.70__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.
- {stjames-0.0.70/stjames.egg-info → stjames-0.0.71}/PKG-INFO +1 -1
- {stjames-0.0.70 → stjames-0.0.71}/pyproject.toml +1 -1
- {stjames-0.0.70 → stjames-0.0.71}/stjames/atomium_stjames/mmcif.py +1 -1
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/__init__.py +3 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/macropka.py +16 -7
- stjames-0.0.71/stjames/workflows/protein_cofolding.py +31 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/workflow.py +13 -0
- {stjames-0.0.70 → stjames-0.0.71/stjames.egg-info}/PKG-INFO +1 -1
- {stjames-0.0.70 → stjames-0.0.71}/stjames.egg-info/SOURCES.txt +1 -0
- {stjames-0.0.70 → stjames-0.0.71}/LICENSE +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/README.md +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/setup.cfg +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/__init__.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/_deprecated_solvent_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/atom.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/atomium_stjames/__init__.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/atomium_stjames/data.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/atomium_stjames/pdb.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/atomium_stjames/utilities.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/base.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/basis_set.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/calculation.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/compute_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/constraint.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/correction.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/data/__init__.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/data/bragg_radii.json +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/data/elements.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/data/isotopes.json +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/data/nist_isotopes.json +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/data/read_nist_isotopes.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/data/symbol_element.json +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/diis_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/grid_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/int_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/message.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/method.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/mode.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/molecule.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/opt_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/pdb.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/periodic_cell.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/py.typed +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/scf_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/solvent.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/status.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/task.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/thermochem_settings.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/types.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/admet.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/basic_calculation.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/bde.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/conformer.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/conformer_search.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/descriptors.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/docking.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/electronic_properties.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/fukui.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/hydrogen_bond_basicity.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/ion_mobility.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/irc.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/molecular_dynamics.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/multistage_opt.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/pka.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/redox_potential.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/scan.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/solubility.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/spin_states.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames/workflows/tautomer.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames.egg-info/dependency_links.txt +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames.egg-info/requires.txt +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/stjames.egg-info/top_level.txt +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/tests/test_constraints.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/tests/test_from_extxyz.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/tests/test_molecule.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/tests/test_pdb.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/tests/test_rounding.py +0 -0
- {stjames-0.0.70 → stjames-0.0.71}/tests/test_settings.py +0 -0
|
@@ -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
|
|
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)
|
|
@@ -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
|
|
49
|
-
:param
|
|
50
|
-
:param
|
|
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
|
|
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))],
|
|
@@ -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.
|
|
@@ -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
|
|
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
|