OpenProtein.AI Python Interfaceは、タンパク質分析とモデリングに関連するさまざまなタスクを可能にするOpenPropein.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) | 詩人、 de novoスコアリングのためのタンパク質LLM、およびシーケンス生成をカバーします。 |
| 5 | Protein Language Models & Embeddings | 独自およびオープンソースモデルを使用したシーケンス埋め込みを作成する方法をカバーしています。 |
クイックスタートREADMEを始めましょう!詳細については、公式ドキュメントを熟読できます!
PIPを使用してPythonインターフェイスをインストールするには、次のコマンドを実行します。
pip install openprotein-python
またはコンドラと:
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()
私たちのホームページで詳細をご覧ください