I am following the protocol of " QIIME 2 Enables Comprehensive End‐to‐End Analysis of Diverse Microbiome Data and Comparative Studies with Publicly Available Data" and got an error message on the step 3.
Here is the error message:
"An unexpected error has occurred: (opt-einsum 0+untagged.61.gd905544.dirty (/home/qiime2/miniconda/envs/qiime2-2019.10/lib/python3.6/site-packages), Requirement.parse('opt-einsum>=2.3.2'), {'tensorflow'})
See above for debug info.
The code used was:
qiime tools import \
‐‐input‐path manifest.tsv \
‐‐type `SampleData[SequencesWithQuality]' \
‐‐input‐format SingleEndFastqManifestPhred33V2 \
‐‐output‐path se‐demux.qza
Could someone let me know what went wrong and how to correct it?
@thermokarst informed me that your error indicates that you might have manually edited the opt-einsum package manually within your QIIME 2 2019.10 env:
The .dirty part in this part of the message looks like a versioneer -produced tag, and the .dirty in versioneer means there are local edits.
Investigating the issues discussed in the post I linked you to should give you a get starting point/overview regarding problems with corrupt conda environments and how to clean them up and reinstall qiime 2. Starting over with a fresh QIIME 2 installation as well as fresh installations of additional plugins will likely do the trick for you, but please don't hesitate to follow up if you run into further problems.
I think this error may be due to this open issue with Songbird's installation. Long story short, at one point the opt-einsum package was renamed to opt_einsum, and this breaks a lot of things. I suspect that opt_einsum is being installed in your conda environment.
It's a bit of a hacky solution because you'll have both versions of the package, but I think running conda install -c conda-forge opt-einsum within your conda environment may fix this problem.
It might help, but I suspect this error will still happen even with a newer QIIME 2 version. I think running the command in the earlier comment (conda install -c conda-forge opt-einsum) should fix this problem, hopefully! *
* This being said, this command will install a slightly older version of the opt_einsum package (since the opt-einsum conda-forge feedstock apparently stopped being updated at v3.0.0, while the opt_einsum conda-forge feedstock is at v3.3.0) -- I don't think this should cause any problems for Songbird / TensorFlow, but can't guarantee it.
Sorry, I'm not very familiar with the importing parts of QIIME 2 -- not sure if this is normal or not. I'm guessing it is just taking a while, since I know validating / loading sequencing data can be very time-consuming.
Silly question, but did you remember to press the Enter/Return key? I just looked at the provenance for the companion site (https://curr-protoc-bioinformatics.qiime2.org/), and the import there took less than 1 second.
I did press the enter key to run the code last time. I also started from fresh by following the link you provided and had a different issue of running import this time. Here is the error message.
There was a problem importing manifest.tsv:
manifest.tsv is not a(n) SingleEndFastqManifestPhred33V2 file:
Found unrecognized ID column name 'sample-id\tabsolute-filepath' while searching for header. The first column name in the header defines the ID column, and must be one of these values:
NOTE: Metadata files must contain tab-separated values.
There may be more errors present in the metadata file. To get a full report, sample/feature metadata files can be validated with Keemei: https://keemei.qiime2.org
For some reason the whitespace values (\t) aren't being escaped properly, let's just double check that, first, please run the following and share the results here:
Perfect, so then the whitespace escaping is working as advertised, so maybe you forgot to do that when creating your manifest file? I suggest deleting the manifest file and re-running the command (being very careful to make sure you run the full command specified in the tutorial) - you have successfully demonstrated that you're able to escape the non-printing whitespace characters in this exercise.