rowan-python 3.1.0__py3-none-any.whl → 3.1.1__py3-none-any.whl

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.
@@ -23,10 +23,10 @@ class CofoldingScores:
23
23
  """
24
24
  Confidence scores for a cofolding prediction.
25
25
 
26
- :param ptm: Predicted TM-score (0-1, higher is better).
27
- :param iptm: Interface predicted TM-score (0-1, higher is better).
28
- :param avg_lddt: Average per-residue LDDT confidence (0-1).
29
- :param confidence_score: Overall confidence score (0-1).
26
+ :param ptm: Predicted TM-score, overall structure confidence (0-1, higher is better).
27
+ :param iptm: Interface pTM, inter-chain packing confidence (0-1, higher is better).
28
+ :param avg_lddt: Mean per-residue pLDDT, local atomic accuracy (0-1, higher is better).
29
+ :param confidence_score: Overall aggregate confidence in the prediction (0-1, higher is better).
30
30
  """
31
31
 
32
32
  ptm: float | None = None
@@ -40,12 +40,26 @@ class AffinityScore:
40
40
  """
41
41
  Predicted binding affinity scores.
42
42
 
43
- :param pred_value: Predicted binding affinity (ensemble average).
44
- :param pred_value1: Predicted binding affinity (model 1).
45
- :param pred_value2: Predicted binding affinity (model 2).
46
- :param probability_binary: Probability of binding (ensemble average, 0-1).
47
- :param probability_binary1: Probability of binding (model 1, 0-1).
48
- :param probability_binary2: Probability of binding (model 2, 0-1).
43
+ Every field is optional; which ones a given run populates depends on the
44
+ cofolding model. In current runs Boltz-2 fills the pred_value and
45
+ probability_binary fields while Boltz-2.1 fills binding_confidence and
46
+ optimization_score, but the schema does not guarantee this split.
47
+
48
+ :param pred_value: Predicted pIC50, -log10(IC50 in M); higher means stronger
49
+ binding (ensemble average of the two affinity heads).
50
+ :param pred_value1: Predicted pIC50 from affinity head 1.
51
+ :param pred_value2: Predicted pIC50 from affinity head 2.
52
+ :param probability_binary: Predicted probability (0-1) that the ligand binds
53
+ its target; higher is better (ensemble average of the two affinity heads).
54
+ :param probability_binary1: Binding probability (0-1) from affinity head 1.
55
+ :param probability_binary2: Binding probability (0-1) from affinity head 2.
56
+ :param binding_confidence: Predicted probability (0-1, higher is better) that
57
+ the molecule or binder is a true binder rather than a decoy. Primary metric
58
+ for hit discovery (computed when binding is requested).
59
+ :param optimization_score: Binding-strength ranking derived from the model's
60
+ predicted log(IC50) affinity; higher means stronger predicted binding. Use
61
+ to rank-order likely binders during lead optimization (computed when binding
62
+ is requested).
49
63
  """
50
64
 
51
65
  pred_value: float | None = None
@@ -54,6 +68,8 @@ class AffinityScore:
54
68
  probability_binary: float | None = None
55
69
  probability_binary1: float | None = None
56
70
  probability_binary2: float | None = None
71
+ binding_confidence: float | None = None
72
+ optimization_score: float | None = None
57
73
 
58
74
 
59
75
  @dataclass(frozen=True, slots=True)
@@ -230,6 +246,8 @@ class ProteinCofoldingResult(WorkflowResult):
230
246
  probability_binary=a.get("probability_binary"),
231
247
  probability_binary1=a.get("probability_binary1"),
232
248
  probability_binary2=a.get("probability_binary2"),
249
+ binding_confidence=a.get("binding_confidence"),
250
+ optimization_score=a.get("optimization_score"),
233
251
  )
234
252
  return AffinityScore(
235
253
  pred_value=a.pred_value,
@@ -238,6 +256,8 @@ class ProteinCofoldingResult(WorkflowResult):
238
256
  probability_binary=a.probability_binary,
239
257
  probability_binary1=a.probability_binary1,
240
258
  probability_binary2=a.probability_binary2,
259
+ binding_confidence=getattr(a, "binding_confidence", None),
260
+ optimization_score=getattr(a, "optimization_score", None),
241
261
  )
242
262
 
243
263
 
@@ -271,7 +291,7 @@ def submit_protein_cofolding_workflow(
271
291
 
272
292
  See `examples/protein_cofolding_with_constraints.py` for a worked example
273
293
  of using `ConstraintTarget`, `ContactConstraint`, and `PocketConstraint`
274
- (Boltz-2 only).
294
+ (Boltz models only).
275
295
 
276
296
  :param initial_protein_sequences: Protein sequences to be cofolded.
277
297
  :param initial_dna_sequences: DNA sequences to be cofolded.
@@ -283,13 +303,15 @@ def submit_protein_cofolding_workflow(
283
303
  :param use_potentials: Whether to use potentials (inference-time steering) with Boltz.
284
304
  :param contact_constraints: Boltz contact constraints between two tokens.
285
305
  :param pocket_constraints: Boltz pocket constraints between a binder and contact tokens.
286
- :param templates: Structural templates to guide prediction (Boltz-2 or OpenFold-3 only).
306
+ :param templates: Structural templates to guide prediction (Boltz-2/2.1 or OpenFold-3 only).
287
307
  :param num_samples: Number of diffusion samples to generate. If None, uses the model default.
288
308
  :param compute_strain: Whether to compute the strain of the pose. Requires do_pose_refinement.
289
309
  (if `pose_refinement` is enabled).
290
310
  :param do_pose_refinement: Whether to optimize non-rotatable bonds in output poses.
291
311
  :param name: Name of the workflow.
292
- :param model: Model to use for the computation.
312
+ :param model: Model to use for the computation. Boltz-2.1 runs via Boltz's
313
+ hosted API (slower than the locally-run models) and reports a different
314
+ set of affinity metrics than Boltz-2 (see `AffinityScore`).
293
315
  :param folder_uuid: UUID of the folder to store the workflow in.
294
316
  :param folder: Folder object to store the workflow in.
295
317
  :param max_credits: Maximum number of credits to use for the workflow.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 3.1.0
3
+ Version: 3.1.1
4
4
  Summary: Rowan Python Library
5
5
  Project-URL: Homepage, https://github.com/rowansci/rowan-client
6
6
  Project-URL: Bug Tracker, https://github.com/rowansci/rowan-client/issues
@@ -32,6 +32,8 @@ The documentation is available [here](https://docs.rowansci.com/python-api).
32
32
 
33
33
  Ships with a [skill](skills/computational-chemistry-and-biology/) that makes it easy for coding agents to use Rowan's tools to power chemistry and biology tasks. To use it, copy the directory into your agent's skills folder.
34
34
 
35
+ Download the latest skill as a zip [here](https://github.com/rowansci/rowan-python/releases/download/skill-latest/computational-chemistry-and-biology-skill.zip), then unzip it into your agent's skills folder.
36
+
35
37
  ## Running examples
36
38
 
37
39
  To run the examples, you will need to set your ROWAN_API_KEY environment variable or set it directly in the script.
@@ -38,7 +38,7 @@ rowan/workflows/pka.py,sha256=xQPaOHxPQqCY_zi97LW9brpXPn3xjyeF9RDE1Rz8HQk,8772
38
38
  rowan/workflows/pocket_detection.py,sha256=aGHY0puxekp4c4nsNYHcvKCe1fsetygL04BcSvNFvE8,3864
39
39
  rowan/workflows/pose_analysis_md.py,sha256=XJIfvn-H7GA6lVtw9uKjlgznVSSsr9bJiDt_PjKlPbA,11572
40
40
  rowan/workflows/protein_binder_design.py,sha256=pgywTQDuXHplZYka-61_S6CC4WTPDCwJrbupp825eC4,9281
41
- rowan/workflows/protein_cofolding.py,sha256=Hp0A7nP5svMak1jITXUydGWZRMazBF3xnkwal2I66As,14611
41
+ rowan/workflows/protein_cofolding.py,sha256=CV13VUHC0NLDDaS1-GGTQ3RySkzEE30xzu1_4oPu6lo,16239
42
42
  rowan/workflows/protein_md.py,sha256=41S-GIHP91ahW5mIVxjAkpZbxept98IgausM5JoeckA,9276
43
43
  rowan/workflows/rbfe_graph.py,sha256=LcVu3nFGZ5NTSdeojb-DeRfwEDh3gBTRkVF_jOrzVtQ,5893
44
44
  rowan/workflows/redox_potential.py,sha256=bBeT1K9XGVpjCFZeeuv7Vtr3EYHN2okJ4LqYc3gMV04,5427
@@ -49,7 +49,7 @@ rowan/workflows/solvent_dependent_conformers.py,sha256=Z2xESmcM8WcTsR2TSTUa--Rrh
49
49
  rowan/workflows/spin_states.py,sha256=rjkgie2-XVNIN7O6P93yn6EPv9Ogjy8iTj3ufZIsUgY,9331
50
50
  rowan/workflows/strain.py,sha256=kCW_BlX__sdQG1JVbFZuB-57rkpnxa_JCw3h4uKdGDk,6425
51
51
  rowan/workflows/tautomer_search.py,sha256=mbRl0ZJ7wibueRF8c8_idhXJ1rtwg7LBt--5QwQ_Cck,5767
52
- rowan_python-3.1.0.dist-info/METADATA,sha256=IR_vmRm6QdxoIbOMiHZgl3SGtkS-VQR7vh6_AioBNX0,1842
53
- rowan_python-3.1.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
54
- rowan_python-3.1.0.dist-info/licenses/LICENSE,sha256=i05z7xEhyrg6f8j0lR3XYjShnF-MJGFQ-DnpsZ8yiVI,1084
55
- rowan_python-3.1.0.dist-info/RECORD,,
52
+ rowan_python-3.1.1.dist-info/METADATA,sha256=BJ6RevJYUsM7A5ivp7ahR7S9CUG91fcVqRJXEFP89QM,2052
53
+ rowan_python-3.1.1.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
54
+ rowan_python-3.1.1.dist-info/licenses/LICENSE,sha256=i05z7xEhyrg6f8j0lR3XYjShnF-MJGFQ-DnpsZ8yiVI,1084
55
+ rowan_python-3.1.1.dist-info/RECORD,,