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()
在我们的主页上查看更多