|
a/README.md |
|
b/README.md |
1 |
# BioNeMo Framework |
1 |
# BioNeMo Framework |
2 |
|
2 |
|
3 |
[](https://console.brev.dev/launchable/deploy/now?launchableID=env-2pPDA4sJyTuFf3KsCv5KWRbuVlU) |
3 |
[](https://console.brev.dev/launchable/deploy/now?launchableID=env-2pPDA4sJyTuFf3KsCv5KWRbuVlU)
|
4 |
[](https://nvidia.github.io/bionemo-framework) |
4 |
[](https://nvidia.github.io/bionemo-framework)
|
5 |
[](https://github.com/NVIDIA/bionemo-framework/actions/workflows/unit-tests.yml) |
5 |
[](https://github.com/NVIDIA/bionemo-framework/actions/workflows/unit-tests.yml)
|
6 |
[](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara/containers/bionemo-framework/tags) |
6 |
[](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara/containers/bionemo-framework/tags)
|
7 |
[](https://codecov.io/gh/NVIDIA/bionemo-framework) |
7 |
[](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 [](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 [](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.
|