|
a |
|
b/README.md |
|
|
1 |
# BioNeMo Framework |
|
|
2 |
|
|
|
3 |
[](https://console.brev.dev/launchable/deploy/now?launchableID=env-2pPDA4sJyTuFf3KsCv5KWRbuVlU) |
|
|
4 |
[](https://nvidia.github.io/bionemo-framework) |
|
|
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) |
|
|
7 |
[](https://codecov.io/gh/NVIDIA/bionemo-framework) |
|
|
8 |
|
|
|
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 |
|
|
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 |
|
|
13 |
or learn more at <https://www.nvidia.com/en-us/clara/bionemo/> about getting an enterprise license for improved |
|
|
14 |
expert-level support. |
|
|
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/) |
|
|
17 |
|
|
|
18 |
## Structure of the Framework |
|
|
19 |
|
|
|
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/) |
|
|
22 |
for details. |
|
|
23 |
|
|
|
24 |
|
|
|
25 |
## Documentation Resources |
|
|
26 |
|
|
|
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. |
|
|
29 |
|
|
|
30 |
## Getting Started with BioNeMo Framework |
|
|
31 |
|
|
|
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 |
|
|
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 |
|
|
|
36 |
```bash |
|
|
37 |
docker run --rm -it \ |
|
|
38 |
--gpus=all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \ |
|
|
39 |
nvcr.io/nvidia/clara/bionemo-framework:nightly \ |
|
|
40 |
/bin/bash |
|
|
41 |
``` |
|
|
42 |
|
|
|
43 |
### Setting up a local development environment |
|
|
44 |
|
|
|
45 |
#### Initializing 3rd-party dependencies as git submodules |
|
|
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 |
|
|
48 |
that are confirmed to be working with bionemo2 (and those that are tested in CI). |
|
|
49 |
|
|
|
50 |
To initialize these sub-modules when cloning the repo, add the `--recursive` flag to the git clone command: |
|
|
51 |
|
|
|
52 |
```bash |
|
|
53 |
git clone --recursive git@github.com:NVIDIA/bionemo-framework.git |
|
|
54 |
cd bionemo-framework |
|
|
55 |
``` |
|
|
56 |
|
|
|
57 |
To download the pinned versions of these submodules within an existing git repository, run |
|
|
58 |
|
|
|
59 |
```bash |
|
|
60 |
git submodule update --init --recursive |
|
|
61 |
``` |
|
|
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: |
|
|
64 |
|
|
|
65 |
|
|
|
66 |
```bash |
|
|
67 |
git config submodule.recurse true |
|
|
68 |
``` |
|
|
69 |
|
|
|
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. |
|
|
72 |
|
|
|
73 |
#### Build the Docker Image Locally |
|
|
74 |
|
|
|
75 |
|
|
|
76 |
With a locally cloned repository and initialized submodules, build the BioNeMo container using: |
|
|
77 |
|
|
|
78 |
```bash |
|
|
79 |
docker buildx build . -t my-container-tag |
|
|
80 |
``` |
|
|
81 |
|
|
|
82 |
|
|
|
83 |
#### VSCode Devcontainer for Interactive Debugging |
|
|
84 |
|
|
|
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 |
|
|
87 |
bionemo-framework folder with VSCode should prompt you to re-open the folder inside the devcontainer environment. |
|
|
88 |
|
|
|
89 |
> [!NOTE] |
|
|
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. |
|
|
92 |
|
|
|
93 |
### Quick Start |
|
|
94 |
|
|
|
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. |