MaAsLin3 with estimated microbial load

Hi,

I’m curious about the compositionality correction in MaAsLin3.
The documentation only mentioned using either experimental methods (e.g., spike-in) and the median-based computational method.

Have you checked MaAsLin3 behavior when using estimated microbial load described in this paper?
If I wanted to test it myself, which would be better, include is as a continuous covariate similar to read depths or use it as an input to unscaled_abundance?

Hi salim,

We haven’t checked this yet, though it’s on our to-do list. After looking briefly at their github, I think the right way would be to use the qmp option like MLP(input, "motus25", "metacardis", "qmp") and then input this abundance table with normalization = 'NONE'. This is essentially the same thing we did in our evaluations since the datasets in the absolute abundance studies were already scaled to be on the absolute scale.

Will

Hi Will

Thanks for the quick reply and the advice.
I’ll try it with my own data and see how it goes.

P.S. On another topic, when I’m running MaAsLin3 with plot_associations = TRUE, which is the default, it outputs huge .rds files. I think it’s a similar problem reported in this SO thread, any way to bypass this while still producing the plots? Maybe by saving the source data.frame rather than the ggplot objects?
If you think I should open another topic to discuss this issue, please mention it.

There are a few parameters that might already solve this issue. First, you can choose to not save the models with save_models = FALSE, which stops saving the per-feature model fits (related to that thread). You can also set max_pngs = 30 if it’s currently higher. Do either of those reduce your RDS file size?

I still encountered this problem with save_models = FALSE.
Looking at the source code in GitHub, it looks like maaslin_plot_results doesn’t take save_models as an argument.

Limiting the number of plots with max_pngs = 10 doesn’t help either.

Ah, I didn’t realize you were just using the plotting function. Can you send the function with arguments you were running?

Update: I was doing some testing today and realized this was an unintended result from a recent pull request. Working to fix it…