This repository contains Python code for running oxDNA umbrella sampling and large throughput simulations. This code is complementary to the article:
Sample, Matthew, Michael Matthies, and Petr Šulc. "Hairygami: Analysis of DNA Nanostructure's Conformational Change Driven by Functionalizable Overhangs." arXiv preprint arXiv:2302.09109 (2023).
Within the examples/tutorials
folder exist Jupyter notebook tutorials and examples. The full documentation can be found here:(https://mlsample.github.io/ipy_oxDNA/index.html).
oxDNA is a molecular dynamics simulation code that can be used to study the mechanical and thermodynamic properties of DNA and RNA molecules. Umbrella sampling is a highly parallelizable simulation technique that is used to calculate the free energy profiles between two particles or groups of particles. The ipy_oxDNA
repository provides a Python interface for running oxDNA umbrella sampling simulations, allowing users to easily perform these simulations and analyze their results.
NVIDIA MPS is a specialized service offered by NVIDIA, designed to enhance the multiprocessing capabilities of CUDA-enabled GPUs. Utilizing MPS allows for the execution of multiple simulations on a single GPU, resulting in an approximate 2.5x performance increase for specific simulation techniques such as Umbrella Sampling, Metadynamics, and Multi-Replica simulations.
In the absence of MPS, running concurrent simulations on a single GPU can lead to significant performance degradation. For comprehensive details on MPS, the official documentation is available at NVIDIA MPS Documentation.
export CUDA_MPS_PIPE_DIRECTORY=/tmp/mps-pipe_$SLURM_TASK_PID
export CUDA_MPS_LOG_DIRECTORY=/tmp/mps-log_$SLURM_TASK_PID
mkdir -p $CUDA_MPS_PIPE_DIRECTORY
mkdir -p $CUDA_MPS_LOG_DIRECTORY
nvidia-cuda-mps-control -d
Before using this code, you will need to have the following installed:
To install the ipy_oxDNA
code, clone the repository to your local machine:
git clone https://github.com/mlsample/ipy_oxDNA.git
Install the package using:
pip install .
Install the Weight Histogram Analysis Technique (http://membrane.urmc.rochester.edu/?page_id=126)
chmod +x ./install_wham.sh
./install_wham.sh
This repository includes a number of example notebooks that demonstrate how to use the code to perform oxDNA umbrella sampling simulations. These notebooks can be used as a starting point for your own simulations.
/example/origami_tile_N_nt_overhangs_gpu
If you would like to contribute to this project, please fork the repository and submit a pull request.
If you find this code useful in your research, please cite the accompanying academic article:
Sample, Matthew, Michael Matthies, and Petr Šulc. “Hairygami: Analysis of DNA Nanostructure’s Conformational Change Driven by Functionalizable Overhangs.” arXiv preprint arXiv:2302.09109 (2023).