Mercurial > repos > bgruening > autodock_vina
diff convert_pdbqt_to_sdf.py @ 6:0ae768a0e5c0 draft
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/autodock_vina commit a2f6034a691af458e3df662e36d7f05617982bdc
author | bgruening |
---|---|
date | Wed, 19 Jun 2019 06:43:41 -0400 |
parents | |
children | 7a871df65202 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/convert_pdbqt_to_sdf.py Wed Jun 19 06:43:41 2019 -0400 @@ -0,0 +1,40 @@ +import pybel, openbabel +import sys + + +def main(): + if len(sys.argv) == 3: + process(sys.argv[1], sys.argv[2]) + else: + print("Usage: convert_pdbqt_to_sdf.py <input-pdbqt-file> <output-sdf-file>") + exit(1) + +def add_property(mol, prop_name, prop_value): + newData = openbabel.OBPairData() + newData.SetAttribute(prop_name) + newData.SetValue(prop_value) + mol.OBMol.CloneData(newData) + +def process(input, output): + docked = pybel.readfile('pdbqt', input) + sdf = pybel.Outputfile("sdf", output, overwrite=True) + for mol in docked: + if mol.OBMol.HasData('REMARK'): + remark = mol.OBMol.GetData('REMARK').GetValue() + lines = remark.splitlines() + tokens = lines[0].split() + + # add the score property + add_property(mol, "SCORE", tokens[2]) + # add the first RMSD property + add_property(mol, "RMSD_LB", tokens[3]) + # add the second RMSD property + add_property(mol, "RMSD_UB", tokens[4]) + + sdf.write(mol) + + sdf.close() + +if __name__ == "__main__": + main() +