[docs]classUMAPModel(Future):""" Class providing embedding endpoint for UMAP models. \ Also allows retrieving embeddings of sequences used to fit the UMAP with `get`. Implements a Future to allow waiting for a fit job. """job:UMAPFitJob
[docs]def__init__(self,session:APISession,job:UMAPFitJob|None=None,metadata:UMAPMetadata|None=None,):"""Initializes with either job get or umap metadata get."""ifmetadataisNone:# use job to fetch metadataifjobisNone:raiseValueError("Expected umap metadata or job")metadata=umap.umap_get(session,job.job_id)self._metadata=metadataifjobisNone:job=UMAPFitJob.create(job_api.job_get(session=session,job_id=metadata.id))self._sequences=Noneself._embeddings=None# getter initializes job if not providedsuper().__init__(session,job)
[docs]defget_inputs(self)->list[bytes]:""" Get sequences used for umap job. Returns ------- List[bytes]: list of sequences """returnumap.umap_get_sequences(session=self.session,umap_id=self.id)
[docs]defembed(self,sequences:list[bytes]|list[str],**kwargs)->EmbeddingsResultFuture:""" Use this UMAP model to get reduced embeddings from input sequences. Parameters ---------- sequences : List[bytes] List of protein sequences. Returns ------- EmbeddingResultFuture Class for further job manipulation. """returnEmbeddingsResultFuture.create(session=self.session,job=umap.umap_embed_post(session=self.session,umap_id=self.id,sequences=sequences,**kwargs),sequences=sequences,)
classUMAPEmbeddingResultFuture(EmbeddingsResultFuture,Future):"""Future for manipulating results for embeddings-related requests."""job:UMAPEmbeddingsJob