Mercurial > repos > bgruening > openbabel_remduplicates
annotate multi_obgrep.py @ 15:f3099132512d 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 10:54:17 +0000 | 
| parents | d44de092fef3 | 
| children | 
| rev | line source | 
|---|---|
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 2 """ | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 3 Input: Molecules in SDF, SMILES ... | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 4 Output: Molecule file filtered with obgrep. | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 5 Copyright 2013, Bjoern Gruening and Xavier Lucas | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 6 """ | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 7 import argparse | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 8 import multiprocessing | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 9 import os | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 10 import shlex | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 11 import shutil | 
| 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 12 import subprocess | 
| 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 13 import tempfile | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 14 | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 15 | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 16 def parse_command_line(): | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 17 parser = argparse.ArgumentParser() | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 18 parser.add_argument("-i", "--infile", required=True, help="Molecule file.") | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 19 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 20 "-q", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 21 "--query", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 22 required=True, | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 23 help="Query file, containing different SMARTS in each line.", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 24 ) | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 25 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 26 "-o", "--outfile", required=True, help="Path to the output file." | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 27 ) | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 28 parser.add_argument("--iformat", help="Input format, like smi, sdf, inchi") | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 29 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 30 "--n-times", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 31 dest="n_times", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 32 type=int, | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 33 default=0, | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 34 help="Print a molecule only if the pattern occurs # times inside the molecule.", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 35 ) | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 36 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 37 "-p", "--processors", type=int, default=multiprocessing.cpu_count() | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 38 ) | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 39 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 40 "--invert-matches", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 41 dest="invert_matches", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 42 action="store_true", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 43 default=False, | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 44 help="Invert the matching, print non-matching molecules.", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 45 ) | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 46 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 47 "--only-name", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 48 dest="only_name", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 49 action="store_true", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 50 default=False, | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 51 help="Only print the name of the molecules.", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 52 ) | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 53 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 54 "--full-match", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 55 dest="full_match", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 56 action="store_true", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 57 default=False, | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 58 help="Full match, print matching-molecules only when the number of heavy atoms is also equal to the number of atoms in the SMARTS pattern.", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 59 ) | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 60 parser.add_argument( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 61 "--number-of-matches", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 62 dest="number_of_matches", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 63 action="store_true", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 64 default=False, | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 65 help="Print the number of matches.", | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 66 ) | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 67 return parser.parse_args() | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 68 | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 69 | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 70 results = list() | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 71 | 
| 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 72 | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 73 def mp_callback(res): | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 74 results.append(res) | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 75 | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 76 | 
| 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 77 def mp_helper(query, args): | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 78 """ | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 79 Helper function for multiprocessing. | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 80 That function is a wrapper around obgrep. | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 81 """ | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 82 | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 83 cmd_list = [] | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 84 if args.invert_matches: | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 85 cmd_list.append("-v") | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 86 if args.only_name: | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 87 cmd_list.append("-n") | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 88 if args.full_match: | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 89 cmd_list.append("-f") | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 90 if args.number_of_matches: | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 91 cmd_list.append("-c") | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 92 if args.n_times: | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 93 cmd_list.append("-t %s" % str(args.n_times)) | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 94 | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 95 tmp = tempfile.NamedTemporaryFile(delete=False) | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 96 cmd = 'obgrep %s "%s" %s' % (" ".join(cmd_list), query, args.infile) | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 97 child = subprocess.Popen( | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 98 shlex.split(cmd), stdout=open(tmp.name, "w+"), stderr=subprocess.PIPE | 
| 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 99 ) | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 100 | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 101 stdout, stderr = child.communicate() | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 102 return (tmp.name, query) | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 103 | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 104 | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 105 def obgrep(args): | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 106 temp_file = tempfile.NamedTemporaryFile() | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 107 temp_link = "%s.%s" % (temp_file.name, args.iformat) | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 108 temp_file.close() | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 109 os.symlink(args.infile, temp_link) | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 110 args.infile = temp_link | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 111 | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 112 pool = multiprocessing.Pool(args.processors) | 
| 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 113 for query in open(args.query): | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 114 pool.apply_async(mp_helper, args=(query.strip(), args), callback=mp_callback) | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 115 # mp_callback(mp_helper(query.strip(), args)) | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 116 pool.close() | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 117 pool.join() | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 118 | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 119 out_handle = open(args.outfile, "wb") | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 120 for result_file, query in results: | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 121 res_handle = open(result_file, "rb") | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 122 shutil.copyfileobj(res_handle, out_handle) | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 123 res_handle.close() | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 124 os.remove(result_file) | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 125 out_handle.close() | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 126 | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 127 os.remove(temp_link) | 
| 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 128 | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 129 | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 130 def __main__(): | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 131 """ | 
| 15 
f3099132512d
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
 bgruening parents: 
13diff
changeset | 132 Multiprocessing obgrep search. | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 133 """ | 
| 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 134 args = parse_command_line() | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 135 obgrep(args) | 
| 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 136 | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 137 | 
| 13 
d44de092fef3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
 bgruening parents: 
12diff
changeset | 138 if __name__ == "__main__": | 
| 0 
112341e4fc94
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 01da22e4184a5a6f6a3dd4631a7b9c31d1b6d502
 bgruening parents: diff
changeset | 139 __main__() | 
