ccsb-scripps / AutoDock-Vina

AutoDock Vina
http://vina.scripps.edu
Apache License 2.0
597 stars 210 forks source link

format flexible docking #179

Closed AngelPineiro closed 1 year ago

AngelPineiro commented 1 year ago

I want to do make a docking calculation with a non-standard molecule for which I am generating the flexible and ridid pdbqt files using my own scripts. After taking a look to the documentation I am testing Vina using the following flexible.pdbqt file:

BEGIN_RES SBE3    1 
ROOT
ATOM      6  C2  SBE3    1      44.590  47.130  29.260  1.00  0.00     0.232 C  
ENDROOT
BRANCH 6 7
ATOM      7  O2  SBE3    1      45.450  47.350  30.390  1.00  0.00    -0.642 O  
ATOM      8  H2  SBE3    1      45.190  46.740  31.150  1.00  0.00     0.410 H  
ENDBRANCH 6 7
ROOT
ATOM      9  C3  SBE3    1      45.210  47.240  27.870  1.00  0.00     0.143 C  
ENDROOT
BRANCH 9 10
ATOM     10  O3  SBE3    1      46.210  46.210  27.830  1.00  0.00    -0.454 O  
ATOM     11 C1X  SBE3    1      47.490  46.740  27.450  1.00  0.00     0.311 C  
ATOM     15 C2X  SBE3    1      48.430  46.210  28.520  1.00  0.00     0.000 C  
ATOM     16 C3X  SBE3    1      49.880  46.660  28.300  1.00  0.00     0.000 C  
ATOM     17 C4X  SBE3    1      50.430  46.350  26.910  1.00  0.00     0.000 C  
ATOM     18  SX  SBE3    1      51.020  44.660  26.590  1.00  0.00     0.842 S  
ATOM     19 O1X  SBE3    1      51.010  44.520  25.100  1.00  0.00    -0.614 O  
ATOM     20 O2X  SBE3    1      52.380  44.490  27.200  1.00  0.00    -0.614 O  
ATOM     21 O3X  SBE3    1      49.990  43.750  27.190  1.00  0.00    -0.614 O  
ENDBRANCH 9 10
ROOT
ATOM     12  C6  SBE3    1      41.770  48.010  26.090  1.00  0.00     0.232 C  
ENDROOT
BRANCH 12 13
ATOM     13  O6  SBE3    1      40.700  47.110  26.430  1.00  0.00    -0.642 O  
ATOM     14  H6  SBE3    1      40.120  47.560  27.100  1.00  0.00     0.410 H  
ENDBRANCH 12 13
END_RES SBE3    1 

but when I try to execute the docking calculation I get the following error:

PDBQT parsing error: Unknown or inappropriate tag found in flex residue or ligand.
 > ROOT

I have no experience on docking, so I guess there is some obvious error but I cannot find it. I would appreciate any help.

Ritzhi-San commented 1 year ago

I believe from the error here, your flexible.pdbqt file was written incorrectly. There are specific tags the ligand.pdbqt and receptor.pdbqt must have to successfully start the docking prediction. If your source file is in the .pdb format, i highly suggest using autodock tools 1.5.7 (from the mgl tools suite here) to properly convert these files. Documentation on how to do this is also available online.

AngelPineiro commented 1 year ago

Before doing my own script for this I tried using MGLTools but then I have no control on which parts of my molecule are ridig and which are flexible. I followed the documentation of Vina to get my pdbqt and it seems correct to me. This cannot be so complex... I would really appreciate if someone could tell me which is the error in the lines I pasted in my original post.

El mar., 21 feb. 2023 1:29 a. m., Ritzhi-San @.***> escribió:

I believe from the error here, your flexible.pdbqt file was written incorrectly. There are specific tags the ligand.pdbqt and receptor.pdbqt must have to successfully start the docking prediction. If your source file is in the .pdb format, i highly suggest using autodock tools 1.5.7 (from the mgl tools suite here https://ccsb.scripps.edu/mgltools/downloads/) to properly convert these files. Documentation on how to do this is also available online.

— Reply to this email directly, view it on GitHub https://github.com/ccsb-scripps/AutoDock-Vina/issues/179#issuecomment-1437699700, or unsubscribe https://github.com/notifications/unsubscribe-auth/AX2AARUYUEWUTZFXIHM5TH3WYQEALANCNFSM6AAAAAAVCIYIAM . You are receiving this because you authored the thread.Message ID: @.***>

AngelPineiro commented 1 year ago

I found the error in the format: it seems that it cannot be 2 ROOT groups within the same residue. By grouping the atoms of the two ROOTs in the same ROOT I do not get the error. The correct format would be like this:

BEGIN_RES SBE3    1 
ROOT
ATOM      6  C2  SBE3    1      44.590  47.130  29.260  1.00  0.00     0.232 C  
ATOM      9  C3  SBE3    1      45.210  47.240  27.870  1.00  0.00     0.143 C  
ATOM     12  C6  SBE3    1      41.770  48.010  26.090  1.00  0.00     0.232 C  
ENDROOT
BRANCH 6 7
ATOM      7  O2  SBE3    1      45.450  47.350  30.390  1.00  0.00    -0.642 O  
ATOM      8  H2  SBE3    1      45.190  46.740  31.150  1.00  0.00     0.410 H  
ENDBRANCH 6 7
BRANCH 9 10
ATOM     10  O3  SBE3    1      46.210  46.210  27.830  1.00  0.00    -0.454 O  
ATOM     11 C1X  SBE3    1      47.490  46.740  27.450  1.00  0.00     0.311 C  
ATOM     15 C2X  SBE3    1      48.430  46.210  28.520  1.00  0.00     0.000 C  
ATOM     16 C3X  SBE3    1      49.880  46.660  28.300  1.00  0.00     0.000 C  
ATOM     17 C4X  SBE3    1      50.430  46.350  26.910  1.00  0.00     0.000 C  
ATOM     18  SX  SBE3    1      51.020  44.660  26.590  1.00  0.00     0.842 S  
ATOM     19 O1X  SBE3    1      51.010  44.520  25.100  1.00  0.00    -0.614 O  
ATOM     20 O2X  SBE3    1      52.380  44.490  27.200  1.00  0.00    -0.614 O  
ATOM     21 O3X  SBE3    1      49.990  43.750  27.190  1.00  0.00    -0.614 O  
ENDBRANCH 9 10
BRANCH 12 13
ATOM     13  O6  SBE3    1      40.700  47.110  26.430  1.00  0.00    -0.642 O  
ATOM     14  H6  SBE3    1      40.120  47.560  27.100  1.00  0.00     0.410 H  
ENDBRANCH 12 13
END_RES SBE3    1 

Now I have to see if the results are reasonable but at least I do not get the error in the format.

diogomart commented 1 year ago

Looks like the branch 9 10 block could use a few more rotatable bonds.

Not sure what your goal is, but you could take a look at meeko's docking covalent ligands as flexible sidechains, maybe it will be helpful.

AngelPineiro commented 1 year ago

Hi Diogo thank you very much for the suggestion. I took a look to the meeko package and it seems interesting but I think I cannot use it because my molecule is a bit large. What I have is a oligosaccharide that I build using my own code, typically it has between 300 and 600 atoms. I am trying to develop a code to have a reasonable docking approach for my specific molecules. Rigid docking provides reasonable affinity constants and structures, so I decided to include some level of flexibility. What I pasted in my previous posts is just one of the residues of my polymer, but I typically have 14-16. I guess Vina cannot manage all the torsions I would like to consider and this is why I decided to allow rotations just at the beginning of the relatively small chains representing mutations or sidechains in my molecule. The pdbqt arising from my code seems to work well (at least it does not provide errors and Vina is executed) but the resulting complexes and energies are quite unreasonable... worse than those obtaining from the rigid docking... I am working on this... so I would appreciate any advice.

On Tue, Feb 21, 2023 at 10:46 PM Diogo @.***> wrote:

Looks like the branch 9 10 block could use a few more rotatable bonds.

Not sure what your goal is, but you could take a look at meeko's docking covalent ligands as flexible sidechains https://github.com/forlilab/Meeko#docking-covalent-ligands-as-flexible-sidechains, maybe it will be helpful.

— Reply to this email directly, view it on GitHub https://github.com/ccsb-scripps/AutoDock-Vina/issues/179#issuecomment-1439132786, or unsubscribe https://github.com/notifications/unsubscribe-auth/AX2AARX2QY5XLKF6RUXOBMTWYUZUNANCNFSM6AAAAAAVCIYIAM . You are receiving this because you authored the thread.Message ID: @.***>

diogomart commented 1 year ago

There are three categories of atoms in vina:

There may be multiple ligands (in separate files), multiple flexible residues (in a single file), and one receptor.

Rotatable bonds rotate all atoms downstream of the ROOT atoms. Each rotatable bond is associated with a BRANCH/ENDBRANCH block. See the example here on page 29 of the AD4.2 manual. Note how BRANCH 6 7 is nested inside the BRANCH 1 6 block.

Hope this helps.

AngelPineiro commented 1 year ago

Yes, thank you for the help. Everything is working fine now with my code. I will explore now how to optimize the calculations but the results are reasonable now.

On Thu, Feb 23, 2023 at 6:03 PM Diogo @.***> wrote:

There are three categories of atoms in vina:

  • --receptor will not move at all
  • --ligand will translate and rotate as a rigid body, plus rotation of rotatable bonds
  • --flex rotation of rotational bonds, the atoms within the ROOT/ENDROOT block are fixed. This was designed for protein sidechains. There may be multiple ligands (in separate files), multiple flexible residues (in a single file), and one receptor.

Rotatable bonds rotate all atoms downstream of the ROOT atoms. Each rotatable bond is associated with a BRANCH/ENDBRANCH block. See the example here on page 29 of the AD4.2 manual https://autodock.scripps.edu/wp-content/uploads/sites/56/2022/04/AutoDock4.2.6_UserGuide.pdf. Note how BRANCH 6 7 is nested inside the BRANCH 1 2 block.

Hope this helps.

— Reply to this email directly, view it on GitHub https://github.com/ccsb-scripps/AutoDock-Vina/issues/179#issuecomment-1442125158, or unsubscribe https://github.com/notifications/unsubscribe-auth/AX2AARQ5RNTV4377CLTP663WY6J5FANCNFSM6AAAAAAVCIYIAM . You are receiving this because you authored the thread.Message ID: @.***>

diogomart commented 1 year ago

Good to hear! I'll close, feel free to re-open if needed.

darekb94 commented 1 year ago

@AngelPineiro > Yes, thank you for the help. Everything is working fine now with my code. I will explore now how to optimize the calculations but the results are reasonable now.

Dear Prof. Ángel Piñeiro, did I guess properly that the molecule you are dealing with is sulfobutyl ether beta cyclodextrin? If so, I would be very helpful for your advice. My goal is to dock small drug molecules into the cavity of this cyclodextrin. SBE side chains are very flexible so I am convinced that they should be treated as flexible parts of the receptor. I build the structure of SBE-b-CD manually in graphical moleular editor and thus obtained the pdb file without any headings such as ROOT or BRANCH. However, I cannot manage any flexible docking with this file, since I get the error: "IndexError: list index out of range". I cannot find the reason for this error and the issue I opened with a similar question ( #183) still remains unanswered. I wondered if it is only possible for macromolecules to ensure the flexibility of sidechains. However, your description shows that this is not the case. I would be very grateful if you could give me an advice how too deal with the flexibility of sulfobutyl ether sidechains. I would also ask if the results you obtained seem to be reasonable and the method of flexible docking can be succesful for the prediction of the affinities of a drug molecule to a cyclodextrin?