Tensorflow + qiime2 compatiability


(Jamie Morton) #1

Just as a heads up, we have a bunch of upcoming qiime2 plugins and a couple of them depend on tensorflow.

However, I’m getting some dependency issues when trying to install tensorflow inside of a qiime2 environment. Namely, I’m trying to run the following command

conda env create -q -n test_env --file qiime2-latest-py35-osx-conda.yml
conda install -n test_env --file ci/conda_requirements.txt -c conda-forge
conda install -n test_env tensorflow>1.5 -c conda-forge

Then I get the following message

Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:

  - numpy[version='>1.14']

  - q2-diversity=2018.11.0.dev0 -> q2-emperor=2018.11 -> q2-types=2018.11 -> scikit-bio[version='>=0.5.4'] -> scikit-learn[version='>=0.19.1']

Use "conda info <package>" to see the dependencies for each package.

Not exactly sure what is going on - but my most recent PR against songbird seems to be failing

Note that I was able to get tensorflow and qiime2 installed side-by-side in previous versions of qiime2. If I had to guess, the dependency conflict popped up during the development of the last version. After chatting with @ebolyen, it looks like it may be due to the latest scikit-learn release. However, the latest release of scikit-bio also caps the numpy version to below 1.14.0, which may also cause conflicts with Tensorflow – especially since TF is not compatible with numpy<1.13.0

I would be curious to hear more feedback on circumventing these problems.
The newest plugins coming up will be able to build proper linear models without pseudocounts, multi-omic correlations and are pretty darn fast. So much exciting science yet to come!