Mercurial > repos > bgruening > openbabel_structure_distance_finder
diff change_title_to_metadata_value.py @ 0:c066b5accacf draft
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
author | bgruening |
---|---|
date | Wed, 25 Mar 2020 16:47:13 -0400 |
parents | |
children | 4c9d6b47045c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/change_title_to_metadata_value.py Wed Mar 25 16:47:13 2020 -0400 @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +""" + Change the title from a molecule file to metadata + value of a given-id of the same molecule file. +""" + +import os +import sys +import argparse +import openbabel +openbabel.obErrorLog.StopLogging() +import pybel +import random +import string + + +def main(): + parser = argparse.ArgumentParser( + description="Change the title from a molecule file to metadata \ +value of a given-id of the same molecule file.", + ) + parser.add_argument('--infile', '-i', + required=True, help="path to the input file") + parser.add_argument('--outfile', '-o', + required=True, help="path to the output file") + parser.add_argument('--key', '-k', + required=True, help="the metadata key from the sdf file which should inlcude the new title") + parser.add_argument('--random', '-r', + action="store_true", help="Add random suffix to the title.") + + args = parser.parse_args() + + output = pybel.Outputfile("sdf", args.outfile, overwrite=True) + for mol in pybel.readfile("sdf", args.infile): + if args.key in mol.data: + mol.title = mol.data[args.key] + if args.random: + suffix = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(13)) + mol.title += '__%s' % suffix + output.write( mol ) + + output.close() + + +if __name__ == "__main__": + main() +