CLR normalisation ouput

Hello,

I’m trying to run the CLR normalisation option on Maaslin and in the significant results ouput file the ‘N not 0’ column is incorrect. It is saying one of my taxa is only present in 6 samples, but it is present in 209 samples!
Due to the I am concerned about the accuracy of the output, and wondering if I am doing something incorrectly.

I input a table of relative abundance data with the taxa as columns and the samples as rows.

Also please note I haven’t done anything with the zeros in the relative abundance table. I would really appreciate your guidance. Thanks!

for (p in variable_list) {
output_file ← paste0(‘maaslin_allweeks_CLR_confounders’, p)

Maaslin2(‘taxa_maaslin’,
‘meta_out_maaslin’,
output_file, # Use the generated output file name
min_abundance = 0.001,
min_prevalence = 0.1,
transform = ‘NONE’,
normalization = ‘CLR’,
cores = 6,
random_effects = c(‘PID’),
fixed_effects = c(‘Week’,p, ‘Age’, ‘BMI’, ‘Delivery_birth’, ‘Farm’, ‘Gender’),
reference = NULL,
correction = ‘BH’)
}

Hi there,

Thanks for looking into this. We corrected this with the most recent update to the GitHub version of Maaslin2 found here: GitHub - biobakery/Maaslin2: MaAsLin2: Microbiome Multivariate Association with Linear Models

However, it hasn’t been pushed to the bioconductor version. Your output should be fine except for that column value.

Sorry for the slow response.

Jacob Nearing

Thanks Jacob - could you please also confirm for me whether the Maaslin CLR transform option adds a pseudocount to the relative abundance data to eliminate zeros prior to the CLR transformation? Or is that something I need to do prior to uploading the data in to Maaslin?

Hi there,

Yes it adds a pseudo-count to deal with zeros in the data so no need to do so beforehand.

Cheers,
Jacob

1 Like

Hi, following up on the pseudo-count question, How are the pseudo-counts determined? Say my data contains already very small relative abundances (EX: 6.851430e-08
) is the psueodo-count determined proportionally to this?

Hi there,

Maaslin2 will add a value of 1 to the raw input data before computing CLR values.

Cheers,
Jacob Nearing

1 Like