Skip to main content

PyPI version Coverage Conda version

openprotein-python

The OpenProtein.AI Python Interface provides a user-friendly library to interact with the OpenProtein.AI REST API, enabling various tasks related to protein analysis and modeling.

Table of Contents

Workflow Description
0 Quick start Quick start guide
1 Installation Install guide for pip and conda.
2 Session management An overview of the OpenProtein Python Client & the asynchronous jobs system.
3 Property-Regression-Models Covers core tasks such as data upload, model training & prediction, and sequence design.
4 De Novo prediction & generative models (PoET) Covers PoET, a protein LLM for de novo scoring, as well as sequence generation.
5 Foundational models Covers methods for creating sequence embeddings with proprietary & open-source models.

Quick-start

Get started with our quickstart README! You can peruse the official documentation for more details!

Installation

To install the python interface using pip, run the following command:

pip install openprotein-python

or with conda:

conda install -c openprotein openprotein-python

Requirements

  • Python 3.10 or higher.
  • Other dependencies as in pyproject.toml

Getting started

Read on below for the quick-start guide, or see the docs for more information!

To begin, create a session using your login credentials.

import openprotein

# replace USERNAME and PASSWORD with your actual login credentials
session = openprotein.connect(USERNAME, PASSWORD)

Job Status

The interface offers Future objects for asynchronous calls, allowing tracking of job status and result retrieval when ready. Given a future, you can check its status and retrieve results.

Checking Job Status

Check the status of an Future using the following methods:

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

Retrieving Job Results

Once the job has finished, retrieve the results using the following methods:

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

Jobs Interface

Listing Jobs

To view all jobs associated with each session, the following method is available, providing an option to filter results by date, job type, or status.

session.jobs.list() 

Retrieving Specific Job

For detailed information about a particular job, use the following command with the corresponding job ID:

session.jobs.get(JOB_ID)  # Replace JOB_ID with the ID of the specific job to be retrieved

Resuming Jobs

Jobs from prior workflows can be resumed using the load_job method provided by each API.

session.load_job(JOB_ID)  # Replace JOB_ID with the ID of the training job to resume

PoET interface

The PoET Interface allows scoring, generating, and retrieving sequences using the PoET model.

Scoring Sequences

To score sequences, use the score function. Provide a prompt and a list of queries. The results will be a list of (sequence, score) pydantic objects.

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

Scoring Single Site Variants

For scoring single site variants, use the single_site function, providing the original sequence and setting prompt_is_seed to True if the prompt is a seed sequence.

sequence = "MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN"
future = session.poet.single_site(prompt, sequence, prompt_is_seed=True) 
result = future.wait()
# result is a dictionary of {variant: score}

Generating Sequences

To generate sequences from the PoET model, use the generate function with relevant parameters. The result will be a list of generated samples.

future = session.poet.generate(
    prompt,
    max_seqs_from_msa=1024,
    num_samples=100,
    temperature=1.0,
    topk=15
)
samples = future.wait()

Retrieving Input Sequences

You can retrieve the prompt, MSA, or seed sequences for a PoET job using the get_input function or the individual functions for each type.

future.get_input(INPUT_TYPE)
# or, functions for each type
future.get_prompt()
future.get_msa()
future.get_seed()

See more at our Homepage

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openprotein_python-0.16.1.tar.gz (128.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openprotein_python-0.16.1-py3-none-any.whl (184.0 kB view details)

Uploaded Python 3

File details

Details for the file openprotein_python-0.16.1.tar.gz.

File metadata

  • Download URL: openprotein_python-0.16.1.tar.gz
  • Upload date:
  • Size: 128.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for openprotein_python-0.16.1.tar.gz
Algorithm Hash digest
SHA256 849da9543b2024afb5ec300c81177dad881d8a04947dab83c26db04ea786676f
MD5 1af8fdf3fba1bf4758cdd854fd8f1d2c
BLAKE2b-256 d9b0f18098ba014f6b320278c0ba797a47be7caf3825e703caf14a1cd1880a93

See more details on using hashes here.

Provenance

The following attestation bundles were made for openprotein_python-0.16.1.tar.gz:

Publisher: release-publish.yml on OpenProteinAI/openprotein-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openprotein_python-0.16.1-py3-none-any.whl.

File metadata

File hashes

Hashes for openprotein_python-0.16.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aaeb27ffcc9bbac5fffe2e9a91c5eb67fdaedcc71f44c9c102220de5e13879d7
MD5 31b0b6dca85343affd44c45fdc6aeaa1
BLAKE2b-256 f7a08224a426478a5533eef82f6deffd14100a3d6c3516ece77b731550095559

See more details on using hashes here.

Provenance

The following attestation bundles were made for openprotein_python-0.16.1-py3-none-any.whl:

Publisher: release-publish.yml on OpenProteinAI/openprotein-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page