def __recursive_transform(self, jam, steps):

        if len(steps) > 0:
            head_transformer = steps[0][1]
            for t_jam in head_transformer.transform(jam):
                for q in self.__recursive_transform(t_jam, steps[1:]):
                    yield q
        else:
            yield jam
Filtering method, can use raw expressions (strings to be evaled in if statement, can use oddt.toolkit.Molecule methods, eg. 'mol.molwt < 500')
dataset/ETHPy150Open bmcfee/muda/muda/base.py/Pipeline.__recursive_transform--crossover with--dataset/ETHPy150Open oddt/oddt/oddt/virtualscreening.py/virtualscreening.apply_filter