[Biopython-dev] [Bug 2778] Efficiency improvement in function Bio.SeqUtils.GC()
bugzilla-daemon at portal.open-bio.org
bugzilla-daemon at portal.open-bio.org
Thu Mar 5 10:56:38 EST 2009
http://bugzilla.open-bio.org/show_bug.cgi?id=2778
------- Comment #5 from biopython-bugzilla at maubp.freeserve.co.uk 2009-03-05 10:56 EST -------
(In reply to comment #3)
> I think that it is clearer to check that the sequence length is
> not zero rather than assuming that if the sum is zero then the
> sequence length is also zero.
I agree, but had chosen to keep the old code.
> def GC(seq):
> """Calculates G+C content, ..."""
> gc=sum(map(seq.count,['G','C','g','c','S','s']))
> if len(seq) > 0:
> return gc*100.0/len(seq)
> else:
> return 0
>
Your length test isn't very elegant, this is much nicer/more pythonic I think:
if seq :
gc = sum(map(seq.count,['G','C','g','c','S','s']))
return gc*100.0/len(seq)
else :
return 0
However, given most of the time the sequence will not be empty, this should be
faster:
try :
gc = sum(map(seq.count,['G','C','g','c','S','s']))
return gc*100.0/len(seq)
except ZeroDivisionError :
return 0
CVS updated.
--
Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the Biopython-dev
mailing list