Mercurial > repos > bgruening > sucos_clustering
comparison utils.py @ 6:ba1a2eba3f3d 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:29:01 +0000 |
| parents | c0e3a335dbfc |
| children |
comparison
equal
deleted
inserted
replaced
| 5:aaa3f95add3e | 6:ba1a2eba3f3d |
|---|---|
| 2 """ | 2 """ |
| 3 Utility functions for SuCOS and other RDKit modules | 3 Utility functions for SuCOS and other RDKit modules |
| 4 """ | 4 """ |
| 5 | 5 |
| 6 from __future__ import print_function | 6 from __future__ import print_function |
| 7 import sys, gzip | 7 |
| 8 import gzip | |
| 9 import sys | |
| 10 | |
| 8 from rdkit import Chem | 11 from rdkit import Chem |
| 9 | 12 |
| 13 | |
| 10 def log(*args, **kwargs): | 14 def log(*args, **kwargs): |
| 11 """Log output to STDERR | 15 """Log output to STDERR""" |
| 12 """ | |
| 13 print(*args, file=sys.stderr, **kwargs) | 16 print(*args, file=sys.stderr, **kwargs) |
| 17 | |
| 14 | 18 |
| 15 def open_file_for_reading(filename): | 19 def open_file_for_reading(filename): |
| 16 """Open the file gunzipping it if it ends with .gz.""" | 20 """Open the file gunzipping it if it ends with .gz.""" |
| 17 if filename.lower().endswith('.gz'): | 21 if filename.lower().endswith(".gz"): |
| 18 return gzip.open(filename, 'rb') | 22 return gzip.open(filename, "rb") |
| 19 else: | 23 else: |
| 20 return open(filename, 'rb') | 24 return open(filename, "rb") |
| 25 | |
| 21 | 26 |
| 22 def open_file_for_writing(filename): | 27 def open_file_for_writing(filename): |
| 23 if filename.lower().endswith('.gz'): | 28 if filename.lower().endswith(".gz"): |
| 24 return gzip.open(filename, 'at') | 29 return gzip.open(filename, "at") |
| 25 else: | 30 else: |
| 26 return open(filename, 'w+') | 31 return open(filename, "w+") |
| 32 | |
| 27 | 33 |
| 28 def read_single_molecule(filename, index=1, format=None): | 34 def read_single_molecule(filename, index=1, format=None): |
| 29 """Read a single molecule as a RDKit Mol object. This can come from a file in molfile or SDF format. | 35 """Read a single molecule as a RDKit Mol object. This can come from a file in molfile or SDF format. |
| 30 If SDF then you can also specify an index of the molecule that is read (default is the first) | 36 If SDF then you can also specify an index of the molecule that is read (default is the first) |
| 31 """ | 37 """ |
| 32 mol = None | 38 mol = None |
| 33 if format == 'mol' or filename.lower().endswith('.mol') or filename.lower().endswith('.mol.gz'): | 39 if ( |
| 40 format == "mol" | |
| 41 or filename.lower().endswith(".mol") | |
| 42 or filename.lower().endswith(".mol.gz") | |
| 43 ): | |
| 34 file = open_file_for_reading(filename) | 44 file = open_file_for_reading(filename) |
| 35 mol = Chem.MolFromMolBlock(file.read()) | 45 mol = Chem.MolFromMolBlock(file.read()) |
| 36 file.close() | 46 file.close() |
| 37 elif format == 'sdf' or filename.lower().endswith('.sdf') or filename.lower().endswith('.sdf.gz'): | 47 elif ( |
| 48 format == "sdf" | |
| 49 or filename.lower().endswith(".sdf") | |
| 50 or filename.lower().endswith(".sdf.gz") | |
| 51 ): | |
| 38 file = open_file_for_reading(filename) | 52 file = open_file_for_reading(filename) |
| 39 supplier = Chem.ForwardSDMolSupplier(file) | 53 supplier = Chem.ForwardSDMolSupplier(file) |
| 40 for i in range(0,index): | 54 for i in range(0, index): |
| 41 if supplier.atEnd(): | 55 if supplier.atEnd(): |
| 42 break | 56 break |
| 43 mol = next(supplier) | 57 mol = next(supplier) |
| 44 file.close() | 58 file.close() |
| 45 | 59 |
