1.1 Installation of GENESIS for Tutorials

Preparation of the directory

First of all, let’s create a directory for the GENESIS tutorials under the home directory (/home/user) by executing the following commands. We create a main directory “GENESIS_Tutorials-2022“, followed by three sub-directories “Programs“, “Data“, and “Works“. “Programs” is where we will put the main software used in this project, i.e. the GENESIS program. “Data” is where we will put external data that will be commonly used throughout this project, such as PDB files (see Tutorial 2.1) and force field parameter files (see Tutorials 2.2). Thus, we would like to make two sub-directories “PDB” and “Parameters” under “Data” beforehand.Works” is where we will run the MD simulation of the tutorial (see Tutorial 3 and later). Here, we also make a “TRASH” directory under “Works“. The role of TRASH will be explained later.

# Move to the home directory 
$ cd
$ pwd

# Create a directory for this project
$ mkdir GENESIS_Tutorials-2022
$ cd GENESIS_Tutorials-2022

# Create main directories
$ mkdir Programs Data Works
$ ls
Data  Programs  Works

# Create sub-directories
$ mkdir Data/PDB
$ mkdir Data/Parameters
$ mkdir Works/TRASH

Download GENESIS

In this tutorial, we use GENESIS version 2.0.0. We put the GENESIS source code in Programs.

# Put the source code of GENESIS in the "Programs" directory 
$ cd Programs
$ mv ~/Downloads/genesis-2.0.0.tar.bz2 ./ 
$ bzip2 -d genesis-2.0.0.tar.bz2 
$ tar -xvf genesis-2.0.0.tar 
$ cd genesis-2.0.0
$ ls
AUTHORS         INSTALL      README      configure.ac  missing
COPYING         Makefile.am  aclocal.m4  depcomp       src
COPYING.LESSER  Makefile.in  compile     fortdep.py
ChangeLog       NEWS         configure   install-sh


Let’s run the configure command. This “configure” is a script that checks your computing environment, and automatically create a “Makefile” that includes suitable compile options. If you have some troubles, please check the GENESIS user manual or Installation page. Next, run the “make” and “make install” commands, which will create a “bin” directory in the current directory, and install the program there. After the compilation, you will find many programs in the bin directory. Here, atdyn and spdyn are the MD programs, and the others are mostly trajectory analysis tools. In Tutorial 3 and later, we will run each of these programs.

# Install GENESIS
$ ./configure
$ ls
AUTHORS         Makefile     aclocal.m4     configure.ac  src
COPYING         Makefile.am  compile        depcomp
COPYING.LESSER  Makefile.in  config.log     fortdep.py
ChangeLog       NEWS         config.status  install-sh
INSTALL         README       configure      missing

$ make
$ make install
$ ls
AUTHORS         Makefile     aclocal.m4     configure     missing
COPYING         Makefile.am  bin            configure.ac  src
COPYING.LESSER  Makefile.in  compile        depcomp
ChangeLog       NEWS         config.log     fortdep.py
INSTALL         README       config.status  install-sh

# Check the contents
$ ls ./bin
atdyn               hb_analysis          qval_residcg_analysis
avecrd_analysis     hbond_analysis       rdf_analysis
cg_convert          kmeans_clustering    remd_convert
comcrd_analysis     lipidthick_analysis  rg_analysis
contact_analysis    mbar_analysis        ring_analysis
crd_convert         meanforce_analysis   rmsd_analysis
density_analysis    morph_generator      rpath_generator
diffusion_analysis  msd_analysis         rst_convert
distmat_analysis    pathcv_analysis      rst_upgrade
drms_analysis       pcavec_drawer        sasa_analysis
dssp_interface      pcrd_convert         spdyn
eigmat_analysis     pmf_analysis         tilt_analysis
emmap_generator     prjcrd_analysis      trj_analysis
flccrd_analysis     qmmm_generator       wham_analysis
fret_analysis       qval_analysis

 Here, we did not add any options to the configure command. This simple command will install GENESIS running on a CPU. In fact, most tutorials are designed to use the CPU version. If you want to run the tutorials using CPU+GPU, please add the options for GPU. However, note that in this case only spdyn will be installed, and some tutorials cannot be run with spdyn alone.

Let’s clean up the directory

Now, let’s do a short exercise in organizing the files and directories. Please take a look inside the Programs directory. We have genesis-2.0.0.tar and genesis-2.0.0. In fact, we don’t need the genesis-2.0.0.tar anymore, and we can delete it with the rm command. Here, instead of deleting the file, we would like to make a “Source” directory, compress the tar file, and keep it there. This is because we can quickly reinstall the program without downloading it again, and also we can install other software in the Programs directory later.

# Find unnecessary files
$ cd ../
$ ls
genesis-2.0.0  genesis-2.0.0.tar

# Clean up the directory
$ mkdir Source
$ gzip genesis-2.0.0.tar
$ mv genesis-2.0.0.tar.gz Source
$ ls
Source  genesis-2.0.0

Now, we have constructed the following directory structure for this project.

       + GENESIS_Tutorials-2022  # Project name
            + Programs           # Main software for this project
            |  + Source
            |  + genesis-2.0.0
            |     + src          # Source code of GENESIS 2.0.0
            |     + bin          # Binary code of GENESIS 2.0.0
            + Data               # External data of this project
            |  + PDB
            |  + Parameters
            + Works              # All simulations will be done here
               + TRASH

Some people may want to install programs in a common directory, such as /usr/local/bin. However, this can make it difficult to know where the original source code is. To avoid such situation, we would like to install the main programs locally, i.e., under the project’s directory.

We made the “Data” directory to put external data, which allows us to easily understand what were used as the input data in the project. In the actual research project, such data might include unpublished PDB files you received from an experimental group. The external data should always maintain the integrity. In order to avoid accidental update of the original external data, we would like to keep them in a specific directory, namely, “Data” directory.

As demonstrated above, in our tutorial we will also show you some techniques for cleaning up directories. In computational research, many files and directories are generated or created. If you do not carefully organize the directory structure in your research, the files and directories can become cluttered or messy, causing mistakes, affecting the research efficiency, report writing, publication, and data management. Such cluttered directories may also hinder a smooth handover of the project to other members of the lab, which in turn leads to the loss of your chance to increase the number of publications. We hope that our tutorial will also inspire you to get into a good habit of cleaning up the directories in your actual research project. 

Written by Takaharu Mori@RIKEN Theoretical molecular science laboratory
Dec. 16, 2021