Processes BilboMD jobs and run CHARMM, FoXS, and MultiFoXS
bilbomd-worker
Descriptionbilbomd-worker
is a simple Typescript NodeJS "worker" app that watches a BullMQ queue for incoming jobs. When a new job appears in the queue it will launch a sequence of processing tasks using CHARMM, FoXS, and MultiFoXS. The results will then be bundled up as a results.tar.gz
file. The job progress will be updated in the main MongoDB database as well as in the BullMQ system (which uses Redis behind the scenes to store queue data).
In order to build the docker images you will need to obtain the source codes for CHARMM, BioXTAS, and OpenMPI and place them in the appropriate folders prior to running any docker build
commands.
docker compose
on HyperionTo build the Docker image from the command line.
git clone git@github.com:bl1231/bilbomd-worker.git
cd bilbomd-worker
docker build --build-arg USER_ID=$UID -t bl1231/bilbomd-worker -f bilbomd-worker.dockerfile .
At the moment there are two versions of the bilbomd-worker
needed for deploying BilboMD at NERSC. One version for doing the work on a perlmutter compute node and a second version that does no real "work", but is deployed to SPIN where it monitors for jobs and uses the Superfacility API to prepare and launch jobs via slurm batch scripts.
In general, all of the build steps are performed as part of the Continuous Integration steps coordinated by GitHub Actions. If you need to buidl the Docker images manually you will need to build two images. To build bilbomd-perlmutter-worker
which is the podman-hpc runtime for performing the Molecular Dynamics steps on Perlmutter compute nodes:
cd bilbomd-worker
podman-hpc build --build-arg USER_ID=$UID -t bilbomd/bilbomd-perlmutter-worker -f bilbomd-perlmutter-worker.dockerfile .
To build bilbomd-spin-worker
for running on the SPIN Kubernetes cluster. The $GITHUB_TOKEN
comes from GitHub... ask me if you need to know about this.
cd bilbomd-worker
podman-hpc build --build-arg GITHUB_TOKEN=$GITHUB_TOKEN -t bilbomd/bilbomd-spin-worker -f bilbomd-spin-worker.dockerfile .
minimization_output_$datfileprefix.dat
in results.tar.gz filebilbomd-worker/bilbomd-worker
to bilbomd-worker
bilbomd-spin-worker
pae_ratios.py
script to deal with adjacent Rigid Domains.bilbomd-spin-worker
Docker imagepdb2crd.py
in order to preserve incoming residue numbering.pdb2crd.py
CRD
file per chain then combine before running the rest of the BilboMD pipeline.results.tar.gz
fileresults.tar.gz
files with unique names (e.g. results-2ff9f312.tar.gz
)pdb2crd.py
script for substituting CHARMM residues names in DNA.pae_ratios.py
script with bilbomd-backend
.pdb2crd.py
script for creating the CHARMM input file for PDB to CRD.FoXS
analysis on initial PDB for BilboMD classic/autoresults.tar.gz
files explaining the contents.rg_min
and rg_max
are too close.mongoose
schema files with other BilboMD codes-o
option for all multi_foxs
runspae_ratios.py
scripthandleError
function-r
option from FoXS in spawnFoXS
function.