error with qiime micom build and qiime micom grow commands

Dear Sean and Christian,

I’m very curious about micom and I tested it as a new plugin for qiime2. However, I experienced several issues:

First I tried to apply the tool on my own example dataset, but received the following error with the qiime micom build command:

Plugin error from micom: Length mismatch: Expected axis has 15 elements, new values have 8 elements

Ok then I thought I should stick to your example data covered in your tutorial (q2-micom/ at master · micom-dev/q2-micom · GitHub)

However, for the crc_table.qza and crc_taxa.qza files I received the following error with qiime micom build:

(1/2) Invalid value for “–i-abundance”: ‘crc_table.qza’ is not a QIIME 2

Artifact (.qza)

(2/2) Invalid value for “–i-taxonomy”: ‘crc_taxa.qza’ is not a QIIME 2

Artifact (.qza)

Hm, then I thought let’s try the small dataset of the moving picture tutorial (“Moving Pictures” tutorial — QIIME 2 2019.10.0 documentation) and the qiime micom build command worked! :slight_smile:

Nevertheless, with the qiime micom grow command I got another error:

Plugin error from micom: ‘NoneType’ object is not subscriptable

I guess this was due to several warnings I received during the execution that qiime micom grow could not solve cooperative tradeoffs for many samples.

So I was wondering how to proceed from here. Would be great if you could comment on those errors or maybe check the artifacts of the crc files, or recommend other suitable test datasets to get an idea how to get micom work…

By the way I used qiime2 2019.10 and the gurobi license.

Thanks for any support!


Thanks for reporting @Mechah!

Just pinging @seangibbons and @cdiener to make sure they see this.

1 Like

Hey @Mechah, thanks for trying out q2-micom! I already replied on your Github issue here.

I set up a Qiime 2 2019.10 environment on my laptop and except for a bumpy installation process due to the outdated versions of some packages it seemed to work and qiime micom build ran with the CRC example files as well as the Moving Pictures data. I have seen those X is not a QIIME 2 Artifact before and they usually happen if there was an issue with the plugin installation. What has worked for me before is running qiime dev refresh-cache and/or deactivating and reactivating your conda environment…

Could you give me some more info on how you installed q2-micom? For instance when I ran the installation commands from the tutorial with Qiime 2019.10 I got some errors about version incompatibilities with tqdm. How did you work around those?

I am currently running the Moving Pictures data with CPLEX and will report back how that went. We have had some issue with Gurobi in cobrapy recently. So if you could try signing up for CPLEX that might also migitate some of the issues (also has free licenses for academic use).


Hey I tried all the samples you mentioned with cplex and Qiime 2 2019.10 and it all went fine. However, as mentioned before it was a bit of work installing the package here since I had to upgrade a lot of dependencies by hand and needed to install pyarrow with pip due to a conda conflict. So I would recommend using the dev environment until the new Qiime 2 version is released (scheduled for this month). I also encountered errors with the visualizations and this is now fixed in version 0.5.1.

qiime micom grow --i-models models.qza \
                 --i-medium western_diet_gut.qza \
                 --p-tradeoff 0.5 \
                 --p-threads 4 \
                 --o-results growth.qza \
/home/cdiener/miniconda3/envs/qiime2-2019.10/lib/python3.6/site-packages/skbio/util/ FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
  import pandas.util.testing as pdt
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 34/34 [18:51<00:00, 33.28s/sample(s)]
Saved MicomResults to: growth.qza

The crossover errors are probably due to some problem with Gurobi. I’ll try to get my hand on it and investigate more. For now the my recommendation would be to use CPLEX. I will update the tutorial to mention those pitfalls.

I attached the output for qiime micom exchanges-per-taxon for the Moving Pictures tutorial. It mostly clusters the samples by site which makes sense (the growth medium is only appropriate for the gut samples though).

imports.qzv (244.7 KB)


Dear Christian,

thanks for your support. I updated to version 0.5.1 and installed CPLEX. However, I still get the same errors. Since I now have both Gurobi and CPLEX installed as my QP solver - is there an easy way to force micom to use CPLEX over Gurobi? I also remember that there were several issues when I installed micom the first time. Maybe I did not solve all issues back then correctly? For now I guess I’ll wait for the next qiime2 release (2020.2) and then give micom a new try…

Hmm not in the current version of q2-micom. I will update micom to prefer cplex. If you installed q2-micom in its own environment you could simply uninstall Gurobi there. Your local Gurobi license will not be touched by this and remain intact. If you don’t want to wait you can also create a developer environment for Qiime 2 which is pretty much the new version at this point. You can find instructions for this here:

1 Like