biolmai 0.2.2__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of biolmai might be problematic. Click here for more details.
- biolmai-0.2.4/PKG-INFO +134 -0
- biolmai-0.2.4/README.rst +95 -0
- biolmai-0.2.4/biolmai/__init__.py +24 -0
- biolmai-0.2.4/biolmai.egg-info/PKG-INFO +134 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai.egg-info/SOURCES.txt +0 -34
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/conf.py +103 -3
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/index.rst +0 -16
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/api_biolm.rst +3 -3
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/async_sync.rst +6 -6
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/batching.rst +9 -9
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/disk_output.rst +2 -2
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/error_handling.rst +7 -7
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/quickstart.rst +4 -4
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/usage.rst +6 -6
- {biolmai-0.2.2 → biolmai-0.2.4}/pyproject.toml +1 -1
- {biolmai-0.2.2 → biolmai-0.2.4}/setup.cfg +1 -1
- {biolmai-0.2.2 → biolmai-0.2.4}/setup.py +1 -1
- biolmai-0.2.2/PKG-INFO +0 -76
- biolmai-0.2.2/README.rst +0 -37
- biolmai-0.2.2/biolmai/__init__.py +0 -10
- biolmai-0.2.2/biolmai.egg-info/PKG-INFO +0 -76
- biolmai-0.2.2/docs/model-docs/ablang/AbLang_API.rst +0 -200
- biolmai-0.2.2/docs/model-docs/ablang/AbLang_Additional.rst +0 -94
- biolmai-0.2.2/docs/model-docs/ablang/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/biolmtox/BioLMTox_API.rst +0 -293
- biolmai-0.2.2/docs/model-docs/biolmtox/BioLMTox_Additional.rst +0 -62
- biolmai-0.2.2/docs/model-docs/biolmtox/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/dnabert/DNABERT_Additional.rst +0 -59
- biolmai-0.2.2/docs/model-docs/dnabert/classifier_ft.rst +0 -607
- biolmai-0.2.2/docs/model-docs/dnabert/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/esm1v/ESM-1v_API.rst +0 -196
- biolmai-0.2.2/docs/model-docs/esm1v/ESM-1v_Additional.rst +0 -89
- biolmai-0.2.2/docs/model-docs/esm1v/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/esm2/ESM2_API.rst +0 -450
- biolmai-0.2.2/docs/model-docs/esm2/ESM2_Additional.rst +0 -99
- biolmai-0.2.2/docs/model-docs/esm2/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/esmfold/ESMFold_API.rst +0 -166
- biolmai-0.2.2/docs/model-docs/esmfold/ESMFold_Additional.rst +0 -108
- biolmai-0.2.2/docs/model-docs/esmfold/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/esmif/ESM_InverseFold_API.rst +0 -212
- biolmai-0.2.2/docs/model-docs/esmif/ESM_InverseFold_Additional.rst +0 -104
- biolmai-0.2.2/docs/model-docs/esmif/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/finetuning/index.rst +0 -11
- biolmai-0.2.2/docs/model-docs/img/book_icon.png +0 -0
- biolmai-0.2.2/docs/model-docs/img/esmfold_perf.png +0 -0
- biolmai-0.2.2/docs/model-docs/index.rst +0 -13
- biolmai-0.2.2/docs/model-docs/progen2/ProGen2_API.rst +0 -222
- biolmai-0.2.2/docs/model-docs/progen2/ProGen2_Additional.rst +0 -70
- biolmai-0.2.2/docs/model-docs/progen2/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/proteinfer/ProteInfer_API.rst +0 -181
- biolmai-0.2.2/docs/model-docs/proteinfer/ProteInfer_Additional.rst +0 -92
- biolmai-0.2.2/docs/model-docs/proteinfer/index.rst +0 -10
- biolmai-0.2.2/docs/model-docs/protgpt2/ProtGPT2.rst +0 -75
- biolmai-0.2.2/docs/model-docs/protgpt2/generator_ft.rst +0 -573
- biolmai-0.2.2/docs/model-docs/protgpt2/index.rst +0 -10
- {biolmai-0.2.2 → biolmai-0.2.4}/AUTHORS.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/CONTRIBUTING.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/HISTORY.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/LICENSE +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/MANIFEST.in +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/api.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/asynch.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/auth.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/biolmai.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/cli.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/client.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/cls.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/const.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/ltc.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/payloads.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai/validate.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai.egg-info/dependency_links.txt +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai.egg-info/entry_points.txt +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai.egg-info/not-zip-safe +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai.egg-info/requires.txt +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/biolmai.egg-info/top_level.txt +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/Makefile +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/api_reference_icon.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/biolm_docs_logo_dark.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/biolm_docs_logo_light.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/biolm_logomark_transparent.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/biolm_logomark_transparent_for_dark.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/chat_agents_icon.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/jupyter_notebooks_icon.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/model_docs_icon.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/python_sdk_icon.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/_static/tutorials_icon.png +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/biolmai.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/make.bat +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/modules.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/api_client.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/authentication.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/faq.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/features.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/index.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/installation.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/overview.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/python-client/rate_limiting.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/docs/tutorials_use_cases/notebooks.rst +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/__init__.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_abatch_calls.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_aclient.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_batch_error_retry.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_batch_errors.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_biolmai.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_client.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_max_items.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_rate_limit.py +0 -0
- {biolmai-0.2.2 → biolmai-0.2.4}/tests/test_schemas.py +0 -0
biolmai-0.2.4/PKG-INFO
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: biolmai
|
|
3
|
+
Version: 0.2.4
|
|
4
|
+
Summary: BioLM Python client
|
|
5
|
+
Home-page: https://github.com/BioLM/py-biolm
|
|
6
|
+
Author: BioLM
|
|
7
|
+
Author-email: BioLM <support@biolm.ai>
|
|
8
|
+
License: Apache Software License 2.0
|
|
9
|
+
Keywords: biolmai
|
|
10
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
+
Classifier: Natural Language :: English
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Requires-Python: >=3.7
|
|
22
|
+
Description-Content-Type: text/x-rst
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
License-File: AUTHORS.rst
|
|
25
|
+
Requires-Dist: httpx>=0.23.0
|
|
26
|
+
Requires-Dist: httpcore
|
|
27
|
+
Requires-Dist: Click>=6.0
|
|
28
|
+
Requires-Dist: requests
|
|
29
|
+
Requires-Dist: aiodns
|
|
30
|
+
Requires-Dist: synchronicity>=0.5.0
|
|
31
|
+
Requires-Dist: aiohttp<=3.8.6; python_version < "3.12"
|
|
32
|
+
Requires-Dist: aiohttp>=3.9.0; python_version >= "3.12"
|
|
33
|
+
Requires-Dist: async-lru
|
|
34
|
+
Requires-Dist: aiofiles
|
|
35
|
+
Dynamic: author
|
|
36
|
+
Dynamic: home-page
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
Dynamic: requires-python
|
|
39
|
+
|
|
40
|
+
========
|
|
41
|
+
BioLM AI
|
|
42
|
+
========
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
.. image:: https://img.shields.io/pypi/v/biolmai.svg
|
|
46
|
+
:target: https://pypi.python.org/pypi/biolmai
|
|
47
|
+
|
|
48
|
+
.. image:: https://api.travis-ci.com/BioLM/py-biolm.svg?branch=production
|
|
49
|
+
:target: https://travis-ci.org/github/BioLM/py-biolm
|
|
50
|
+
|
|
51
|
+
.. image:: https://readthedocs.org/projects/biolm-ai/badge/?version=latest
|
|
52
|
+
:target: https://biolm-ai.readthedocs.io/en/latest/?version=latest
|
|
53
|
+
:alt: Documentation Status
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Python client and SDK for `BioLM <https://biolm.ai>`_
|
|
59
|
+
|
|
60
|
+
Install the package:
|
|
61
|
+
|
|
62
|
+
.. code-block:: bash
|
|
63
|
+
|
|
64
|
+
pip install biolmai
|
|
65
|
+
|
|
66
|
+
Basic usage:
|
|
67
|
+
|
|
68
|
+
.. code-block:: python
|
|
69
|
+
|
|
70
|
+
from biolmai import biolm
|
|
71
|
+
|
|
72
|
+
# Encode a single sequence
|
|
73
|
+
result = biolm(entity="esm2-8m", action="encode", type="sequence", items="MSILVTRPSPAGEEL")
|
|
74
|
+
|
|
75
|
+
# Predict a batch of sequences
|
|
76
|
+
result = biolm(entity="esmfold", action="predict", type="sequence", items=["SEQ1", "SEQ2"])
|
|
77
|
+
|
|
78
|
+
# Write results to disk
|
|
79
|
+
biolm(entity="esmfold", action="predict", type="sequence", items=["SEQ1", "SEQ2"], output='disk', file_path="results.jsonl")
|
|
80
|
+
|
|
81
|
+
Asynchronous usage:
|
|
82
|
+
|
|
83
|
+
.. code-block:: python
|
|
84
|
+
|
|
85
|
+
from biolmai.client import BioLMApiClient
|
|
86
|
+
import asyncio
|
|
87
|
+
|
|
88
|
+
async def main():
|
|
89
|
+
model = BioLMApiClient("esmfold")
|
|
90
|
+
result = await model.predict(items=[{"sequence": "MDNELE"}])
|
|
91
|
+
print(result)
|
|
92
|
+
|
|
93
|
+
asyncio.run(main())
|
|
94
|
+
|
|
95
|
+
Overview
|
|
96
|
+
========
|
|
97
|
+
|
|
98
|
+
The BioLM Python client provides a high-level, user-friendly interface for interacting with the BioLM API. It supports both synchronous and asynchronous usage, automatic batching, flexible error handling, and efficient processing of biological data.
|
|
99
|
+
|
|
100
|
+
Main features:
|
|
101
|
+
|
|
102
|
+
- High-level BioLM constructor for quick requests
|
|
103
|
+
- Sync and async interfaces
|
|
104
|
+
- Automatic or custom rate limiting/throttling
|
|
105
|
+
- Schema-based batch size detection
|
|
106
|
+
- Flexible input formats (single key + list, or list of dicts)
|
|
107
|
+
- Low memory usage via generators
|
|
108
|
+
- Flexible error handling (raise, continue, or stop on error)
|
|
109
|
+
- Universal HTTP client for both sync and async
|
|
110
|
+
|
|
111
|
+
Features
|
|
112
|
+
========
|
|
113
|
+
|
|
114
|
+
- **High-level constructor**: Instantly run an API call with a single line.
|
|
115
|
+
- **Sync and async**: Use `BioLM` for sync, or `BioLMApiClient` for async.
|
|
116
|
+
- **Flexible rate limiting**: Use API throttle, disable, or set your own (e.g., '1000/second').
|
|
117
|
+
- **Schema-based batching**: Automatically queries API for max batch size.
|
|
118
|
+
- **Flexible input**: Accepts a single key and list, or list of dicts, or list of lists for advanced batching.
|
|
119
|
+
- **Low memory**: Uses generators for validation and batching.
|
|
120
|
+
- **Error handling**: Raise HTTPX errors, continue on error, or stop on first error.
|
|
121
|
+
- **Disk output**: Write results as JSONL to disk.
|
|
122
|
+
- **Universal HTTP client**: Efficient for both sync and async.
|
|
123
|
+
- **Direct access to schema and batching**: Use `BioLMApi` for advanced workflows, including `.schema()`, `.call()`, and `._batch_call_autoschema_or_manual()`.
|
|
124
|
+
|
|
125
|
+
**Example endpoints and actions:**
|
|
126
|
+
|
|
127
|
+
- `esm2-8m/encode`: Embedding for protein sequences.
|
|
128
|
+
- `esmfold/predict`: Structure prediction for protein sequences.
|
|
129
|
+
- `progen2-oas/generate`: Sequence generation from a context string.
|
|
130
|
+
- `dnabert2/predict`: Masked prediction for protein sequences.
|
|
131
|
+
- `ablang2/encode`: Embeddings for paired-chain antibodies.
|
|
132
|
+
|
|
133
|
+
* Free software: Apache Software License 2.0
|
|
134
|
+
* Documentation: https://docs.biolm.ai
|
biolmai-0.2.4/README.rst
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
========
|
|
2
|
+
BioLM AI
|
|
3
|
+
========
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
.. image:: https://img.shields.io/pypi/v/biolmai.svg
|
|
7
|
+
:target: https://pypi.python.org/pypi/biolmai
|
|
8
|
+
|
|
9
|
+
.. image:: https://api.travis-ci.com/BioLM/py-biolm.svg?branch=production
|
|
10
|
+
:target: https://travis-ci.org/github/BioLM/py-biolm
|
|
11
|
+
|
|
12
|
+
.. image:: https://readthedocs.org/projects/biolm-ai/badge/?version=latest
|
|
13
|
+
:target: https://biolm-ai.readthedocs.io/en/latest/?version=latest
|
|
14
|
+
:alt: Documentation Status
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Python client and SDK for `BioLM <https://biolm.ai>`_
|
|
20
|
+
|
|
21
|
+
Install the package:
|
|
22
|
+
|
|
23
|
+
.. code-block:: bash
|
|
24
|
+
|
|
25
|
+
pip install biolmai
|
|
26
|
+
|
|
27
|
+
Basic usage:
|
|
28
|
+
|
|
29
|
+
.. code-block:: python
|
|
30
|
+
|
|
31
|
+
from biolmai import biolm
|
|
32
|
+
|
|
33
|
+
# Encode a single sequence
|
|
34
|
+
result = biolm(entity="esm2-8m", action="encode", type="sequence", items="MSILVTRPSPAGEEL")
|
|
35
|
+
|
|
36
|
+
# Predict a batch of sequences
|
|
37
|
+
result = biolm(entity="esmfold", action="predict", type="sequence", items=["SEQ1", "SEQ2"])
|
|
38
|
+
|
|
39
|
+
# Write results to disk
|
|
40
|
+
biolm(entity="esmfold", action="predict", type="sequence", items=["SEQ1", "SEQ2"], output='disk', file_path="results.jsonl")
|
|
41
|
+
|
|
42
|
+
Asynchronous usage:
|
|
43
|
+
|
|
44
|
+
.. code-block:: python
|
|
45
|
+
|
|
46
|
+
from biolmai.client import BioLMApiClient
|
|
47
|
+
import asyncio
|
|
48
|
+
|
|
49
|
+
async def main():
|
|
50
|
+
model = BioLMApiClient("esmfold")
|
|
51
|
+
result = await model.predict(items=[{"sequence": "MDNELE"}])
|
|
52
|
+
print(result)
|
|
53
|
+
|
|
54
|
+
asyncio.run(main())
|
|
55
|
+
|
|
56
|
+
Overview
|
|
57
|
+
========
|
|
58
|
+
|
|
59
|
+
The BioLM Python client provides a high-level, user-friendly interface for interacting with the BioLM API. It supports both synchronous and asynchronous usage, automatic batching, flexible error handling, and efficient processing of biological data.
|
|
60
|
+
|
|
61
|
+
Main features:
|
|
62
|
+
|
|
63
|
+
- High-level BioLM constructor for quick requests
|
|
64
|
+
- Sync and async interfaces
|
|
65
|
+
- Automatic or custom rate limiting/throttling
|
|
66
|
+
- Schema-based batch size detection
|
|
67
|
+
- Flexible input formats (single key + list, or list of dicts)
|
|
68
|
+
- Low memory usage via generators
|
|
69
|
+
- Flexible error handling (raise, continue, or stop on error)
|
|
70
|
+
- Universal HTTP client for both sync and async
|
|
71
|
+
|
|
72
|
+
Features
|
|
73
|
+
========
|
|
74
|
+
|
|
75
|
+
- **High-level constructor**: Instantly run an API call with a single line.
|
|
76
|
+
- **Sync and async**: Use `BioLM` for sync, or `BioLMApiClient` for async.
|
|
77
|
+
- **Flexible rate limiting**: Use API throttle, disable, or set your own (e.g., '1000/second').
|
|
78
|
+
- **Schema-based batching**: Automatically queries API for max batch size.
|
|
79
|
+
- **Flexible input**: Accepts a single key and list, or list of dicts, or list of lists for advanced batching.
|
|
80
|
+
- **Low memory**: Uses generators for validation and batching.
|
|
81
|
+
- **Error handling**: Raise HTTPX errors, continue on error, or stop on first error.
|
|
82
|
+
- **Disk output**: Write results as JSONL to disk.
|
|
83
|
+
- **Universal HTTP client**: Efficient for both sync and async.
|
|
84
|
+
- **Direct access to schema and batching**: Use `BioLMApi` for advanced workflows, including `.schema()`, `.call()`, and `._batch_call_autoschema_or_manual()`.
|
|
85
|
+
|
|
86
|
+
**Example endpoints and actions:**
|
|
87
|
+
|
|
88
|
+
- `esm2-8m/encode`: Embedding for protein sequences.
|
|
89
|
+
- `esmfold/predict`: Structure prediction for protein sequences.
|
|
90
|
+
- `progen2-oas/generate`: Sequence generation from a context string.
|
|
91
|
+
- `dnabert2/predict`: Masked prediction for protein sequences.
|
|
92
|
+
- `ablang2/encode`: Embeddings for paired-chain antibodies.
|
|
93
|
+
|
|
94
|
+
* Free software: Apache Software License 2.0
|
|
95
|
+
* Documentation: https://docs.biolm.ai
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Top-level package for BioLM AI."""
|
|
2
|
+
__author__ = """Nikhil Haas"""
|
|
3
|
+
__email__ = "nikhil@biolm.ai"
|
|
4
|
+
__version__ = '0.2.4'
|
|
5
|
+
|
|
6
|
+
from biolmai.client import BioLMApi, BioLMApiClient
|
|
7
|
+
from biolmai.biolmai import BioLM
|
|
8
|
+
from typing import Optional, Union, List, Any
|
|
9
|
+
|
|
10
|
+
__all__ = ['biolm']
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def biolm(
|
|
14
|
+
*,
|
|
15
|
+
entity: str,
|
|
16
|
+
action: str,
|
|
17
|
+
type: Optional[str] = None,
|
|
18
|
+
items: Union[Any, List[Any]],
|
|
19
|
+
params: Optional[dict] = None,
|
|
20
|
+
api_key: Optional[str] = None,
|
|
21
|
+
**kwargs
|
|
22
|
+
) -> Any:
|
|
23
|
+
"""Top-level convenience function that wraps the BioLM class and returns the result."""
|
|
24
|
+
return BioLM(entity=entity, action=action, type=type, items=items, params=params, api_key=api_key, **kwargs)
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: biolmai
|
|
3
|
+
Version: 0.2.4
|
|
4
|
+
Summary: BioLM Python client
|
|
5
|
+
Home-page: https://github.com/BioLM/py-biolm
|
|
6
|
+
Author: BioLM
|
|
7
|
+
Author-email: BioLM <support@biolm.ai>
|
|
8
|
+
License: Apache Software License 2.0
|
|
9
|
+
Keywords: biolmai
|
|
10
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
+
Classifier: Natural Language :: English
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Requires-Python: >=3.7
|
|
22
|
+
Description-Content-Type: text/x-rst
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
License-File: AUTHORS.rst
|
|
25
|
+
Requires-Dist: httpx>=0.23.0
|
|
26
|
+
Requires-Dist: httpcore
|
|
27
|
+
Requires-Dist: Click>=6.0
|
|
28
|
+
Requires-Dist: requests
|
|
29
|
+
Requires-Dist: aiodns
|
|
30
|
+
Requires-Dist: synchronicity>=0.5.0
|
|
31
|
+
Requires-Dist: aiohttp<=3.8.6; python_version < "3.12"
|
|
32
|
+
Requires-Dist: aiohttp>=3.9.0; python_version >= "3.12"
|
|
33
|
+
Requires-Dist: async-lru
|
|
34
|
+
Requires-Dist: aiofiles
|
|
35
|
+
Dynamic: author
|
|
36
|
+
Dynamic: home-page
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
Dynamic: requires-python
|
|
39
|
+
|
|
40
|
+
========
|
|
41
|
+
BioLM AI
|
|
42
|
+
========
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
.. image:: https://img.shields.io/pypi/v/biolmai.svg
|
|
46
|
+
:target: https://pypi.python.org/pypi/biolmai
|
|
47
|
+
|
|
48
|
+
.. image:: https://api.travis-ci.com/BioLM/py-biolm.svg?branch=production
|
|
49
|
+
:target: https://travis-ci.org/github/BioLM/py-biolm
|
|
50
|
+
|
|
51
|
+
.. image:: https://readthedocs.org/projects/biolm-ai/badge/?version=latest
|
|
52
|
+
:target: https://biolm-ai.readthedocs.io/en/latest/?version=latest
|
|
53
|
+
:alt: Documentation Status
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Python client and SDK for `BioLM <https://biolm.ai>`_
|
|
59
|
+
|
|
60
|
+
Install the package:
|
|
61
|
+
|
|
62
|
+
.. code-block:: bash
|
|
63
|
+
|
|
64
|
+
pip install biolmai
|
|
65
|
+
|
|
66
|
+
Basic usage:
|
|
67
|
+
|
|
68
|
+
.. code-block:: python
|
|
69
|
+
|
|
70
|
+
from biolmai import biolm
|
|
71
|
+
|
|
72
|
+
# Encode a single sequence
|
|
73
|
+
result = biolm(entity="esm2-8m", action="encode", type="sequence", items="MSILVTRPSPAGEEL")
|
|
74
|
+
|
|
75
|
+
# Predict a batch of sequences
|
|
76
|
+
result = biolm(entity="esmfold", action="predict", type="sequence", items=["SEQ1", "SEQ2"])
|
|
77
|
+
|
|
78
|
+
# Write results to disk
|
|
79
|
+
biolm(entity="esmfold", action="predict", type="sequence", items=["SEQ1", "SEQ2"], output='disk', file_path="results.jsonl")
|
|
80
|
+
|
|
81
|
+
Asynchronous usage:
|
|
82
|
+
|
|
83
|
+
.. code-block:: python
|
|
84
|
+
|
|
85
|
+
from biolmai.client import BioLMApiClient
|
|
86
|
+
import asyncio
|
|
87
|
+
|
|
88
|
+
async def main():
|
|
89
|
+
model = BioLMApiClient("esmfold")
|
|
90
|
+
result = await model.predict(items=[{"sequence": "MDNELE"}])
|
|
91
|
+
print(result)
|
|
92
|
+
|
|
93
|
+
asyncio.run(main())
|
|
94
|
+
|
|
95
|
+
Overview
|
|
96
|
+
========
|
|
97
|
+
|
|
98
|
+
The BioLM Python client provides a high-level, user-friendly interface for interacting with the BioLM API. It supports both synchronous and asynchronous usage, automatic batching, flexible error handling, and efficient processing of biological data.
|
|
99
|
+
|
|
100
|
+
Main features:
|
|
101
|
+
|
|
102
|
+
- High-level BioLM constructor for quick requests
|
|
103
|
+
- Sync and async interfaces
|
|
104
|
+
- Automatic or custom rate limiting/throttling
|
|
105
|
+
- Schema-based batch size detection
|
|
106
|
+
- Flexible input formats (single key + list, or list of dicts)
|
|
107
|
+
- Low memory usage via generators
|
|
108
|
+
- Flexible error handling (raise, continue, or stop on error)
|
|
109
|
+
- Universal HTTP client for both sync and async
|
|
110
|
+
|
|
111
|
+
Features
|
|
112
|
+
========
|
|
113
|
+
|
|
114
|
+
- **High-level constructor**: Instantly run an API call with a single line.
|
|
115
|
+
- **Sync and async**: Use `BioLM` for sync, or `BioLMApiClient` for async.
|
|
116
|
+
- **Flexible rate limiting**: Use API throttle, disable, or set your own (e.g., '1000/second').
|
|
117
|
+
- **Schema-based batching**: Automatically queries API for max batch size.
|
|
118
|
+
- **Flexible input**: Accepts a single key and list, or list of dicts, or list of lists for advanced batching.
|
|
119
|
+
- **Low memory**: Uses generators for validation and batching.
|
|
120
|
+
- **Error handling**: Raise HTTPX errors, continue on error, or stop on first error.
|
|
121
|
+
- **Disk output**: Write results as JSONL to disk.
|
|
122
|
+
- **Universal HTTP client**: Efficient for both sync and async.
|
|
123
|
+
- **Direct access to schema and batching**: Use `BioLMApi` for advanced workflows, including `.schema()`, `.call()`, and `._batch_call_autoschema_or_manual()`.
|
|
124
|
+
|
|
125
|
+
**Example endpoints and actions:**
|
|
126
|
+
|
|
127
|
+
- `esm2-8m/encode`: Embedding for protein sequences.
|
|
128
|
+
- `esmfold/predict`: Structure prediction for protein sequences.
|
|
129
|
+
- `progen2-oas/generate`: Sequence generation from a context string.
|
|
130
|
+
- `dnabert2/predict`: Masked prediction for protein sequences.
|
|
131
|
+
- `ablang2/encode`: Embeddings for paired-chain antibodies.
|
|
132
|
+
|
|
133
|
+
* Free software: Apache Software License 2.0
|
|
134
|
+
* Documentation: https://docs.biolm.ai
|
|
@@ -42,40 +42,6 @@ docs/_static/jupyter_notebooks_icon.png
|
|
|
42
42
|
docs/_static/model_docs_icon.png
|
|
43
43
|
docs/_static/python_sdk_icon.png
|
|
44
44
|
docs/_static/tutorials_icon.png
|
|
45
|
-
docs/model-docs/index.rst
|
|
46
|
-
docs/model-docs/ablang/AbLang_API.rst
|
|
47
|
-
docs/model-docs/ablang/AbLang_Additional.rst
|
|
48
|
-
docs/model-docs/ablang/index.rst
|
|
49
|
-
docs/model-docs/biolmtox/BioLMTox_API.rst
|
|
50
|
-
docs/model-docs/biolmtox/BioLMTox_Additional.rst
|
|
51
|
-
docs/model-docs/biolmtox/index.rst
|
|
52
|
-
docs/model-docs/dnabert/DNABERT_Additional.rst
|
|
53
|
-
docs/model-docs/dnabert/classifier_ft.rst
|
|
54
|
-
docs/model-docs/dnabert/index.rst
|
|
55
|
-
docs/model-docs/esm1v/ESM-1v_API.rst
|
|
56
|
-
docs/model-docs/esm1v/ESM-1v_Additional.rst
|
|
57
|
-
docs/model-docs/esm1v/index.rst
|
|
58
|
-
docs/model-docs/esm2/ESM2_API.rst
|
|
59
|
-
docs/model-docs/esm2/ESM2_Additional.rst
|
|
60
|
-
docs/model-docs/esm2/index.rst
|
|
61
|
-
docs/model-docs/esmfold/ESMFold_API.rst
|
|
62
|
-
docs/model-docs/esmfold/ESMFold_Additional.rst
|
|
63
|
-
docs/model-docs/esmfold/index.rst
|
|
64
|
-
docs/model-docs/esmif/ESM_InverseFold_API.rst
|
|
65
|
-
docs/model-docs/esmif/ESM_InverseFold_Additional.rst
|
|
66
|
-
docs/model-docs/esmif/index.rst
|
|
67
|
-
docs/model-docs/finetuning/index.rst
|
|
68
|
-
docs/model-docs/img/book_icon.png
|
|
69
|
-
docs/model-docs/img/esmfold_perf.png
|
|
70
|
-
docs/model-docs/progen2/ProGen2_API.rst
|
|
71
|
-
docs/model-docs/progen2/ProGen2_Additional.rst
|
|
72
|
-
docs/model-docs/progen2/index.rst
|
|
73
|
-
docs/model-docs/proteinfer/ProteInfer_API.rst
|
|
74
|
-
docs/model-docs/proteinfer/ProteInfer_Additional.rst
|
|
75
|
-
docs/model-docs/proteinfer/index.rst
|
|
76
|
-
docs/model-docs/protgpt2/ProtGPT2.rst
|
|
77
|
-
docs/model-docs/protgpt2/generator_ft.rst
|
|
78
|
-
docs/model-docs/protgpt2/index.rst
|
|
79
45
|
docs/python-client/api_biolm.rst
|
|
80
46
|
docs/python-client/api_client.rst
|
|
81
47
|
docs/python-client/async_sync.rst
|
|
@@ -61,7 +61,7 @@ author = "Nikhil Haas"
|
|
|
61
61
|
# the built documents.
|
|
62
62
|
#
|
|
63
63
|
# The short X.Y version.
|
|
64
|
-
version = '0.2.
|
|
64
|
+
version = '0.2.4'
|
|
65
65
|
# The full version, including alpha/beta/rc tags.
|
|
66
66
|
release = version
|
|
67
67
|
|
|
@@ -80,6 +80,9 @@ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
|
|
80
80
|
# The name of the Pygments (syntax highlighting) style to use.
|
|
81
81
|
pygments_style = "sphinx"
|
|
82
82
|
|
|
83
|
+
# Dark mode syntax highlighting (Furo-specific)
|
|
84
|
+
pygments_dark_style = "material"
|
|
85
|
+
|
|
83
86
|
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
|
84
87
|
todo_include_todos = False
|
|
85
88
|
|
|
@@ -98,8 +101,58 @@ html_theme = "furo"
|
|
|
98
101
|
html_theme_options = {
|
|
99
102
|
"top_of_page_button": None,
|
|
100
103
|
"sidebar_hide_name": True,
|
|
101
|
-
"light_logo": "
|
|
102
|
-
"dark_logo": "
|
|
104
|
+
"light_logo": "biolm_logo_light.svg",
|
|
105
|
+
"dark_logo": "biolm_logo_dark.svg",
|
|
106
|
+
|
|
107
|
+
# Custom CSS variables for branding
|
|
108
|
+
"light_css_variables": {
|
|
109
|
+
# Primary brand colors - replace with your website's brand colors
|
|
110
|
+
"color-brand-primary": "#2563eb", # Replace with your main brand color
|
|
111
|
+
"color-brand-content": "#2563eb", # Links and interactive elements
|
|
112
|
+
|
|
113
|
+
# Sidebar customization
|
|
114
|
+
"color-sidebar-brand-text": "#1f2937",
|
|
115
|
+
"color-sidebar-background": "#f8fafc",
|
|
116
|
+
"color-sidebar-background-border": "#e2e8f0",
|
|
117
|
+
|
|
118
|
+
# Additional brand colors
|
|
119
|
+
"color-admonition-title-background--note": "#dbeafe",
|
|
120
|
+
"color-admonition-title--note": "#1e40af",
|
|
121
|
+
|
|
122
|
+
# Header and navigation
|
|
123
|
+
"color-header-background": "#ffffff",
|
|
124
|
+
"color-header-text": "#1f2937",
|
|
125
|
+
|
|
126
|
+
# Code blocks
|
|
127
|
+
"color-code-background": "#f1f5f9",
|
|
128
|
+
"color-code-foreground": "#334155",
|
|
129
|
+
|
|
130
|
+
# Font families to match your website exactly
|
|
131
|
+
"font-stack": '"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',
|
|
132
|
+
"font-stack--monospace": '"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
"dark_css_variables": {
|
|
136
|
+
# Dark mode brand colors
|
|
137
|
+
"color-brand-primary": "#60a5fa", # Lighter version for dark mode
|
|
138
|
+
"color-brand-content": "#60a5fa",
|
|
139
|
+
|
|
140
|
+
# Dark sidebar
|
|
141
|
+
"color-sidebar-background": "#1e293b",
|
|
142
|
+
"color-sidebar-background-border": "#334155",
|
|
143
|
+
"color-sidebar-brand-text": "#f1f5f9",
|
|
144
|
+
|
|
145
|
+
# Dark mode code blocks
|
|
146
|
+
"color-code-background": "#1e293b",
|
|
147
|
+
"color-code-foreground": "#e2e8f0",
|
|
148
|
+
|
|
149
|
+
# Additional dark mode styling
|
|
150
|
+
"color-highlight-on-target": "#374151",
|
|
151
|
+
|
|
152
|
+
# Font families to match your website exactly (same as light mode)
|
|
153
|
+
"font-stack": '"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',
|
|
154
|
+
"font-stack--monospace": '"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
|
|
155
|
+
},
|
|
103
156
|
}
|
|
104
157
|
|
|
105
158
|
# Add any paths that contain custom static files (such as style sheets) here,
|
|
@@ -107,6 +160,53 @@ html_theme_options = {
|
|
|
107
160
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
108
161
|
html_static_path = ["_static"]
|
|
109
162
|
|
|
163
|
+
# Custom CSS files
|
|
164
|
+
html_css_files = [
|
|
165
|
+
'custom.css',
|
|
166
|
+
]
|
|
167
|
+
|
|
168
|
+
# Add Google Fonts (Inter and Roboto Mono to match website)
|
|
169
|
+
html_css_files.extend([
|
|
170
|
+
'https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap',
|
|
171
|
+
'https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;500;600;700&display=swap',
|
|
172
|
+
])
|
|
173
|
+
|
|
174
|
+
# Additional branding options
|
|
175
|
+
html_title = "BioLM AI Documentation"
|
|
176
|
+
html_short_title = "BioLM AI"
|
|
177
|
+
|
|
178
|
+
# Custom favicon (add your favicon.ico to _static folder)
|
|
179
|
+
# html_favicon = "_static/favicon.ico"
|
|
180
|
+
|
|
181
|
+
# Custom footer
|
|
182
|
+
html_show_sphinx = False
|
|
183
|
+
html_show_copyright = True
|
|
184
|
+
|
|
185
|
+
# SEO and metadata
|
|
186
|
+
html_meta = {
|
|
187
|
+
"description": "Official documentation for BioLM AI - Advanced biological language models and APIs",
|
|
188
|
+
"keywords": "BioLM, AI, machine learning, biology, protein, DNA, API",
|
|
189
|
+
"author": "BioLM.ai Team",
|
|
190
|
+
"viewport": "width=device-width, initial-scale=1",
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
# Social media cards / Open Graph
|
|
194
|
+
html_theme_options.update({
|
|
195
|
+
"announcement": None, # Add site-wide announcements here if needed
|
|
196
|
+
"footer_icons": [
|
|
197
|
+
{
|
|
198
|
+
"name": "GitHub",
|
|
199
|
+
"url": "https://github.com/yourusername/yourrepo", # Update with your GitHub
|
|
200
|
+
"html": """
|
|
201
|
+
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16">
|
|
202
|
+
<path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path>
|
|
203
|
+
</svg>
|
|
204
|
+
""",
|
|
205
|
+
"class": "",
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
})
|
|
209
|
+
|
|
110
210
|
|
|
111
211
|
# -- Options for HTMLHelp output ---------------------------------------
|
|
112
212
|
|
|
@@ -45,20 +45,4 @@ Welcome to Our Python Client Docs
|
|
|
45
45
|
|
|
46
46
|
tutorials_use_cases/notebooks
|
|
47
47
|
|
|
48
|
-
.. toctree::
|
|
49
|
-
:maxdepth: 2
|
|
50
|
-
:caption: Documentation:
|
|
51
|
-
:hidden:
|
|
52
|
-
|
|
53
|
-
model-docs/esm2/index
|
|
54
|
-
model-docs/esm1v/index
|
|
55
|
-
model-docs/esmfold/index
|
|
56
|
-
model-docs/esmif/index
|
|
57
|
-
model-docs/biolmtox/index
|
|
58
|
-
model-docs/progen2/index
|
|
59
|
-
model-docs/ablang/index
|
|
60
|
-
model-docs/proteinfer/index
|
|
61
|
-
model-docs/protgpt2/index
|
|
62
|
-
model-docs/dnabert/index
|
|
63
|
-
model-docs/finetuning/index
|
|
64
48
|
|
|
@@ -34,13 +34,13 @@ A universal, high-level client for the BioLM API. Instantiating this class immed
|
|
|
34
34
|
.. code-block:: python
|
|
35
35
|
|
|
36
36
|
# ESM2-8M: encode a single sequence
|
|
37
|
-
result =
|
|
37
|
+
result = biolm(entity="esm2-8m", action="encode", type="sequence", items="MSILVTRPSPAGEEL")
|
|
38
38
|
|
|
39
39
|
# ESMFold: predict structure for a batch
|
|
40
|
-
result =
|
|
40
|
+
result = biolm(entity="esmfold", action="predict", type="sequence", items=["MDNELE", "MENDEL"])
|
|
41
41
|
|
|
42
42
|
# ProGen2-OAS: generate new sequences
|
|
43
|
-
result =
|
|
43
|
+
result = biolm(
|
|
44
44
|
entity="progen2-oas",
|
|
45
45
|
action="generate",
|
|
46
46
|
type="context",
|
|
@@ -6,8 +6,8 @@ Async and Sync Usage
|
|
|
6
6
|
|
|
7
7
|
.. code-block:: python
|
|
8
8
|
|
|
9
|
-
from biolmai import
|
|
10
|
-
result =
|
|
9
|
+
from biolmai import biolm
|
|
10
|
+
result = biolm(entity="esmfold", action="predict", items="MDNELE")
|
|
11
11
|
|
|
12
12
|
**Asynchronous usage:**
|
|
13
13
|
|
|
@@ -35,7 +35,7 @@ High-Level Summary
|
|
|
35
35
|
Synchronous Usage (BioLM)
|
|
36
36
|
------------------------
|
|
37
37
|
|
|
38
|
-
- **Convenient interface**: Just call `
|
|
38
|
+
- **Convenient interface**: Just call `biolm(...)` and get your result.
|
|
39
39
|
- **Unpacks single-item results**: If you pass a single item, you get a single result (not a list).
|
|
40
40
|
- **Runs in the main thread**: No need for `asyncio` or event loops.
|
|
41
41
|
- **Great for Jupyter, scripts, and simple batch jobs**.
|
|
@@ -44,14 +44,14 @@ Synchronous Usage (BioLM)
|
|
|
44
44
|
|
|
45
45
|
.. code-block:: python
|
|
46
46
|
|
|
47
|
-
from biolmai import
|
|
47
|
+
from biolmai import biolm
|
|
48
48
|
|
|
49
49
|
# Single item: returns a dict
|
|
50
|
-
result =
|
|
50
|
+
result = biolm(entity="esmfold", action="predict", items="MDNELE")
|
|
51
51
|
print(result["mean_plddt"])
|
|
52
52
|
|
|
53
53
|
# Batch: returns a list of dicts
|
|
54
|
-
result =
|
|
54
|
+
result = biolm(entity="esmfold", action="predict", items=["MDNELE", "MENDEL"])
|
|
55
55
|
print(result[0]["mean_plddt"], result[1]["mean_plddt"])
|
|
56
56
|
|
|
57
57
|
------------------------
|