[Biopython-dev] [Bug 2860] New: Writing GenBank files should output features in position order

bugzilla-daemon at portal.open-bio.org bugzilla-daemon at portal.open-bio.org
Fri Jun 19 08:48:39 EDT 2009


http://bugzilla.open-bio.org/show_bug.cgi?id=2860

           Summary: Writing GenBank files should output features in position
                    order
           Product: Biopython
           Version: 1.50b
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: minor
          Priority: P2
         Component: Main Distribution
        AssignedTo: biopython-dev at biopython.org
        ReportedBy: n.j.loman at bham.ac.uk


Adding features to a SeqRecord object does not automatically sort them by
position. Therefore if you do something like this:

for rec in SeqIO.parse(sys.stdin, "genbank"):
        new_features = []
        for feature in rec.features:
                if feature.type == 'CDS':
                        gene_feature = copy(feature)
                        gene_feature.type = 'gene'
                        new_features.append(gene_feature)
        rec.features.extend(new_features)
        SeqIO.write([rec], sys.stdout, "genbank")

You will end up with an incorrectly sorted file with CDS features first, then
gene features.

You can sort rec.features in-place to correct this: 
        rec.features.sort(key=attrgetter('location'))

I am not sure the correct fix in terms of BioPython, whether it should
concentrate on changing the behaviour SeqRecord.features, or the GenBank output
code (which I am aware is a work in progress).

I guess the answer to this is should BioPython guarantee Seqrecord.features to
be sorted?


-- 
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