def _getSMILESStream(f, mols, delimiter=' ', nameHeader='Name', includeHeader=True, isomericSmiles=False, kekuleSmiles=False): w = SmilesWriter(f, delimiter=delimiter, nameHeader=nameHeader, includeHeader=includeHeader, isomericSmiles=isomericSmiles, kekuleSmiles=kekuleSmiles) for mol in mols: w.write(mol) w.flush()
def stream_smiles_results(operation, query, source, annotate=False): buf = StringIO() filtered = operation(query, source, annotate=annotate) results = SmilesWriter(buf, isomericSmiles=True, includeHeader=False) if annotate: results.SetProps(['match']) for result in filtered: buf.truncate(0) results.write(result) results.flush() yield buf.getvalue()
def write_smiles_results(operation, needles, haystack, dest, annotate=False, extra_props=0): filtered = operation(needles, haystack, annotate=annotate) results = SmilesWriter(dest, isomericSmiles=True, includeHeader=False) props = [] if annotate: props.append('match') if extra_props: props.extend('ExtraProp{0}'.format(i+1) for i in range(extra_props)) results.SetProps(props) for result in filtered: results.write(result) return results.NumMols()
def preprocess_smi(self, smi): norms = MolStandardize.normalize.NORMALIZATIONS test_smiles = [smi] test_label = [1] # dummy list temp_dir = tempfile.mkdtemp() df = pd.DataFrame(zip(test_smiles, test_label), columns=['SMILES', 'Label']) df.to_csv(temp_dir+'/temp_file.csv', index=False) try: molReader = SmilesMolSupplier(temp_dir+'/temp_file.csv', delimiter=',', smilesColumn=0, nameColumn=1, titleLine=True, sanitize=True) molWriter = SmilesWriter(temp_dir+'/temp_outfile.csv', delimiter=',', nameHeader='Name', includeHeader=True, isomericSmiles = (True), kekuleSmiles=False) stdzr = self.MyStandardizer(norms) stand_smiles = self.Standardize(stdzr, True, molReader, molWriter) shutil.rmtree(temp_dir) return stand_smiles except: print('No') return ''
def _getSMILESStream(f, mols): w = SmilesWriter(f, isomericSmiles=True) for mol in mols: w.write(mol) w.flush()
from sys import argv from rdkit.Chem import SDMolSupplier, SmilesWriter sdm = SDMolSupplier(argv[1]) sw = SmilesWriter(argv[2], includeHeader=False, nameHeader='_Name') for mol in sdm: sw.write(mol) sw.close()