def processListItem(self, nodes, item, sets=None):
        # special treatment for items 'proteic'  and 'dna'
        if item =='proteic':
            newNodes = filter(lambda x, nodes=nodes:
                              x.isProteic(), nodes)
            return self.level(newNodes)
        elif item == 'dna':
            newNodes = filter(lambda x, nodes=nodes:
                              x.isDna(), nodes)
            return self.level(newNodes)

        else:
            return TreeNodeSetSelector.processListItem(self, nodes, item, 
                                            sets=sets)
    def processListItem(self, nodes, item, sets=None):

        # check for pre-defined filtering lists
        if item in self.residueList.keys():
            names = self.residueList[item]
            newNodes = filter(lambda x, names=names, nodes=nodes:
                              x.type in names, nodes)
            return self.level(newNodes)

        elif self.testSequence(item):
            # detect ambiguous residue sequences such as ASP vs Alanine-Serine-Proline
            # and all char in 'ARNDCEQGHILKMFPSTWYV'
            #print "testSequence: item=", item 
            newNodes = self.matchSequence(nodes, item)
            #newNodes = FD['resSeq'](item, nodes)
            return newNodes

        else:
            return TreeNodeSetSelector.processListItem(self, nodes, item, sets=sets)
 def __init__(self):
     TreeNodeSetSelector.__init__(self)
     self.level = ProteinSet
 def __init__(self):
     TreeNodeSetSelector.__init__(self)
     self.level = ResidueSet