[Biopython] Parsing problem

Iwan Grin iwan.grin at googlemail.com
Tue Dec 8 13:52:13 EST 2009


Hi all,

I am having a little problem while trying to parse a GenBank (or rather
GenProt) file using BioPython. I am trying to extract the position on the
genome from the "coded_by" qualifier of the CDS feature of a protein.

The "coded_by" string in this specific case looks like this:

'complement(NC_012967.1:
3622110..3624728)'

Now, when I run

Bio.GFF.easy.LocationFromString('complement(NC_012967.1:3622110..3624728)' )

I get

File "/usr/lib/pymodules/python2.6/Bio/GFF/easy.py", line 419, in __init__
   list.__init__(self, [int(location_str)-1]) # zero based, nip it in the
bud
ValueError: invalid literal for int() with base 10:
'NC_012967.1:3622110..3624728'

Is there another way to parse this location string or do I have to cook up
some kind of custom RegExp?

Iwan

P.S.: Code snippet:

from Bio import Entrez
from Bio import SeqIO
from Bio import GFF
gi = 254163455
handle = Entrez.efetch(db="protein", id=gi, rettype="gb")
record= SeqIO.read(handle,"genbank")
handle.close()
for feature in record.features:
   if(feature.type=="CDS" and feature.qualifiers.has_key("coded_by")):
       print feature.qualifiers["coded_by"][0],
       loc=GFF.easy.LocationFromString(feature.qualifiers["coded_by"][0])
       print loc.start(),loc.end(), loc.complement


More information about the Biopython mailing list