-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #166 from Autodesk/polishing
Polishing
- Loading branch information
Showing
101 changed files
with
6,919 additions
and
1,108 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,51 @@ | ||
# Docker images for MDT | ||
|
||
The Molecular Design Toolkit uses a lot of functionality from other open source chemistry packages, such as molecular dynamics from OpenMM, Quantum chemistry from OpenMM, etc., etc. | ||
The Molecular Design Toolkit does NOT implement molecular modeling algorithms - it instead provides an intuitive, general interface for running calculations with other open source chemistry packages, such as molecular dynamics from OpenMM, Quantum chemistry from PySCF, etc., etc. | ||
|
||
To make these calculations 1) easy, 2) portable, and 3) reproducible, users don't need to compile any of these by themselves. Instead, they're provided as docker images, which (as of this writing) are freely available from a Dockerhub repository (see https://hub.docker.com/r/autodesk/moldesign/). Users probably won't need to pull the images manually - they'll be automatically pulled whenever they're needed. | ||
To make these calculations 1) easy, 2) portable, and 3) reproducible, users don't need to compile any other software. Instead, external open source packages are provided as docker images, which MDT automatically downloads from a public [DockerHub repository](https://hub.docker.com/r/autodesk/moldesign/). | ||
|
||
These images are built from definitions contained in the DockerMakefiles in this directory (everythign with a `.yml` extension). | ||
|
||
# About the images | ||
MDT relies on two types of dependencies: | ||
|
||
`docker-make` is used to build and push the images to the public repositories. The Dockerfiles for all images are defined in the `DockerMake.yml` and its associates YAML sources in this directory. | ||
1. CLI executables (e.g., NWChem, AmberTools utilities, etc.). CLI executables come in their own lightweight images. These images let you run the executables without compiling or installing them yourself. | ||
2. Python libraries (OpenMM, PySCF, etc.). To interact with these, we build a rather large docker image named `moldesign_complete` that includes MDT _and_ all interfaced Python libraries. When MDT needs to use a Python library that isn't installed on your machine, it will run the necessary code in a `moldesign_complete` docker container instead. | ||
|
||
If you're just *using* MDT, you'll be relying on the prebuilt MDT images hosted on [DockerHub](https://hub.docker.com/r/autodesk/moldesign/). However, if you are developing MDT, you may need to install docker-make by running `pip install dockermake>=0.5`. | ||
|
||
# Development and building images | ||
|
||
MDT relies on two types of dependencies: | ||
**NOTE**: If you're just *using* MDT, you don't need to do this - MDT will automatically download the images hosted on [DockerHub](https://hub.docker.com/r/autodesk/moldesign/). | ||
|
||
##### Install DockerMake: | ||
We use the `docker-make` command line utility to build and manage MDT's docker images. To install it: | ||
```bash | ||
pip install "DockerMake>=0.5.6" | ||
``` | ||
|
||
##### Activate MDT "devmode": | ||
To tell MDT to use your own, locally built docker images, run: | ||
```bash | ||
echo "devmode:true" >> ~/.moldesign/moldesign.yml | ||
``` | ||
|
||
Use the following commands to build and manage the docker images. They should be run in this directory (`[...]/molecular-design-toolkit/DockerMakefiles`) | ||
|
||
##### List docker images: | ||
```bash | ||
docker-make --list | ||
``` | ||
|
||
1. CLI executables (e.g., ambertools utilities like antechamber, tleap). CLI executables come in their own lightweight images. | ||
2. Python libraries (openmm, pyscf, etc.). To interact with these, we build a rather large docker image named "moldesign_complete" that includes both moldesign and all of its dependencies. This allows MDT to call functions from libraries that aren't installed on your machine! Instead, those function calls will be evaluated in the moldesign_complete docker image, and the results will be returned. | ||
##### Build all docker images: | ||
```bash | ||
docker-make --tag dev --all | ||
``` | ||
|
||
In the future, we plan to isolate the python dependencies into smaller, lightweight installations that don't include MDT. This will require a common data format with translation layers for each dependency. | ||
##### Build the MDT docker image for python 3: | ||
```bash | ||
docker-make --tag dev moldesign_complete | ||
``` | ||
|
||
##### Build the MDT docker image for python 2: | ||
```bash | ||
docker-make --tag dev moldesign_complete_py2 | ||
``` |
Oops, something went wrong.