biocore / songbird

Vanilla regression methods for microbiome differential abundance analysis
BSD 3-Clause "New" or "Revised" License
54 stars 25 forks source link

songbird issue apparently involving FeatureTable [Frequency] column lengths #100

Closed TizianaS92 closed 4 years ago

TizianaS92 commented 4 years ago

Good afternoon to everyone, I’m trying to run a differential abundance analysis on my 16S dataset through QIIME2, and I’m trying to use songbird by rather than gneiss, since a plugin I need, apparently, is deprecated.

I’m sticking to the installation and run procedure suggested in the GitHub guide and decided to use songbird through QIIME2 rather than as standalone tool.

Apparently, I can start from .qza artifacts directly, and I picked the FeatureTable[Frequency] obtained by qiime dada2 denoise-paired and filtered from mitochondrial and chloroplastic sequences through qiime taxa filter-table.

I ran the following:

qiime songbird multinomial --i-table table-no-clo-mit.qza --m-metadata-file songbird/16S_metadata_songbird.tsv --p-formula "Site+Soil" --p-epochs 10000 --p-differential-prior 0.5 --p-summary-interval 1 --o-differentials songbird/differentials.qza --o-regression-stats songbird/regression-stats.qza --o-regression-biplot songbird/regression-biplot.qza --verbose

I got this error:

Plugin error from songbird:

Column length mismatch: 15 vs. 0

See above for debug info.

I’m attaching the whole log here.

I get the same error if I use the standalone version, omit optional parameters of the qiime songbird multinomial plugin and the column length error changes (17 vs. 0) if I use the unfiltered table.

I’m also attaching my metadata and my FeatureTable files (this is a temporary link).

I’m running QIIME2-2019.7 Any idea what could be wrong?

Thanks in advance for your help!

mortonjt commented 4 years ago

Hi @TizianaS92 , I'm looking at your metadata file and I bet it has to do with the number of samples ( you have a very tiny dataset! And the read count is quite low as well.).

By default, songbird filters out microbes that appear in less than 10 samples and samples that have less than 1000 reads. You may have to tinker with those parameters to make it work (i.e --min-feature-count and --min-sample-count)

TizianaS92 commented 4 years ago

It worked! Thanks a lot!