Example #1
0
    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)
Example #2
0
    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)