Mercurial > repos > bgruening > openbabel_compound_convert
diff ob_genProp.py @ 13:1400d1977e7b draft
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
author | bgruening |
---|---|
date | Mon, 19 Oct 2020 14:48:13 +0000 |
parents | 1c66bf08f687 |
children | 4242b4d68e9c |
line wrap: on
line diff
--- a/ob_genProp.py Tue Jul 28 08:41:13 2020 -0400 +++ b/ob_genProp.py Mon Oct 19 14:48:13 2020 +0000 @@ -4,23 +4,25 @@ Output: Physico-chemical properties are computed and stored as metadata in the sdf output file. Copyright 2012, Bjoern Gruening and Xavier Lucas """ -import sys, os import argparse +import sys + +import cheminfolib import openbabel +from openbabel import pybel openbabel.obErrorLog.StopLogging() -import cheminfolib -from openbabel import pybel def parse_command_line(argv): parser = argparse.ArgumentParser() - parser.add_argument('--iformat', default='sdf' , help='input file format') + parser.add_argument('--iformat', default='sdf', help='input file format') parser.add_argument('-i', '--input', required=True, help='input file name') - parser.add_argument('--oformat', default='sdf', choices = ['sdf', 'table'] , help='output file format') + parser.add_argument('--oformat', default='sdf', choices=['sdf', 'table'], help='output file format') parser.add_argument('--header', type=bool, help='Include the header as the first line of the output table') parser.add_argument('-o', '--output', required=True, help='output file name') return parser.parse_args() + def compute_properties(args): if args.oformat == 'sdf': outfile = pybel.Outputfile(args.oformat, args.output, overwrite=True) @@ -29,18 +31,19 @@ if args.header: mol = next(pybel.readfile(args.iformat, args.input)) metadata = cheminfolib.get_properties_ext(mol) - outfile.write( '%s\n' % '\t'.join( [ cheminfolib.ColumnNames[key] for key in metadata ] ) ) + outfile.write('%s\n' % '\t'.join([cheminfolib.ColumnNames[key] for key in metadata])) for mol in pybel.readfile(args.iformat, args.input): if mol.OBMol.NumHvyAtoms() > 5: metadata = cheminfolib.get_properties_ext(mol) if args.oformat == 'sdf': - [ mol.data.update( { cheminfolib.ColumnNames[key] : metadata[key] } ) for key in metadata ] + [mol.data.update({cheminfolib.ColumnNames[key]: metadata[key]}) for key in metadata] outfile.write(mol) else: - outfile.write( '%s\n' % ('\t'.join( [ str(metadata[key]) for key in metadata ] ) ) ) + outfile.write('%s\n' % ('\t'.join([str(metadata[key]) for key in metadata]))) outfile.close() + def __main__(): """ Physico-chemical properties are computed and stored as metadata in the sdf output file @@ -48,5 +51,6 @@ args = parse_command_line(sys.argv) compute_properties(args) -if __name__ == "__main__" : + +if __name__ == "__main__": __main__()