def test_SaveSMILESFromFrame(self): sio = StringIO() PandasTools.SaveSMILESFromFrame(self.df, sio) result = sio.getvalue() self.assertIn(self.df['SMILES'][10], result) self.assertIn(self.df['ID'][10], result) sio = StringIO() PandasTools.SaveSMILESFromFrame(self.df, sio, NamesCol='PUBCHEM_IUPAC_INCHIKEY') result = sio.getvalue() self.assertIn(self.df['SMILES'][10], result) self.assertIn(self.df['PUBCHEM_IUPAC_INCHIKEY'][10], result)
def search_pattern(self, inp): smarts, prefix = inp pattern = Chem.MolFromSmarts(smarts) m_df = self.df[self.df.mol >= pattern] m_df['SMARTS_Match'] = smarts # Matches = [m for m in self.Mols if m.HasSubstructMatch(pattern)] print('\n > Molecule matching "{0}": {1}\n'.format(smarts, len(m_df))) if self.ext == 'sdf': mol_out = (prefix + '.' + self.ext) rdpd.WriteSDF(m_df, mol_out, molColName='mol', idName='ID', properties=list(m_df.columns)) else: mol_out = (prefix + '.' + self.ext) rdpd.SaveSMILESFromFrame(m_df, mol_out, molCol='mol', NamesCol='ID', isomericSmiles=True)