Mercurial > repos > bgruening > openbabel_obgrep
annotate ob_remIons.py @ 14:985ab0acd514 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:06 +0000 |
parents | 274193d6c443 |
children |
rev | line source |
---|---|
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
1 #!/usr/bin/env python |
13
274193d6c443
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
12
diff
changeset
|
2 |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
3 """ |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
4 Input: molecular input file. |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
5 Output: Molecule file with removed ions and fragments. |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
6 Copyright 2012, Bjoern Gruening and Xavier Lucas |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
7 """ |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
8 import argparse |
11
78640d0127ce
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 944ea4bb8a9cd4244152a4a4fecd0485fabc2ad0"
bgruening
parents:
0
diff
changeset
|
9 |
78640d0127ce
"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 |
14
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
11 |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
12 openbabel.obErrorLog.StopLogging() |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
13 |
12
2912ebf12ef2
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
11
diff
changeset
|
14 |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
15 def parse_command_line(): |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
16 parser = argparse.ArgumentParser() |
14
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
17 parser.add_argument("-iformat", default="sdf", help="input file format") |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
18 parser.add_argument("-i", "--input", required=True, help="input file name") |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
19 parser.add_argument("-o", "--output", required=True, help="output file name") |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
20 parser.add_argument( |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
21 "-idx", |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
22 default=False, |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
23 action="store_true", |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
24 help="should output be an indexed text table? works only for inchi/smiles, otherwise is ignored", |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
25 ) |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
26 return parser.parse_args() |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
27 |
12
2912ebf12ef2
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
11
diff
changeset
|
28 |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
29 def remove_ions(args): |
14
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
30 with open(args.output, "w") as outfile: |
13
274193d6c443
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
12
diff
changeset
|
31 for index, mol in enumerate(pybel.readfile(args.iformat, args.input)): |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
32 if mol.OBMol.NumHvyAtoms() > 5: |
13
274193d6c443
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
12
diff
changeset
|
33 mol.OBMol.StripSalts(0) |
14
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
34 if "inchi" in mol.data: |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
35 del mol.data["inchi"] # remove inchi cache so modified mol is saved |
13
274193d6c443
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
12
diff
changeset
|
36 |
14
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
37 mol = mol.write(args.iformat) if mol.OBMol.NumHvyAtoms() > 5 else "\n" |
13
274193d6c443
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 327c29cc43f56d7067ab9fa51323ea31951db98b"
bgruening
parents:
12
diff
changeset
|
38 |
14
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
39 if args.idx and args.iformat in ["inchi", "smi"]: |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
40 outfile.write(f"{index}\t{mol}") |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
41 elif mol != "\n": |
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
42 outfile.write(f"{mol}") |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
43 |
12
2912ebf12ef2
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
11
diff
changeset
|
44 |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
45 def __main__(): |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
46 """ |
14
985ab0acd514
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit d9c51279c061a1da948a2582d5b502ca7573adbf
bgruening
parents:
13
diff
changeset
|
47 Remove any counterion and delete any fragment but the largest one for each molecule. |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
48 """ |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
49 args = parse_command_line() |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
50 remove_ions(args) |
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
51 |
12
2912ebf12ef2
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
11
diff
changeset
|
52 |
2912ebf12ef2
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 1fe240ef0064a1a4a66d9be1ccace53824280b75"
bgruening
parents:
11
diff
changeset
|
53 if __name__ == "__main__": |
0
b0311f002a5f
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 8350bb3a632722c33bc91ec5238d47a536903729
bgruening
parents:
diff
changeset
|
54 __main__() |