This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Is Biopython unable to read draft genomes (having multiple contigs)?

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

1 answer

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

Log in to answer this question.