ccsb-scripps / AutoDock-Vina

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

Flexible Docking Scores #36

Closed Sruthik22 closed 3 years ago

Sruthik22 commented 3 years ago

Hi, I am working with flexible docking, and compared to nonflexible docking it is giving very high scores: 2252099169.975 kcal/mol and is taking very long to run per protein. Could you kindly tell me what is issue with this docking?

Receptor: https://alphafold.ebi.ac.uk/entry/P29699 Ligand: https://pubchem.ncbi.nlm.nih.gov/compound/Ergothioneine

Let me know if providing the code I used would be helpful.

diogomart commented 3 years ago

Hi,

Possibly some atoms of the flexible residues are outside the search space (a.k.a. box / maps / grids). Could you check if that's the case?

Sruthik22 commented 3 years ago

To figure out the search space I used:

os.system('pythonsh prepare_gpf.py -l ' + full_path_to_ergothioneine + ' -r ' + file_name_wo_extension + str(region) + '_rigid.pdbqt' + ' -o ' + file_name_wo_extension + '.gpf')

center = []
box_size = []

    with open(file_name_wo_extension + '.gpf') as f:
        for line in f:
            if "gridcenter" in line:
                nums = line.split(" ")
                center.append(float(nums[1]))
                center.append(float(nums[2]))
                center.append(float(nums[3]))
            if "npts" in line:
                nums = line.split(" ")
                box_size.append(float(nums[1]))
                box_size.append(float(nums[2]))
                box_size.append(float(nums[3]))

    # how to get the center and box size
    vina.compute_vina_maps(center=center, box_size=[20, 20, 20])

Is this a correct method to find the search space?

diogomart commented 3 years ago

Ergothioneine is what we would call the ligand, and the protein is the receptor. Ligand atoms are forced inside the search space during docking. I wouldn't trust a script to define the search space unless you know exactly what the script is doing. The best is to visualize the search space in the context of the receptor with a molecular visualizer. Then you can define, manually, where in the protein/receptor the ligands can dock. Examples of software for looking at the search box are:

Sruthik22 commented 3 years ago

Thank you for your help! I was hoping to automate the docking process because I have around 50 receptor-ligand pairs I wanted to dock. Would it be possible to do this, or is manual selection of the search space the most accurate way to go about the process?

diogomart commented 3 years ago

If each of the receptors has a known ligand it could be reasonable to define the box to encompass the ligand plus some margin in each direction (see https://github.com/ccsb-scripps/AutoDock-Vina/issues/31#issuecomment-906840388).

Otherwise making a gigantic box around the entire receptor is possible. That makes the search much harder so It would be a good idea to increase the --exhaustiveness value significantly.

Sruthik22 commented 3 years ago

Oh perfect, I am docking ergothioneine for every receptor so I can keep the docking box constant. Thank you for your help!

diogomart commented 3 years ago

Unfortunately it's the other way around: the box should be defined relatively to the receptor. What makes it work for boxes centered on known ligands is the fact that known ligands are already placed in the binding site of the respective receptors.