diff --git a/pixi.lock b/pixi.lock index c0fdcc52..6a3bf345 100644 --- a/pixi.lock +++ b/pixi.lock @@ -120,7 +120,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c1/5e/421aa9ba9bbdb215948ac55a0a8724e6e8f1c4fe51d487346da738f1005e/openprotein_python-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/43/65c0acbd8cc6f50195a3a1fc195c404988b15c67090e73c7a41a9f57d6bd/sphinx_design-0.6.1-py3-none-any.whl @@ -143,6 +142,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e9/18/267ce39f29d26cdc7177231428ba823fe5ca94db8c56d1bed69033b364c8/sphinx_togglebutton-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/60/16107aea584004c586cc1baf3e284fe0acaf7299ea8228f0e9000af8089f/openprotein_python-0.17.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl @@ -244,7 +244,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c1/5e/421aa9ba9bbdb215948ac55a0a8724e6e8f1c4fe51d487346da738f1005e/openprotein_python-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/43/65c0acbd8cc6f50195a3a1fc195c404988b15c67090e73c7a41a9f57d6bd/sphinx_design-0.6.1-py3-none-any.whl @@ -266,6 +265,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/e9/18/267ce39f29d26cdc7177231428ba823fe5ca94db8c56d1bed69033b364c8/sphinx_togglebutton-0.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/60/16107aea584004c586cc1baf3e284fe0acaf7299ea8228f0e9000af8089f/openprotein_python-0.17.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl @@ -393,7 +393,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bb/4a/2e5583e544bc437d5e8e54b47db87430df9031b29b48d17f26d129fa60c0/trove_classifiers-2026.1.14.14-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c1/5e/421aa9ba9bbdb215948ac55a0a8724e6e8f1c4fe51d487346da738f1005e/openprotein_python-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/43/65c0acbd8cc6f50195a3a1fc195c404988b15c67090e73c7a41a9f57d6bd/sphinx_design-0.6.1-py3-none-any.whl @@ -420,6 +419,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/60/16107aea584004c586cc1baf3e284fe0acaf7299ea8228f0e9000af8089f/openprotein_python-0.17.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl @@ -538,7 +538,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c1/5e/421aa9ba9bbdb215948ac55a0a8724e6e8f1c4fe51d487346da738f1005e/openprotein_python-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/43/65c0acbd8cc6f50195a3a1fc195c404988b15c67090e73c7a41a9f57d6bd/sphinx_design-0.6.1-py3-none-any.whl @@ -564,6 +563,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/60/16107aea584004c586cc1baf3e284fe0acaf7299ea8228f0e9000af8089f/openprotein_python-0.17.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/86/dd6e5db36df29e76c7a7699123569a4a18c1623ce68d826ed96c62643cae/mdit_py_plugins-0.5.0-py3-none-any.whl @@ -702,7 +702,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b8/7e/8c917cc573310e5dc91cbeead76f1b600d3fb17cf0969db02c9cf92e3cfa/scipy-1.17.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/bb/4a/2e5583e544bc437d5e8e54b47db87430df9031b29b48d17f26d129fa60c0/trove_classifiers-2026.1.14.14-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c1/5e/421aa9ba9bbdb215948ac55a0a8724e6e8f1c4fe51d487346da738f1005e/openprotein_python-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c4/5a/8ba375025701c09b309e8d5163c5a4ce0102fa86bbf8800eb0d7ac87bc51/pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl @@ -732,6 +731,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/60/16107aea584004c586cc1baf3e284fe0acaf7299ea8228f0e9000af8089f/openprotein_python-0.17.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl @@ -861,7 +861,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c1/5e/421aa9ba9bbdb215948ac55a0a8724e6e8f1c4fe51d487346da738f1005e/openprotein_python-0.16.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/43/65c0acbd8cc6f50195a3a1fc195c404988b15c67090e73c7a41a9f57d6bd/sphinx_design-0.6.1-py3-none-any.whl @@ -890,6 +889,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/60/16107aea584004c586cc1baf3e284fe0acaf7299ea8228f0e9000af8089f/openprotein_python-0.17.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/69/00aafdb4e4509c2ca6064646cba9cd4b37933898f426756adb2cb92ebbed/kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl @@ -3131,20 +3131,6 @@ packages: - docopt ; extra == 'testing' - pytest<9.0.0 ; extra == 'testing' requires_python: '>=3.6' -- pypi: https://files.pythonhosted.org/packages/c1/5e/421aa9ba9bbdb215948ac55a0a8724e6e8f1c4fe51d487346da738f1005e/openprotein_python-0.16.0-py3-none-any.whl - name: openprotein-python - version: 0.16.0 - sha256: 104d334dd13c4232dd3ebefa2f6e76c3513eb82f528ea15a13c1922b4d4d1bc8 - requires_dist: - - filelock>=3.13,<4 - - gemmi>=0.6.0,<0.8 - - numpy>=1.9,<3 - - pandas>=2.2.2,<3 - - pydantic>=2.5,<3 - - requests>=2.32.3,<3 - - tomli>=2.3.0,<3 - - tqdm>=4.66.4,<5 - requires_python: '>=3.10,<3.15' - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl name: executing version: 2.2.1 @@ -3546,6 +3532,20 @@ packages: version: 1.5.1 sha256: 93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' +- pypi: https://files.pythonhosted.org/packages/f1/60/16107aea584004c586cc1baf3e284fe0acaf7299ea8228f0e9000af8089f/openprotein_python-0.17.0-py3-none-any.whl + name: openprotein-python + version: 0.17.0 + sha256: d0a4829e4d9980ac576c6bafdf2473821b2b4d4a96311ffb82d549846a4ad912 + requires_dist: + - filelock>=3.13 + - gemmi>=0.6.0,<0.8 + - numpy>=1.9 + - pandas>=2.2.2 + - pydantic>=2.5 + - requests>=2.32.3 + - tomli>=2.3.0 + - tqdm>=4.66.4 + requires_python: '>=3.10,<3.15' - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl name: stack-data version: 0.6.3 diff --git a/pyproject.toml b/pyproject.toml index 822c364d..8abd9d45 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ dependencies = [ "sphinx-notfound-page>=1.1.0,<1.2.0", "sphinx-design>=0.6.1,<0.7", # autodoc - "openprotein-python>=0.16.0,<0.17.0", + "openprotein-python>=0.17.0,<0.18.0", "ipython>=9.8.0,<10", # nbsphinx needs ipywidgets to render notebooks containing widget output "ipywidgets>=8.1.0,<9", diff --git a/source/_static/opmodels/align/image1.png b/source/_static/opmodels/align/image1.png index 9b39c69a..73b24959 100644 Binary files a/source/_static/opmodels/align/image1.png and b/source/_static/opmodels/align/image1.png differ diff --git a/source/_static/opmodels/align/image2.png b/source/_static/opmodels/align/image2.png index 897f9654..c9d03d9c 100644 Binary files a/source/_static/opmodels/align/image2.png and b/source/_static/opmodels/align/image2.png differ diff --git a/source/_static/opmodels/align/image3.png b/source/_static/opmodels/align/image3.png index 34a34899..ea9ff2cf 100644 Binary files a/source/_static/opmodels/align/image3.png and b/source/_static/opmodels/align/image3.png differ diff --git a/source/_static/opmodels/align/image4.png b/source/_static/opmodels/align/image4.png index 0e245753..87f0e58e 100644 Binary files a/source/_static/opmodels/align/image4.png and b/source/_static/opmodels/align/image4.png differ diff --git a/source/_static/opmodels/align/image5.png b/source/_static/opmodels/align/image5.png index c5a549e6..7f47a87e 100644 Binary files a/source/_static/opmodels/align/image5.png and b/source/_static/opmodels/align/image5.png differ diff --git a/source/_static/opmodels/align/image6.png b/source/_static/opmodels/align/image6.png index 61a64fa1..d7e976ef 100644 Binary files a/source/_static/opmodels/align/image6.png and b/source/_static/opmodels/align/image6.png differ diff --git a/source/_static/opmodels/align/image7.png b/source/_static/opmodels/align/image7.png index 07ae821e..5bf1adf4 100644 Binary files a/source/_static/opmodels/align/image7.png and b/source/_static/opmodels/align/image7.png differ diff --git a/source/_static/opmodels/align/image8.png b/source/_static/opmodels/align/image8.png index 3a2500c6..b353f722 100644 Binary files a/source/_static/opmodels/align/image8.png and b/source/_static/opmodels/align/image8.png differ diff --git a/source/_static/opmodels/annotation/annotation-1.png b/source/_static/opmodels/annotation/annotation-1.png new file mode 100644 index 00000000..696971db Binary files /dev/null and b/source/_static/opmodels/annotation/annotation-1.png differ diff --git a/source/_static/opmodels/annotation/annotation-2.png b/source/_static/opmodels/annotation/annotation-2.png new file mode 100644 index 00000000..8e08783e Binary files /dev/null and b/source/_static/opmodels/annotation/annotation-2.png differ diff --git a/source/_static/opmodels/annotation/annotation-3.png b/source/_static/opmodels/annotation/annotation-3.png new file mode 100644 index 00000000..e028c0d1 Binary files /dev/null and b/source/_static/opmodels/annotation/annotation-3.png differ diff --git a/source/_static/opmodels/cluster/cluster-1.png b/source/_static/opmodels/cluster/cluster-1.png new file mode 100644 index 00000000..8aaf9395 Binary files /dev/null and b/source/_static/opmodels/cluster/cluster-1.png differ diff --git a/source/_static/opmodels/cluster/cluster-2.png b/source/_static/opmodels/cluster/cluster-2.png new file mode 100644 index 00000000..d83bbfa5 Binary files /dev/null and b/source/_static/opmodels/cluster/cluster-2.png differ diff --git a/source/_static/opmodels/cluster/cluster-3.png b/source/_static/opmodels/cluster/cluster-3.png new file mode 100644 index 00000000..aa4289eb Binary files /dev/null and b/source/_static/opmodels/cluster/cluster-3.png differ diff --git a/source/_static/opmodels/cluster/cluster-4.png b/source/_static/opmodels/cluster/cluster-4.png new file mode 100644 index 00000000..e67c9e08 Binary files /dev/null and b/source/_static/opmodels/cluster/cluster-4.png differ diff --git a/source/_static/opmodels/cluster/cluster-5.png b/source/_static/opmodels/cluster/cluster-5.png new file mode 100644 index 00000000..37b0e592 Binary files /dev/null and b/source/_static/opmodels/cluster/cluster-5.png differ diff --git a/source/_static/opmodels/cluster/cluster-6.gif b/source/_static/opmodels/cluster/cluster-6.gif new file mode 100644 index 00000000..02215b7c Binary files /dev/null and b/source/_static/opmodels/cluster/cluster-6.gif differ diff --git a/source/_static/opmodels/design/create-design.png b/source/_static/opmodels/design/create-design.png index 3fc54323..ea46ca40 100644 Binary files a/source/_static/opmodels/design/create-design.png and b/source/_static/opmodels/design/create-design.png differ diff --git a/source/_static/opmodels/design/design-constraints-rules.png b/source/_static/opmodels/design/design-constraints-rules.png index b4b2095e..b77b0c92 100644 Binary files a/source/_static/opmodels/design/design-constraints-rules.png and b/source/_static/opmodels/design/design-constraints-rules.png differ diff --git a/source/_static/opmodels/models/calibration.png b/source/_static/opmodels/models/calibration.png index a4218501..85f5dd81 100644 Binary files a/source/_static/opmodels/models/calibration.png and b/source/_static/opmodels/models/calibration.png differ diff --git a/source/_static/opmodels/models/compare-models.png b/source/_static/opmodels/models/compare-models.png deleted file mode 100644 index f593c319..00000000 Binary files a/source/_static/opmodels/models/compare-models.png and /dev/null differ diff --git a/source/_static/opmodels/models/cross-validation.png b/source/_static/opmodels/models/cross-validation.png index 43b8f805..dca443e7 100644 Binary files a/source/_static/opmodels/models/cross-validation.png and b/source/_static/opmodels/models/cross-validation.png differ diff --git a/source/_static/opmodels/models/model-drawer.png b/source/_static/opmodels/models/model-drawer.png deleted file mode 100644 index 416b13d1..00000000 Binary files a/source/_static/opmodels/models/model-drawer.png and /dev/null differ diff --git a/source/_static/opmodels/models/model-drawer2.png b/source/_static/opmodels/models/model-drawer2.png index e057b6f2..c5b980c7 100644 Binary files a/source/_static/opmodels/models/model-drawer2.png and b/source/_static/opmodels/models/model-drawer2.png differ diff --git a/source/_static/opmodels/models/model-drawer3.png b/source/_static/opmodels/models/model-drawer3.png index 49b21824..22b75f18 100644 Binary files a/source/_static/opmodels/models/model-drawer3.png and b/source/_static/opmodels/models/model-drawer3.png differ diff --git a/source/_static/opmodels/models/models-nav.png b/source/_static/opmodels/models/models-nav.png index e86fe485..cc9f56bf 100644 Binary files a/source/_static/opmodels/models/models-nav.png and b/source/_static/opmodels/models/models-nav.png differ diff --git a/source/_static/opmodels/models/models-page.png b/source/_static/opmodels/models/models-page.png index f0570b87..e8e22a50 100644 Binary files a/source/_static/opmodels/models/models-page.png and b/source/_static/opmodels/models/models-page.png differ diff --git a/source/_static/opmodels/models/train-model.png b/source/_static/opmodels/models/train-model.png index 97c7b7e3..59a94701 100644 Binary files a/source/_static/opmodels/models/train-model.png and b/source/_static/opmodels/models/train-model.png differ diff --git a/source/_static/opmodels/models/training-curve.png b/source/_static/opmodels/models/training-curve.png index 25fad848..ef32898c 100644 Binary files a/source/_static/opmodels/models/training-curve.png and b/source/_static/opmodels/models/training-curve.png differ diff --git a/source/_static/opmodels/navigating-your-project/core-leftnav.png b/source/_static/opmodels/navigating-your-project/core-leftnav.png index fc22b053..d39dcd7f 100644 Binary files a/source/_static/opmodels/navigating-your-project/core-leftnav.png and b/source/_static/opmodels/navigating-your-project/core-leftnav.png differ diff --git a/source/_static/opmodels/navigating-your-project/core-mainproject.png b/source/_static/opmodels/navigating-your-project/core-mainproject.png index 5f651ea9..cc87a99c 100644 Binary files a/source/_static/opmodels/navigating-your-project/core-mainproject.png and b/source/_static/opmodels/navigating-your-project/core-mainproject.png differ diff --git a/source/_static/opmodels/navigating-your-project/job-status.png b/source/_static/opmodels/navigating-your-project/job-status.png index bbdb76a8..3dd3c2bf 100644 Binary files a/source/_static/opmodels/navigating-your-project/job-status.png and b/source/_static/opmodels/navigating-your-project/job-status.png differ diff --git a/source/_static/opmodels/overview-projects.png b/source/_static/opmodels/overview-projects.png index 59e5fff9..cffe9343 100644 Binary files a/source/_static/opmodels/overview-projects.png and b/source/_static/opmodels/overview-projects.png differ diff --git a/source/_static/opmodels/ref-sequence/consensus_seq_1.png b/source/_static/opmodels/ref-sequence/consensus_seq_1.png index 8e2970db..944ac560 100644 Binary files a/source/_static/opmodels/ref-sequence/consensus_seq_1.png and b/source/_static/opmodels/ref-sequence/consensus_seq_1.png differ diff --git a/source/_static/opmodels/ref-sequence/consensus_seq_2.png b/source/_static/opmodels/ref-sequence/consensus_seq_2.png index 24f2a13c..5aa4d347 100644 Binary files a/source/_static/opmodels/ref-sequence/consensus_seq_2.png and b/source/_static/opmodels/ref-sequence/consensus_seq_2.png differ diff --git a/source/_static/opmodels/ref-sequence/ref-seq.png b/source/_static/opmodels/ref-sequence/ref-seq.png index c7581c8c..cc7a373d 100644 Binary files a/source/_static/opmodels/ref-sequence/ref-seq.png and b/source/_static/opmodels/ref-sequence/ref-seq.png differ diff --git a/source/_static/opmodels/substitution-analysis/filters.png b/source/_static/opmodels/substitution-analysis/filters.png index 000f906b..8f223053 100644 Binary files a/source/_static/opmodels/substitution-analysis/filters.png and b/source/_static/opmodels/substitution-analysis/filters.png differ diff --git a/source/_static/opmodels/substitution-analysis/image1.png b/source/_static/opmodels/substitution-analysis/image1.png index 573861bd..b883aaea 100644 Binary files a/source/_static/opmodels/substitution-analysis/image1.png and b/source/_static/opmodels/substitution-analysis/image1.png differ diff --git a/source/_static/opmodels/substitution-analysis/image2.png b/source/_static/opmodels/substitution-analysis/image2.png index 14b92553..d8fa82f2 100644 Binary files a/source/_static/opmodels/substitution-analysis/image2.png and b/source/_static/opmodels/substitution-analysis/image2.png differ diff --git a/source/_static/opmodels/substitution-analysis/image3.png b/source/_static/opmodels/substitution-analysis/image3.png index d115b201..20ffec25 100644 Binary files a/source/_static/opmodels/substitution-analysis/image3.png and b/source/_static/opmodels/substitution-analysis/image3.png differ diff --git a/source/_static/opmodels/substitution-analysis/image4.png b/source/_static/opmodels/substitution-analysis/image4.png index 5150a51a..8ed84021 100644 Binary files a/source/_static/opmodels/substitution-analysis/image4.png and b/source/_static/opmodels/substitution-analysis/image4.png differ diff --git a/source/_static/opmodels/substitution-analysis/image6.png b/source/_static/opmodels/substitution-analysis/image6.png index 7362f934..5c1136d0 100644 Binary files a/source/_static/opmodels/substitution-analysis/image6.png and b/source/_static/opmodels/substitution-analysis/image6.png differ diff --git a/source/_static/opmodels/substitution-analysis/image7.png b/source/_static/opmodels/substitution-analysis/image7.png index 8a9d2439..8a560025 100644 Binary files a/source/_static/opmodels/substitution-analysis/image7.png and b/source/_static/opmodels/substitution-analysis/image7.png differ diff --git a/source/_static/opmodels/uploading-your-data/core-new-project.png b/source/_static/opmodels/uploading-your-data/core-new-project.png index beddc50f..7d8faac8 100644 Binary files a/source/_static/opmodels/uploading-your-data/core-new-project.png and b/source/_static/opmodels/uploading-your-data/core-new-project.png differ diff --git a/source/_static/opmodels/uploading-your-data/dataset-settings.png b/source/_static/opmodels/uploading-your-data/dataset-settings.png index fae070e3..fc0c63a4 100644 Binary files a/source/_static/opmodels/uploading-your-data/dataset-settings.png and b/source/_static/opmodels/uploading-your-data/dataset-settings.png differ diff --git a/source/_static/opmodels/uploading-your-data/replicate-header.png b/source/_static/opmodels/uploading-your-data/replicate-header.png index 93251044..e7a71bbe 100644 Binary files a/source/_static/opmodels/uploading-your-data/replicate-header.png and b/source/_static/opmodels/uploading-your-data/replicate-header.png differ diff --git a/source/_static/opmodels/uploading-your-data/replicate-mapping.png b/source/_static/opmodels/uploading-your-data/replicate-mapping.png index 7f7c1ac8..1b6d445f 100644 Binary files a/source/_static/opmodels/uploading-your-data/replicate-mapping.png and b/source/_static/opmodels/uploading-your-data/replicate-mapping.png differ diff --git a/source/_static/opmodels/uploading-your-data/replicate-plot.png b/source/_static/opmodels/uploading-your-data/replicate-plot.png index 91dfe902..099d130b 100644 Binary files a/source/_static/opmodels/uploading-your-data/replicate-plot.png and b/source/_static/opmodels/uploading-your-data/replicate-plot.png differ diff --git a/source/_static/opmodels/uploading-your-data/replicate-tablesettings.png b/source/_static/opmodels/uploading-your-data/replicate-tablesettings.png index 422711d2..b90d5e50 100644 Binary files a/source/_static/opmodels/uploading-your-data/replicate-tablesettings.png and b/source/_static/opmodels/uploading-your-data/replicate-tablesettings.png differ diff --git a/source/_static/opmodels/visualizing-your-data/Design-table-settings.png b/source/_static/opmodels/visualizing-your-data/Design-table-settings.png index 531c434f..89949520 100644 Binary files a/source/_static/opmodels/visualizing-your-data/Design-table-settings.png and b/source/_static/opmodels/visualizing-your-data/Design-table-settings.png differ diff --git a/source/_static/opmodels/visualizing-your-data/design-results-table.png b/source/_static/opmodels/visualizing-your-data/design-results-table.png index f4fd0165..b7f2b54a 100644 Binary files a/source/_static/opmodels/visualizing-your-data/design-results-table.png and b/source/_static/opmodels/visualizing-your-data/design-results-table.png differ diff --git a/source/_static/structure-prediction/AlphaFold2.png b/source/_static/structure-prediction/AlphaFold2.png index 83f83616..431133c5 100644 Binary files a/source/_static/structure-prediction/AlphaFold2.png and b/source/_static/structure-prediction/AlphaFold2.png differ diff --git a/source/_static/structure-prediction/ESMFold.png b/source/_static/structure-prediction/ESMFold.png index 23e8e021..e0d2f16f 100644 Binary files a/source/_static/structure-prediction/ESMFold.png and b/source/_static/structure-prediction/ESMFold.png differ diff --git a/source/_static/structure-prediction/boltz.png b/source/_static/structure-prediction/boltz.png index 1297f0a0..c27d06b9 100644 Binary files a/source/_static/structure-prediction/boltz.png and b/source/_static/structure-prediction/boltz.png differ diff --git a/source/_static/structure-prediction/esmfold2.png b/source/_static/structure-prediction/esmfold2.png index 4a98e698..89e65a73 100644 Binary files a/source/_static/structure-prediction/esmfold2.png and b/source/_static/structure-prediction/esmfold2.png differ diff --git a/source/_static/structure-prediction/minifold.png b/source/_static/structure-prediction/minifold.png index 3aadec9f..bbff3353 100644 Binary files a/source/_static/structure-prediction/minifold.png and b/source/_static/structure-prediction/minifold.png differ diff --git a/source/_static/structure-prediction/protenix.png b/source/_static/structure-prediction/protenix.png index e19d031d..dd4ded16 100644 Binary files a/source/_static/structure-prediction/protenix.png and b/source/_static/structure-prediction/protenix.png differ diff --git a/source/_static/structure-prediction/rosettafold.png b/source/_static/structure-prediction/rosettafold.png index 55d610fe..0e4632fd 100644 Binary files a/source/_static/structure-prediction/rosettafold.png and b/source/_static/structure-prediction/rosettafold.png differ diff --git a/source/_static/structure-prediction/struct-dropdown.png b/source/_static/structure-prediction/struct-dropdown.png index f2e6c3ad..f7fc8d00 100644 Binary files a/source/_static/structure-prediction/struct-dropdown.png and b/source/_static/structure-prediction/struct-dropdown.png differ diff --git a/source/_static/tools/poet/filters-2.png b/source/_static/tools/poet/filters-2.png index 000f906b..69854d86 100644 Binary files a/source/_static/tools/poet/filters-2.png and b/source/_static/tools/poet/filters-2.png differ diff --git a/source/_static/tools/poet/indel-fields.png b/source/_static/tools/poet/indel-fields.png index 782283e8..20c40215 100644 Binary files a/source/_static/tools/poet/indel-fields.png and b/source/_static/tools/poet/indel-fields.png differ diff --git a/source/_static/tools/poet/indel-nav.png b/source/_static/tools/poet/indel-nav.png index a0f5404f..b21baeab 100644 Binary files a/source/_static/tools/poet/indel-nav.png and b/source/_static/tools/poet/indel-nav.png differ diff --git a/source/_static/tools/poet/poet-history-1.png b/source/_static/tools/poet/poet-history-1.png index eeeea1be..121afd07 100644 Binary files a/source/_static/tools/poet/poet-history-1.png and b/source/_static/tools/poet/poet-history-1.png differ diff --git a/source/_static/tools/poet/poet-history-2.png b/source/_static/tools/poet/poet-history-2.png index 2672233f..102ffddc 100644 Binary files a/source/_static/tools/poet/poet-history-2.png and b/source/_static/tools/poet/poet-history-2.png differ diff --git a/source/_static/tools/poet/poet-nav.png b/source/_static/tools/poet/poet-nav.png index 6aa61fed..00750731 100644 Binary files a/source/_static/tools/poet/poet-nav.png and b/source/_static/tools/poet/poet-nav.png differ diff --git a/source/_static/tools/poet/prediction-1.png b/source/_static/tools/poet/prediction-1.png new file mode 100644 index 00000000..f94432aa Binary files /dev/null and b/source/_static/tools/poet/prediction-1.png differ diff --git a/source/_static/tools/poet/prediction-2.png b/source/_static/tools/poet/prediction-2.png new file mode 100644 index 00000000..cd031824 Binary files /dev/null and b/source/_static/tools/poet/prediction-2.png differ diff --git a/source/_static/tools/poet/prediction-3.png b/source/_static/tools/poet/prediction-3.png new file mode 100644 index 00000000..71cb2fc0 Binary files /dev/null and b/source/_static/tools/poet/prediction-3.png differ diff --git a/source/_static/tools/poet/prediction-4.png b/source/_static/tools/poet/prediction-4.png new file mode 100644 index 00000000..16cd3341 Binary files /dev/null and b/source/_static/tools/poet/prediction-4.png differ diff --git a/source/_static/tools/poet/prompt-10.png b/source/_static/tools/poet/prompt-10.png index 0c38103b..a5d40e4f 100644 Binary files a/source/_static/tools/poet/prompt-10.png and b/source/_static/tools/poet/prompt-10.png differ diff --git a/source/_static/tools/poet/prompt-11.png b/source/_static/tools/poet/prompt-11.png index 9d648496..b1d4a047 100644 Binary files a/source/_static/tools/poet/prompt-11.png and b/source/_static/tools/poet/prompt-11.png differ diff --git a/source/_static/tools/poet/prompt-12.png b/source/_static/tools/poet/prompt-12.png index 4e3c46fe..cfaf80c1 100644 Binary files a/source/_static/tools/poet/prompt-12.png and b/source/_static/tools/poet/prompt-12.png differ diff --git a/source/_static/tools/poet/prompt-13.png b/source/_static/tools/poet/prompt-13.png index dae4d0f1..d1ecdb83 100644 Binary files a/source/_static/tools/poet/prompt-13.png and b/source/_static/tools/poet/prompt-13.png differ diff --git a/source/_static/tools/poet/prompt-2.png b/source/_static/tools/poet/prompt-2.png index 1cc29677..c71f614f 100644 Binary files a/source/_static/tools/poet/prompt-2.png and b/source/_static/tools/poet/prompt-2.png differ diff --git a/source/_static/tools/poet/prompt-3.png b/source/_static/tools/poet/prompt-3.png index 4c20be8a..81dc860d 100644 Binary files a/source/_static/tools/poet/prompt-3.png and b/source/_static/tools/poet/prompt-3.png differ diff --git a/source/_static/tools/poet/prompt-4.png b/source/_static/tools/poet/prompt-4.png index e63de809..aac6814d 100644 Binary files a/source/_static/tools/poet/prompt-4.png and b/source/_static/tools/poet/prompt-4.png differ diff --git a/source/_static/tools/poet/prompt-5.png b/source/_static/tools/poet/prompt-5.png index cc9c4b02..9356f98e 100644 Binary files a/source/_static/tools/poet/prompt-5.png and b/source/_static/tools/poet/prompt-5.png differ diff --git a/source/_static/tools/poet/prompt-6-1.png b/source/_static/tools/poet/prompt-6-1.png new file mode 100644 index 00000000..0c02defe Binary files /dev/null and b/source/_static/tools/poet/prompt-6-1.png differ diff --git a/source/_static/tools/poet/prompt-6-2.png b/source/_static/tools/poet/prompt-6-2.png new file mode 100644 index 00000000..747710e9 Binary files /dev/null and b/source/_static/tools/poet/prompt-6-2.png differ diff --git a/source/_static/tools/poet/prompt-6.png b/source/_static/tools/poet/prompt-6.png deleted file mode 100644 index c3676c17..00000000 Binary files a/source/_static/tools/poet/prompt-6.png and /dev/null differ diff --git a/source/_static/tools/poet/prompt-7.png b/source/_static/tools/poet/prompt-7.png index c23b50ae..cd49c692 100644 Binary files a/source/_static/tools/poet/prompt-7.png and b/source/_static/tools/poet/prompt-7.png differ diff --git a/source/_static/tools/poet/prompt-8.png b/source/_static/tools/poet/prompt-8.png index e66b35cd..6d61f939 100644 Binary files a/source/_static/tools/poet/prompt-8.png and b/source/_static/tools/poet/prompt-8.png differ diff --git a/source/_static/tools/poet/prompt-9.png b/source/_static/tools/poet/prompt-9.png index 25a01419..9cebaa4c 100644 Binary files a/source/_static/tools/poet/prompt-9.png and b/source/_static/tools/poet/prompt-9.png differ diff --git a/source/_static/tools/poet/prompt-contenxt-use-existing-1.png b/source/_static/tools/poet/prompt-contenxt-use-existing-1.png deleted file mode 100644 index 26141898..00000000 Binary files a/source/_static/tools/poet/prompt-contenxt-use-existing-1.png and /dev/null differ diff --git a/source/_static/tools/poet/prompt-contenxt-use-existing.png b/source/_static/tools/poet/prompt-contenxt-use-existing.png deleted file mode 100644 index 5d700fcc..00000000 Binary files a/source/_static/tools/poet/prompt-contenxt-use-existing.png and /dev/null differ diff --git a/source/_static/tools/poet/prompt-context-custom-1.png b/source/_static/tools/poet/prompt-context-custom-1.png index 9bcee131..c2ce267f 100644 Binary files a/source/_static/tools/poet/prompt-context-custom-1.png and b/source/_static/tools/poet/prompt-context-custom-1.png differ diff --git a/source/_static/tools/poet/prompt-context-custom-2.png b/source/_static/tools/poet/prompt-context-custom-2.png index f9e38cf1..446498f2 100644 Binary files a/source/_static/tools/poet/prompt-context-custom-2.png and b/source/_static/tools/poet/prompt-context-custom-2.png differ diff --git a/source/_static/tools/poet/prompt-context-msa.png b/source/_static/tools/poet/prompt-context-msa.png index 742b905a..c6ed9525 100644 Binary files a/source/_static/tools/poet/prompt-context-msa.png and b/source/_static/tools/poet/prompt-context-msa.png differ diff --git a/source/_static/tools/poet/prompt-context-use-existing-1.png b/source/_static/tools/poet/prompt-context-use-existing-1.png new file mode 100644 index 00000000..ab40fc30 Binary files /dev/null and b/source/_static/tools/poet/prompt-context-use-existing-1.png differ diff --git a/source/_static/tools/poet/prompt-contenxt-use-existing-2.png b/source/_static/tools/poet/prompt-context-use-existing-2.png similarity index 100% rename from source/_static/tools/poet/prompt-contenxt-use-existing-2.png rename to source/_static/tools/poet/prompt-context-use-existing-2.png diff --git a/source/_static/tools/poet/query-1.png b/source/_static/tools/poet/query-1.png index a2636666..006916b3 100644 Binary files a/source/_static/tools/poet/query-1.png and b/source/_static/tools/poet/query-1.png differ diff --git a/source/_static/tools/poet/query-2.png b/source/_static/tools/poet/query-2.png index 88c7bbfc..a98699e1 100644 Binary files a/source/_static/tools/poet/query-2.png and b/source/_static/tools/poet/query-2.png differ diff --git a/source/_static/tools/poet/refolding settings.png b/source/_static/tools/poet/refolding settings.png deleted file mode 100644 index 9e1ed507..00000000 Binary files a/source/_static/tools/poet/refolding settings.png and /dev/null differ diff --git a/source/_static/tools/poet/refolding-settings.png b/source/_static/tools/poet/refolding-settings.png index 9e1ed507..075a1d8f 100644 Binary files a/source/_static/tools/poet/refolding-settings.png and b/source/_static/tools/poet/refolding-settings.png differ diff --git a/source/_static/tools/poet/results-table-expanded.png b/source/_static/tools/poet/results-table-expanded.png index 4c0c42d9..46733a34 100644 Binary files a/source/_static/tools/poet/results-table-expanded.png and b/source/_static/tools/poet/results-table-expanded.png differ diff --git a/source/_static/tools/poet/results-table-ref-structure.png b/source/_static/tools/poet/results-table-ref-structure.png index e14c8985..116f2a5f 100644 Binary files a/source/_static/tools/poet/results-table-ref-structure.png and b/source/_static/tools/poet/results-table-ref-structure.png differ diff --git a/source/_static/tools/poet/results-table.png b/source/_static/tools/poet/results-table.png index c339df22..16ddbcf0 100644 Binary files a/source/_static/tools/poet/results-table.png and b/source/_static/tools/poet/results-table.png differ diff --git a/source/_static/tools/poet/sampling-parameters.png b/source/_static/tools/poet/sampling-parameters.png index 546d0858..eaaf7482 100644 Binary files a/source/_static/tools/poet/sampling-parameters.png and b/source/_static/tools/poet/sampling-parameters.png differ diff --git a/source/_static/tools/poet/score-sequences-1.png b/source/_static/tools/poet/score-sequences-1.png index d61a4545..581ec9f0 100644 Binary files a/source/_static/tools/poet/score-sequences-1.png and b/source/_static/tools/poet/score-sequences-1.png differ diff --git a/source/_static/tools/poet/sub-analysis-1.png b/source/_static/tools/poet/sub-analysis-1.png index 1b70fe2d..c6620776 100644 Binary files a/source/_static/tools/poet/sub-analysis-1.png and b/source/_static/tools/poet/sub-analysis-1.png differ diff --git a/source/_static/tools/poet/substitution-analysis-input-prompt.png b/source/_static/tools/poet/substitution-analysis-input-prompt.png index 0cc49324..6eecff69 100644 Binary files a/source/_static/tools/poet/substitution-analysis-input-prompt.png and b/source/_static/tools/poet/substitution-analysis-input-prompt.png differ diff --git a/source/_static/tools/poet/system-prompt-1.png b/source/_static/tools/poet/system-prompt-1.png new file mode 100644 index 00000000..01fe7c85 Binary files /dev/null and b/source/_static/tools/poet/system-prompt-1.png differ diff --git a/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-advanced-filters.png b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-advanced-filters.png new file mode 100644 index 00000000..b5fdc876 Binary files /dev/null and b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-advanced-filters.png differ diff --git a/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-antibody-view.png b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-antibody-view.png new file mode 100644 index 00000000..ef7e1402 Binary files /dev/null and b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-antibody-view.png differ diff --git a/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-cluster.png b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-cluster.png new file mode 100644 index 00000000..a0c2893f Binary files /dev/null and b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-cluster.png differ diff --git a/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-dataset-assay-overview.png b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-dataset-assay-overview.png new file mode 100644 index 00000000..d6b46586 Binary files /dev/null and b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-dataset-assay-overview.png differ diff --git a/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-predict.png b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-predict.png new file mode 100644 index 00000000..75037c38 Binary files /dev/null and b/source/_static/walkthroughs/antibody-hit-selection-ngs/ngs-predict.png differ diff --git a/source/python-api/api-reference/fold.rst b/source/python-api/api-reference/fold.rst index 2908c474..24b9b42b 100644 --- a/source/python-api/api-reference/fold.rst +++ b/source/python-api/api-reference/fold.rst @@ -13,12 +13,15 @@ Interface :undoc-members: -Models +Models ------ .. autoclass:: openprotein.fold.ProtenixModel :members: +.. autoclass:: openprotein.fold.ProtenixV2Model + :members: + .. autoclass:: openprotein.fold.Boltz2Model :members: @@ -49,6 +52,9 @@ Models Results ------- +.. autoclass:: openprotein.fold.ProtenixConfidence + :members: + .. autoclass:: openprotein.fold.ESMFold2Confidence :members: diff --git a/source/walkthroughs/antibody-hit-selection-ngs.rst b/source/walkthroughs/antibody-hit-selection-ngs.rst index 020c0b5b..5c8a46d2 100644 --- a/source/walkthroughs/antibody-hit-selection-ngs.rst +++ b/source/walkthroughs/antibody-hit-selection-ngs.rst @@ -9,10 +9,9 @@ This recommended end-to-end workflow guides you through selecting antibody hits from NGS-derived libraries using the **Dataset Assay Details** page. Each step assumes the previous step's output is in place. -This walkthrough is task-oriented. For a detailed feature reference of the controls used below like Predict, Clustering, Advanced Filters, and the Antibody -settings panel, see comprehensive guide at:doc:`/web-app/opmodels/dataset-assay`. +This walkthrough is task-oriented. For a detailed feature reference of the controls used below, view the following pages: `predict withina a table `, 'Clustering `, and the `Antibody settings panel`. -.. figure:: /_static/walkthroughs/antibody-hit-selection-ngs/dataset-assay-overview.png +.. figure:: /_static/walkthroughs/antibody-hit-selection-ngs/ngs-dataset-assay-overview.png :alt: Dataset Assay Details page overview, showing tabs, header chips, and action bar @@ -46,6 +45,9 @@ On the **Dataset** tab, open the **Antibody** panel, then configure the followin You now have a fully annotated table view of the library. +.. figure:: /_static/walkthroughs/antibody-hit-selection-ngs/ngs-antibody-view.png + :alt: open the antibody panel + Reduce redundancy with Clustering ================================= @@ -63,6 +65,8 @@ downstream steps operate on diverse families. You now have a ``Cluster Number`` column. +.. figure:: /_static/walkthroughs/antibody-hit-selection-ngs/ngs-cluster.png + :alt: view cluster column Pre-filter using NGS / antibody metadata ======================================== @@ -88,6 +92,8 @@ Open **Advanced Filters** from the Dataset tab and apply the following filters i Toggle **Show select column** if you want to see what got rejected instead of hiding it. +.. figure:: /_static/walkthroughs/antibody-hit-selection-ngs/ngs-advanced-filters.png + :alt: view cluster column Score with Predict ====================== @@ -105,6 +111,9 @@ With the candidate set narrowed, run a model to rank within it. **Scale with parallel predictions**: You can run multiple predictions in parallel — for example, one for binding and one for developability. Each gets its own chip and its own column. +.. figure:: /_static/walkthroughs/antibody-hit-selection-ngs/ngs-predict.png + :alt: view cluster column + Combine signals ================ diff --git a/source/web-app/opmodels/antibody-annotation.rst b/source/web-app/opmodels/antibody-annotation.rst new file mode 100644 index 00000000..4dbf0e25 --- /dev/null +++ b/source/web-app/opmodels/antibody-annotation.rst @@ -0,0 +1,116 @@ +Antibody annotation +=================== + +This tutorial shows you how the platform automatically annotates antibody sequences on upload: identifying CDR regions, flagging known liabilities, and calling germline V-genes, alleles, and mutation load, all without a separate annotation step. + +Use this as a starting point for screening a dataset for developability risk or germline diversity before moving on to embedding, clustering, or scoring. + +If you run into any challenges or have questions while getting started, please contact `OpenProtein.AI support `_. + + +What you need before starting +------------------------------ + +You need a sequence-only CSV file of antibody sequences. No header row or extra metadata columns are required, the platform detects VH and VL chains on its own and needs no manual chain labeling or numbering. + + +Upload your dataset +^^^^^^^^^^^^^^^^^^^^^ + +Upload your CSV the same way you would a `dataset`. You do not need to upload a csv with properties. If the sequences are recognized as antibodies, the table automatically gains a set of **CDR1** / **CDR2** / **CDR3** / **Liability** chips above the grid, and an **Antibody** entry appears in the table toolbar alongside **Dataset Info**, **Kabat**, **Consensus**, **Settings**, **Collapse**, **Filters**, and **Export**. + +No separate annotation job is needed. Non-antibody protein datasets will not show the Antibody control, since there's no CDR or germline structure to annotate. + + + +Viewing the antibody settings +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Click **Antibody** in the toolbar to open the annotation panel. + +- **Highlight CDRs** lets you toggle **Show CDR1** / **CDR2** / **CDR3** independently. Each region is color-coded directly inside the VH and VL sequence text in the table. +- **Sequence view** offers **Aligned** (pad sequences to a common length for side-by-side comparison) and **Trim non-standard positions**. +- The numbering scheme used to define the CDR boundaries (Kabat, by default) is set from the separate **Kabat** dropdown next to Antibody in the toolbar. + +.. image:: /_static/opmodels/annotation/annotation-1.png + :alt: Antibody panel open showing Highlight CDRs, Sequence view, Liabilities, and Show antibody columns controls + + +Review flagged liabilities +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The **Liabilities** section flags residues or motifs known to affect antibody developability. + +- Choose **Highlight** to mark liabilities directly in the sequence text while still seeing every row. +- Switch to **Filter** to narrow the table down to rows that contain a flagged liability. +- **Show column** adds a dedicated Liability column to the grid, matching the red **Liability** chip shown above the table alongside the CDR chips. + +Use Highlight while you're still exploring the dataset broadly, and switch to Filter once you're ready to narrow in on sequences that need to be deprioritized or redesigned around a specific liability. + + +Choose which antibody columns to show +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Show antibody columns** controls which germline and mutation metrics appear in the grid. It's split into two groups: + +- **Gene**: Germline pair, Heavy V-Gene, and Light V-Gene, each with an **Allele** toggle that switches the calls between gene-level (for example ``IGHV1-69``) and allele-level (for example ``IGHV1-69*01``) precision. +- **Metrics**: Germline pair frequency, Total Mutations, CDR3 length, and Germline distance, numeric summaries computed from each sequence's alignment back to its called germline. + + +Read the annotated table +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Every selected column appears directly in the grid. VH and VL show the full sequence with CDR1, CDR2, and CDR3 shaded in distinct colors inline, followed by the germline and mutation columns you selected: Germline Pair, Germline Pair Frequency, Heavy V-Gene, Light V-Gene, Total Mutations, and more. + +.. image:: /_static/opmodels/annotation/annotation-2.png + :alt: Dataset table with VH and VL columns showing color-coded CDR highlighting, plus Germline Pair, Germline Pair Frequency, Heavy V-Gene, Light V-Gene, and Total Mutations columns + +From here, sort or filter on any of these columns the same way you would elsewhere in the table, and combine them with Embedding, Cluster, or Predictions to bring germline and liability context into hit selection. + + +Column reference +----------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 30 + :align: left + + * - Column + - What it tells you + * - Germline Pair + - The closest matching heavy and light germline gene (or allele, if the Allele toggle is on) called together, for example ``IGHV1-69*01_IGLV1-44*01``. + * - Germline Pair Frequency + - How often this exact germline pairing occurs across the dataset, a quick signal of whether a sequence sits in a common or rare germline background. + * - Heavy V-Gene / Light V-Gene + - The called germline V-gene for each chain individually, with the Allele toggle switching between gene-level and allele-level precision. + * - Total Mutations + - Count of amino acid differences between the sequence and its called germline, a proxy for how far a sequence has diverged through affinity maturation or engineering. + * - CDR3 length + - Length of the CDR3 loop, useful for spotting unusually long or short CDR3s that may affect developability or expression. + * - Germline distance + - Overall sequence distance from the called germline, a broader divergence measure than Total Mutations alone. + * - Liability + - Flags residues or motifs associated with known developability risks (for example deamidation, oxidation, glycosylation sites), shown inline via Highlight or as its own column via Show column. + + +Tips and troubleshooting +-------------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 20 + :align: left + + * - Question + - Answer + * - Do I need to tell the platform which columns are heavy chain versus light chain? + - No. A sequence-only upload is enough, the platform detects VH and VL chains and numbers them automatically. There's no separate setup step before the Antibody panel becomes available. + * - Why would I turn on Allele instead of leaving germline calls at the gene level? + - Allele-level calls (for example ``IGHV1-69*01``) are more specific and useful when you need to track fine-grained germline differences, such as comparing sequences that share a V-gene but differ by allele. Gene-level calls are easier to scan when you just want a broad family view. + * - My sequences aren't getting annotated as antibodies. + - Confirm the upload is a plain sequence-only CSV or FASTA (no unexpected extra columns before the sequence data) and that the sequences resemble recognizable antibody variable domains. Non-antibody protein datasets won't show the Antibody control since there's no CDR or germline structure to annotate. + * - How does this relate to Embedding, Cluster, and Predictions? + - Antibody annotation is descriptive context computed directly from sequence, it doesn't require an embedding job to run first. You can use it on its own to screen for liabilities and germline diversity, or alongside Embedding, Cluster, and Predictions for a fuller view when selecting hits. + +Please contact `OpenProtein.AI support `_ if the suggested solutions don't resolve the issue. diff --git a/source/web-app/opmodels/cluster-sequences.rst b/source/web-app/opmodels/cluster-sequences.rst new file mode 100644 index 00000000..61402aed --- /dev/null +++ b/source/web-app/opmodels/cluster-sequences.rst @@ -0,0 +1,159 @@ +Cluster sequences +================== + +Overview +-------- + +Clustering groups the sequences in a table by similarity in embedding space, using hierarchical clustering on top of a protein language model embedding (for example, PoET-2). Once a clustering job finishes, every sequence gets a cluster label you can view as a color-coded UMAP, browse as a column in the table, and use to filter or select groups of related sequences. + + +Where this applies +--------------------- + +The Cluster control lives in the same toolbar (alongside Embedding and Predictions) above every sequence table in the product, so the steps below work the same way across **Generate**, **Score**, and **Design**. + + +Before you start +------------------- + +- Have a sequence table open. +- Clustering runs on top of an **embedding**. You will be able to pick an embedding model as part of the setup, so you don't need to precompute one separately. +- How to build the **prompt** for the embedding model, see Embedding Model and Prompt below. + + +1. Open the cluster panel +---------------------------- + +In the toolbar above the table, click the **Cluster** dropdown (it reads ``None`` if nothing is clustered yet). This opens the **Cluster** panel, which lists any existing clustering jobs that had already been run against the table and their settings (embedding, method, linkage, distance metric). + +To start a new one, click **New clustering** in the top-right of the panel. + +.. figure:: /_static/opmodels/cluster/cluster-1.png + :alt: new cluster job + +**Tip:** If a clustering job has already been run on this table, you can just select it from this list instead of creating a new one, jump to Step 4 below. + + +2. Configure the clustering job +----------------------------------- + +**New clustering** opens the **Cluster Sequences** dialog. This clusters every sequence in the table using the embedding model and method you choose here. + +.. figure:: /_static/opmodels/cluster/cluster-2.png + :alt: configuring settings for embedding model + +*The Cluster sequences dialog: pick an embedding model and prompt on top, then a reduction type and hierarchical clustering method below.* + +Embedding model and prompt +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- **Embedding model**: choose which protein language model generates the embeddings sequences are clustered on. The current recommended default is **PoET-2**. +- **Prompt**: PoET family models are conditional, so they need a prompt for context. Reuse an existing saved prompt from the list, or click **+ Create new prompt** to build a new one. See `prompt and prompt sampling methods <./prompts.rst>`_ on how to build a prompt. + +.. figure:: /_static/opmodels/cluster/cluster-3.png + :alt: building a prompt for PoET-2 as the selected embedding model + +**Note:** Models without a conditional prompt requirement (e.g. ESM) will skip the prompt step. If you see the error *"Prompt Query: Please enter a sequence or upload a file..."*, either finish building/selecting a prompt or switch to a model that doesn't require one. + +Reduction type and clustering method +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- **Reduction type**: how per-residue embeddings are collapsed into a single vector per sequence (Recommended: ``Mean``). +- **Linkage method**: the hierarchical clustering linkage criterion (Recommended: ``Ward``). +- **Distance metric**: the distance used between embedding vectors (Recommended: ``Euclidean``). Some linkage methods, like Ward, require Euclidean distance and will lock this field automatically. + +.. figure:: /_static/opmodels/cluster/cluster-4.png + :alt: configuring cluster method and reduction types + +When everything is set, click **Run**. + + +3. Run the job and wait for it to finish +-------------------------------------------- + +Clustering runs asynchronously. After you click Run, a job status bar appears above the table, and the **Jobs** counter in the top-right increments. You can keep working, open the Jobs panel any time to check progress, and the new cluster becomes selectable in the Cluster dropdown once it completes. Refresh your browser to view the completed jobs. + + +4. Select the cluster and tune its resolution +------------------------------------------------- + +Open the Cluster dropdown and click a clustering run to select it. Two additional controls appear for hierarchical clusterings: + +- **Number of clusters**: cuts the hierarchical dendrogram to produce exactly this many clusters. +- **Cluster distance**: alternatively, cut the dendrogram at a given distance threshold, adjusting one updates the other. + +.. figure:: /_static/opmodels/cluster/cluster-5.png + :alt: configuring cluster distance and number of clusters + +Both update instantly against the already-computed job, so you can explore coarser or finer groupings without re-running the clustering. Click **Deselect cluster** to go back to ``None``. + +*With a cluster selected, use Number of clusters or Cluster distance to change resolution on the fly.* + + +5. Use the results +---------------------- + +- **UMAP tab**: in the right-hand Dataset panel, set **Discrete** to **Cluster** to color every point by its cluster assignment, using a distinct-colors legend numbered 1, 2, 3, etc. +- **Dataset / results table**: each row shows its assigned cluster once a clustering is selected, so you can sort or filter the table by cluster. +- **Downstream actions**: select a cluster's points on the UMAP (click, or Shift-drag to multi-select) to view them in the table. + +.. figure:: /_static/opmodels/cluster/cluster-6.gif + :alt: selecting sequences in a cluster to view in the table + +*UMAP colored by cluster (Discrete to Cluster), with each of the 10 clusters shown in a distinct color.* + +**Tip:** Switch **Discrete** back to a continuous property at any time to compare cluster structure against an experimental readout side by side. + + +Settings reference +---------------------- + +.. list-table:: + :header-rows: 1 + :widths: 15 12 30 + :align: left + + * - Setting + - Required? + - What it controls + * - Embedding model + - Required + - Which protein language model produces the per-sequence embeddings clustering runs on (PoET-2, ESM variants, AbLang, etc.). + * - Prompt + - Model-dependent + - Context sequences used by conditional models (PoET family). Reuse a saved prompt or build one via Homology Search, MSA upload, Property Based Sample, or direct Upload. + * - Reduction type + - Required + - How per-residue embeddings are pooled into one vector per sequence (e.g. Mean). + * - Linkage method + - Required + - Hierarchical clustering linkage criterion, e.g. Ward, complete, average. + * - Distance metric + - Required + - Distance function between embeddings, e.g. Euclidean. Some linkage methods force this to Euclidean. + * - Number of clusters + - Post-run + - Cuts the dendrogram to a target cluster count. Adjustable after the job completes, no re-run needed. + * - Cluster distance + - Post-run + - Cuts the dendrogram at a distance threshold instead of a fixed count. Linked to Number of clusters. + + +Tips and troubleshooting +---------------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 20 + :align: left + + * - Question + - Answer + * - The Run button gives a "Prompt Query" error. + - The selected embedding model needs a prompt but none is attached yet. Select an existing prompt from the list, finish building a new one and submit it, or pick a model that doesn't require a prompt. + * - Can I re-cluster with different settings without losing my current one? + - Yes. Click New clustering again to start another run with different embedding/method settings. Every run is saved and listed in the Cluster dropdown, so you can switch between them freely. + * - Do I need to rerun the job to see more or fewer clusters? + - No. Number of clusters and Cluster distance are applied on top of the already-computed dendrogram, so changing them is instant. + * - Does this work the same in Design and Predict results tables? + - Yes. The Cluster control sits in the same toolbar position in Dataset, Design, and Predict result views, and the setup dialog and UMAP coloring behave identically. diff --git a/source/web-app/opmodels/index.rst b/source/web-app/opmodels/index.rst index 14394092..bf73f8ca 100644 --- a/source/web-app/opmodels/index.rst +++ b/source/web-app/opmodels/index.rst @@ -27,6 +27,8 @@ Learn more and get started with our tutorials - `Model training and evaluation <./model-train-evaluate.rst>`_ - `Substitution analysis with OP Models <./sub-analysis.rst>`_ - `Designing sequences <./design.rst>`_ +- `Antibody annotation <./antibody-annotation.rst>`_ +- `Cluster sequences <./cluster-sequences.rst>`_ .. toctree:: :maxdepth: 0 @@ -44,4 +46,5 @@ Learn more and get started with our tutorials Substitution analysis with OP Models Design Aligning sequences - + Automatic Antibody Annotation + Cluster sequences in a table diff --git a/source/web-app/opmodels/uploading-your-data.rst b/source/web-app/opmodels/uploading-your-data.rst index f47f22f9..32aeea35 100644 --- a/source/web-app/opmodels/uploading-your-data.rst +++ b/source/web-app/opmodels/uploading-your-data.rst @@ -55,7 +55,7 @@ Alternatively, you can assign replicates after uploading your CSV file: - Set the **Column type** of each replicate column to ``Property``. - Assign the same **Property name** to columns that represent replicates of the same measurement. - For example, to group ``Luminosity (Rep 1)`` and ``Luminosity (Rep 2)``, assign both the property name ``Replicate Luminosity``. + For example, to group ``mutation_effect_prediction_vae_1`` and ``mutation_effect_prediction_vae_2``, assign both the property name ``mutation_effect_prediction_vae``. .. image:: /_static/opmodels/uploading-your-data/replicate-mapping.png diff --git a/source/web-app/poet/prompts.rst b/source/web-app/poet/prompts.rst index d44d667a..24dc3f19 100644 --- a/source/web-app/poet/prompts.rst +++ b/source/web-app/poet/prompts.rst @@ -82,10 +82,12 @@ You can create a prompt context in three ways: If you've previously uploaded prompts, you can reuse them. In the **Choose from project**, select an existing prompt. The sequences from that prompt will automatically load. -.. image:: /_static/tools/poet/prompt-contenxt-use-existing-1.png +This list also includes any **System** prompts available to you, see System Prompts below for the full catalog. + +.. image:: /_static/tools/poet/prompt-context-use-existing-1.png :alt: Use existing prompt -.. image:: /_static/tools/poet/prompt-contenxt-use-existing-2.png +.. image:: /_static/tools/poet/prompt-context-use-existing-2.png :alt: Use existing prompt 2. Create Custom Context @@ -182,7 +184,10 @@ Without a Project ^^^^^^^^^^^^^^^^^^^ Navigate to any PoET tool under **Prompt Definition**. You can either input the MSA directly or upload an existing `.fa`, `.fasta`, or `.csv` file. -.. image:: /_static/tools/poet/prompt-6.png +.. image:: /_static/tools/poet/prompt-6-1.png + :alt: Uploading MSA without a project + +.. image:: /_static/tools/poet/prompt-6-2.png :alt: Uploading MSA without a project Within a Project @@ -272,3 +277,53 @@ The **homology level** field allows you to generate more or less diverse prompt - If you need more focused generation, use a higher homology level and set a minimum similarity threshold to ensure the prompt focuses on the local sequence landscape around your seed. The default **maximum** and **minimum similarity parameters** are set to values which perform well across a wide range of protein families. These can be tuned to adjust the diversity of sequences that will be modeled by PoET. + +Antibody Prompts +----------------- + +In addition to prompts you build yourself, OpenProtein.AI provides **system prompts**: platform-curated prompts available out-of-the-box. + +Antibody prompts appear in the same prompt list used across the PoET tools (Score Sequences, Create Embedding, Cluster, Predictions, and Train a Model), marked with a **System** badge. Prompts recommended for your current model and property selections are additionally marked **Recommended**, and prompts built for a specific chain configuration carry a short tag, for example ``Antibody_vh_vl``. A prompt name ending in **(Virtual)** indicates a pre-computed model memory rather than a sampled context, see below. + +**Note:** Antibody prompts can't be edited or deleted the way a prompt of your own can. If you need a variation, for example a different sample size or clustering threshold, build a new prompt following the same reference database as a starting point, see Creating a Context below. + +.. image:: /_static/tools/poet/system-prompt-1.png + :alt: system level prompts + +Virtual vs. Sampled Prompts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Most antibody prompts are built the same way a user-defined prompt is: as an ensemble of replicates sampled from a reference database. For the antibody prompts below, each replicate is a random sample of 200 naive sequences from the OAS paired antibody database, clustered at 70% sequence identity, with 10 replicates per ensemble. + +A prompt labeled **(Virtual)** works differently. It's a pre-computed PoET-2 memory, trained ahead of time using cluster representatives from the reference database (via mmseqs2 linclust) with a frozen PoET-2 backbone and a fixed number of virtual sequences, using the ``poet-2-vcontext`` prompt type. Because the context is pre-computed rather than sampled per job, it has a single replicate and only supports PoET-2. + +Available Prompts +~~~~~~~~~~~~~~~~~~~~ + +Antibody Human VH-VL (Virtual) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Pre-computed PoET-2 memory trained using mmseqs2 linclust cluster reps from OAS human paired antibody sequences clustered at 70% sequence identity. Trained with a frozen PoET-2 backbone and ``nvs=40`` virtual sequences using ``poet-2-vcontext``. + +Antibody Human VH-VL +^^^^^^^^^^^^^^^^^^^^^ + +An ensemble of 10 replicates, each a random sample of 200 naive paired human antibody sequences from the OAS paired database, clustered at 70% sequence identity. Each complex is the heavy chain (VH) followed by the light chain (VL). + + +Antibody Human VL-VH +^^^^^^^^^^^^^^^^^^^^^ + +An ensemble of 10 replicates, each a random sample of 200 naive paired human antibody sequences from the OAS paired database, clustered at 70% sequence identity. Each complex is the light chain (VL) followed by the heavy chain (VH). + +Antibody Human VH +^^^^^^^^^^^^^^^^^^ + +An ensemble of 10 replicates, each a random sample of 200 naive human antibody heavy chain (VH) sequences from the OAS paired database, clustered at 70% sequence identity. + + +Antibody Human VL +^^^^^^^^^^^^^^^^^^ + +An ensemble of 10 replicates, each a random sample of 200 naive human antibody light chain (VL) sequences from the OAS paired database, clustered at 70% sequence identity. + diff --git a/source/web-app/poet/score-sequences.rst b/source/web-app/poet/score-sequences.rst index 10c76c9c..00dec15b 100644 --- a/source/web-app/poet/score-sequences.rst +++ b/source/web-app/poet/score-sequences.rst @@ -94,6 +94,74 @@ Improve your results by adding more sequences with your desired properties to yo To improve scores, increase the number of the **ensemble** setting. This will result in higher scoring sequences, but will take longer to complete. +Running predictions within a dataset +------------------------------------ + +If the sequences you want to score already live in a dataset, design results, or predict results table, you can score them in place using the **Predictions** panel instead, without leaving the table. + +Predictions supports two kinds of models: + +- A **user model** you've already trained on your own assay data, so its held-out accuracy is known before you trust its ranking. +- A **foundation model**, such as PoET-2, for zero-shot scoring when you don't yet have labeled data for the property you care about. + +Step 1: Create prediction +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In the toolbar above the table, click the **Predictions** dropdown (it shows **None** if the table hasn't been scored yet). This lists any prediction jobs already run against the table. Click **New prediction** to open the **Create Prediction** dialog. + +.. image:: /_static/tools/poet/prediction-1.png + :alt: open new prediction window + +Step 2: Choose a model +^^^^^^^^^^^^^^^^^^^^^^^ + +Create prediction offers two tabs: + +- **User models** lists trained models available in your project, along with the property each one predicts, what dataset it was trained on, and its held-out Spearman's rho and Pearson's r against measured values. Select one or more models and click **Run** to score the whole table. + +.. image:: /_static/tools/poet/prediction-2.png + :alt: choosing models + +- **Foundation models** lets you score without a trained model of your own. Models are grouped by family, with **PoET-2** recommended. PoET-family models are conditional and require a **prompt**, the same prompt mechanism used by Score Sequences (see `prompts and prompt sampling methods <./prompts.rst>`_). Reuse a saved prompt or build a new one before running. + +.. image:: /_static/tools/poet/prediction-3.png + :alt: choosing plm + +Step 3: Run the scoring job +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Scoring runs as a background job. After clicking Run, a job status bar appears above the table and the **Jobs** counter increments. The Predictions dropdown shows the run as in progress until it finishes, at which point its predicted column becomes available in the table. + +Step 4: Read the predicted column and select hits +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Once a run finishes, select it from the Predictions dropdown. Each selected run adds its own column to the table, named after the source model, sitting right alongside any measured column it was trained to predict. + +.. image:: /_static/tools/poet/prediction-4.png + :alt: reviewing predict results + + +With a predicted column in the table, hit selection is a matter of working the table: + +.. list-table:: + :header-rows: 1 + :widths: 20 20 + :align: left + + * - Action + - Why it helps + * - Sort by the predicted column + - Brings your top-scoring candidates to the top. + * - Filter above a score threshold + - Cuts the table down to only the rows worth reviewing. + * - Cross-check against cluster assignment, if available + - Keeps your shortlist diverse instead of pulling near-duplicates from one region of sequence space. + * - Select more than one completed run + - Lets you compare predictions across multiple properties at once, for example activity and stability. + +Once you've selected your rows, carry the shortlist forward into Create Design, Substitution Analysis, or Train Model. + + Next Steps ---------- diff --git a/source/web-app/poet/substitution-analysis.rst b/source/web-app/poet/substitution-analysis.rst index 0c87d0c3..eb06e285 100644 --- a/source/web-app/poet/substitution-analysis.rst +++ b/source/web-app/poet/substitution-analysis.rst @@ -93,7 +93,7 @@ Your highest scoring variants and sites are also displayed in tables below the h .. image:: /_static/tools/poet/sub-analysis-1.png :alt: Substitution Analysis Heatmap -Refer to the **Details** tab to see the parameters you used to run the Substitution Analysis. +Refer to the **Input** tab to see the parameters you used to run the Substitution Analysis. Fine-tuning your results ------------------------