Source code for openprotein.app.models.fold.esmfold
from collections.abc import Sequence
from openprotein.api import fold
from .base import FoldModel
from .future import FoldResultFuture
[docs]
class ESMFoldModel(FoldModel):
model_id = "esmfold"
[docs]
def __init__(self, session, model_id, metadata=None):
super().__init__(session, model_id, metadata)
self.id = self.model_id
[docs]
def fold(
self, sequences: Sequence[bytes | str], num_recycles: int | None = None
) -> FoldResultFuture:
"""
Fold sequences using this model.
Parameters
----------
sequences : Sequence[bytes | str]
sequences to fold
num_recycles : int | None
number of times to recycle models
Returns
-------
FoldResultFuture
"""
return FoldResultFuture.create(
session=self.session,
job=fold.fold_models_esmfold_post(
self.session, sequences, num_recycles=num_recycles
),
)