Python rdkit.Chem.SmilesMolSupplier() Examples
The following are 2
code examples of rdkit.Chem.SmilesMolSupplier().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
rdkit.Chem
, or try the search function
.
Example #1
Source File: smiles.py From ScaffoldGraph with MIT License | 4 votes |
def read_smiles_file(smiles_file, delimiter=' ', smiles_column=0, name_column=1, header=False, requires_length=False): """Read a SMILES file. Parameters ---------- smiles_file: path to a SMILES file requires_length: If True returns an enumerated Mol supplier, i.e. when monitoring progress Returns ------- either a MolSupplier or an EnumeratedSupplier depending on whether a length is required """ if requires_length is False: return MolSupplier( SmilesMolSupplier( smiles_file, delimiter, smiles_column, name_column, header, True)) count = smiles_count(smiles_file) if header is True: count -= 1 supplier = SmilesMolSupplier(smiles_file, delimiter, smiles_column, name_column, header, True) return EnumeratedMolSupplier(supplier, count)
Example #2
Source File: rdk.py From oddt with BSD 3-Clause "New" or "Revised" License | 4 votes |
def readfile(format, filename, lazy=False, opt=None, **kwargs): """Iterate over the molecules in a file. Required parameters: format - see the informats variable for a list of available input formats filename You can access the first molecule in a file using the next() method of the iterator: mol = next(readfile("smi", "myfile.smi")) You can make a list of the molecules in a file using: mols = list(readfile("smi", "myfile.smi")) You can iterate over the molecules in a file as shown in the following code snippet: >>> atomtotal = 0 >>> for mol in readfile("sdf", "head.sdf"): ... atomtotal += len(mol.atoms) ... >>> print(atomtotal) 43 """ if not os.path.isfile(filename): raise IOError("No such file: '%s'" % filename) format = format.lower() # Eagerly evaluate the supplier functions in order to report # errors in the format and errors in opening the file. # Then switch to an iterator... if format in ["sdf", "mol"]: return _filereader_sdf(filename, lazy=lazy) elif format == "pdb": return _filereader_pdb(filename, lazy=lazy) elif format == "pdbqt": return _filereader_pdbqt(filename, lazy=lazy) elif format == "mol2": return _filereader_mol2(filename, lazy=lazy) elif format == "smi": iterator = Chem.SmilesMolSupplier(filename, delimiter=" \t", titleLine=False, **kwargs) def smi_reader(): for mol in iterator: yield Molecule(mol) return smi_reader() elif format == 'inchi' and Chem.INCHI_AVAILABLE: def inchi_reader(): for line in open(filename): mol = Chem.inchi.MolFromInchi(line.strip(), **kwargs) yield Molecule(mol) return inchi_reader() else: raise ValueError("%s is not a recognised RDKit format" % format)