snystrom / memes

An R interface to the MEME Suite
https://snystrom.github.io/memes/
Other
44 stars 5 forks source link

runStreme() does not return evalue #102

Closed mniederhuber closed 2 years ago

mniederhuber commented 2 years ago

I'm trying to track down if this is a bug or not, but runStreme() only returns pval for discovered motifs and not eval which I believe should also be calculated. Going to see if that's because it's not in the raw streme output or something with how the output is parsed and the dataframe is generated.

using memes v1.2.5

mniederhuber commented 2 years ago

so no bug, evalue was a recent addition to streme in meme suite. Adding test_log_evalue and test_evalue to streme_motif_stats errors out since those columns are missing in meme-5.3.3 (and earlier) streme xml output.

Easy fix if to include those columns, just need to have meme-5.4.1

snystrom commented 2 years ago

Hey Matt. I do actually consider not supporting the latest meme suite version a bug. Is it that when you update to meme 5.4.1 you get what you need? Or should I add some features to the parser for meme versions later than 5.3.3?

snystrom commented 2 years ago

For reference, this is not the first time the authors have made changes to streme. An example of how I've handled this before lives in the codebase here. It sounds like you may already have a fix in mind, so if you do and implement it like this you're welcome to submit a PR, or I can get to it sometime this weekend.

mniederhuber commented 2 years ago

It does look like it's just a matter of using the current version of meme-suite. The only changes I made to memes was within streme.R to include the evalue columns in dbl_cols and subsequent renaming of evalue to eval. But these don't seem to be necessary steps, at least for what I'm doing currently. ie. evalue columns correctly return after runStreme() regardless of making those changes.

Maybe the renaming to eval is important elsewhere, I'm unfamiliar with universalmotif. Happy to make a PR with the edits if it's helpful.