Is Biopython unable to read draft genomes (having multiple contigs)?
1
1
Entering edit mode
9.7 years ago
dago ★ 2.8k

I want to extract specific CDS from a gbk file into another gbk file. Apparently it is not so trivial.

I can read here how to slice a genbank so I do the following:

record = SeqIO.read("SpeciesA.gbk", "genbank")
sub_record=(record[25500:33500])
SeqIO.write(sub_record, "test.gbk", "genbank")

This seems to work quite well, but I have problem to read draft genomes were I have multiple contigs.

When I try to import them I get:

record = SeqIO.read("SpeciesB.gbk", "genbank")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/Bio/SeqIO/__init__.py", line 656, in read
    raise ValueError("More than one record found in handle")
ValueError: More than one record found in handle

I did not manage to find a way around it, any idea how to fix this?

software-error genbank genome-annotation biopython • 8.1k views
ADD COMMENT
4
Entering edit mode
9.7 years ago

May be you should check this page?

Use the Bio.SeqIO.parse(handle, format) function if you want to read multiple records from the handle

ADD COMMENT
0
Entering edit mode

Yes - that's the built-in documentation also available within Python with:

from Bio import SeqIO
help(SeqIO)

Or I would suggest http://biopython.org/wiki/SeqIO or the main Biopython Tutorial, http://biopython.org/DIST/docs/tutorial/Tutorial.html

ADD REPLY

Login before adding your answer.

Traffic: 1998 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6