[BioPython] ambiguous alphabets and alignments
Karin Lagesen
karin.lagesen at medisin.uio.no
Fri Nov 30 06:57:04 EST 2007
Hello.
I have used biopython on and off, and found it very good. I have now
however encountered an odd problem which I hope you can help me with.
I am working with alignments, and I do this:
>>> from Bio import Clustalw
>>> from Bio.Align import AlignInfo
>>> from Bio.Alphabet import IUPAC
>>> alignment = Clustalw.parse_file("align16S/AE000511_16S.aln", alphabet=IUPAC.IUPACAmbiguousDNA)
>>> summary_aln = AlignInfo.SummaryInfo(alignment)
>>> pssm = summary_aln.pos_specific_score_matrix()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/local/python/lib/python2.4/site-packages/Bio/Align/AlignInfo.py", line 368, in pos_specific_score_matri
x
File "/usr/local/python/lib/python2.4/site-packages/Bio/Align/AlignInfo.py", line 111, in dumb_consensus
File "/usr/local/python/lib/python2.4/site-packages/Bio/Align/AlignInfo.py", line 203, in _guess_consensus_alphabe
t
ValueError: Could not determine the type of alphabet.
>>>
Now, to test what alphabet I am dealing with I use code from SummaryInfo:
>>> from Bio import Alphabet
>>> from Bio.Alphabet import IUPAC
>>> from Bio.Seq import Seq
>>> isinstance(summary_aln.alignment._records[0].seq.alphabet.alphabet, Alphabet.DNAAlphabet)
False
>>> summary_aln.alignment._records[0].seq.alphabet.alphabet
<class Bio.Alphabet.IUPAC.IUPACAmbiguousDNA at 0x101d5360>
>>>
However, when I check the Alphabet class:
class IUPACAmbiguousDNA(Alphabet.DNAAlphabet):
letters = IUPACData.ambiguous_dna_letters
it seems like the alphabet I load the alignment with is an extension
of DNAAlphabet, however, the isinstance still fails.
I am pretty sure that this is somehow a misunderstanding on my side,
but I cannot figure this one out.
Thankyou for your help!
Karin
--
Karin Lagesen, PhD student
karin.lagesen at medisin.uio.no
http://folk.uio.no/karinlag
More information about the BioPython
mailing list