Install

To install sith, run these lines on your terminal:

git clone git@github.com:graeter-group/sith.git
cd sith
pip install -e .

Note that “-e” flag allows to use sith in such a way that you can make changes on it and use them immediately without having to reinstall the package again. However, you can avoid this flag, which would generate a copy of sith in the python packages path.

Load-modules

So far, sith is based on gaussian because it has implemented the calculation of forces directly in the DOFs. For future releases, we plan to expand the use of sith to other QM softwares. We developed our code specifically for g09, but it should work well with any newer gaussian version. Given that the gaussian version is completely customizable, the implemented tools of sith that use gaussian requiere a function that has to be defined in either of the two ways shown bellow.

Also, in HPC (in clusters), it is common to load the necessary softwares as modules. This step is also shown in the options bellow. If you do not need to load modules, ignore that part.

Option 1: directly in the terminal or in the bash script

Before executing the sith command (e.g. stretching), define the gaussian function directly in the terminal or in the .sh script you want to run.

# load your modules. For example,
module load Gaussian/16.C.01-AVX2

# Then, define the next function with your specific gaussian version.
# In this case, we use g16 as an example.
gaussian () {
  if [ -z "$2" ]
  then
    output="${1%.com}".log
  else
    output=$2
  fi

  g16 < $1 > $output
}

# source your sith command, in this case 'stretching'
source $(sith stretching -path) -p 8 -i 1,37 -m molecule.pdb

Option 2: create a template

The option 1 implies that every time you execute a sith command that requieres gaussian, you have to run those lines that are probably always the same. To avoid this redundancy, sith can be submitted directly as job script. For that, you need to create the file $HOME/sw/load_modules.sh with the lines showed in the option 1, before sourcing sith. For example:

mkdir -p $HOME/sw
cat << EOF > $HOME/sw/load_modules.sh
# load your modules. For example,
module load Gaussian/16.C.01-AVX2

# Then, define the next function with your specific gaussian version.
# In this case, we use g16 as an example.
gaussian () {
  if [ -z "$2" ]
  then
    output="${1%.com}".log
  else
    output=$2
  fi

  g16 < $1 > $output
}

Once this is done, you can use sith with the flag -c (sith <function> -c ...), for example:

sith stretching -c -p 8 -i 1,37 -m molecule.pdb

Or you can even submit the sith command directly as a slurm job:

Note

We designed sith to run in slurm workload manager, which means you can submit your jobs directly with

sbatch -n 8 -J test $(sith stretching -path) -c -i 1,37 -m molecule.pdb

To check the predefined options, run head -n 8 $(sith <function> -path). If you use any other queue manager, ignore this note.