-
Notifications
You must be signed in to change notification settings - Fork 211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discrepancy Between Multi-Ligand Docking Score and Summed Individual Scores in AutoVina #326
Comments
Hi @Squirrelity In your dual-ligand output, you can retrieve the number of torsions by the following values printed after From singly scored poses, you can retrieve the number of torsions by the following items in The individual torsion numbers should add up to the total torsion number. As you can see, the multi-ligand poses are penalized more (scaled down) because of the degrees of freedom. I'm not very sure about the best scoring function for docking multiple ligands. But one common pitfall i can think of is that the Vina scoring function penalizes ligands with higher degrees of freedom by a scaling factor. Therefore, I would avoid comparing ligands that are drastically different in terms of size and/or number of free torsions. The scoring function might be more useful (and fair) when comparing ligands or multi-ligand systems that are similar in size and number of free torsions. Please let us know what you think and if you find any further issues with that! |
Hi @rwxayheee I have followed your instauctions to calculate the individual torsion numbers and the total torsion number. Here are my results: Individual Torsion Numbers: For ligand A: 6.996327125672311 kcal/mol Calculation Details for Total Torsion Numbers from Multi-Ligand Output: Using the formula This discrepancy between the total torsion number and the sum of individual torsion numbers is causing confusion. Could you please clarify whiy the total number from the multi-ligand output does not math the sum of the individual torsion number? |
Hi @Squirrelity I thought the number of torsions added up after checking my own example of docking two copies of the same ligand, but maybe I'm wrong.. thanks for reporting, and I can take a closer look at your files if that helps |
Hi @rwxayheee
I found the "INTER" and "Vina result" from dockingPose.pdbqt and I calculate individual torsion number by using this code: |
Hi @Squirrelity |
Hi @Squirrelity With just 5K7U_A.pdbqt.txt from vina import Vina
v = Vina(sf_name='vina')
v.set_receptor('5K7U_A.pdbqt')
lig_V22 = 'V22.pdbqt'
lig_SAM = 'SAM.pdbqt'
bcenter = [-43.014, 34.412, 25.684]
bsize = [40, 40, 40]
v.compute_vina_maps(center=bcenter, box_size=bsize) v.score() for V22; Ntor = 7Input v.set_ligand_from_file(lig_V22)
score = v.score()
print(score)
print((score[1]/score[0]-1)/0.0585) Output
v.score() for SAM; Ntor = 9Input v.set_ligand_from_file(lig_SAM)
score = v.score()
print(score)
print((score[1]/score[0]-1)/0.0585) Output
v.score() for V22 and SAM; Ntor = 16Input v.set_ligand_from_file([lig_V22, lig_SAM])
score = v.score()
print(score)
print(((score[1]+score[2])/score[0]-1)/0.0585) Output
Here Vina writes the interactions between ligands in Docking V22 and SAM; Ntor = 16Input v = Vina(sf_name='vina',seed=666)
v.set_receptor('5K7U_A.pdbqt')
v.set_ligand_from_file([lig_V22, lig_SAM])
v.compute_vina_maps(center=bcenter, box_size=bsize)
v.dock()
score = v.score()
print(score)
print(((score[1]+score[2])/score[0]-1)/0.0585) Output
PDBQT Output
((-22.105/-11.422)-1)/0.0585 = 15.9880392764 ... approx. 16 = 7+9 |
I am using AutoVina for multi-ligand docking and encountered an issue related to the binding energy scores. A fter performing a multi-ligand docking run, I extracted each ligand from the complex and calculated their binding scores individually using the "score only" mode. I observed that the sum of these individual scores is consistently higher than the binding energy score of the original multi-ligand docked complex.
I calculated multi-ligand docking score by these code:
`
rep=rep
lig=[A,B]
v = Vina()
v.set_receptor(rigid_pdbqt_filename=rep)
v.set_ligand_from_file(lig)
v.compute_vina_maps(center=center, box_size=box_size)
v.dock(min_rmsd=0.5)
v.dock(exhaustiveness=40)
v.write_poses(pdbqt_filename=out_dir+"%s_dockingPose.pdbqt"%("_".join(lig_name)))
print("file : %s_dockingPose.pdbqt is saved."%("and".join(lig_name)))
`
I calculated ligand docking score by these code:
`
docking ligand1
v = Vina(no_refine=True)
v.set_receptor(rep)
v.set_ligand_from_file(lig[0])
v.compute_vina_maps(center=center, box_size=box_size)
score = v.score()
print(f"Binding affinity:{lig_name} {sum(score)} kcal/mol")
docking ligand2
v = Vina(no_refine=True)
v.set_receptor(rep)
v.set_ligand_from_file(lig[1])
v.compute_vina_maps(center=center, box_size=box_size)
score = v.score()
print(f"Binding affinity:{lig_name}_SAM: {sum(score)} kcal/mol")
`
I use pymol to get the center and box size of the ligand.
Result:
The multi-ligand docking score:(A+B)
REMARK VINA RESULT: -11.001 0.000 0.000
and each ligand docking score is follows:
Binding affinity:A: -19.916 kcal/mol
Binding affinity:B: -8.59 kcal/mol
Objective:
I aim to understand the contribution of each ligand to the overall binding affinity in a multi-ligand context. However, the summed individual binding scores do not match the binding score of the multi-ligand complex, leading to confusion about how to interpret the results.
Questions:
AutoVina version:
The text was updated successfully, but these errors were encountered: