The cybercamp is rapid overview of molecular simulation and the underlying tools.
This repository is designed to provide users the resources to quickly get up to speed with molecular simulations. This will not only include information needed to better understand simulations, but it will also provide specific information for workflow management, "sandboxed" development environments, python specific scientific packages, etc.
-
- A python package mangement tool, useful for creating clean, reproducible development environments
-
Command line familiarity
-
Most of the interaction with simulation programs involves some knowledge of the GNU/Linux, or Unix command line interface.
-
A useful guided tutorial for the command line can be found here.
-
-
Visualization tools
- Humans are much more adept at visually inspecting data when it is presented properly. We are not great at reading a large data file and developing any meaningful hypotheses/conclusions from a list of numbers. We are much better at looking at plot of the data, or rendering the trajectory of a molecule evolving in space and time.
- To do this we require molecular visualization tools and data visualization tools
- For molecular visualization, a common choice is VMD
- A common pythonic choice for data visualization is Matplotlib and can easily be installed via anaconda
To get a working development environment that uses the MoSDeF
toolkit, HOOMD-Blue
for simulation, Matplotlib
for data
visualization, and signac
and signac-flow
for workflow
management, we will use conda
we installed earlier.
Update conda
conda update conda
Add the conda-forge
channels for conda
to search through when installing packages.
conda config --add channels conda-forge
Create a new python environment named cybercamp2022
that includes many of
the packages needed to build systems, run simulations, and
analyze the data.
conda create -n cybercamp2022 mbuild foyer hoomd matplotlib py3Dmol gsd signac signac-flow fresnel openbabel jupyter jupyterlab
Activate the environment
conda activate cybercamp2022
- Unix Basics
- Conda and Git
- Python: Basics
- Python: Working with Numpy
- Python: Working with Matplotlib
- Python: Introduction to Pandas
- Python: Pandas-Seaborn
The following links are to Software Carpentry courses on the use of the unix/linux shell, Python, and plotting using matplotlib.
- Introduction to the Unix shell: http://swcarpentry.github.io/shell-novice/
- Introduction to Python: http://swcarpentry.github.io/python-novice-inflammation/
- Plotting and Programming in Python: http://swcarpentry.github.io/python-novice-gapminder/
- Introduction to Simulation
- General overview of simulation
- Discussion of common systems studied with molecular simulation
- Interactive demo/exercises of a simple simulation of the motion of a ball
- Introduction to Molecular Dynamics
- Overview of models and methods used in molecular dynamics simulation
- Anatomy of a Script File
- Discussion of common input parameters needed by molecular dynamics simulation codes
- Example script files for HOOMD-Blue and LAMMPS
- Hands on demo/exercises performing simple LJ simulation using HOOMD-Blue
- Neighborlists and Dangerous Builds
- Discussion of a basic neighborlist
- Hands on example of changing parameters and their impact
- Predicting Phase Behavior of a LJ system using MD
- Hands on exercises performing MD simulations at different statepoints
- Basic analysis of simulation results
- Introduction to version control with git: http://swcarpentry.github.io/git-novice/
- Using Jupyter notebooks:
- Brief guides on GitHub and git workflows: https://guides.github.com/
- Introduction to version control with git: http://swcarpentry.github.io/git-novice/
- Full list of software carpentry lessons: https://software-carpentry.org/lessons/
- Bevan Lab GROMACS Tutorials: http://www.mdtutorials.com/gmx/
- Christopher R. Iacovella
- Justin Gilmer
- Andrew Z. Summers
This project is licensed under the MIT License - see the LICENSE.md file for details