ANCOM-BC plugin potential bug

Hello Q2 folks!

I have been attempting to use the ANCOM-BC plugin for differential analysis tutorial (here) and it appears there is a bug that I'm not sure how to fix. I am getting the same error as this post here. Here is the command I ran and the error:

qiime ancombc ancombc
--i-table ../04_tables/table_samplefilt_freq10filt_nochlomito_min11160_nopos.qza
--m-metadata-file ../../02_metadata/map_ancombc.txt
--p-formula "ADD_0"
--o-differentials differentials.qza
--verbose

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 ADD_0 holm 0.9 1000 ADD_0 TRUE TRUE 1e-05 100 TRUE 0.05 FALSE ./output.summary.txt

R version 4.0.5 (2021-03-31)
── 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.6 :heavy_check_mark: dplyr 1.0.7
:heavy_check_mark: tidyr 1.1.4 :heavy_check_mark: stringr 1.4.0
:heavy_check_mark: readr 2.1.0 :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 "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/q2cli/commands.py", line 329, in call
results = action(**arguments)
File "", line 2, in ancombc
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/sdk/action.py", line 245, in bound_callable
outputs = self.callable_executor(scope, callable_args,
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/sdk/action.py", line 418, in callable_executor
artifact = qiime2.sdk.Artifact._from_view(
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/sdk/result.py", line 305, in _from_view
result = transformation(view, validate_level)
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/core/transform.py", line 70, in transformation
new_view = transformer(view)
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/core/transform.py", line 221, in wrapped
file_view = transformer(view)
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/q2_types/feature_data/_transformer.py", line 645, in _224
qiime2.Metadata(data).save(str(ff))
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/metadata/metadata.py", line 405, in init
super().init(dataframe.index)
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/metadata/metadata.py", line 96, in init
self._assert_valid_id_header(id_header)
File "/Users/heatherdeel/opt/miniconda3/envs/qiime2-2021.8/lib/python3.8/site-packages/qiime2/metadata/metadata.py", line 134, in _assert_valid_id_header
raise ValueError(

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.

Here's what I think is happening:

  1. When I run the command, ancombc automatically generates an input.biom.tsv file
  2. The input.biom.tsv file, when generated, has nothing in the top left cell (screenshot shown here)
  3. This is causing the "None" error, and as far as I know there is not a way to change this because each time the ancombc command is run, a new input.biom.tsv file is generated and then automatically used in another command (e.g., Command: run_ancombc.R ./input.biom.tsv ./input.map.txt ADD_0 holm 0.9 1000 ADD_0 TRUE TRUE 1e-05 100 TRUE 0.05 FALSE ./output.summary.txt) that I can not manually change.

If there is a workaround for this that would be great, otherwise I could also give this a shot in R. Just wanted to point this out!

Thanks Q2 team for all you do,

Heather Deel