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 ──
ggplot2 3.3.5 purrr 0.3.4
tibble 3.1.6 dplyr 1.0.7
tidyr 1.1.4 stringr 1.4.0
readr 2.1.0 forcats 0.5.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
dplyr::filter() masks stats::filter()
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:
- When I run the command, ancombc automatically generates an input.biom.tsv file
- The input.biom.tsv file, when generated, has nothing in the top left cell (screenshot shown here)
- 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