Switch to unified view

a/README.md b/README.md
1
# BioNeMo Framework
1
# BioNeMo Framework
2
2
3
[![Click here to deploy.](https://uohmivykqgnnbiouffke.supabase.co/storage/v1/object/public/landingpage/brevdeploynavy.svg)](https://console.brev.dev/launchable/deploy/now?launchableID=env-2pPDA4sJyTuFf3KsCv5KWRbuVlU)
3
[![Click here to deploy.](https://uohmivykqgnnbiouffke.supabase.co/storage/v1/object/public/landingpage/brevdeploynavy.svg)](https://console.brev.dev/launchable/deploy/now?launchableID=env-2pPDA4sJyTuFf3KsCv5KWRbuVlU)
4
[![Docs Build](https://img.shields.io/github/actions/workflow/status/NVIDIA/bionemo-framework/pages/pages-build-deployment?label=docs-build)](https://nvidia.github.io/bionemo-framework)
4
[![Docs Build](https://img.shields.io/github/actions/workflow/status/NVIDIA/bionemo-framework/pages/pages-build-deployment?label=docs-build)](https://nvidia.github.io/bionemo-framework)
5
[![Test Status](https://github.com/NVIDIA/bionemo-framework/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/NVIDIA/bionemo-framework/actions/workflows/unit-tests.yml)
5
[![Test Status](https://github.com/NVIDIA/bionemo-framework/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/NVIDIA/bionemo-framework/actions/workflows/unit-tests.yml)
6
[![Latest Tag](https://img.shields.io/github/v/tag/NVIDIA/bionemo-framework?label=latest-version)](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara/containers/bionemo-framework/tags)
6
[![Latest Tag](https://img.shields.io/github/v/tag/NVIDIA/bionemo-framework?label=latest-version)](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara/containers/bionemo-framework/tags)
7
[![codecov](https://codecov.io/gh/NVIDIA/bionemo-framework/branch/main/graph/badge.svg?token=XqhegdZRqB)](https://codecov.io/gh/NVIDIA/bionemo-framework)
7
[![codecov](https://codecov.io/gh/NVIDIA/bionemo-framework/branch/main/graph/badge.svg?token=XqhegdZRqB)](https://codecov.io/gh/NVIDIA/bionemo-framework)
8
8
9
NVIDIA BioNeMo Framework is a is a comprehensive suite of programming tools, libraries, and models designed for computational drug discovery.
9
NVIDIA BioNeMo Framework is a is a comprehensive suite of programming tools, libraries, and models designed for computational drug discovery.
10
It accelerates the most time-consuming and costly stages of building and adapting biomolecular AI models by providing
10
It accelerates the most time-consuming and costly stages of building and adapting biomolecular AI models by providing
11
domain-specific, optimized models and tooling that are easily integrated into GPU-based computational resources for the
11
domain-specific, optimized models and tooling that are easily integrated into GPU-based computational resources for the
12
fastest performance on the market. You can access BioNeMo Framework as a free community resource here in this repository
12
fastest performance on the market. You can access BioNeMo Framework as a free community resource here in this repository
13
or learn more at <https://www.nvidia.com/en-us/clara/bionemo/> about getting an enterprise license for improved
13
or learn more at <https://www.nvidia.com/en-us/clara/bionemo/> about getting an enterprise license for improved
14
expert-level support.
14
expert-level support.
15
15
16
BioNeMo Framework is part of a larger ecosystem of NVIDIA Biopharma products. Get notified of new releases, bug fixes, critical security updates, and more for biopharma. [Subscribe.](https://www.nvidia.com/en-us/clara/biopharma/product-updates/)
16
BioNeMo Framework is part of a larger ecosystem of NVIDIA Biopharma products. Get notified of new releases, bug fixes, critical security updates, and more for biopharma. [Subscribe.](https://www.nvidia.com/en-us/clara/biopharma/product-updates/)
17
17
18
## Structure of the Framework
18
## Structure of the Framework
19
19
20
The `bionemo-framework` is organized into independently installable namespace packages. These are located under the
20
The `bionemo-framework` is organized into independently installable namespace packages. These are located under the
21
`sub-packages/` directory. Please refer to [PEP 420 – Implicit Namespace Packages](https://peps.python.org/pep-0420/)
21
`sub-packages/` directory. Please refer to [PEP 420 – Implicit Namespace Packages](https://peps.python.org/pep-0420/)
22
for details.
22
for details.
23
23
24
24
25
## Documentation Resources
25
## Documentation Resources
26
26
27
- **Official Documentation:** For user guides, API references, and troubleshooting, visit our [official documentation](https://docs.nvidia.com/bionemo-framework/latest/).
27
- **Official Documentation:** For user guides, API references, and troubleshooting, visit our [official documentation](https://docs.nvidia.com/bionemo-framework/latest/).
28
- **In-Progress Documentation:** To explore the latest features and developments, check the documentation reflecting the current state of the `main` branch [here](https://nvidia.github.io/bionemo-framework/). Note that this may include references to features or APIs that are not yet finalized.
28
- **In-Progress Documentation:** To explore the latest features and developments, check the documentation reflecting the current state of the `main` branch [here](https://nvidia.github.io/bionemo-framework/). Note that this may include references to features or APIs that are not yet finalized.
29
29
30
## Getting Started with BioNeMo Framework
30
## Getting Started with BioNeMo Framework
31
31
32
Full documentation on using the BioNeMo Framework is provided in our documentation:
32
Full documentation on using the BioNeMo Framework is provided in our documentation:
33
<https://docs.nvidia.com/bionemo-framework/latest/user-guide/>. To simplify the integration of optimized third-party dependencies, BioNeMo is primarily distributed as a containerized library. You can download the latest released container for the BioNeMo Framework from
33
<https://docs.nvidia.com/bionemo-framework/latest/user-guide/>. To simplify the integration of optimized third-party dependencies, BioNeMo is primarily distributed as a containerized library. You can download the latest released container for the BioNeMo Framework from
34
[NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara/containers/bionemo-framework). To launch a pre-built container, you can use the brev.dev launchable [![ Click here to deploy.](https://uohmivykqgnnbiouffke.supabase.co/storage/v1/object/public/landingpage/brevdeploynavy.svg)](https://console.brev.dev/launchable/deploy/now?launchableID=env-2pPDA4sJyTuFf3KsCv5KWRbuVlU) or execute the following command:
34
[NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara/containers/bionemo-framework). To launch a pre-built container, you can use the brev.dev launchable [![ Click here to deploy.](https://uohmivykqgnnbiouffke.supabase.co/storage/v1/object/public/landingpage/brevdeploynavy.svg)](https://console.brev.dev/launchable/deploy/now?launchableID=env-2pPDA4sJyTuFf3KsCv5KWRbuVlU) or execute the following command:
35
35
36
```bash
36
```bash
37
docker run --rm -it \
37
docker run --rm -it \
38
  --gpus=all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
38
  --gpus=all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
39
  nvcr.io/nvidia/clara/bionemo-framework:nightly \
39
  nvcr.io/nvidia/clara/bionemo-framework:nightly \
40
  /bin/bash
40
  /bin/bash
41
```
41
```
42
42
43
### Setting up a local development environment
43
### Setting up a local development environment
44
44
45
#### Initializing 3rd-party dependencies as git submodules
45
#### Initializing 3rd-party dependencies as git submodules
46
46
47
The NeMo and Megatron-LM dependencies are included as git submodules in bionemo2. The pinned commits for these submodules represent the "last-known-good" versions of these packages
47
The NeMo and Megatron-LM dependencies are included as git submodules in bionemo2. The pinned commits for these submodules represent the "last-known-good" versions of these packages
48
that are confirmed to be working with bionemo2 (and those that are tested in CI).
48
that are confirmed to be working with bionemo2 (and those that are tested in CI).
49
49
50
To initialize these sub-modules when cloning the repo, add the `--recursive` flag to the git clone command:
50
To initialize these sub-modules when cloning the repo, add the `--recursive` flag to the git clone command:
51
51
52
```bash
52
```bash
53
git clone --recursive git@github.com:NVIDIA/bionemo-framework.git
53
git clone --recursive git@github.com:NVIDIA/bionemo-framework.git
54
cd bionemo-framework
54
cd bionemo-framework
55
```
55
```
56
56
57
To download the pinned versions of these submodules within an existing git repository, run
57
To download the pinned versions of these submodules within an existing git repository, run
58
58
59
```bash
59
```bash
60
git submodule update --init --recursive
60
git submodule update --init --recursive
61
```
61
```
62
62
63
Different branches of the repo can have different pinned versions of these third-party submodules. Ensure submodules are automatically updated after switching branches or pulling updates by configuring git with:
63
Different branches of the repo can have different pinned versions of these third-party submodules. Ensure submodules are automatically updated after switching branches or pulling updates by configuring git with:
64
64
65
65
66
```bash
66
```bash
67
git config submodule.recurse true
67
git config submodule.recurse true
68
```
68
```
69
69
70
**NOTE**: this setting will not download **new** or remove **old** submodules with the branch's changes.
70
**NOTE**: this setting will not download **new** or remove **old** submodules with the branch's changes.
71
You will have to run the full `git submodule update --init --recursive` command in these situations.
71
You will have to run the full `git submodule update --init --recursive` command in these situations.
72
72
73
#### Build the Docker Image Locally
73
#### Build the Docker Image Locally
74
74
75
75
76
With a locally cloned repository and initialized submodules, build the BioNeMo container using:
76
With a locally cloned repository and initialized submodules, build the BioNeMo container using:
77
77
78
```bash
78
```bash
79
docker buildx build . -t my-container-tag
79
docker buildx build . -t my-container-tag
80
```
80
```
81
81
82
82
83
#### VSCode Devcontainer for Interactive Debugging
83
#### VSCode Devcontainer for Interactive Debugging
84
84
85
We distribute a [development container](https://devcontainers.github.io/) configuration for vscode
85
We distribute a [development container](https://devcontainers.github.io/) configuration for vscode
86
(`.devcontainer/devcontainer.json`) that simplifies the process of local testing and development. Opening the
86
(`.devcontainer/devcontainer.json`) that simplifies the process of local testing and development. Opening the
87
bionemo-framework folder with VSCode should prompt you to re-open the folder inside the devcontainer environment.
87
bionemo-framework folder with VSCode should prompt you to re-open the folder inside the devcontainer environment.
88
88
89
> [!NOTE]
89
### NOTE
90
> The first time you launch the devcontainer, it may take a long time to build the image. Building the image locally
90
The first time you launch the devcontainer, it may take a long time to build the image. Building the image locally
91
> (using the command shown above) will ensure that most of the layers are present in the local docker cache.
91
(using the command shown above) will ensure that most of the layers are present in the local docker cache.
92
92
93
### Quick Start
93
### Quick Start
94
94
95
See the [tutorials pages](https://docs.nvidia.com/bionemo-framework/latest/user-guide/examples/bionemo-esm2/pretrain/)
95
See the [tutorials pages](https://docs.nvidia.com/bionemo-framework/latest/user-guide/examples/bionemo-esm2/pretrain/)
96
for example applications and getting started guides.
96
for example applications and getting started guides.