Mercurial > repos > bgruening > openbabel_structure_distance_finder
annotate ob_genProp.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 | 
| rev | line source | 
|---|---|
| 
0
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
2 """ | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
3 Input: Molecular input file. | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
4 Output: Physico-chemical properties are computed and stored as metadata in the sdf output file. | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
5 Copyright 2012, Bjoern Gruening and Xavier Lucas | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
6 """ | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
7 import sys, os | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
8 import argparse | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
9 import openbabel | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
10 openbabel.obErrorLog.StopLogging() | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
11 import pybel | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
12 import cheminfolib | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
13 | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
14 | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
15 def parse_command_line(argv): | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
16 parser = argparse.ArgumentParser() | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
17 parser.add_argument('--iformat', default='sdf' , help='input file format') | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
18 parser.add_argument('-i', '--input', required=True, help='input file name') | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
19 parser.add_argument('--oformat', default='sdf', choices = ['sdf', 'table'] , help='output file format') | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
20 parser.add_argument('--header', type=bool, help='Include the header as the first line of the output table') | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
21 parser.add_argument('-o', '--output', required=True, help='output file name') | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
22 return parser.parse_args() | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
23 | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
24 def compute_properties(args): | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
25 if args.oformat == 'sdf': | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
26 outfile = pybel.Outputfile(args.oformat, args.output, overwrite=True) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
27 else: | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
28 outfile = open(args.output, 'w') | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
29 if args.header: | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
30 mol = next(pybel.readfile(args.iformat, args.input)) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
31 metadata = cheminfolib.get_properties_ext(mol) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
32 outfile.write( '%s\n' % '\t'.join( [ cheminfolib.ColumnNames[key] for key in metadata ] ) ) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
33 | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
34 for mol in pybel.readfile(args.iformat, args.input): | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
35 if mol.OBMol.NumHvyAtoms() > 5: | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
36 metadata = cheminfolib.get_properties_ext(mol) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
37 if args.oformat == 'sdf': | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
38 [ mol.data.update( { cheminfolib.ColumnNames[key] : metadata[key] } ) for key in metadata ] | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
39 outfile.write(mol) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
40 else: | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
41 outfile.write( '%s\n' % ('\t'.join( [ str(metadata[key]) for key in metadata ] ) ) ) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
42 outfile.close() | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
43 | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
44 def __main__(): | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
45 """ | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
46 Physico-chemical properties are computed and stored as metadata in the sdf output file | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
47 """ | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
48 args = parse_command_line(sys.argv) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
49 compute_properties(args) | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
50 | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
51 if __name__ == "__main__" : | 
| 
 
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
 
bgruening 
parents:  
diff
changeset
 | 
52 __main__() | 
