MetaPhlAn3 output analysis with MaAsLin2

Hi,
Metaphlan output is relative abundance out of 100 percent.Can I directly use the output to MaAsLin2? Is it appropriate to use the LOG method to convert data? Setting NONE and LOG yields very different results. Thanks!
Like this:

fit_data <- Maaslin2(
              input_data = input_data, 
              input_metadata = input_metadata, 
              output = 'demo_output', 
              transform = "LOG",
              normalization = 'NONE')

hi @wfgui ,

Based on the original benchmarking from the Maaslin2 paper here: Multivariable association discovery in population-scale meta-omics studies

We found that log transformation on relative abundances works well for differential abundance detection.

Thanks,
Jacob Nearing

I encountered another problem: using log2 to convert data before input will prompt the following error:

2024-09-25 09:06:11 INFO::Total filtered features with variance filtering: 0
2024-09-25 09:06:11 INFO::Filtered feature names from variance filtering:
2024-09-25 09:06:11 INFO::Running selected normalization method: NONE
2024-09-25 09:06:11 INFO::Bypass z-score application to metadata
2024-09-25 09:06:11 INFO::Running selected transform method: NONE
2024-09-25 09:06:11 INFO::Running selected analysis method: LM
Error in `rownames<-`(x, value) : 
  attempt to set 'rownames' on an object with no dimensions

But using the internal LOG conversion method or using log2 conversion and ensuring that the value is a positive number will not encounter this problem. Is it related to the default parameter min_abundance=0.0?
Here is the code I ran:

input_data <- system.file('extdata','HMP2_taxonomy.tsv', package="Maaslin2")
input_metadata <-system.file('extdata','HMP2_metadata.tsv', package="Maaslin2")

df_input_data = read.table(file = input_data,
                           header = TRUE,
                           sep = "\t", 
                           row.names = 1,
                           stringsAsFactors = FALSE)
df_input_metadata = read.table(file  = input_metadata, 
                               header  = TRUE, 
                               sep  = "\t", 
                               row.names = 1,
                               stringsAsFactors = FALSE)
df_input_data_log <- log2(df_input_data + 1)   #No errors 
df_input_data_log <- log2(df_input_data + 0.01)  #errors 

fit_data <- Maaslin2(
                input_data = df_input_data_log, 
                input_metadata = df_input_metadata, 
                min_prevalence = 0,
                output = 'demo_output', 
                transform = "NONE",
                normalization = 'NONE',
                fixed_effects = c('diagnosis', 'dysbiosisnonIBD', 'dysbiosisUC', 'dysbiosisCD', 'antibiotics', 'age'),
                random_effects = c('site', 'subject'),
                reference = 'diagnosis,nonIBD',
                standardize = FALSE)