openprotein python
v0.6.1
OpenProtein.ai Python接口提供了一個用戶友好的庫來與OpenProtein.ai Rest API進行交互,從而實現了與蛋白質分析和建模有關的各種任務。
| 工作流程 | 描述 | |
|---|---|---|
| 0 | Quick start | 快速啟動指南 |
| 1 | Installation | 安裝PIP和CONDA指南。 |
| 2 | Session management | OpenProtein Python客戶端和異步作業系統的概述。 |
| 3 | Asssay-based Sequence Learning | 涵蓋核心任務,例如數據上傳,模型培訓和預測以及序列設計。 |
| 4 | De Novo prediction & generative models (PoET) | 涵蓋了詩人,這是一種用於從頭評分的蛋白質LLM,以及序列產生。 |
| 5 | Protein Language Models & Embeddings | 涵蓋使用專有和開源模型創建序列嵌入的方法。 |
開始我們的Quickstart Readme!您可以仔細閱讀官方文檔以獲取更多詳細信息!
要使用PIP安裝Python接口,請運行以下命令:
pip install openprotein-python
或與Conda:
conda install -c openprotein openprotein-python
在下面閱讀以獲取快速啟動指南,或查看文檔以獲取更多信息!
首先,使用您的登錄憑據創建會話。
import openprotein
# replace USERNAME and PASSWORD with your actual login credentials
session = openprotein.connect(USERNAME, PASSWORD)
該接口提供異步AsyncJobFuture對象,可以在準備就緒時跟踪工作狀態和結果檢索。鑑於未來,您可以檢查其狀態並檢索結果。
使用以下方法檢查AsyncJobFuture的狀態:
future.refresh() # call the backend to update the job status
future.done() # returns True if the job is done, meaning the status could be SUCCESS, FAILED, or CANCELLED
作業完成後,使用以下方法檢索結果:
result = future.wait() # wait until done and then fetch results
#verbosity is controlled with verbose arg
result = future.get(verbose=True) # get the result from a finished job
要查看與每個會話相關的所有作業,請使用以下方法,提供一個選項,以按日期,作業類型或狀態過濾結果。
session.jobs.list()
有關特定作業的詳細信息,請使用以下命令與相應的作業ID:
session.jobs.get(JOB_ID) # Replace JOB_ID with the ID of the specific job to be retrieved
可以使用每個API提供的LOAD_JOB方法恢復先前工作流的作業。
session.load_job(JOB_ID) # Replace JOB_ID with the ID of the training job to resume
詩人界面允許使用詩人模型進行評分,生成和檢索序列。
要得分序列,請使用分數函數。提供及時的查詢列表。結果將是(序列,得分)pydantic對象的列表。
prompt_seqs = b'MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN'
prompt = session.poet.upload_prompt(prompt_seqs)
queries = [
b'MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN',
b'MALWMRLLPLLVLLALWGPDPASAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN',
b'MALWTRLRPLLALLALWPPPPARAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEGPQVGALELAGGPGAGGLEGPPQKRGIVEQCCASVCSLYQLENYCN',
b'MALWIRSLPLLALLVFSGPGTSYAAANQHLCGSHLVEALYLVCGERGFFYSPKARRDVEQPLVSSPLRGEAGVLPFQQEEYEKVKRGIVEQCCHNTCSLYQLENYCN',
b'MALWMRLLPLLALLALWAPAPTRAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEDLQVRDVELAGAPGEGGLQPLALEGALQKRGIVEQCCTSICSLYQLENYCN',
]
future = session.poet.score(prompt, queries)
result = future.wait()
# result is a list of (sequence, score) pydantic objects
對於評分單個站點變體,請使用single_site function ,如果提示為種子序列,則將原始序列和設置prompt_is_seed為true。
sequence = "MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN"
future = session.poet.single_site(prompt, sequence, prompt_is_seed=True)
result = future.wait()
# result is a dictionary of {variant: score}
要從詩人模型中生成序列,請使用與相關參數的generate函數。結果將是生成的樣品列表。
future = session.poet.generate(
prompt,
max_seqs_from_msa=1024,
num_samples=100,
temperature=1.0,
topk=15
)
samples = future.wait()
您可以使用get_input函數或每種類型的單個功能檢索詩人作業的提示,MSA或種子序列。
future.get_input(INPUT_TYPE)
# or, functions for each type
future.get_prompt()
future.get_msa()
future.get_seed()
在我們的主頁上查看更多