openprotein-python 0.4.2__tar.gz → 0.8.1__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.
Files changed (99) hide show
  1. openprotein_python-0.8.1/.gitignore +365 -0
  2. {openprotein_python-0.4.2 → openprotein_python-0.8.1}/PKG-INFO +12 -17
  3. {openprotein_python-0.4.2 → openprotein_python-0.8.1}/README.md +1 -1
  4. openprotein_python-0.8.1/openprotein/__init__.py +153 -0
  5. {openprotein_python-0.4.2 → openprotein_python-0.8.1}/openprotein/_version.py +2 -3
  6. openprotein_python-0.8.1/openprotein/align/__init__.py +8 -0
  7. openprotein_python-0.8.1/openprotein/align/align.py +395 -0
  8. openprotein_python-0.8.1/openprotein/align/api.py +428 -0
  9. openprotein_python-0.8.1/openprotein/align/future.py +55 -0
  10. openprotein_python-0.8.1/openprotein/align/msa.py +156 -0
  11. openprotein_python-0.8.1/openprotein/align/schemas.py +165 -0
  12. openprotein_python-0.8.1/openprotein/base.py +181 -0
  13. openprotein_python-0.8.1/openprotein/chains.py +88 -0
  14. openprotein_python-0.8.1/openprotein/common/__init__.py +5 -0
  15. openprotein_python-0.8.1/openprotein/common/features.py +7 -0
  16. openprotein_python-0.8.1/openprotein/common/model_metadata.py +33 -0
  17. openprotein_python-0.8.1/openprotein/common/reduction.py +8 -0
  18. {openprotein_python-0.4.2 → openprotein_python-0.8.1}/openprotein/config.py +0 -3
  19. openprotein_python-0.8.1/openprotein/csv.py +31 -0
  20. openprotein_python-0.8.1/openprotein/data/__init__.py +9 -0
  21. openprotein_python-0.8.1/openprotein/data/api.py +218 -0
  22. openprotein_python-0.8.1/openprotein/data/assaydataset.py +178 -0
  23. openprotein_python-0.8.1/openprotein/data/data.py +93 -0
  24. openprotein_python-0.8.1/openprotein/data/schemas.py +27 -0
  25. openprotein_python-0.8.1/openprotein/design/__init__.py +16 -0
  26. openprotein_python-0.8.1/openprotein/design/api.py +259 -0
  27. openprotein_python-0.8.1/openprotein/design/design.py +125 -0
  28. openprotein_python-0.8.1/openprotein/design/future.py +146 -0
  29. openprotein_python-0.8.1/openprotein/design/schemas.py +607 -0
  30. openprotein_python-0.8.1/openprotein/embeddings/__init__.py +27 -0
  31. openprotein_python-0.8.1/openprotein/embeddings/api.py +619 -0
  32. openprotein_python-0.8.1/openprotein/embeddings/embeddings.py +142 -0
  33. openprotein_python-0.8.1/openprotein/embeddings/esm.py +33 -0
  34. openprotein_python-0.8.1/openprotein/embeddings/future.py +138 -0
  35. openprotein_python-0.8.1/openprotein/embeddings/models.py +421 -0
  36. openprotein_python-0.8.1/openprotein/embeddings/openprotein.py +21 -0
  37. openprotein_python-0.8.1/openprotein/embeddings/poet.py +444 -0
  38. openprotein_python-0.8.1/openprotein/embeddings/poet2.py +503 -0
  39. openprotein_python-0.8.1/openprotein/embeddings/schemas.py +78 -0
  40. {openprotein_python-0.4.2 → openprotein_python-0.8.1}/openprotein/errors.py +36 -5
  41. openprotein_python-0.8.1/openprotein/fasta.py +92 -0
  42. openprotein_python-0.8.1/openprotein/fold/__init__.py +21 -0
  43. openprotein_python-0.8.1/openprotein/fold/alphafold2.py +131 -0
  44. openprotein_python-0.8.1/openprotein/fold/api.py +287 -0
  45. openprotein_python-0.8.1/openprotein/fold/boltz.py +692 -0
  46. openprotein_python-0.8.1/openprotein/fold/esmfold.py +54 -0
  47. openprotein_python-0.8.1/openprotein/fold/fold.py +102 -0
  48. openprotein_python-0.8.1/openprotein/fold/future.py +509 -0
  49. openprotein_python-0.8.1/openprotein/fold/models.py +139 -0
  50. openprotein_python-0.8.1/openprotein/fold/schemas.py +39 -0
  51. openprotein_python-0.8.1/openprotein/jobs/__init__.py +9 -0
  52. openprotein_python-0.8.1/openprotein/jobs/api.py +71 -0
  53. openprotein_python-0.8.1/openprotein/jobs/futures.py +478 -0
  54. openprotein_python-0.8.1/openprotein/jobs/jobs.py +65 -0
  55. openprotein_python-0.8.1/openprotein/jobs/schemas.py +135 -0
  56. openprotein_python-0.8.1/openprotein/predictor/__init__.py +25 -0
  57. openprotein_python-0.8.1/openprotein/predictor/api.py +384 -0
  58. openprotein_python-0.8.1/openprotein/predictor/models.py +374 -0
  59. openprotein_python-0.8.1/openprotein/predictor/prediction.py +79 -0
  60. openprotein_python-0.8.1/openprotein/predictor/predictor.py +230 -0
  61. openprotein_python-0.8.1/openprotein/predictor/schemas.py +113 -0
  62. openprotein_python-0.8.1/openprotein/predictor/validate.py +40 -0
  63. openprotein_python-0.8.1/openprotein/prompt/__init__.py +9 -0
  64. openprotein_python-0.8.1/openprotein/prompt/api.py +505 -0
  65. openprotein_python-0.8.1/openprotein/prompt/models.py +142 -0
  66. openprotein_python-0.8.1/openprotein/prompt/prompt.py +130 -0
  67. openprotein_python-0.8.1/openprotein/prompt/schemas.py +49 -0
  68. openprotein_python-0.8.1/openprotein/protein.py +587 -0
  69. openprotein_python-0.8.1/openprotein/svd/__init__.py +9 -0
  70. openprotein_python-0.8.1/openprotein/svd/api.py +206 -0
  71. openprotein_python-0.8.1/openprotein/svd/models.py +266 -0
  72. openprotein_python-0.8.1/openprotein/svd/schemas.py +31 -0
  73. openprotein_python-0.8.1/openprotein/svd/svd.py +115 -0
  74. openprotein_python-0.8.1/openprotein/umap/__init__.py +9 -0
  75. openprotein_python-0.8.1/openprotein/umap/api.py +260 -0
  76. openprotein_python-0.8.1/openprotein/umap/models.py +156 -0
  77. openprotein_python-0.8.1/openprotein/umap/schemas.py +35 -0
  78. openprotein_python-0.8.1/openprotein/umap/umap.py +124 -0
  79. openprotein_python-0.8.1/openprotein/utils/uuid.py +29 -0
  80. openprotein_python-0.8.1/pyproject.toml +130 -0
  81. openprotein_python-0.4.2/openprotein/__init__.py +0 -99
  82. openprotein_python-0.4.2/openprotein/api/__init__.py +0 -7
  83. openprotein_python-0.4.2/openprotein/api/align.py +0 -871
  84. openprotein_python-0.4.2/openprotein/api/data.py +0 -532
  85. openprotein_python-0.4.2/openprotein/api/design.py +0 -508
  86. openprotein_python-0.4.2/openprotein/api/embedding.py +0 -1224
  87. openprotein_python-0.4.2/openprotein/api/fold.py +0 -448
  88. openprotein_python-0.4.2/openprotein/api/jobs.py +0 -351
  89. openprotein_python-0.4.2/openprotein/api/poet.py +0 -612
  90. openprotein_python-0.4.2/openprotein/api/predict.py +0 -595
  91. openprotein_python-0.4.2/openprotein/api/train.py +0 -661
  92. openprotein_python-0.4.2/openprotein/base.py +0 -125
  93. openprotein_python-0.4.2/openprotein/fasta.py +0 -39
  94. openprotein_python-0.4.2/openprotein/futures.py +0 -60
  95. openprotein_python-0.4.2/openprotein/jobs.py +0 -186
  96. openprotein_python-0.4.2/openprotein/pydantic.py +0 -20
  97. openprotein_python-0.4.2/openprotein/schemas.py +0 -55
  98. openprotein_python-0.4.2/pyproject.toml +0 -26
  99. {openprotein_python-0.4.2 → openprotein_python-0.8.1}/LICENSE.txt +0 -0
@@ -0,0 +1,365 @@
1
+
2
+ # SECRETS FILE
3
+ secrets.config
4
+ poetry.lock
5
+ /htmlcov
6
+ /apidocs/build
7
+ # VS code
8
+ .DS_store
9
+
10
+ # Byte-compiled / optimized / DLL files
11
+ __pycache__/
12
+ *.py[cod]
13
+ *$py.class
14
+
15
+ # C extensions
16
+ *.so
17
+
18
+ # Distribution / packaging
19
+ .Python
20
+ #build/
21
+ develop-eggs/
22
+ dist/
23
+ downloads/
24
+ eggs/
25
+ .eggs/
26
+ lib/
27
+ lib64/
28
+ parts/
29
+ sdist/
30
+ var/
31
+ wheels/
32
+ pip-wheel-metadata/
33
+ share/python-wheels/
34
+ *.egg-info/
35
+ .installed.cfg
36
+ *.egg
37
+ MANIFEST
38
+
39
+ # PyInstaller
40
+ # Usually these files are written by a python script from a template
41
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
42
+ *.manifest
43
+ *.spec
44
+
45
+ # Installer logs
46
+ pip-log.txt
47
+ pip-delete-this-directory.txt
48
+
49
+ # Unit test / coverage reports
50
+ htmlcov/
51
+ .tox/
52
+ .nox/
53
+ .coverage
54
+ .coverage.*
55
+ .cache
56
+ nosetests.xml
57
+ coverage.xml
58
+ *.cover
59
+ *.py,cover
60
+ .hypothesis/
61
+ .pytest_cache/
62
+
63
+ # Translations
64
+ *.mo
65
+ *.pot
66
+
67
+ # Django stuff:
68
+ *.log
69
+ local_settings.py
70
+ db.sqlite3
71
+ db.sqlite3-journal
72
+
73
+ # Flask stuff:
74
+ instance/
75
+ .webassets-cache
76
+
77
+ # Scrapy stuff:
78
+ .scrapy
79
+
80
+ # Sphinx documentation
81
+ docs/_build/
82
+
83
+ # PyBuilder
84
+ target/
85
+
86
+ # Jupyter Notebook
87
+ .ipynb_checkpoints
88
+
89
+ # IPython
90
+ profile_default/
91
+ ipython_config.py
92
+
93
+ # pyenv
94
+ .python-version
95
+
96
+ # pipenv
97
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
98
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
99
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
100
+ # install all needed dependencies.
101
+ #Pipfile.lock
102
+
103
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
104
+ __pypackages__/
105
+
106
+ # Celery stuff
107
+ celerybeat-schedule
108
+ celerybeat.pid
109
+
110
+ # SageMath parsed files
111
+ *.sage.py
112
+
113
+ # Environments
114
+ .env
115
+ .venv
116
+ env/
117
+ venv/
118
+ ENV/
119
+ env.bak/
120
+ venv.bak/
121
+
122
+ # Spyder project settings
123
+ .spyderproject
124
+ .spyproject
125
+
126
+ # Rope project settings
127
+ .ropeproject
128
+
129
+ # mkdocs documentation
130
+ /site
131
+
132
+ # mypy
133
+ .mypy_cache/
134
+ .dmypy.json
135
+ dmypy.json
136
+
137
+ # Pyre type checker
138
+ .pyre/
139
+
140
+ /.quarto/
141
+ poet_demo.ipynb
142
+ *chorismate_mutase_combined_seqs.fasta
143
+
144
+ nohup.out
145
+ # pixi environments
146
+ .pixi
147
+ *.egg-info
148
+
149
+ notebooks
150
+ ./data/
151
+ .aider*
152
+
153
+ build
154
+ # Python
155
+ # Byte-compiled / optimized / DLL files
156
+ __pycache__/
157
+ *.py[codz]
158
+ *$py.class
159
+
160
+ # C extensions
161
+ *.so
162
+
163
+ # Distribution / packaging
164
+ .Python
165
+ build/
166
+ develop-eggs/
167
+ dist/
168
+ downloads/
169
+ eggs/
170
+ .eggs/
171
+ lib/
172
+ lib64/
173
+ parts/
174
+ sdist/
175
+ var/
176
+ wheels/
177
+ share/python-wheels/
178
+ *.egg-info/
179
+ .installed.cfg
180
+ *.egg
181
+ MANIFEST
182
+
183
+ # PyInstaller
184
+ # Usually these files are written by a python script from a template
185
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
186
+ *.manifest
187
+ *.spec
188
+
189
+ # Installer logs
190
+ pip-log.txt
191
+ pip-delete-this-directory.txt
192
+
193
+ # Unit test / coverage reports
194
+ htmlcov/
195
+ .tox/
196
+ .nox/
197
+ .coverage
198
+ .coverage.*
199
+ .cache
200
+ nosetests.xml
201
+ coverage.xml
202
+ *.cover
203
+ *.py.cover
204
+ .hypothesis/
205
+ .pytest_cache/
206
+ cover/
207
+
208
+ # Translations
209
+ *.mo
210
+ *.pot
211
+
212
+ # Django stuff:
213
+ *.log
214
+ local_settings.py
215
+ db.sqlite3
216
+ db.sqlite3-journal
217
+
218
+ # Flask stuff:
219
+ instance/
220
+ .webassets-cache
221
+
222
+ # Scrapy stuff:
223
+ .scrapy
224
+
225
+ # Sphinx documentation
226
+ docs/_build/
227
+
228
+ # PyBuilder
229
+ .pybuilder/
230
+ target/
231
+
232
+ # Jupyter Notebook
233
+ .ipynb_checkpoints
234
+
235
+ # IPython
236
+ profile_default/
237
+ ipython_config.py
238
+
239
+ # pyenv
240
+ # For a library or package, you might want to ignore these files since the code is
241
+ # intended to run in multiple environments; otherwise, check them in:
242
+ # .python-version
243
+
244
+ # pipenv
245
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
246
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
247
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
248
+ # install all needed dependencies.
249
+ #Pipfile.lock
250
+
251
+ # UV
252
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
253
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
254
+ # commonly ignored for libraries.
255
+ #uv.lock
256
+
257
+ # poetry
258
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
259
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
260
+ # commonly ignored for libraries.
261
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
262
+ #poetry.lock
263
+ #poetry.toml
264
+
265
+ # pdm
266
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
267
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
268
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
269
+ #pdm.lock
270
+ #pdm.toml
271
+ .pdm-python
272
+ .pdm-build/
273
+
274
+ # pixi
275
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
276
+ #pixi.lock
277
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
278
+ # in the .venv directory. It is recommended not to include this directory in version control.
279
+ .pixi
280
+
281
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
282
+ __pypackages__/
283
+
284
+ # Celery stuff
285
+ celerybeat-schedule
286
+ celerybeat.pid
287
+
288
+ # SageMath parsed files
289
+ *.sage.py
290
+
291
+ # Environments
292
+ .env
293
+ .envrc
294
+ .venv
295
+ env/
296
+ venv/
297
+ ENV/
298
+ env.bak/
299
+ venv.bak/
300
+
301
+ # Spyder project settings
302
+ .spyderproject
303
+ .spyproject
304
+
305
+ # Rope project settings
306
+ .ropeproject
307
+
308
+ # mkdocs documentation
309
+ /site
310
+
311
+ # mypy
312
+ .mypy_cache/
313
+ .dmypy.json
314
+ dmypy.json
315
+
316
+ # Pyre type checker
317
+ .pyre/
318
+
319
+ # pytype static type analyzer
320
+ .pytype/
321
+
322
+ # Cython debug symbols
323
+ cython_debug/
324
+
325
+ # PyCharm
326
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
327
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
328
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
329
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
330
+ #.idea/
331
+
332
+ # Abstra
333
+ # Abstra is an AI-powered process automation framework.
334
+ # Ignore directories containing user credentials, local state, and settings.
335
+ # Learn more at https://abstra.io/docs
336
+ .abstra/
337
+
338
+ # Visual Studio Code
339
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
340
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
341
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
342
+ # you could uncomment the following to ignore the entire vscode folder
343
+ # .vscode/
344
+
345
+ # Ruff stuff:
346
+ .ruff_cache/
347
+
348
+ # PyPI configuration file
349
+ .pypirc
350
+
351
+ # Cursor
352
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
353
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
354
+ # refer to https://docs.cursor.com/context/ignore-files
355
+ .cursorignore
356
+ .cursorindexingignore
357
+
358
+ # Marimo
359
+ marimo/_static/
360
+ marimo/_lsp/
361
+ __marimo__/
362
+
363
+ # Streamlit
364
+ .streamlit/secrets.toml
365
+ /data/
@@ -1,24 +1,19 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: openprotein-python
3
- Version: 0.4.2
3
+ Version: 0.8.1
4
4
  Summary: OpenProtein Python interface.
5
- Home-page: https://docs.openprotein.ai/
6
- License: MIT
7
- Author: OpenProtein
8
- Author-email: info@ne47.bio
9
- Requires-Python: >=3.8,<4.0
5
+ Author-email: Mark Gee <markgee@ne47.bio>, "Timothy Truong Jr." <ttruong@ne47.bio>, Tristan Bepler <tbepler@ne47.bio>
6
+ License-Expression: MIT
7
+ License-File: LICENSE.txt
10
8
  Classifier: Development Status :: 4 - Beta
11
- Classifier: License :: OSI Approved :: MIT License
12
9
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.8
14
- Classifier: Programming Language :: Python :: 3.9
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Programming Language :: Python :: 3
18
- Requires-Dist: pandas (>=1)
19
- Requires-Dist: pydantic (>=1.0.0,<2.0.0)
20
- Requires-Dist: requests (>=2)
21
- Requires-Dist: tqdm (>=4)
10
+ Requires-Python: >=3.10
11
+ Requires-Dist: gemmi<0.8,>=0.7.0
12
+ Requires-Dist: numpy<3,>=1.9
13
+ Requires-Dist: pandas<3,>=2.2.2
14
+ Requires-Dist: pydantic<3,>=2.5
15
+ Requires-Dist: requests<3,>=2.32.3
16
+ Requires-Dist: tqdm<5,>=4.66.5
22
17
  Description-Content-Type: text/markdown
23
18
 
24
19
  [![PyPI version](https://badge.fury.io/py/openprotein-python.svg)](https://pypi.org/project/openprotein-python/)
@@ -155,4 +155,4 @@ future.get_msa()
155
155
  future.get_seed()
156
156
  ```
157
157
 
158
- See more at our [Homepage](https://docs.openprotein.ai/)
158
+ See more at our [Homepage](https://docs.openprotein.ai/)
@@ -0,0 +1,153 @@
1
+ """
2
+ OpenProtein Python client.
3
+
4
+ A pythonic interface for interacting with our cutting-edge protein engineering platform.
5
+
6
+ isort:skip_file
7
+ """
8
+
9
+ from typing import TYPE_CHECKING
10
+ import warnings
11
+
12
+ from openprotein._version import __version__
13
+ from openprotein.data import DataAPI
14
+ from openprotein.errors import DeprecationError
15
+ from openprotein.jobs import JobsAPI
16
+ from openprotein.align import AlignAPI
17
+ from openprotein.prompt import PromptAPI
18
+ from openprotein.embeddings import EmbeddingsAPI
19
+ from openprotein.fold import FoldAPI
20
+ from openprotein.svd import SVDAPI
21
+ from openprotein.umap import UMAPAPI
22
+ from openprotein.predictor import PredictorAPI
23
+ from openprotein.design import DesignAPI
24
+ from openprotein.jobs import Future
25
+ from openprotein.base import APISession
26
+
27
+
28
+ class OpenProtein(APISession):
29
+ """
30
+ The base class for accessing OpenProtein API functionality.
31
+ """
32
+
33
+ _data = None
34
+ _jobs = None
35
+ _align = None
36
+ _prompt = None
37
+ _embeddings = None
38
+ _svd = None
39
+ _umap = None
40
+ _fold = None
41
+ _predictor = None
42
+ _design = None
43
+
44
+ def wait(self, future: Future, *args, **kwargs):
45
+ return future.wait(*args, **kwargs)
46
+
47
+ wait_until_done = wait
48
+
49
+ def load_job(self, job_id):
50
+ return self.jobs.get(job_id=job_id)
51
+
52
+ @property
53
+ def data(self) -> DataAPI:
54
+ """
55
+ The data submodule gives access to functionality for uploading and accessing user data.
56
+ """
57
+ if self._data is None:
58
+ self._data = DataAPI(self)
59
+ return self._data
60
+
61
+ @property
62
+ def jobs(self) -> JobsAPI:
63
+ """
64
+ The jobs submodule gives access to functionality for listing jobs and checking their status.
65
+ """
66
+ if self._jobs is None:
67
+ self._jobs = JobsAPI(self)
68
+ return self._jobs
69
+
70
+ @property
71
+ def align(self) -> AlignAPI:
72
+ """
73
+ The Align submodule gives access to the sequence alignment capabilities by building MSAs and prompts that can be used with PoET.
74
+ """
75
+ if self._align is None:
76
+ self._align = AlignAPI(self)
77
+ return self._align
78
+
79
+ @property
80
+ def prompt(self) -> PromptAPI:
81
+ """
82
+ The Align submodule gives access to the sequence alignment capabilities by building MSAs and prompts that can be used with PoET.
83
+ """
84
+ if self._prompt is None:
85
+ self._prompt = PromptAPI(self)
86
+ return self._prompt
87
+
88
+ @property
89
+ def embedding(self) -> EmbeddingsAPI:
90
+ """
91
+ The embedding submodule gives access to protein embedding models and their inference endpoints.
92
+ """
93
+ if self._embeddings is None:
94
+ self._embeddings = EmbeddingsAPI(self)
95
+ return self._embeddings
96
+
97
+ embeddings = embedding
98
+
99
+ @property
100
+ def svd(self) -> SVDAPI:
101
+ """
102
+ The embedding submodule gives access to protein embedding models and their inference endpoints.
103
+ """
104
+ if self._svd is None:
105
+ self._svd = SVDAPI(
106
+ session=self,
107
+ )
108
+ return self._svd
109
+
110
+ @property
111
+ def umap(self) -> UMAPAPI:
112
+ """
113
+ The embedding submodule gives access to protein embedding models and their inference endpoints.
114
+ """
115
+ if self._umap is None:
116
+ self._umap = UMAPAPI(
117
+ session=self,
118
+ )
119
+ return self._umap
120
+
121
+ @property
122
+ def predictor(self) -> PredictorAPI:
123
+ """
124
+ The predictor submodule gives access to training and predicting with predictors built on top of embeddings.
125
+ """
126
+ if self._predictor is None:
127
+ self._predictor = PredictorAPI(
128
+ session=self,
129
+ )
130
+ return self._predictor
131
+
132
+ @property
133
+ def design(self) -> DesignAPI:
134
+ """
135
+ The designer submodule gives access to functionality for designing new sequences using models from predictor train.
136
+ """
137
+ if self._design is None:
138
+ self._design = DesignAPI(
139
+ session=self,
140
+ )
141
+ return self._design
142
+
143
+ @property
144
+ def fold(self) -> FoldAPI:
145
+ """
146
+ The fold submodule gives access to functionality for folding sequences and returning PDBs.
147
+ """
148
+ if self._fold is None:
149
+ self._fold = FoldAPI(self)
150
+ return self._fold
151
+
152
+
153
+ connect = OpenProtein
@@ -1,10 +1,9 @@
1
1
  try:
2
2
  from importlib.metadata import version
3
3
  except ModuleNotFoundError:
4
- from importlib_metadata import version # py37
4
+ from importlib_metadata import version # type: ignore - py37
5
5
 
6
6
  try:
7
7
  __version__ = version("openprotein-python")
8
- except:
8
+ except:
9
9
  __version__ = "None"
10
-
@@ -0,0 +1,8 @@
1
+ """
2
+ Align module for creating and searching alignments on OpenProtein.
3
+
4
+ isort:skip_file
5
+ """
6
+
7
+ from .msa import MSAFuture
8
+ from .align import AlignAPI