[BioPython] Question about Seq.count()
    Peter 
    biopython at maubp.freeserve.co.uk
       
    Tue Oct 30 12:32:10 UTC 2007
    
    
  
Peter wrote:
>> I've found the bug!
>>
>> The code for Bio.Seq.count is:
>>
>> def count(self, item):
>>         return len([x for x in self.data if x == item])
> 
> Yeah - by design this (and the functionally similar version for the
> MutableSeq) both expect the count argument to be a single letter.  The
> simple fix for the Seq object is to use the string method internally:
> 
> def count(self, item):
>         return self.data.count(item)
> 
> For the MutableSeq things are not so straight forward, but supporting
> multiple character arguments can be done.
Bug 2386 and proposed patch here:
http://bugzilla.open-bio.org/show_bug.cgi?id=2386
This also lets the count methods take Seq or MutableSeq objects as 
arguments - in addition to plain strings.
Note there is room for improvement in my patch: For the case of the 
MutableSeq, we might want to investigate counting from the array of 
characters directly, rather than taking the lazy option of turning it 
into a string and counting that way.
Peter
    
    
More information about the Biopython
mailing list