ANCOM Volcano Plot only has W-Scores of Zero

Hello QIIME2 community!

I’m trying to perform ANCOM and the resulting volcano plot only shows W-scores of zero for all features. I’ve tried collapsing to different taxonomic levels or just using the filtered-table-paired-end with an added pseudocount and all the volcano plots look like this:

We observed alpha-diversity differences within breed for Faith’s phylogenetic diversity and observed features and beta-diversity differences for weighted and unweighted UniFrac, so I would think there should be some compositional differences for breed. Here are the steps of the pipeline that filtered the frequency table and input artifacts for ANCOM if they may help:

qiime feature-table filter-samples
--i-table table-paired-end.qza
--m-metadata-file ZnEweMilkMetadata.tsv
--p-where "[SampleType]='Ewe Milk'"
--o-filtered-table filtered-table-paired-end.qza

qiime taxa filter-table
--i-table filtered-table-paired-end.qza
--i-taxonomy taxonomy.qza
--p-exclude mitochondria,chloroplast
--o-filtered-table filtered-table-no-mitoch-no-chlor.qza

qiime feature-table filter-samples
--i-table filtered-table-no-mitoch-no-chlor.qza
--m-metadata-file ZnEweMilkMetadata.tsv
--p-where "[Period] IN ('0', '1', '2', '3', '4')"
--o-filtered-table PeriodAll-filtered-table-paired-end.qza

qiime feature-table filter-features
--i-table PeriodAll-filtered-table-paired-end.qza
--p-min-frequency 10
--p-min-samples 2
--o-filtered-table PeriodAll-filtered-frequency-table.qza

qiime composotition add-pseudocount
--i-table PeriodAll-filtered-frequency-table.qza
--o-composition-table PeriodAll-addpseudocount-filtered-frequency-table.qza

qiime composition ancom
--i-table PeriodAll-addpseudocount-filtered-frequency-table.qza
--m-metadata-file ZnEweMilkMetadata.tsv
--m-metadata-column Breed
--p-transform-function 'clr'
--o-visualization PeriodAll-ancom-filtered-frequency-breed-clr.qzv

Thank you!
Ryan
PeriodAll-addpseudocount-filtered-frequency-table.qza (132.4 KB) PeriodAll-filtered-table-paired-end.qza (916.6 KB) PeriodAll-filtered-frequency-table.qza (115.2 KB) ZnEweMilkMetadata.tsv (6.0 KB)

2 Likes

Hi @Ryan.Knuth,

It looks like you have about 58 samples and 1084 features. You're paying a high FDR penalty with 1084 features for a relatively large p-value. The W value of zero probably means that nothing is getting over your FDR threshhold.

My recommendation would be to filter more stringently. I tend to use (1/rarefaction depth) in 10% of my samples; you could check out filter-features-conditionally for this functionality.

Best,
Justine

4 Likes

Hi @jwdebelius

Thanks for the advice. Initially in theses samples we tried to rarefy, but there was no clear plateau on the alpha rarefaction curve. Through some trial and error using the filter-features-conditionally function to narrow the number of features analyzed resulted, we got to a low enough number of features to overcome the high FDR. Here is the code I used if it may help others with similar problems:

qiime feature-table filter-features-conditionally
--i-table PeriodAll-filtered-table-paired-end.qza
--p-abundance 0.005
--p-prevalence 0.05
--o-filtered-table ANCOM__0.005_0.05_Filter.qza

qiime feature-table summarize
--i-table ANCOM_0.005_0.05_Filter.qza
--o-visualization ANCOM_0.005_0.05_Filter.qzv

qiime composition add-pseudocount
--i-table ANCOM_0.005_0.05_Filter.qza
--o-composition-table ANCOM_0.005_0.05_Filter_addpseud.qza

qiime composition ancom
--i-table ANCOM_0.005_0.05_Filter_addpseud.qza
--m-metadata-file ZnEweMilkMetadata.tsv
--m-metadata-column Breed
--o-visualization ANCOM_0.005_0.05_ANCOM.qzv

But my advisor @hcunnin6 and I still have some questions. Based on our Beta-diversity metrics, we had significance unweighted UniFrac, suggesting compositional differences of the rarer taxa. So does filtering based on the minimum relative abundance in filter-features-conditionally eliminate the rarer taxa we may expect to see compositional differences? And if so, can we (or is there even a way) to filter to keep the rarer features and eliminate the more abundant ones?

Thanks again for your help! Our lab group has had our fair issues with ANCOM, but this definitely helps!

Best,
Ryan
ANCOM_0.005_0.05_ANCOM.qzv (425.3 KB)

Hi @Ryan.Knuth,

I'm glad it worked slightly better!

For me, the challenge with ANCOM I is that it's difficult to conduct a statistical test on something that only appears in one sample at very low abundance. ANCOM-BC may be somewhat better equiped to handle this; it's currently only implemented in R although we're hoping to have a q2-ANCOM-BC plugin at some point.

My other thought is whether you've checked for an effect of richness and/or adjusted for richness in your model (I like to use the adonis method for this, just make sure you put the alpha diversity variable first!) It's possible that your signal may be confounded... although a signal in unweighted UniFrac can absolutely also translate to a signal in in differential abundance as well.)

Best,
Justine

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.