Mercurial > repos > bgruening > sucos_max_score
annotate utils.py @ 7:9b48456a96fe draft default tip
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
| author | bgruening | 
|---|---|
| date | Wed, 14 Apr 2021 09:30:28 +0000 | 
| parents | bb5365381c8f | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
2 """ | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
3 Utility functions for SuCOS and other RDKit modules | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
4 """ | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
5 | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
6 from __future__ import print_function | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
7 | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
8 import gzip | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
9 import sys | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
10 | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
11 from rdkit import Chem | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
12 | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
13 | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
14 def log(*args, **kwargs): | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
15 """Log output to STDERR""" | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
16 print(*args, file=sys.stderr, **kwargs) | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
17 | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
18 | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
19 def open_file_for_reading(filename): | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
20 """Open the file gunzipping it if it ends with .gz.""" | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
21 if filename.lower().endswith(".gz"): | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
22 return gzip.open(filename, "rb") | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
23 else: | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
24 return open(filename, "rb") | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
25 | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
26 | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
27 def open_file_for_writing(filename): | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
28 if filename.lower().endswith(".gz"): | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
29 return gzip.open(filename, "at") | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
30 else: | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
31 return open(filename, "w+") | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
32 | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
33 | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
34 def read_single_molecule(filename, index=1, format=None): | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
35 """Read a single molecule as a RDKit Mol object. This can come from a file in molfile or SDF format. | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
36 If SDF then you can also specify an index of the molecule that is read (default is the first) | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
37 """ | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
38 mol = None | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
39 if ( | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
40 format == "mol" | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
41 or filename.lower().endswith(".mol") | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
42 or filename.lower().endswith(".mol.gz") | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
43 ): | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
44 file = open_file_for_reading(filename) | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
45 mol = Chem.MolFromMolBlock(file.read()) | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
46 file.close() | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
47 elif ( | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
48 format == "sdf" | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
49 or filename.lower().endswith(".sdf") | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
50 or filename.lower().endswith(".sdf.gz") | 
| 
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
51 ): | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
52 file = open_file_for_reading(filename) | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
53 supplier = Chem.ForwardSDMolSupplier(file) | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
54 for i in range(0, index): | 
| 
0
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
55 if supplier.atEnd(): | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
56 break | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
57 mol = next(supplier) | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
58 file.close() | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
59 | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
60 if not mol: | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
61 raise ValueError("Unable to read molecule") | 
| 
 
bb5365381c8f
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit ef86cfa5f7ab5043de420511211579d03df58645"
 
bgruening 
parents:  
diff
changeset
 | 
62 | 
| 
7
 
9b48456a96fe
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/sucos commit 05dc325ce687441e5d3bdbdedcc0e3529cd5e070"
 
bgruening 
parents: 
0 
diff
changeset
 | 
63 return mol | 
