Understanding MEME sites and FIMO hits

53 views
Skip to first unread message

Donny Hoang

unread,
May 9, 2025, 6:57:15 PMMay 9
to MEME Suite Q&A
Hello,

I used MEME for motif discovery in a set of 1000 sequences in zoops mode, and one of the motifs was supported by 950 sites.

Then, I used FIMO the scan for the motif in the original input of 1000 sequences (among other sets of sequences) and am trying to make sense of an apparent discrepancy before interpreting my results from other sequence sets.

I expected FIMO to find a similar number of hits as the number of sites as MEME. However, FIMO found 700 hits, and filtering for q.value < 0.05 leads to 300 hits. This is much lower than 950, so I tried changing the default FIMO p.value threshold to 1e-3.
FIMO found 800 hits. This is closer, but still not quite 950. 

Thus, I want to understand why I am getting such different results between MEME sites and FIMO hits. Is it reasonable to expect the number of sites supporting a motif from MEME discovery to be the same as the number of motif occurrences when searching for it with FIMO? Is it reasonable to lower FIMO's default p.value threshold to better match the results to MEME? Since FIMO found fewer hits, does that mean only 700 (or 800 if I lower the p.value threshold) of the 950 sites good matches?

Thank you for your time!

Best,
Donny

cegrant

unread,
May 10, 2025, 8:14:28 PMMay 10
to MEME Suite Q&A
MEME and FIMO have different purposes and different implementations. The purpose of MEME is to perform de novo motif discovery. The purpose of FIMO is to search for statistically significant matches to motifs with known position weight matrices.  As a convenience,  after finding any motifs,  MEME does present the results of a scan using those motifs and prints a cartoon of the motif matches in the HTML output.. If your sequence database contains more than 1000 sequences the "Motif Locations" section will be omitted. You are not going to get FIMO to produce the same set of matches without a some extra work, and I don't know to what benefit.

MEME and FIMO use different background models by default. MEME defaults to using background frequencies estimated from the input sequence database. FIMO uses frequencies drawn from a version of the NR database that came out some  years ago. Also, note that the "Motif Locations" section of the MEME output contains two different types of p-values. The value displayed in the p-value column is the "combined match p-value", which is the p-value for the entire sequence using all of the matches in that sequence. The 2nd p-value is the "location p-value" which is shown when  you hover over a motif block or click on it. The location p-value is the significance of that single match of the motif to the sequence at that point. The location p-value is the equivalent of the p-value reported by FIMO. MEME uses a fixed threshold of 1e-4 for the position p-values of the motifs it displays.

To get MEME and FIMO to agree on the number and position of motif matches you'd have to first make sure that they both used the same background model, and you'd have to set a p-value threshold of 1e-4 for FIMO. Because they are implemented slightly differently you might still see slight differences between the location p-values reported by MEME and FIMO, but they should certainly be the same order of magnitude.

Generally there would be no particular point in scanning the same sequence database with FIMO that you used to generate the motifs using MEME . You'd usually generate the motifs with MEME and then scan other sequences that you didn't use for MEME with FIMO.

Jiadong Lin

unread,
Jul 26, 2025, 7:03:54 PMJul 26
to MEME Suite Q&A
Hi, I looked at the MEME html file and found there is an option "Motif Sites + Scanned Sites". It says that the scanned sites are predicted using a log-odds scoring matrix. Is that possible to get the location of these scanned sites?

Thanks!
screenshort_memm_html.png

tlawb...@gmail.com

unread,
Jul 30, 2025, 9:12:43 PMJul 30
to MEME Suite Q&A
There is currently no way to easily extract the locations of the "scanned sites", or the "Motif Sites", for that matter.
The only way now is to hover the mouse over each site and write down the locations.

The scanned site locations are encoded in the HTML file, so it would be possible 
for a programmer familiar with JSON to extract them.

-Tim
Reply all
Reply to author
Forward
0 new messages