Mercurial > repos > bgruening > openbabel_structure_distance_finder
annotate ob_remIons.py @ 4:2c5c7da26e08 draft
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
author | bgruening |
---|---|
date | Tue, 10 Nov 2020 20:40:06 +0000 |
parents | 49242402887b |
children | 8302ab092300 |
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 |
4
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
2 |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
3 """ |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
4 Input: molecular input file. |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
5 Output: Molecule file with removed ions and fragments. |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
6 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
|
7 """ |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
8 import argparse |
2
4c9d6b47045c
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 944ea4bb8a9cd4244152a4a4fecd0485fabc2ad0"
bgruening
parents:
0
diff
changeset
|
9 |
4c9d6b47045c
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 944ea4bb8a9cd4244152a4a4fecd0485fabc2ad0"
bgruening
parents:
0
diff
changeset
|
10 from openbabel import openbabel, pybel |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
11 openbabel.obErrorLog.StopLogging() |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
12 |
3
49242402887b
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
2
diff
changeset
|
13 |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
14 def parse_command_line(): |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
15 parser = argparse.ArgumentParser() |
3
49242402887b
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
2
diff
changeset
|
16 parser.add_argument('-iformat', default='sdf', help='input file format') |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
17 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
|
18 parser.add_argument('-o', '--output', required=True, help='output file name') |
4
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
19 parser.add_argument('-idx', default=False, action='store_true', help='should output be an indexed text table? works only for inchi/smiles, otherwise is ignored') |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
20 return parser.parse_args() |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
21 |
3
49242402887b
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
2
diff
changeset
|
22 |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
23 def remove_ions(args): |
4
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
24 with open(args.output, 'w') as outfile: |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
25 for index, mol in enumerate(pybel.readfile(args.iformat, args.input)): |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
26 if mol.OBMol.NumHvyAtoms() > 5: |
4
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
27 mol.OBMol.StripSalts(0) |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
28 if 'inchi' in mol.data: |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
29 del mol.data['inchi'] # remove inchi cache so modified mol is saved |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
30 |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
31 mol = mol.write(args.iformat) if mol.OBMol.NumHvyAtoms() > 5 else '\n' |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
32 |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
33 if args.idx and args.iformat in ['inchi', 'smi']: |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
34 outfile.write(f'{index}\t{mol}') |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
35 elif mol != '\n': |
2c5c7da26e08
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
3
diff
changeset
|
36 outfile.write(f'{mol}') |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
37 |
3
49242402887b
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
2
diff
changeset
|
38 |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
39 def __main__(): |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
40 """ |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
41 Remove any counterion and delete any fragment but the largest one for each molecule. |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
42 """ |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
43 args = parse_command_line() |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
44 remove_ions(args) |
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
45 |
3
49242402887b
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
2
diff
changeset
|
46 |
49242402887b
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
2
diff
changeset
|
47 if __name__ == "__main__": |
0
c066b5accacf
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
bgruening
parents:
diff
changeset
|
48 __main__() |