[Biopython-dev] Bio.motifs.parse fails on meme files with version 4.10

Marco Galardini marco at ebi.ac.uk
Tue Jan 13 14:53:26 UTC 2015

Hi biopythoneers,

just noticed that the current meme version (4.10.0_2) introduced a 
change in its output file that breaks the biopython parser.

The error is:
 >>>from Bio import motifs
 >>>motifs.read(open('meme.txt'), 'meme')
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/usr/local/lib/python2.7/dist-packages/Bio/motifs/__init__.py", 
line 141, in read
     motifs = parse(handle, format)
   File "/usr/local/lib/python2.7/dist-packages/Bio/motifs/__init__.py", 
line 77, in parse
     record = meme.read(handle)
   File "/usr/local/lib/python2.7/dist-packages/Bio/motifs/meme.py", 
line 41, in read
     length, num_occurrences, evalue = __read_motif_statistics(line)
   File "/usr/local/lib/python2.7/dist-packages/Bio/motifs/meme.py", 
line 219, in __read_motif_statistics
     length = int(ls[3])
ValueError: invalid literal for int() with base 10: '='

Relevant line before:
MOTIF  1        width =  19  sites =   3  llr = 43  E-value = 6.9e-002
Relevant line now:
MOTIF  1 MEME    width =  19  sites =   3  llr = 43  E-value = 6.9e-002

A possible ugly workaround would be to change the way this line is 
parsed (doing splits on 'width' and the other parameters). If you like I 
can try to implement the fix myself and a couple of tests, just let me know.


Marco Galardini
Postdoctoral Fellow
EMBL-EBI - European Bioinformatics Institute
Wellcome Trust Genome Campus
Hinxton, Cambridge CB10 1SD, UK
Phone: +44 (0)1223 49 2547

More information about the Biopython-dev mailing list