diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1653324
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+models/** filter=lfs diff=lfs merge=lfs -text
+data/** filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..437cb38
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,57 @@
+# Ignore generated or temporary files managed by the Workbench
+.project/*
+!.project/spec.yaml
+!.project/configpacks
+
+# General ignores
+.DS_Store
+
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# Temp directories, notebooks created by jupyterlab
+.ipynb_checkpoints
+.Trash-*/
+.jupyter/
+.local/
+
+# Python distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Workbench Project Layout
+data/scratch/*
+!data/scratch/.gitkeep
\ No newline at end of file
diff --git a/.project/configpacks b/.project/configpacks
new file mode 100644
index 0000000..f7247e3
--- /dev/null
+++ b/.project/configpacks
@@ -0,0 +1,10 @@
+*defaults.ContainerUser
+*bash.PreBuild
+*defaults.EnvVars
+*defaults.Readme
+*defaults.Entrypoint
+*apt.PackageManager
+*bash.PreLanguage
+*python.PipPackageManager
+*bash.PostBuild
+*jupyterlab.JupyterLab
\ No newline at end of file
diff --git a/.project/spec.yaml b/.project/spec.yaml
new file mode 100644
index 0000000..b5391ae
--- /dev/null
+++ b/.project/spec.yaml
@@ -0,0 +1,101 @@
+specVersion: v2
+specMinorVersion: 2
+meta:
+ name: generative-virtual-screening
+ image: generative-virtual-screening
+ description: ""
+ labels: []
+ createdOn: "2024-10-06T16:45:44Z"
+ defaultBranch: main
+layout:
+- path: src/
+ type: code
+ storage: git
+- path: deploy/
+ type: code
+ storage: git
+environment:
+ base:
+ registry: nvcr.io
+ image: nvidia/ai-workbench/python-basic:1.0.2
+ build_timestamp: "20231114175838"
+ name: Python Basic
+ supported_architectures: []
+ cuda_version: ""
+ description: A Python Base with Jupyterlab
+ entrypoint_script: ""
+ labels:
+ - ubuntu
+ - python3
+ - jupyterlab
+ apps:
+ - name: jupyterlab
+ type: jupyterlab
+ class: webapp
+ start_command: jupyter lab --allow-root --port 8888 --ip 0.0.0.0 --no-browser
+ --NotebookApp.base_url=\$PROXY_PREFIX --NotebookApp.default_url=/lab --NotebookApp.allow_origin='*'
+ health_check_command: '[ \$(echo url=\$(jupyter lab list | head -n 2 | tail
+ -n 1 | cut -f1 -d'' '' | grep -v ''Currently'' | sed "s@/?@/lab?@g") | curl
+ -o /dev/null -s -w ''%{http_code}'' --config -) == ''200'' ]'
+ stop_command: jupyter lab stop 8888
+ user_msg: ""
+ logfile_path: ""
+ timeout_seconds: 60
+ icon_url: ""
+ webapp_options:
+ autolaunch: true
+ port: "8888"
+ proxy:
+ trim_prefix: false
+ url_command: jupyter lab list | head -n 2 | tail -n 1 | cut -f1 -d' ' | grep
+ -v 'Currently'
+ programming_languages:
+ - python3
+ icon_url: ""
+ image_version: 1.0.2
+ os: linux
+ os_distro: ubuntu
+ os_distro_release: "22.04"
+ schema_version: v2
+ user_info:
+ uid: ""
+ gid: ""
+ username: ""
+ package_managers:
+ - name: apt
+ binary_path: /usr/bin/apt
+ installed_packages:
+ - curl
+ - git
+ - git-lfs
+ - python3
+ - gcc
+ - python3-dev
+ - python3-pip
+ - vim
+ - name: pip
+ binary_path: /usr/local/bin/pip
+ installed_packages:
+ - jupyterlab==4.0.7
+ - requests==2.31.0
+ package_manager_environment:
+ name: ""
+ target: ""
+execution:
+ apps: []
+ resources:
+ gpu:
+ requested: 0
+ sharedMemoryMB: 0
+ secrets:
+ - variable: NGC_CLI_API_KEY
+ description: ""
+ mounts:
+ - type: project
+ target: /project/
+ description: Project directory
+ options: rw
+ - type: volume
+ target: /nvwb-shared-volume/
+ description: ""
+ options: volumeName=nvwb-shared-volume
diff --git a/README.md b/README.md
index 8e8de4c..7dc8d46 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
-
NVIDIA BioNeMo Blueprint: Generative Virtual Screening for Drug Discovery
+
NVIDIA NIM Agent Blueprints: Generative Virtual Screening for Drug Discovery
+
+[](https://ngc.nvidia.com/open-ai-workbench/aHR0cHM6Ly9naXRodWIuY29tL05WSURJQS1CaW9OZU1vLWJsdWVwcmludHMvZ2VuZXJhdGl2ZS12aXJ0dWFsLXNjcmVlbmluZw==)

@@ -15,6 +17,36 @@ cd ../src
jupyter notebook
```
+### Quick Start With NVIDIA AI Workbench
+
+[NVIDIA AI Workbench](https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/workbench/) is a development environment manager that enables data scientists and developers to create, customize, collaborate, and migrate AI workloads and applications seamlessly across GPU systems, from laptops to cloud.
+
+If you do not have NVIDIA AI Workbench installed, first complete the installation for AI Workbench [here](https://docs.nvidia.com/ai-workbench/user-guide/latest/installation/overview.html).
+
+1. Fork this Project to your own GitHub namespace and copy the link
+
+ ```
+ https://github.com/[your_namespace]/
+ ```
+
+2. Open the NVIDIA AI Workbench App. Select a location to work in.
+
+3. Clone this Project onto your desired machine by selecting **Clone Project** and providing the GitHub link.
+
+4. Wait for the project to build. You can expand the bottom **Building** indicator to view real-time build logs.
+
+5. When the build completes, set the following configurations.
+
+ * `Environment` → `Secrets`. Specify the ``NGC_CLI_API_KEY`` as a project secret. [Details](https://github.com/NVIDIA-NIM-Agent-Blueprints/generative-virtual-screening/tree/main/deploy#get-your-api-key)
+
+6. Under `Environment` → `Compose`, select **Start**. This will pull and start the three NIM containers in the blueprint, which can take some time.
+
+ * You can track progress under the ``Output`` widget. Specify ``Compose`` from the dropdown menu.
+
+7. On the top right of the AI Workbench window, select **Open Jupyterlab**. It should automatically open in a new browser window.
+
+8. Navigate to ``src/generative-virtual-screening.ipynb`` and get started!
+
### Get Started
* [Deploy](deploy/)
diff --git a/deploy/.gitkeep b/deploy/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/deploy/README.md b/deploy/README.md
index 4932643..de1b671 100644
--- a/deploy/README.md
+++ b/deploy/README.md
@@ -4,6 +4,15 @@ In this directory you will find a Docker Compose yaml file that will start up
the NIMs for AlphaFold-2, MolMIM, and DiffDock. Once the NIMs are started, you
will probably then want to take a look the example notebook in the `src` directory.
+#### NVIDIA AI Workbench
+
+For developers using [NVIDIA AI Workbench](https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/workbench/) to run this blueprint,
+
+1. Deploy the NIMs by selecting **Start** under ``Environment`` > ``Compose``.
+2. Select **Open Jupyterlab** on the top right and get started with the [notebook](../src/generative-virtual-screening.ipynb).
+
+Full quickstart instructions can be found [here](https://github.com/NVIDIA-AI-Blueprints/generative-virtual-screening/blob/main/README.md#quick-start-with-nvidia-ai-workbench). For all other users, continue below.
+
### Prerequisites
You will need to install:
diff --git a/deploy/docker-compose.yaml b/deploy/docker-compose.yaml
index 8ed75fe..4b60aa4 100644
--- a/deploy/docker-compose.yaml
+++ b/deploy/docker-compose.yaml
@@ -2,14 +2,17 @@ version: '3'
services:
alphafold:
- image: nvcr.io/nim/deepmind/alphafold2:1.0.0
+ image: nvcr.io/nim/deepmind/alphafold2:2.1.0
runtime: nvidia
ports:
- "8081:8000"
volumes:
- - ${ALPHAFOLD2_CACHE:-~/.cache/nim/models}:/opt/nim/.cache/
+ - type: bind
+ source: ${ALPHAFOLD2_CACHE:-~/.cache/nim}
+ target: /opt/nim/.cache/
environment:
- - NGC_CLI_API_KEY=${NGC_CLI_API_KEY:?Error NGC_CLI_API_KEY not set}
+ - NGC_API_KEY=${NGC_CLI_API_KEY:?Error NGC_CLI_API_KEY not set}
+ - NVWB_TRIM_PREFIX=true
diffdock:
image: nvcr.io/nim/mit/diffdock:1.2.0
@@ -17,11 +20,14 @@ services:
ports:
- "8082:8000"
volumes:
- - ${DIFFDOCK_CACHE:-~/.cache/nim}:/home/nvs/.cache/nim/models/
+ - type: bind
+ source: ${DIFFDOCK_CACHE:-~/.cache/nim}
+ target: /opt/nim/.cache/nim/models/
environment:
- NGC_CLI_API_KEY=${NGC_CLI_API_KEY:?Error NGC_CLI_API_KEY not set}
- NVIDIA_VISIBLE_DEVICES=${DIFFDOCK_VISIBLE_DEVICES:-0}
+ - NVWB_TRIM_PREFIX=true
molmim:
image: nvcr.io/nim/nvidia/molmim:1.0.0
@@ -29,6 +35,9 @@ services:
ports:
- "8083:8000"
volumes:
- - ${MOLMIM_CACHE:-~/.cache/nim}:/home/nvs/.cache/nim/models/
+ - type: bind
+ source: ${MOLMIM_CACHE:-~/.cache/nim}
+ target: /opt/nim/.cache/nim/models/
environment:
- NGC_CLI_API_KEY=${NGC_CLI_API_KEY:?Error NGC_CLI_API_KEY not set}
+ - NVWB_TRIM_PREFIX=true
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..4d2bc11
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+jupyterlab>3.0
+requests==2.31.0
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/README.md b/src/README.md
index 9bbb796..b9fc6db 100644
--- a/src/README.md
+++ b/src/README.md
@@ -12,4 +12,11 @@ instance and get going immediately!
jupyter notebook
```
+#### NVIDIA AI Workbench
+For developers using [NVIDIA AI Workbench](https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/workbench/) to run this blueprint,
+
+1. Deploy the NIMs by selecting **Start** under ``Environment`` > ``Compose``.
+2. Select **Open Jupyterlab** on the top right and get started with the [notebook](./generative-virtual-screening.ipynb).
+
+Full quickstart instructions can be found [here](https://github.com/NVIDIA-AI-Blueprints/generative-virtual-screening/blob/main/README.md#quick-start-with-nvidia-ai-workbench).
diff --git a/src/generative-virtual-screening.ipynb b/src/generative-virtual-screening.ipynb
index f880a77..110b364 100644
--- a/src/generative-virtual-screening.ipynb
+++ b/src/generative-virtual-screening.ipynb
@@ -9,12 +9,18 @@
"\n",
"Below, we illustrate this workflow using an example protein and example molecule of interest, the SARS-CoV-2 main protease and Nirmatrelvir, however, the user is free to define any protein and molecule of their choosing.\n",
"\n",
- "All of these capabilities are enabled by NVIDIA NIM and NVIDIA NIM Blueprints. For more details, please visit [NVIDIA NIM Blueprints](https://build.nvidia.com/nim/blueprints).\n",
+ "All of these capabilities are enabled by NVIDIA NIM and NVIDIA NIM Blueprints. For more details, please visit [NVIDIA NIM Blueprints](https://build.nvidia.com/nim/blueprints). \n",
+ "\n",
+ "For developers, this project is also compatible with [NVIDIA AI Workbench](https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/workbench/). \n",
"\n",
"### BioNeMo Configurations\n",
"Before you begin, please set the NGC_CLI_API_KEY environment variable to a personal run key for your NGC Org and Team before running docker compose. Then, you can spin the NIMs up using the following docker command from the same directory as the `docker-compose.yaml`:\n",
"\n",
- "`docker compose up`"
+ "`docker compose up`\n",
+ "\n",
+ "If using [NVIDIA AI Workbench](https://www.nvidia.com/en-us/deep-learning-ai/solutions/data-science/workbench/) to run this blueprint, set the NGC_CLI_API_KEY environment variable under ``Environment`` > ``Secrets`` to a personal run key for your NGC Org and Team. Then, select **Start** under ``Environment`` > ``Compose``. \n",
+ "\n",
+ "These containers may take a few minutes to spin up and initialize. "
]
},
{
@@ -24,10 +30,16 @@
"outputs": [],
"source": [
"import requests\n",
+ "import os\n",
"\n",
- "AF2_HOST = 'http://localhost:8081'\n",
- "DIFFDOCK_HOST = 'http://localhost:8082'\n",
- "MOLMIM_HOST = 'http://localhost:8083'"
+ "if os.environ.get(\"AI_WORKBENCH_FLAG\") == \"true\": # AI_WORKBENCH_FLAG is set to 'true' by AI Workbench\n",
+ " AF2_HOST = 'http://alphafold:8000'\n",
+ " DIFFDOCK_HOST = 'http://diffdock:8000'\n",
+ " MOLMIM_HOST = 'http://molmim:8000'\n",
+ "else: \n",
+ " AF2_HOST = 'http://localhost:8081'\n",
+ " DIFFDOCK_HOST = 'http://localhost:8082'\n",
+ " MOLMIM_HOST = 'http://localhost:8083'"
]
},
{
@@ -75,7 +87,9 @@
{
"cell_type": "code",
"execution_count": 4,
- "metadata": {},
+ "metadata": {
+ "scrolled": true
+ },
"outputs": [],
"source": [
"# Receive protein structure for SARS CoV-2 protease\n",
@@ -85,18 +99,20 @@
{
"cell_type": "code",
"execution_count": 5,
- "metadata": {},
+ "metadata": {
+ "scrolled": true
+ },
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "ATOM 1 N SER A 1 -26.401 -1.641 4.831 1.00 83.78 N \n",
- "ATOM 2 H SER A 1 -26.476 -2.645 4.751 1.00 83.78 H \n",
- "ATOM 3 H2 SER A 1 -26.145 -1.415 5.781 1.00 83.78 H \n",
- "ATOM 4 H3 SER A 1 -27.276 -1.185 4.615 1.00 83.78 H \n",
- "ATOM 5 CA SER A 1 -25.315 -1.147 3.954 1.00 83.78 C \n",
- "ATOM 6 HA SER A 1 -25.627 -1.203 2.911 1.00 83.78 H\n"
+ "ATOM 1 N SER A 1 -10.004 -16.571 17.918 1.00 65.39 N \n",
+ "ATOM 2 H SER A 1 -9.132 -16.934 18.277 1.00 65.39 H \n",
+ "ATOM 3 H2 SER A 1 -10.693 -17.301 17.804 1.00 65.39 H \n",
+ "ATOM 4 H3 SER A 1 -10.355 -15.890 18.576 1.00 65.39 H \n",
+ "ATOM 5 CA SER A 1 -9.770 -15.861 16.646 1.00 65.39 C \n",
+ "ATOM 6 HA SER A 1 -9.536 -16.577 15.857 1.00 65.39 H\n"
]
}
],
@@ -197,50 +213,52 @@
"protein_ligand_0\n",
" RDKit 3D\n",
"\n",
- " 21 22 0 0 0 0 0 0 0 0999 V2000\n",
- " 14.4981 -7.7498 1.3772 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.8503 -8.2432 0.9259 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.7299 -9.7179 0.6039 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.8676 -8.1134 2.0578 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.3481 -7.5443 -0.2961 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.2799 -6.9086 -1.0497 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.7380 -6.2863 -2.1902 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.6318 -6.8313 -3.4974 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.6092 -8.0803 -3.6125 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.5553 -5.8750 -4.6313 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.8512 -5.6617 -5.0751 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.0415 -4.7114 -4.1125 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.7671 -6.4834 -5.6874 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.0154 -6.3827 -6.5903 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.4704 -7.2704 -7.3771 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.5647 -7.0822 -8.4560 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.1254 -8.1902 -9.1442 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.4878 -9.4801 -8.8794 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.3756 -9.6855 -7.8248 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.8218 -8.5946 -7.1307 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.9550 -8.3697 -5.7176 S 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 22 23 0 0 0 0 0 0 0 0999 V2000\n",
+ " 17.8372 11.0751 1.6346 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.2177 9.7717 1.0579 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.4720 10.0629 0.1866 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.6272 8.8078 2.1524 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.2537 9.1162 0.1138 C 0 0 2 0 0 0 0 0 0 0 0 0\n",
+ " 16.7283 7.8729 0.5856 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.0215 6.5879 0.0292 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.0623 6.4263 -0.6186 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.0976 5.4522 0.2183 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 14.7951 5.9284 0.4083 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.1259 4.6440 -0.8794 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.4677 4.7481 1.3551 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.5557 9.2313 -1.3034 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.4352 8.4456 -1.8318 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.9785 10.1391 -2.1869 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.0492 11.2031 -1.8989 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.3537 12.3304 -2.9209 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.8439 11.8779 -4.2901 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.0504 10.3720 -4.3817 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.3284 10.0779 -3.6350 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.3065 11.2429 -3.8560 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.8474 12.4386 -3.0200 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1 2 1 0\n",
" 2 3 1 0\n",
" 2 4 1 0\n",
" 2 5 1 0\n",
- " 5 6 1 0\n",
+ " 5 6 1 1\n",
" 6 7 1 0\n",
- " 7 8 1 0\n",
- " 8 9 2 0\n",
- " 8 10 1 0\n",
- " 10 11 1 0\n",
- " 10 12 1 0\n",
- " 10 13 1 0\n",
+ " 7 8 2 0\n",
+ " 7 9 1 0\n",
+ " 9 10 1 0\n",
+ " 9 11 1 0\n",
+ " 9 12 1 0\n",
+ " 5 13 1 0\n",
" 13 14 2 0\n",
- " 14 15 1 0\n",
- " 15 16 2 0\n",
+ " 13 15 1 0\n",
+ " 15 16 1 0\n",
" 16 17 1 0\n",
- " 17 18 2 0\n",
+ " 17 18 1 0\n",
" 18 19 1 0\n",
- " 19 20 2 0\n",
+ " 19 20 1 0\n",
" 20 21 1 0\n",
- " 21 13 1 0\n",
+ " 21 22 1 0\n",
" 20 15 1 0\n",
+ " 22 17 1 0\n",
"M END\n",
"$$$$\n",
"\n",
@@ -249,33 +267,33 @@
" RDKit 3D\n",
"\n",
" 22 23 0 0 0 0 0 0 0 0999 V2000\n",
- " 15.1227 -5.7258 -3.3498 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.7001 -6.9708 -4.0567 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.9974 -6.5198 -4.6846 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.0545 -7.9082 -2.9378 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.7031 -7.4719 -5.0503 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.4033 -7.3477 -4.3306 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.4602 -8.3750 -4.2615 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.8043 -9.5190 -4.6583 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 11.0827 -8.1569 -3.7402 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 10.3267 -9.3006 -3.8581 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 11.0807 -7.7396 -2.4263 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 10.4566 -7.1688 -4.4859 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.6313 -6.7907 -6.3281 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.3478 -5.5232 -6.3320 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.8260 -7.3285 -7.6015 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.3338 -8.6570 -7.8841 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.6043 -9.0994 -9.1713 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.1695 -8.6199 -9.1424 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.1234 -7.1048 -9.2200 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.5131 -6.5780 -8.8389 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.4992 -6.9670 -9.9207 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.2478 -8.3927 -10.3697 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.5982 6.2266 -0.9800 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.3007 7.4698 -1.8238 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 20.3949 8.4377 -1.5359 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.3203 7.0656 -3.2580 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.9362 7.9429 -1.3651 C 0 0 2 0 0 0 0 0 0 0 0 0\n",
+ " 17.2044 6.6822 -1.0076 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.4275 6.5949 0.1699 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.6335 7.4572 1.0714 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.4011 5.5573 0.3918 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.1687 4.8514 -0.7859 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.8467 4.6569 1.3348 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 14.2268 6.1206 0.8510 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.1589 8.6626 -2.3728 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.4025 7.9168 -3.1154 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.1230 10.0325 -2.6300 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.8637 11.0442 -1.9200 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.9668 12.2989 -1.9764 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.5329 11.9041 -1.7805 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.0478 11.2377 -3.0673 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.2570 10.5729 -3.7040 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.0613 11.6867 -4.3504 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.1053 12.8633 -3.3891 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1 2 1 0\n",
" 2 3 1 0\n",
" 2 4 1 0\n",
" 2 5 1 0\n",
- " 5 6 1 0\n",
+ " 5 6 1 6\n",
" 6 7 1 0\n",
" 7 8 2 0\n",
" 7 9 1 0\n",
@@ -302,28 +320,28 @@
" RDKit 3D\n",
"\n",
" 22 23 0 0 0 0 0 0 0 0999 V2000\n",
- " 13.9574 -7.9997 -8.2816 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.4658 -8.4190 -6.9460 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.9157 -8.0073 -6.9264 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.4858 -9.9516 -6.8165 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.7941 -7.7936 -5.7761 C 0 0 2 0 0 0 0 0 0 0 0 0\n",
- " 12.3796 -7.8780 -5.7252 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 11.5992 -8.0282 -4.5604 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.2251 -8.4067 -3.5442 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 10.1593 -7.7873 -4.4420 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 9.5046 -8.9124 -3.9480 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 9.8150 -6.6772 -3.7134 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 9.6873 -7.6011 -5.7516 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.2589 -6.4154 -5.5660 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.6733 -5.4416 -6.1974 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.3027 -5.9556 -4.7363 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.8339 -4.6371 -4.6099 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.6866 -4.6105 -3.3204 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.9605 -5.1986 -2.1588 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.5229 -6.5992 -2.4597 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.9697 -6.9485 -3.8617 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 17.4512 -6.7775 -4.0759 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 17.9238 -5.4367 -3.5819 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.9508 6.7764 0.2183 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.5540 7.5256 -1.0538 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.9822 6.8252 -2.2976 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 20.2800 8.8684 -0.9895 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.0755 7.8618 -1.0117 C 0 0 2 0 0 0 0 0 0 0 0 0\n",
+ " 17.3930 6.6397 -0.7269 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.3790 6.5932 0.2635 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.2123 7.5877 1.0098 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.5273 5.3968 0.4218 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 14.3206 5.6973 1.0222 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.2461 4.8049 -0.8079 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.2128 4.4812 1.2131 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.6991 8.5614 -2.2371 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.8932 7.8426 -3.2872 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.1820 9.8427 -2.4175 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.9763 10.7225 -1.2563 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.0506 12.1716 -1.7187 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.1283 12.3457 -2.7673 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.8836 11.4833 -3.9693 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.7758 10.5013 -3.6309 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.4756 11.2884 -3.3428 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.7268 12.4466 -2.4232 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1 2 1 0\n",
" 2 3 1 0\n",
" 2 4 1 0\n",
@@ -355,33 +373,33 @@
" RDKit 3D\n",
"\n",
" 22 23 0 0 0 0 0 0 0 0999 V2000\n",
- " 13.7166 -10.4948 -4.8172 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.0338 -9.4958 -3.6952 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.7581 -9.2582 -2.9584 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.9503 -10.2154 -2.7141 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.7174 -8.2675 -4.2683 C 0 0 2 0 0 0 0 0 0 0 0 0\n",
- " 15.0029 -7.3582 -3.1408 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.3076 -6.8814 -2.8904 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 17.2964 -7.4707 -3.3992 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.6067 -5.6912 -2.0451 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.6113 -4.7154 -2.1769 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.8471 -6.0139 -0.7596 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 17.7696 -5.0562 -2.5506 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.9175 -7.5650 -5.2997 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 12.6932 -7.2476 -5.0851 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.3924 -7.1731 -6.5818 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.7817 -7.4712 -6.9807 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.7418 -7.6930 -8.4695 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.5133 -8.5436 -8.7653 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.2931 -7.6501 -8.6400 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.6120 -6.5397 -7.6073 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.4767 -5.5484 -8.3470 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.4835 -6.3416 -9.1511 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.8073 5.5040 -2.4281 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.8710 6.3933 -3.2044 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.0647 5.4906 -4.1046 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.8035 7.3008 -3.9859 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.0570 7.1142 -2.1931 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.1203 6.3498 -1.4621 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.1302 6.1927 -0.0483 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.1396 6.7378 0.4871 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.1202 5.4885 0.7483 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 14.8852 6.1385 0.6081 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.9734 4.2029 0.2953 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.5006 5.4703 2.0872 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.3941 8.2604 -2.8419 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.7649 8.0562 -3.9685 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.3272 9.5987 -2.4224 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.9874 10.2363 -1.3177 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.8367 11.7612 -1.5282 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.3282 12.1171 -2.8940 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.3547 11.5097 -3.8953 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.4594 10.5079 -3.2075 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.5369 11.1687 -2.2198 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.3679 12.1369 -1.4019 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1 2 1 0\n",
" 2 3 1 0\n",
" 2 4 1 0\n",
" 2 5 1 0\n",
- " 5 6 1 1\n",
+ " 5 6 1 0\n",
" 6 7 1 0\n",
" 7 8 2 0\n",
" 7 9 1 0\n",
@@ -408,28 +426,28 @@
" RDKit 3D\n",
"\n",
" 22 23 0 0 0 0 0 0 0 0999 V2000\n",
- " 12.8306 -7.6261 -8.2259 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.9592 -7.8979 -7.2394 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.3021 -9.4016 -7.4117 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.1489 -7.1571 -7.7777 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 13.6256 -7.6465 -5.8168 C 0 0 2 0 0 0 0 0 0 0 0 0\n",
- " 12.1749 -7.5689 -5.6469 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 11.4224 -8.2361 -4.6776 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 11.9051 -9.1326 -3.9653 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 9.9629 -7.8747 -4.4650 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 9.9089 -6.5297 -4.1823 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 9.4870 -8.5461 -3.3527 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 9.2308 -8.1036 -5.5898 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.3546 -6.6230 -5.0833 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 14.1253 -5.4011 -5.4638 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.2671 -6.7139 -4.0219 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.5919 -8.0868 -3.5613 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.7057 -8.0343 -2.5914 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.6316 -7.1243 -1.5766 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 15.8359 -6.0098 -1.8486 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.0066 -5.7230 -3.3306 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 17.5193 -5.7150 -3.7465 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
- " 16.6465 -4.5286 -3.8240 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.7541 9.6470 -3.5071 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 19.1272 8.3124 -3.1633 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 20.1610 7.2559 -3.1801 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.3064 8.0217 -4.4878 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.0812 8.3143 -2.1419 C 0 0 2 0 0 0 0 0 0 0 0 0\n",
+ " 17.6731 6.9250 -1.9508 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.4831 6.3267 -0.7018 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.7090 6.8642 0.3881 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.9620 4.9117 -0.6283 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.6723 4.9835 -1.1669 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.7680 4.1303 -1.4044 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.8551 4.4675 0.6555 F 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.9249 9.1752 -2.1855 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.9728 8.7771 -2.9786 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.5863 10.3597 -1.5563 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.3580 11.0739 -1.7437 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.6007 12.5410 -1.2859 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.9086 13.0364 -1.8524 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 18.0639 12.2794 -1.2138 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 17.5026 10.9834 -0.6171 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 16.6848 11.4294 0.6008 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
+ " 15.7250 12.5370 0.2227 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1 2 1 0\n",
" 2 3 1 0\n",
" 2 4 1 0\n",
@@ -452,7 +470,7 @@
" 20 21 1 0\n",
" 21 22 1 0\n",
" 20 15 1 0\n",
- " 22 20 1 0\n",
+ " 22 17 1 0\n",
"M END\n",
"$$$$\n",
"\n"
@@ -490,7 +508,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.10.9"
+ "version": "3.10.12"
}
},
"nbformat": 4,
diff --git a/variables.env b/variables.env
new file mode 100644
index 0000000..60b1d41
--- /dev/null
+++ b/variables.env
@@ -0,0 +1,5 @@
+
+DIFFDOCK_CACHE=~/.cache/nim
+MOLMIM_CACHE=~/.cache/nim
+ALPHAFOLD2_CACHE=~/.cache/nim
+AI_WORKBENCH_FLAG=true