Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

daa_method ="Maaslin2", is there more options adjusting models and other parameters other than the default setting? #121

Open
shuqili opened this issue Oct 7, 2024 · 1 comment

Comments

@shuqili
Copy link

shuqili commented Oct 7, 2024

Hello,

Thank you so much for your work on this fantastic package, it helped accelerated my work so much! The installation and test data ran smoothly and I just have an additional question based on my analysis--

I am more familiar with MaAsLin2 package and use it all the time with my microbiome taxa differential analyses. For some datasets, I have tailored the model to "CPLM" and adjusted transformation as "NONE" in maaslin, as well as put confounding factors such as age, sex, bmi as fix effects to control. In this case I'd prefer to use the same model setting to test the difference of my predicted pathways. I'm wondering is there an option in the ggpicrust2 package to achieve this?

Thank you so much.

SL

@cafferychen777
Copy link
Owner

Hi @shuqili,

Thank you for your interest in ggpicrust2 and for your question about MaAsLin2 parameters. Looking at the current implementation in the perform_maaslin2_analysis function (lines 509-566), I can help explain the current options and suggest how to add more flexibility:

Currently, the function uses these default MaAsLin2 parameters:

Maaslin2::Maaslin2(
    input_data = abundance_mat_t,
    input_metadata = metadata,
    output = output_dir,
    transform = "AST",
    fixed_effects = group,
    reference = if (length_Level > 2) paste0(group, ",", reference) else NULL,
    normalization = "TSS",
    standardize = TRUE,
    min_prevalence = 0.1,
    cores = 1,
    plot_heatmap = FALSE,
    plot_scatter = FALSE
)

To accommodate your needs, I suggest two approaches:

  1. Immediate Workaround:
    You can use MaAsLin2 directly and then use ggpicrust2 for visualization:
# Run MaAsLin2 with custom parameters
maaslin_results <- Maaslin2::Maaslin2(
    input_data = your_abundance_data,
    input_metadata = your_metadata,
    output = "maaslin2_output",
    transform = "NONE",
    analysis_method = "CPLM",
    fixed_effects = c("group", "age", "sex", "bmi"),
    # Other custom parameters
)

# Convert results for ggpicrust2
formatted_results <- data.frame(
    feature = maaslin_results$results$feature,
    method = "Maaslin2",
    group1 = reference_group,
    group2 = comparison_group,
    p_values = maaslin_results$results$pval
)

# Use ggpicrust2 for visualization
pathway_errorbar(
    abundance = your_abundance_data,
    daa_results_df = formatted_results,
    # Other visualization parameters
)
  1. Future Enhancement:
    I will consider adding these parameters to the next version of ggpicrust2:
pathway_daa(
    abundance = abundance,
    metadata = metadata,
    group = "group",
    daa_method = "Maaslin2",
    maaslin_params = list(
        transform = "NONE",
        analysis_method = "CPLM",
        fixed_effects = c("group", "age", "sex", "bmi"),
        random_effects = NULL,
        standardize = TRUE,
        min_prevalence = 0.1
    )
)

Would you be interested in contributing to this enhancement? If so, I'd be happy to guide you through the process of submitting a pull request.

Best regards,
Chen Yang

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants