SilcsBio Installation

Hardware and Software Requirements

Minimum Hardware Requirement

SilcsBio software requires relatively robust computational resources for the molecular dynamics (MD) components of the SILCS and SSFEP protocols. For example, computing SILCS FragMaps for a 35 kDa target protein takes 18-24 hours of walltime when run in parallel on ten GPU nodes, each equipped with 8 3-GHz CPU cores and 1 GPU (NVIDIA GeForce RTX 3080 or later). In the case of SSFEP, walltime using these GPU-equipped nodes will be 3-4 hours.

SilcsBio software is designed to run the compute-intensive MD on a cluster using a cluster queue management system such as OpenPBS, Sun Grid Engine, or SLURM. With both SILCS and SSFEP simulations, subsequent evaluation of relative ligand affinities takes seconds to minutes on a single CPU core, allowing for modifications to be rapidly evaluated for a large number of ligands to a given target.

For customers without ready access to an appropriate in-house computing cluster, SilcsBio offers two possible solutions. The first solution is for SilcsBio to perform computations as a service and supply data to the customer for subsequent in-house analysis. For this service, in the case of performing SILCS simulations, SilcsBio requires only the structure of the target, and, in the case of performing SSFEP simulations, SilcsBio requires only the structure of the protein-parent ligand complex. Depending on the customer’s choice of SSFEP or SILCS, no intellectual property disclosure to SilcsBio in the form of proposed chemical modifications to the parent ligand (SSFEP) or even the parent ligand itself (SILCS) is required. The second solution is for SilcsBio to assist customers with setting up their own virtual cluster using Amazon Web Services (AWS). Please contact info@silcsbio.com for additional information on these solutions.

Python 3 Requirement

The SilcsBio server software requires a working Python 3 installation. We recommend using Miniconda (https://docs.conda.io/en/latest/miniconda.html) for installing Python 3. Once Python 3 is installed, you will need to install some additional Python packages. To do so, run the following command:

pip install -r $SILCSBIODIR/utils/python/requirements.txt

GROMACS Requirement

Both SILCS and SSFEP MD simulations require the GROMACS MD software. We recommend GROMACS version 2023.3. GROMACS can be obtained at https://manual.gromacs.org/documentation/2023.3/download.html and must be installed in order to use the SilcsBio software package.

We strongly recommend building GROMACS with GPU acceleration enabled. Below is a sequence of commands for GROMACS v. 2023.3 installation with GPU acceleration:

cd <GROMACS source directory>
mkdir build
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=on \
  -DREGRESSIONTEST_DOWNLOAD=on \
  -DGMX_GPU=CUDA \
  -DGMXAPI=off \
  -DBUILD_SHARED_LIBS=off \
  -DGMX_PREFER_STATIC_LIBS=on \
  -DGMX_BUILD_SHARED_EXE=off \
  -DCMAKE_INSTALL_PREFIX=<GROMACS install location>
make
make install

If your compute nodes do not have GPUs, use the following commands:

cd <GROMACS source directory>
mkdir build
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=on \
  -DREGRESSIONTEST_DOWNLOAD=on \
  -DGMXAPI=off \
  -DBUILD_SHARED_LIBS=off \
  -DGMX_PREFER_STATIC_LIBS=on \
  -DGMX_BUILD_SHARED_EXE=off \
  -DCMAKE_INSTALL_PREFIX=<GROMACS install location>
make
make install

Please refer to http://manual.gromacs.org/documentation/current/install-guide/index.html for further details.

Installation

Server Software Installation

The SilcsBio server software package is delivered as a zip-compressed file. Unzip and place the files to an accessible location. The files have the following directory structure:

silcsbio.$VERSION/
  cgenff/
  cgenff-covalent/
  cgenff-optimizer/
  data/
  examples/
  lib/
  lsqfit/
  md/
  ppi/
  programs/
  silcs/
  silcs-biologics/
  silcs-bml/
  silcs-hotspots/
  silcs-mc/
  silcs-memb/
  silcs-pharm/
  silcs-rna/
  ssfep/
  ssfep-memb/
  templates/
  utils/
  VERSION

The top-level silcsbio.$VERSION/ folder contains software for running SILCS and SSFEP simulations. The programs/, silcs*/, and ssfep*/ folders contain executable code.

The templates/ folder contains templates for job handling and input scripts. Note that for academic users, some template files (``.tmpl``) may need to be edited with information for your queuing system.

If you are a system administrator, place the top-level silcsbio.$VERSION/ folder where it can be accessed by other users, such as /opt/silcsbio/. If you are a single user, you may place the folder in your home directory.

For SilcsBio server software to work, the two shell environment variables GMXDIR and SILCSBIODIR need to be set. To do so, replace <gromacs/bin> and <silcsbio> with the complete file paths for the corresponding folders:

# bash
export GMXDIR=<gromacs/bin>
export SILCSBIODIR=<silcsbio>

Currently, the SilcsBio server software is compatible only with the Bash shell environment. You may insert the above environment variable settings in .bashrc for convenience.

Graphical User Interface (GUI) Installation

The SilcsBio Graphical User Interface (GUI) enables the user to run SILCS and SSFEP simulations and analyze results through a GUI instead of the command line. The SilcsBio GUI is available for Windows, macOS, and Linux. Please download and install the software on your local desktop or laptop computer.

In addition to providing standalone features such as FragMap visualization and ligand modification, the SilcsBio GUI can set up, launch, manage, and analyze compute-intensive SILCS and SSFEP simulations. Enabling this functionality requires a simple configuration step to allow the GUI to communicate with your SilcsBio server software.

Please follow the Remote Server Setup process as described in Graphical User Interface (GUI) Quickstart. Contact support@silcsbio.com if you need help with this process.

Amazon Web Services (AWS) Cluster Setup

To configure the AWS ParallelCluster, please follow the instructions provided by AWS, under the “Slurm” tab, in the following link:

https://docs.aws.amazon.com/parallelcluster/latest/ug/install-v3-configuring.html

Please note AWS’ terminology for partition and queue. For AWS, a partition is a group of AWS Region and Service objects. The AWS partition, which is based on the region determines what services are available. For AWS, a queue is what traditionally (i.e., in Slurm terminology) would be called a partition, which can be considered job queues, each with constraints including, but not limited to, the number of compute resources in the queue or maximum number of running jobs. Additional information on the Slurm workload manager is available at https://slurm.schedmd.com/documentation.html. For the purpose of this section and consistency with AWS instructions, we will follow the terminology of AWS.

As detailed in the AWS ParallelCluster configuration instructions linked above, using the pcluster configure CLI command will initiate prompts for you to enter information required to configure your AWS cluster.

When prompted to choose the job scheduler, enter slurm.

Allowed values for Scheduler:
1. slurm
2. awsbatch
Scheduler [slurm]: slurm

When prompted to choose the AWS queue configuration, enter the following setup:

Number of queues: 2
Name of queue 1: gpu
Number of compute resources for gpu: 10
Compute instance type for compute resource 1 in gpu: p3.2xlarge
Name of queue 2: cpu
Number of compute resources for cpu: 10
Compute instance type for compute resource 1 in cpu: c5.2xlarge

Note

Please enter an integer value for Number of compute resources. We recommend multiples of 10 (e.g., if you plan on simultaneously running SILCS simulations for 5 proteins, then the entry for Number of compute resources would be 50.)

Contact support@silcsbio.com if you need help with this process.

PHARMER Installation

Please refer to https://github.com/SilcsBio/pharmer