diff ob_genProp.py @ 15:50eaae9df8d3 draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
author bgruening
date Thu, 15 Aug 2024 11:05:33 +0000
parents 417845394cdf
children
line wrap: on
line diff
--- a/ob_genProp.py	Tue Nov 10 20:37:21 2020 +0000
+++ b/ob_genProp.py	Thu Aug 15 11:05:33 2024 +0000
@@ -10,43 +10,57 @@
 import cheminfolib
 import openbabel
 from openbabel import pybel
+
 openbabel.obErrorLog.StopLogging()
 
 
 def parse_command_line(argv):
     parser = argparse.ArgumentParser()
-    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('--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')
+    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(
+        "--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':
+    if args.oformat == "sdf":
         outfile = pybel.Outputfile(args.oformat, args.output, overwrite=True)
     else:
-        outfile = open(args.output, 'w')
+        outfile = open(args.output, "w")
         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]
+            if args.oformat == "sdf":
+                [
+                    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
+    Physico-chemical properties are computed and stored as metadata in the sdf output file
     """
     args = parse_command_line(sys.argv)
     compute_properties(args)