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