I am performing Rosetta ligand docking and I generated the .params file for the ligand with molfile_to_params.py file. I was wondering whether the partial charges in the .params file generated in this way are reliable. Or do I need to do DFT calculation or use another method to get the correct partial charges?
Any suggestion is appreciated.
P.S: I obtained the ligand pdb file from rcsb and then convert it to sdf file. Then I generated the conformers with BCL and finally use molfile_to_params.py.
The automatically generated (atom-type-based) partial charges generated by molfile_to_params.py seem to work decently for ligand docking. From (admittedly limited) testing and oral tradition, it looks like the exact partial charging doesn't seem to affect RosettaLigand results all that much. Major changes in partial charge, sure, but whether an oxygen is at -0.25 versus -0.30? not so much. As such, I wouldn't necessarily worry about it too much unless you like doing partial charge calculations, or if you have indications that the partial charges might be substantially different from the naive approach. (e.g. your molecule has a structure which may have odd charge transfer.)
If you do want to do your own charge calculations, it should be as simple as converting your sdf file to a mol2 file and making sure the partial charges in the mol2 file are what you're interested in. Throw the mol2 file through molfile_to_params.py, and it will use the partial charges from the mol2 file. Note that AM1-BCC charges are typically what people doing Rosetta ligand docking use for "official" QM-based partial charges, though molfile_to_params.py will work with any partial charging scheme, if you have a different preferred charging scheme.