Mercurial > repos > bgruening > openbabel_remove_protonation_state
view ob_addh.py @ 2:45cab3c4bfc4 draft
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 78ac0521d7df684e96c1b9c1ba2a17b02e681608
author | bgruening |
---|---|
date | Sat, 20 May 2017 20:04:45 -0400 |
parents | 0eabdfaef1d1 |
children | bf4e668b6690 |
line wrap: on
line source
#!/usr/bin/env python """ Input: Molecule file Output: Molecule file with hydrogen atoms added at the target pH. """ import sys, os import argparse import openbabel openbabel.obErrorLog.StopLogging() import pybel def parse_command_line(argv): parser = argparse.ArgumentParser() parser.add_argument('--iformat', type=str, default='sdf' , help='input file format') parser.add_argument('-i', '--input', type=str, required=True, help='input file name') parser.add_argument('-o', '--output', type=str, required=True, help='output file name') parser.add_argument('--polar', action="store_true", default=False, help='Add hydrogen atoms only to polar atoms') parser.add_argument('--pH', type=float, default="7.4", help='Specify target pH value') return parser.parse_args() def addh(args): outfile = pybel.Outputfile(args.iformat, args.output, overwrite=True) for mol in pybel.readfile(args.iformat, args.input): if mol.OBMol.NumHvyAtoms() > 5: mol.removeh() mol.OBMol.AddHydrogens(args.polar, True, args.pH) outfile.write(mol) outfile.close() def __main__(): """ Add hydrogen atoms at a certain pH value """ args = parse_command_line(sys.argv) addh(args) if __name__ == "__main__" : __main__()