You are here

protein ligand docking

5 posts / 0 new
Last post
protein ligand docking
#1

Hello!

I'm not able to generate a score.sc file because something is not allowing me to dock my ligands to my protein.  I get the error

 Cannot normalize xyzVector of length() zero
Error: [ ERROR ] 
Error: [ ERROR ] Treating failure as bad input; canceling similar jobs

Here's an example of my params file.  I've attached a copy of my ligand/receptor .pdb and my dock.xml as well:

NAME Out
IO_STRING Out Z
TYPE LIGAND
AA UNK
ATOM  N1  Nhis  X   -0.27
ATOM  C1  CH1   X   0.12
ATOM  C2  aroC  X   0.11
ATOM  S1  S     X   -0.03
ATOM  S2  S     X   -0.08
ATOM  C3  CH1   X   0.19
ATOM  C4  aroC  X   0.29
ATOM  O1  OOC   X   -0.27
ATOM  N2  Nhis  X   -0.11
ATOM  C5  CH1   X   0.22
ATOM  O2  OOC   X   -0.20
ATOM  C6  aroC  X   0.02
ATOM  C7  aroC  X   -0.00
ATOM  C8  aroC  X   -0.00
ATOM  C9  aroC  X   -0.00
ATOM  C10 aroC  X   -0.00
ATOM  C11 aroC  X   -0.00
BOND  C1   N1 
BOND  N1   C2 
BOND  C2   S1 
BOND  C2   S2 
BOND  S2   C3 
BOND  C3   C4 
BOND  C4   O1 
BOND  C4   N2 
BOND  C3   C5 
BOND  N1   C5 
BOND  C5   O2 
BOND  C5   C6 
BOND  C6   C7 
BOND  C7   C8 
BOND  C8   C9 
BOND  C9   C10
BOND  C10  C11
BOND  C6   C11
CHI 1  S2   C3   C4   O1 
CHI 2  C3   C5   C6   C7 
NBR_ATOM  N1 
NBR_RADIUS 0.000000
ICOOR_INTERNAL    N1     0.000000    0.000000    0.000000   N1    C1    C2 
ICOOR_INTERNAL    C1     0.000000    0.000000    0.000000   N1    C1    C2 
ICOOR_INTERNAL    C2     0.000000    0.000000    0.000000   N1    C1    C2 
ICOOR_INTERNAL    S1     0.000000    0.000000    0.000000   C2    N1    C1 
ICOOR_INTERNAL    S2     0.000000    0.000000    0.000000   C2    N1    S1 
ICOOR_INTERNAL    C3     0.000000    0.000000    0.000000   S2    C2    N1 
ICOOR_INTERNAL    C4     0.000000    0.000000    0.000000   C3    S2    C2 
ICOOR_INTERNAL    O1     0.000000    0.000000    0.000000   C4    C3    S2 
ICOOR_INTERNAL    N2     0.000000    0.000000    0.000000   C4    C3    O1 
ICOOR_INTERNAL    C5     0.000000    0.000000    0.000000   C3    S2    C4 
ICOOR_INTERNAL    O2     0.000000    0.000000    0.000000   C5    C3    S2 
ICOOR_INTERNAL    C6     0.000000    0.000000    0.000000   C5    C3    O2 
ICOOR_INTERNAL    C7     0.000000    0.000000    0.000000   C6    C5    C3 
ICOOR_INTERNAL    C8     0.000000    0.000000    0.000000   C7    C6    C5 
ICOOR_INTERNAL    C9     0.000000    0.000000    0.000000   C8    C7    C6 
ICOOR_INTERNAL    C10    0.000000    0.000000    0.000000   C9    C8    C7 
ICOOR_INTERNAL    C11    0.000000    0.000000    0.000000   C10   C9    C8 

 

Thanks,

Patrick 

AttachmentSize
Outligand137_wReceptor.pdb1.42 KB
dock.txt2.99 KB
Category: 
Post Situation: 
Sun, 2018-12-30 15:07
patrickchirdon

I think the error might be related to the coordinates in the paramaters file..... I compared it to compounds I have used before that have successfully docked.   These compounds all have coordinates 0 0 0 whereas compounds that have docked successfully actually have non zero values.  I'm thinking the problem might be with parameterization..... Here's the script I use to do the docking.

 

#!/bin/bash
echo -n "Enter the name of the receptor pdb file:"
read receptor
for files in ligand*.mol2
do
/users/PHS0297/ohu0515/rosetta/main/source/scripts/python/public/molfile_to_params.py -n "Out${files%.mol2}" -p "Out${files%.mol2}" $files

cat $receptor "Out${files%.mol2}_0001.pdb" > "Out${files%.mol2}_wReceptor.pdb"
~/rosetta/main/source/bin/rosetta_scripts.static.linuxgccrelease -in:path:database /users/PHS0297/ohu0515/rosetta/main/database/ -in:file:s "Out${files%.mol2}_wReceptor.pdb" -in:file:extra_res_fa "Out${files%.mol2}.params" -out:nstruct 3 -parser:protocol /users/PHS0297/ohu0515/dock.xml
mv "Out${files%.mol2}_wReceptor_0001.pdb" "${files%.mol2}_docked_0001.pdb"
mv "Out${files%.mol2}_wReceptor_0002.pdb" "${files%.mol2}_docked_0002.pdb"
mv "Out${files%.mol2}_wReceptor_0003.pdb" "${files%.mol2}_docked_0003.pdb"
sort -n -k50 score.sc | head -n 100000 | awk '{print $2 "\t" $50 "\t" $NF}' > reportcardirf3.dat
done

 

 

 

Sun, 2018-12-30 22:29
patrickchirdon

I looked back at my .mol2 files for compounds that dock vs those that don't.... It's pretty obvious the problem is with the mol files.  I used open babel to create the mol files..... Is there some reason why the coordinates read 0 0 0? Here's an example of the mol file for a compound that does not dock:

@<TRIPOS>MOLECULE
*****
 15 16 0 0 0
SMALL
GASTEIGER

@<TRIPOS>ATOM
      1 C           0.0000    0.0000    0.0000 C.3     1  LIG1        0.0398
      2 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0282
      3 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0694
      4 N           0.0000    0.0000    0.0000 N.ar    1  LIG1       -0.2677
      5 C           0.0000    0.0000    0.0000 C.2     1  LIG1        0.0835
      6 C           0.0000    0.0000    0.0000 C.2     1  LIG1        0.0206
      7 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.2958
      8 O           0.0000    0.0000    0.0000 O.2     1  LIG1       -0.2591
      9 S           0.0000    0.0000    0.0000 S.2     1  LIG1       -0.0300
     10 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0164
     11 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0015
     12 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0000
     13 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0000
     14 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0000
     15 C           0.0000    0.0000    0.0000 C.ar    1  LIG1        0.0015
@<TRIPOS>BOND
     1     1     2    1
     2     2     3   ar
     3     3     4   ar
     4     4     5    1
     5     5     6    2
     6     4     7   ar
     7     7     8    2
     8     7     9   ar
     9     2     9   ar
    10     3    10    1
    11    10    11   ar
    12    11    12   ar
    13    12    13   ar
    14    13    14   ar
    15    14    15   ar
    16    10    15   ar

 

Here's an example of a compound that successfully docks.

 

@<TRIPOS>MOLECULE
*****
 16 16 0 0 0
SMALL
GASTEIGER

@<TRIPOS>ATOM
      1 C           1.7534    4.2979    0.0000 C.3     1  LIG1        0.0030
      2 C           2.4679    3.8854    0.0000 C.3     1  LIG1        0.0348
      3 C           2.4679    3.0604    0.0000 C.3     1  LIG1        0.1481
      4 O           1.6429    3.0604    0.0000 O.3     1  LIG1       -0.2211
      5 C           3.2929    3.0604    0.0000 C.3     1  LIG1        0.0348
      6 C           3.7054    2.3459    0.0000 C.3     1  LIG1        0.0030
      7 C           2.4679    2.2354    0.0000 C.ar    1  LIG1        0.0392
      8 C           3.1823    1.8229    0.0000 C.ar    1  LIG1        0.0042
      9 C           3.1823    0.9979    0.0000 C.ar    1  LIG1        0.0369
     10 C           2.4679    0.5854    0.0000 C.ar    1  LIG1        0.1417
     11 O           2.4679   -0.2396    0.0000 O.3     1  LIG1       -0.4713
     12 C           3.1823   -0.6521    0.0000 C.3     1  LIG1        0.2525
     13 C           1.7534    0.9979    0.0000 C.ar    1  LIG1        0.0735
     14 C           1.7534    1.8229    0.0000 C.ar    1  LIG1        0.1400
     15 O           1.0389    2.2354    0.0000 O.3     1  LIG1       -0.4716
     16 C           0.3245    1.8229    0.0000 C.3     1  LIG1        0.2525
@<TRIPOS>BOND
     1     1     2    1
     2     2     3    1
     3     3     4    1
     4     3     5    1
     5     3     7    1
     6     5     6    1
     7     7     8   ar
     8     7    14   ar
     9     8     9   ar
    10     9    10   ar
    11    10    11    1
    12    10    13   ar
    13    11    12    1
    14    13    14   ar
    15    14    15    1
    16    15    16    1

Sun, 2018-12-30 17:15
patrickchirdon

I think I resolved my own problem here but wanted to post the solution in case anyone is having a similar problem.  The ligands I created using Data Warrior were smiles.  When I converted these smiles to .mol2 files using open babel I did not use the --gen3d option.  This is essential because rosetta needs the 3d coordinates. Here's why.  http://hjkgrp.mit.edu/content/geometries-strings-smiles-and-openbabel

Sun, 2018-12-30 22:33
patrickchirdon

Your journey of self-discovered-solutions has led you to the correct place.  Rosetta is angry that the coordinates are garbage - specifically that the torsion angle between 4 atoms that are all at the origin is undefined.  I think your tracing the problem upstream to a bad SMILES->conformation conversion is correct.

Mon, 2018-12-31 08:58
smlewis