I am performing Rosetta Ligand docking for a ligand, let 's say A . The ligand A is in contact with both water and water vapor. I have two main quesions and I would really appreciate your help in this regard:
1. Do I need to explicity consider water in my docking as a separate ligand with the ligand A? Or is the implicit solvation in scoring function sufficient?
2. The parameter file generated for the ligand by molfile_to_params.py determines the net charge zero. I think this ligand might be hydrolyzable in the presence of water. So, its net charge might not be zero. Is it correct to use the generated parameter file by Rosetta in my simulation or I need to modify the partial charges? Any suggestions /papers in this regard would be appreciated.
Rosetta uses an implicit water model. If you're talking about bulk solvent, you don't have to explicitly add waters to the docking. If you're talking about structured waters - ones which are in particular location and contribute to specific ligand interactions - then things become more complicated. Generally speaking, much of Rosetta ligand docking has been done in the absence of structured waters. But depending on the system, this may be a limitation. Adding explicit water molecules as "cofactors" in binding may be helpful in placing the ligand, though the addition of waters introduces a sampling challenge on its own. (See https://pubmed.ncbi.nlm.nih.gov/23840735/ ) I'd probably try docking without explicit waters to begin with, and only add in explicit waters if you see indications that they may be crucially important.
Regarding charging, RosettaLigand doesn't consider chemical transformations of the ligand. Any given docking run keeps the chemical identity of the ligand fixed. To consider an alternate state (e.g. a hydrolysis product) you would have to run an independent docking run with the additional chemical identity. I believe that molfile_to_params.py should be responsive to the net charge on the ligand, as annotated in the input molfile. If not, the --recharge option should allow you to adjust the total charge (by moving all the charges up or down). If you're looking for charges on particular atoms, that's dependent by default on the determined atom types that have been detected. If you want, you can specify your own atom charges with the mol2 input format, rather than the mol/sdf format input.
Thank you very much for your help.
Just one question, is the charge generated by molfile_to_params.py in vacuo or solvated charge?
They're heuristic charges. If you don't provide your own charges, molfile_to_params.py will set charges based on the atom types (each atom type gets a particular starting charge). The solvated versus in vacuo distinction is operating at a much finer level of detail than the default charges are at. They are intended to work with Rosetta protocols (and are reasonable at doing so), which I guess means they're intended for solvated use, but if the distinction is important to you for some reason, it's probably not the charging scheme you want to be using.