[BioPython] small "bug" correction in package BioSql

Eric Gibert ericgibert at yahoo.fr
Thu Nov 8 11:07:02 UTC 2007


Dear all,

In BioSeq/BioSeq.py, in the class DBSeq definition, we have the function:

def _retrieve_seq(adaptor, primary_id):
    seqs = adaptor.execute_and_fetchall(
        "SELECT alphabet, length(seq) FROM biosequence" \
        " WHERE bioentry_id = %s", (primary_id,))
    if seqs:
        moltype, length = seqs[0]
        moltype = moltype.lower()        # <--    EG as "DNA" is found in my database!
        from Bio.Alphabet import IUPAC
        if moltype == "dna":
            alphabet = IUPAC.unambiguous_dna
        elif moltype == "rna":
            alphabet = IUPAC.unambiguous_rna
        elif moltype == "protein":
            alphabet = IUPAC.protein
        else:
            raise AssertionError("Unknown moltype: %s" % moltype)
        seq = DBSeq(primary_id, adaptor, alphabet, 0, int(length))
        return seq
    else:
        return None

please note my correction: force moltype to be turn in lower case as my database has upper case value! this raises the "Unknown moltype" error.

Alternatively, we could request the SQL statement to return a lower case version of "alphabet" but I do not know if this function is standard for all database...

Might be good to add in the standard package.

Eric




      _____________________________________________________________________________ 
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail 



More information about the Biopython mailing list