ccsb-scripps / AutoDock-Vina

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

How can I add 2+ to metal atoms using `prepare_receptor`? #287

Closed eunos-1128 closed 3 months ago

eunos-1128 commented 3 months ago

Hello everyone,

After reading Vina v1.2.0 paper's supporting info in order to reproduce DUD-E dataset redocking results, I tried to prepare receptors' PDBQT files as written in the paper.

It says all metals are treated as 2+ ions but how can I add 2+ to metal ions using prepare_receptor?

There seems no option for designating certain charges to specific atoms.

I need to assign charges manually for each receptor's PDBQT file?

I'd like to add charges using program because of many receptors to be processed.

rwxayheee commented 3 months ago

Hi @eunos-1128,

I need to assign charges manually for each receptor's PDBQT file? I'd like to add charges using program because of many receptors to be processed.

There is an option -p to preserve input charges on specific atom types (can be metals, see help message for how to use). But if you are assigning simple integer charges, you can also make the correction after the receptor PDBQT files are made. Command lines like sed can replace 0.000 ZN with 2.000 ZN and so on in the files.

eunos-1128 commented 3 months ago

There is an option -p to preserve input charges on specific atom types (can be metals, see help message for how to use). 

I know that but how can I add input charges into PDB files? Which field in PDB files should I correct?

I guess PDB files are not supposed to have charge infomation.

rwxayheee commented 3 months ago

Hi @eunos-1128, I don't think it's particularly useful unless you have precomputed some charges and want to preserve them in the output PDBQT. Currently it seems possible only when the input also has PDBQT format (you can look at the python scripts if you're interested). If you are assigning simple charges, the replace commands are the most convenient way to make the changes

eunos-1128 commented 3 months ago

@rwxayheee

Thank you. I understand.

I will use sed's replacement for now.

By the way meeko has any function or method to add charges or any options to do that?

There seems no such option. If not, meeko will have such option in the future?

eunos-1128 commented 3 months ago

And I have another question related to charges in PDBQT files.

I know vina's scoring function doesn't take electrostatic force into account directly because it is not based on force field.

If I add charges to metal ions, which force will contributes to affinity in result? Something relevant to Hydrogen bond?

rwxayheee commented 3 months ago

Hi @eunos-1128

By the way meeko has any function or method to add charges or any options to do that?

According to README, only standard amino acid residues are currently supported. The charges are from a residue parameter file.

There seems no such option. If not, meeko will have such option in the future?

I haven't tried but it seems possible to assign charges (like +2) to Zn, Mg, etc. if we could register them as residues in the parameter file. The devs might be able to tell you more about the upcoming features :>

If I add charges to metal ions, which force will contributes to affinity in result? Something relevant to Hydrogen bond?

The metals may still contribute to the scores, but in my understanding, the charges won't make a difference.

eunos-1128 commented 3 months ago

@rwxayheee

Thank you for explaining in detail.

I understand and will try meeko, too :)

diogomart commented 3 months ago

There seems no such option. If not, meeko will have such option in the future?

We are planning to have template data for common metals with charges that reflect their most common redox state, and in the future we plan to make the template data easy to replace by a new template (with the desired charge in this case). It's also possible that we will have multiple templates for metals that adopt various redox states, such as Fe, and there is a command line option to specify which template to use for a given residue.

eunos-1128 commented 3 months ago

@diogomart

Thank you for complement.

I'm looking forward to seeing it :)