Skip to content

Commit 9872fe5

Browse files
committed
Release v0.8.1
make single sequence mode be applied on a per protein
1 parent a1c00b9 commit 9872fe5

File tree

2 files changed

+12
-22
lines changed

2 files changed

+12
-22
lines changed

openprotein/fold/boltz.py

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def fold(
111111
Parameters
112112
----------
113113
proteins : List[Protein] | MSAFuture | None
114-
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, unless `force_single_sequence_mode` is true. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
114+
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, which can be a `Protein.single_sequence_mode` for single sequence mode. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
115115
dna : List[DNA] | None
116116
List of DNA sequences to include in folded output.
117117
rna : List[RNA] | None
@@ -128,8 +128,6 @@ def fold(
128128
Scaling factor for diffusion steps.
129129
constraints : Optional[List[dict]]
130130
List of constraints.
131-
force_single_sequence_mode: bool
132-
Force the use of single sequence mode. Needed if providing protein sequences without MSA.
133131
134132
Returns
135133
-------
@@ -189,9 +187,9 @@ def fold(
189187
for protein in proteins or []:
190188
# check the msa
191189
msa = protein.msa
192-
if msa == None and not force_single_sequence_mode:
190+
if msa is None:
193191
raise ValueError(
194-
"Expected all protein sequences to have `.msa` set or explicitly use `force_single_sequence_mode`"
192+
"Expected all protein sequences to have `.msa` set with an `MSAFuture` or `Protein.single_sequence_mode` for single sequence mode."
195193
)
196194
# convert to msa id or null for single sequence mode
197195
msa_id = (
@@ -286,7 +284,6 @@ def fold(
286284
constraints: list[dict] | None = None,
287285
templates: list[dict] | None = None,
288286
properties: list[dict] | None = None,
289-
force_single_sequence_mode: bool = False,
290287
method: str | None = None,
291288
) -> FoldComplexResultFuture:
292289
"""
@@ -295,7 +292,7 @@ def fold(
295292
Parameters
296293
----------
297294
proteins : List[Protein] | MSAFuture | None
298-
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, unless `force_single_sequence_mode` is true. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
295+
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, which can be a `Protein.single_sequence_mode` for single sequence mode. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
299296
dna : List[DNA] | None
300297
List of DNA sequences to include in folded output.
301298
rna : List[RNA] | None
@@ -318,8 +315,6 @@ def fold(
318315
List of templates to use for structure prediction.
319316
properties: list[dict] | None = None
320317
List of additional properties to predict. Should match the `BoltzProperties`
321-
force_single_sequence_mode: bool
322-
Force the use of single sequence mode. Needed if providing protein sequences without MSA.
323318
method: str | None
324319
The experimental method or supervision source used for the prediction. Defults to None.
325320
Supported values (case-insensitive) include:
@@ -373,7 +368,6 @@ def fold(
373368
constraints=constraints,
374369
templates=templates,
375370
properties=properties,
376-
force_single_sequence_mode=force_single_sequence_mode,
377371
method=method,
378372
)
379373

@@ -396,15 +390,14 @@ def fold(
396390
sampling_steps: int = 200,
397391
step_scale: float = 1.638,
398392
constraints: list[dict] | None = None,
399-
force_single_sequence_mode: bool = False,
400393
) -> FoldComplexResultFuture:
401394
"""
402395
Post sequences to Boltz-1x model. Uses potentials with Boltz-1 model.
403396
404397
Parameters
405398
----------
406399
proteins : List[Protein] | MSAFuture | None
407-
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, unless `force_single_sequence_mode` is true. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
400+
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, which can be a `Protein.single_sequence_mode` for single sequence mode. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
408401
dna : List[DNA] | None
409402
List of DNA sequences to include in folded output.
410403
rna : List[RNA] | None
@@ -421,8 +414,6 @@ def fold(
421414
Scaling factor for diffusion steps.
422415
constraints : Optional[List[dict]]
423416
List of constraints.
424-
force_single_sequence_mode: bool
425-
Force the use of single sequence mode. Needed if providing protein sequences without MSA.
426417
427418
Returns
428419
-------
@@ -441,7 +432,6 @@ def fold(
441432
step_scale=step_scale,
442433
use_potentials=True,
443434
constraints=constraints,
444-
force_single_sequence_mode=force_single_sequence_mode,
445435
)
446436

447437

@@ -464,15 +454,14 @@ def fold(
464454
step_scale: float = 1.638,
465455
use_potentials: bool = False,
466456
constraints: list[dict] | None = None,
467-
force_single_sequence_mode: bool = False,
468457
) -> FoldComplexResultFuture:
469458
"""
470459
Post sequences to Boltz-1 model.
471460
472461
Parameters
473462
----------
474463
proteins : List[Protein] | MSAFuture | None
475-
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, unless `force_single_sequence_mode` is true. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
464+
List of protein sequences to include in folded output. `Protein` objects must be tagged with an `msa`, which can be a `Protein.single_sequence_mode` for single sequence mode. Alternatively, supply an `MSAFuture` to use all query sequences as a multimer.
476465
dna : List[DNA] | None
477466
List of DNA sequences to include in folded output.
478467
rna : List[RNA] | None
@@ -491,8 +480,6 @@ def fold(
491480
Whether or not to use potentials.
492481
constraints : Optional[List[dict]]
493482
List of constraints.
494-
force_single_sequence_mode: bool
495-
Force the use of single sequence mode. Needed if providing protein sequences without MSA.
496483
497484
Returns
498485
-------
@@ -511,7 +498,6 @@ def fold(
511498
step_scale=step_scale,
512499
use_potentials=use_potentials,
513500
constraints=constraints,
514-
force_single_sequence_mode=force_single_sequence_mode,
515501
)
516502

517503

openprotein/protein.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,16 @@ def cyclic(self) -> bool:
193193
def cyclic(self, cyclic: bool) -> None:
194194
self._tags["cyclic"] = cyclic
195195

196+
class NullMSA: ...
197+
198+
single_sequence_mode = NullMSA
199+
196200
@property
197-
def msa(self) -> "str | MSAFuture | None":
201+
def msa(self) -> "str | MSAFuture | None | NullMSA":
198202
return self._tags.get("msa")
199203

200204
@msa.setter
201-
def msa(self, msa: "str | MSAFuture | None") -> None:
205+
def msa(self, msa: "str | MSAFuture | None | NullMSA") -> None:
202206
self._tags["msa"] = msa
203207

204208
def __len__(self):

0 commit comments

Comments
 (0)