ANCOM-BC with Qiime2

Hello all,
I tried to use ANCOM-BC as a Qiime2 plugin for a differential abundance analysis. After running the following command (qiime2-2021.2):
qiime ancombc ancombc --i-table table.qza --m-metadata-file metadata.txt --p-formula "labels" --o-differentials differentials.qza --verbose

I get the following error:
Running external command line application(s). This may print messages to stdout and/or stderr.
The command(s) being run are below. These commands cannot be manually re-run as they will depend on temporary files that no longer exist.

Command: run_ancombc.R ./input.biom.tsv ./input.map.txt labels holm 0.9 1000 labels TRUE TRUE 1e-05 100 TRUE 0.05 FALSE ./output.summary.txt

R version 4.0.3 (2020-10-10)
── Attaching packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.3.1 ──
:heavy_check_mark: ggplot2 3.3.5 :heavy_check_mark: purrr 0.3.4
:heavy_check_mark: tibble 3.1.4 :heavy_check_mark: dplyr 1.0.7
:heavy_check_mark: tidyr 1.1.3 :heavy_check_mark: stringr 1.4.0
:heavy_check_mark: readr 2.0.1 :heavy_check_mark: forcats 0.5.1
── Conflicts ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
:heavy_multiplication_x: dplyr::filter() masks stats::filter()
:heavy_multiplication_x: dplyr::lag() masks stats::lag()
Traceback (most recent call last):
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/q2cli/commands.py", line 329, in call
results = action(**arguments)
File "", line 2, in ancombc
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/sdk/action.py", line 245, in bound_callable
output_types, provenance)
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/sdk/action.py", line 418, in callable_executor
spec.qiime_type, output_view, spec.view_type, prov)
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/sdk/result.py", line 267, in _from_view
result = transformation(view, validate_level)
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/core/transform.py", line 70, in transformation
new_view = transformer(view)
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/core/transform.py", line 221, in wrapped
file_view = transformer(view)
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/q2_types/feature_data/_transformer.py", line 413, in _224
qiime2.Metadata(data).save(str(ff))
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/metadata/metadata.py", line 357, in init
super().init(dataframe.index)
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/metadata/metadata.py", line 96, in init
self._assert_valid_id_header(id_header)
File "/anaconda3/envs/qiime2-2021.2/lib/python3.6/site-packages/qiime2/metadata/metadata.py", line 137, in _assert_valid_id_header
(name, FORMATTED_ID_HEADERS))
ValueError: pandas index name (Index.name) must be one of the following values, not None:

Case-insensitive: 'feature id', 'feature-id', 'featureid', 'id', 'sample id', 'sample-id', 'sampleid'

Case-sensitive: '#OTU ID', '#OTUID', '#Sample ID', '#SampleID', 'sample_name'

Plugin error from ancombc:

pandas index name (Index.name) must be one of the following values, not None:

Case-insensitive: 'feature id', 'feature-id', 'featureid', 'id', 'sample id', 'sample-id', 'sampleid'

Case-sensitive: '#OTU ID', '#OTUID', '#Sample ID', '#SampleID', 'sample_name'

See above for debug info.

Thanks in advance

Hi @mobar,

Welcome to the :qiime2: forum! I moved this to community plugin support, since the q2-ancom-bc is a community plugin rather than a core release. (It can be a llittle confusing.)

As far as I know, the ANCOM-BC plugin has not been released and is still in testing. However, based on where things are failing, what does your metadata look like?

Best,
Justine

Thanks for your quick response.
I used the proposed data as an example with the plugin.
Best
M

1 Like