Frequently Asked Questions ========================== How do I setup password-less entry for my remote server? ------------------------------------------------------- To setup password-less entry for your remote server, you need to copy the ssh-key from your local machine to the remote server. Here are the steps: 1. See if you have an existing public/private key pair on your local machine: :: ls -al ~/.ssh/id_rsa* The public key will be named ``id_rsa.pub`` and the private key will be named ``id_rsa``. If you do not see these files, you do not have a public/private key pair. 2. If you do not have an existing public/private key pair, generate one on your local machine using the following command: :: ssh-keygen -t rsa -b 4096 This command will generate a public/private key pair in the ``~/.ssh`` folder of your local machine. 3. Copy the public key to the remote server: :: ssh-copy-id username@remote_server_ip_or_url This command will copy the public key to the remote server and add it to the ``~/.ssh/authorized_keys`` file. You will be prompted to enter your password for the remote server. Once you enter the password, the ssh-key will be copied to the remote server. Next time you login to the remote server, you will not be prompted for a password. 4. (Optional) Create a configuration file for easy access: You can build a configuration file in the ``~/.ssh`` folder to store the connection information for the remote server. This will allow you to connect to the remote server using a simple command like ``ssh remote_server``. Here is an example of a configuration file **``~/.ssh/config``** : :: Host Hostname User Port 22 IdentityFile ~/.ssh/id_rsa I installed the software, how do I test if it is correctly installed? --------------------------------------------------------------------- Because different users have different settings and requirements for their clusters or workstations, we provide a general job handling script for you to customize to your needs. To assist with job handling script customization, example input files are available under the ``$SILCSBIODIR/examples`` folder. For SILCS, use the following commands to make sure the software is correctly installed and the job handling script is working. If you are only interested in SSFEP simulations, you may skip to the SSFEP section below. :: mkdir -p test/silcs cd test/silcs cp $SILCSBIODIR/examples/silcs/p38a.pdb . $SILCSBIODIR/silcs/1_setup_silcs_boxes prot=p38a.pdb $SILCSBIODIR/silcs/2a_run_gcmd prot=p38a.pdb numsys=1 nproc=1 If this set of commands runs without error, confirm that the SILCS job is running with the ``check_progress`` command: :: $SILCSBIODIR/silcs/check_progress and then go ahead and stop the successfully running SILCS job: :: $SILCSBIODIR/silcs/2a_run_gcmd cancel=true sys=1 and confirm it is stopped: :: $SILCSBIODIR/silcs/check_progress Otherwise, if you experienced an error with the ``1_setup-silcs_boxes`` step, the software is not correctly installed, whereas if you experienced an error with the ``2a_run_gcmd`` step, the job handling scripts need to be edited. The job handling scripts for SILCS are: * ``templates/silcs/job_mc_md.tmpl`` * ``templates/silcs/job_gen_maps.tmpl`` * ``templates/silcs/pymol_fragmap.tmpl`` * ``templates/silcs/vmd_fragmap.tmpl`` * ``templates/silcs/job_cleanup.tmpl`` Typically the header portion of a job handling script requires editing. Please contact support@silcsbio.com if you need assistance. For SSFEP, use the following commands to make sure the software is correctly installed and the job handling script is working. :: mkdir -p test/ssfep cd test/ssfep cp $SILCSBIODIR/examples/ssfep/* . $SILCSBIODIR/ssfep/1_setup_ssfep prot=4ykr.pdb lig=lig.mol2 $SILCSBIODIR/silcs/2_run_md_ssfep prot=4ykr.pdb lig=lig.mol2 nproc=1 If this set of commands runs without error, confirm that the SSFEP job is running with the ``check_progress`` command: :: $SILCSBIODIR/ssfep/check_progress and then go ahead and stop the successfully running SSFEP job: :: $SILCSBIODIR/ssfep/2_run_md_ssfep cancel=true target=lig $SILCSBIODIR/ssfep/2_run_md_ssfep cancel=true target=prot and confirm it is stopped: :: $SILCSBIODIR/ssfep/check_progress Otherwise, if you experienced an error with the ``1_setup_ssfep`` step, the software is not correctly installed, and if you experienced an error with the ``2_run_md_ssfep`` step, the job handling script needs to be edited. The job handling scripts for SSFEP are: * ``templates/ssfep/job_lig_md.tmpl`` * ``templates/ssfep/job_prot_lig_md.tmpl`` * ``templates/ssfep/job_dG.tmpl`` Typically the header portion of a job handling script requires editing. Please contact support@silcsbio.com if you need assistance. I don't have a cluster but I have a GPU workstation. What can I do? ------------------------------------------------------------------- You may be able to practically run the SilcsBio software if your GPU workstation has sufficient resources. An appropriate workstation may have at least 24 CPU cores, 4 GPUs, 64 GB of RAM, and 10 TB of disk space. Installing a job queueing system, such as the Slurm Workload Manager, will allow the SilcsBio server software to run on the workstation. The SilcsBio Workstation is a turn-key GPU workstation hardware+software solution developed by SilcsBio that comes with all necessary software pre-installed. The SilcsBio workstation has a quiet, sleek form factor for use in an office setting and comes ready to plug in to a standard wall electrical socket. Please contact info@silcsbio.com for details. I compiled my GROMACS with MPI and my job is not running -------------------------------------------------------- Please contact us so we can repackage the files with the appropriate command using ``mpirun`` instead. Alternatively, you may edit the job handling script to use the appropriate GROMACS command. For example, the ``mdrun`` command is specified at the top of ``templates/ssfep/job_lig_md.tmpl`` file: :: mdrun="${GMXDIR}/gmx mdrun -nt $nproc" You may edit this to :: mdrun="mpirun -np $nproc ${GMXDIR}/gmx mdrun" GROMACS on the head node does not run because the head node and compute node have different operating systems ------------------------------------------------------------------------------------------------------------- In this case, we recommend compilng GROMACS on the head node and compiling ``mdrun`` only on the compute node. Building only ``mdrun`` can be done by supplying the ``-DGMX_BUILD_MDRUN_ONLY=on`` keyword to the ``cmake`` command in the build process. Once the ``mdrun`` program is built, place it in the same $GMXDIR folder. Now template files needs to be edited to use the ``mdrun`` command properly on the compute node. For example, the ``mdrun`` command is specified at the top of the ``templates/ssfep/job_lig_md.tmpl`` file: :: mdrun="${GMXDIR}/gmx mdrun -nt $nproc" You may edit this to :: mdrun="${GMXDIR}/mdrun -nt $nrpoc" I get the "error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory" message during my setup ----------------------------------------------------------------------------------------------------------------------------------------------------- If you encounter this error, the most likely reason is that GROMACS was compiled on a machine having a GPU whereas the current machine where the command is being executed does not have a GPU. It may be possible that the necessary library is already available for the machine even though it does not have a GPU. So, check if the ``libcudart.so`` file exists on the current machine. The most likely place is ``/usr/local/cuda/lib64``. If the file exists in that location, add that path to your ``LD_LIBRARY_PATH`` environment variable.. If the library is not available on the current machine, we recommend following FAQ #4 to compile GROMACS and ``mdrun`` separately. I get the "error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory" ----------------------------------------------------------------------------------------------------------------------------------------------------- If you encounter this error, that means your operating system needs to install Secure Sockets Layer / Transport Layer Security (SSL/TLS) library (>= version 1.1.0). **If you are using Debian-based Linux: Ubuntu, etc:** :: sudo apt-get update sudo apt-get install libssl-dev **If you are using RedHat-based: Fedora, CentOS, Amazon Linux 2, etc:** :: sudo yum update -y sudo yum -y install openssl11-libs.x86_64 I want to modify the force field and topology files for SILCS simulation ------------------------------------------------------------------------ As an example, if there is the need to add extra bonds that are not present in the standard force field definitions, this is the procedure to make the necessary modifications. Please refer to the GROMACS documentation regarding modifying the .top and ffbonded.itp files. First, run the following command. This will copy the basic force field to and generate an initial topology file in ``1_setup/``, allowing you to edit them. :: $SILCSBIODIR/silcs/1_setup_silcs_boxes prot= Then edit the force field parameter file ``1_setup/charmm36.ff/ffbonded.itp``. If you want to modify the topology file (e.g. to add a bond between two atoms), copy ``1_setup/_gmx.top.1.bak`` to ``1_setup/_gmx.top``. Then edit ``_gmx.top`` and add the desired change under the appropriate list (e.g., add a bond between two atoms in the ``[ bond ]`` list). Once the files are edited, re-run the 1_setup command with the ``skip_pdb2gmx=true`` keyword. This will preserve your edits and create the necessary files to run the SILCS simulations. :: $SILCSBIODIR/silcs/1_setup_silcs_boxes prot= skip_pdb2gmx=true Once this completes, run the ``$SILCSBIODIR/silcs/2a_run_gcmd`` script to initiate your SILCS simulations. I want to visualize FragMaps using MOE -------------------------------------- By default, SILCS FragMaps are in the MAP grid file format. However, this file format is not supported in MOE. Please see :ref:`visualization_moe` for detailed instructions on creating FragMaps in a MOE-compatible format. How do I handle phosphorylated amino acids? ------------------------------------------- The following phosphorylated amino acids are supported: * pSer * pThr * pTyr To create a phosphorylated amino acid, rename that amino acid in your input pdb file as follows: * SER => SP1 or SP2 * THR => THP1 or THP2 * TYR => TP1 or TP2 The number at the end of the amino acid name refers to whether the phosphate group has mono- or divalent charge. What if my protein has a glycan attached to it? ----------------------------------------------- While setting up a glycan-containing protein directly from a PDB file is not currently supported, you can set up your simulation system for SILCS if you have a PSF file created with the CHARMM36 force field. An example can be found in the ``$SILCSBIODIR/examples/glycan`` folder. Running the ``setup.sh`` script in that directory will run the example and create a folder named ``1_setup``. For your own system, copy the ``gromacs`` folder and ``setup.sh`` file and edit the copied ``setup.sh`` file before running it: :: psffile="psf/step1_pdbreader.psf" # PSF file pdbfile="psf/step1_pdbreader.pdb" # PDB file prefix="5vgp" # prefix for the SILCS simulation .. _faq_setup_metal: What happens when I set up SILCS simulations with an input structure containing a metal ion? -------------------------------------------------------------------------------------------- SILCS simulation supports a variety of metal ions, including calcium, copper, iron, magnesium, manganese, nickel, and zinc. If an ion in the input structure is located close to protein atoms (~ 3A), the setup script will automatically create covalent linkages between the metal ion and nearby protein residues so as to ensure the coordination structure is maintained throughout the SILCS GCMC/MD simulations. My protein contains iron and I want to set a +3 charge state ------------------------------------------------------------ By default, the SILCS setup assigns a +2 charge to iron. If you want to change the charge of the iron ion, change the residue name of the ion in the input PDB to FE3. The setup script will then assign a +3 charge to that ion. .. _faq_silcs-memb_offset_z: How do I fit my membrane protein in a bilayer as suggested by the OPM server? ----------------------------------------------------------------------------- 1. Prepare your bare membrane protein with Alphafold, MOE etc. as 2. Upload the to the OPM server (PPM 3.0) and get the output. 3. Download the , open it with PyMOL or VMD, and determine the required translation along the z-axis: **PyMOL** * Select protein atoms: ``sele all and polymer`` * Calculate center of mass (COM): ``centerofmass sele`` * Copy the **Z-coordinate_of_COM** and go to the next step **VMD** * Open VMD Main >> Extensions >> TkConsole * Create selection with protein atoms: ``set sel1 [atomselect top “all and protein”]`` * Calculate center of mass (COM): ``set com1 [measure center $sel1 weight mass]`` * Copy the **Z-coordinate_of_COM** and go to the next step 4. Align to for subsequent use OR extract protein from for subsequent use. 5. Run setup with the additional ``offset_z``: :: $SILCSBIODIR/silcs-memb/1a_fit_protein_in_bilayer prot= orient_principal_axis=false offset_z= .. _faq_covalent_ligand: How do I include a covalently bound ligand/cofactor in SILCS simulations? ------------------------------------------------------------------------- SILCS-Small Molecule users with the CGenFF Suite license will be able to generate the necessary topology and parameter files as well as PDB structures needed to perform SILCS simulations of a protein covalently bound to a ligand/cofactor. For more information, please refer to :doc:`cgenff/covalent`. SILCS-Small Molecule users without the CGenFF Suite license are still able to achieve a good approximation of the covalently bound ligand structure by using positional restraints to maintain relative geometries during the SILCS simulation. To do so, provide the ligand/cofactor as an individual ligand using the option **lig=lig.mol2** during setup. The mol2 file should contain only the ligand/cofactor molecule and must have all hydrogen atoms and a appropriate three-dimensional coordinates that provide a reasonable internal geometry and place it correctly relative to the protein. Weak position restraints will be automatically added on the non-hydrogen atoms of ligand/cofactor, so it will be positionally restrained. (Note: you will also need to set the option **scramblesc=false** when running ``1_setup_silcs_boxes`` in order to keep protein sideschain conformations from being scrambled.) :: $SILCSBIODIR/silcs/1_setup_silcs_boxes prot= lig=lig.mol2 scramblesc=false However, the amino acid sidechain to which the ligand/cofactor is meant to be covalently bound will be unrestrained. To address this, you will need to manually add weak position restraints on non-hydrogen atoms of the sidechain. To do this, edit the ``1_setup/posre_protein_ca.itp`` file which restraints C-alpha atoms and append it with the non-hydrogen atoms from your sidechain. :: ; position restraints for (atomname_CA_or_atomname_"C1'") [ position_restraints ] ; i funct fcx fcy fcz 5 1 50.208 50.208 50.208 20 1 50.208 50.208 50.208 46 1 50.208 50.208 50.208 58 1 50.208 50.208 50.208 . . . 5571 1 50.208 50.208 50.208 5589 1 50.208 50.208 50.208 5603 1 50.208 50.208 50.208 5617 1 50.208 50.208 50.208 ; **ADD YOUR SIDECHAIN ATOMS BELOW** xxxx 1 50.208 50.208 50.208 xxxx 1 50.208 50.208 50.208 xxxx 1 50.208 50.208 50.208 xxxx 1 50.208 50.208 50.208 Please visualize the ``1_setup/_silcs.1-10.pdb`` files to make sure the ligand and sidechain are correctly prepared before you run the ``2a_run_gcmd`` command. I have a set of FragMaps generated by version 2021, can I use it in later version? ---------------------------------------------------------------------------------- Yes, you can use the SILCS FragMaps generated by version 2021 or earlier in later versions of silcsbio. You need to run the following command to make the FragMaps compatible with the latest version of silcsbio: :: $SILCSBIODIR/utils/fragmaps_conversion.sh silcs_fragmaps_XXXX