HUMAnN 3 - Cannot call bowtie2 version

Hey there
I installed HUMAnN 3.0 using conda, following the instructions from the annoucement post. It seems like bowtie2 was installed succesfully on my environment, running /home/user/miniconda3/envs/biobakery3/bin/bowtie2 --version
gives me

64-bit
Built on
Sat Jun  6 20:17:22 UTC 2020
Compiler: gcc version 7.5.0 (crosstool-NG 1.24.0.123_1667d2b)
Options: -O3 -msse2 -funroll-loops -g3 -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/qiime/miniconda3/envs/biobakery3/include -fdebug-prefix-map=/opt/conda/conda-bld/bowtie2_1591474367590/work=/usr/local/src/conda/bowtie2-2.4.1 -fdebug-prefix-map=/home/qiime/miniconda3/envs/biobakery3=/usr/local/src/conda-prefix -DPOPCNT_CAPABILITY -DWITH_TBB -std=c++11 -DNO_SPINLOCK -DWITH_QUEUELOCK=1
Sizeof {int, long, long long, void*, size_t, off_t}: {4, 8, 8, 8, 8, 8}

However, trying to run humann, I get
CRITICAL ERROR: Can not call software version for bowtie2
I get the same error if I point to the bowtie2 path in the environment with --bowtie2.
Running it with --version gives me “humann v3.0.0.alpha.1”.

What could be happening?
Thanks and best regards,
Robert

Hi Robert, It looks like HUMAnN is unable to determine the bowtie2 version. My guess is there is some extra information printed to stdout when you run “$ bowtie2 --version”. Try running that command and see if any errors/warnings are printed. If you resolve the errors/warnings with bowtie2 it should resolve the error you are seeing with HUMAnN.

Thanks,
Lauren

Hi!
Running “bowtie2 --version” gives me the same output as running it with the full path within the environment.

(biobakery3) qiime@bioinfo-02:~$ bowtie2 --version                              /home/qiime/miniconda3/envs/biobakery3/bin/bowtie2-align-s version
64-bit
Built on
Sat Jun  6 20:17:22 UTC 2020
Compiler: gcc version 7.5.0 (crosstool-NG 1.24.0.123_1667d2b)
Options: -O3 -msse2 -funroll-loops -g3 -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/qiime/miniconda3/envs/biobakery3/include -fdebug-prefix-map=/opt/conda/conda-bld/bowtie2_1591474367590/work=/usr/local/src/conda/bowtie2-2.4.1 -fdebug-prefix-map=/home/qiime/miniconda3/envs/biobakery3=/usr/local/src/conda-prefix -DPOPCNT_CAPABILITY -DWITH_TBB -std=c++11 -DNO_SPINLOCK -DWITH_QUEUELOCK=1
Sizeof {int, long, long long, void*, size_t, off_t}: {4, 8, 8, 8, 8, 8}

As I understand it, these are just compiler options, not warnings, right?
Thanks for the attention!

Hi Robert, Thanks for the info. I agree with you that I don’t see any errors or warnings. However, I also don’t see the version in the output. It should look something like “bowtie2-align-s version 2.2.3” and I don’t see the “version a.b.c” in your output. You could remove the bowtie2 install and reinstall HUMAnN from source and it should install bowtie2. Alternatively maybe uninstall and then reinstall bowtie2 to see if you can get the version information to print.

Thanks,
Lauren

1 Like

Hi Lauren,

I had the same issue when installing HUMAnN3 via conda. The version of BowTie2 installed by conda doesn’t include a version string at the end of the line with the path to binary. Therefore, HUMAnN3 fails because it cannot confirm the version of BowTie2.

~/miniconda3/bin/bowtie2-align-s version
64-bit
Built on
Sat Jun  6 20:17:22 UTC 2020
Compiler: gcc version 7.5.0 (crosstool-NG 1.24.0.123_1667d2b)
Options: -O3 -msse2 -funroll-loops -g3 -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem ~/miniconda3/include -fdebug-prefix-map=/opt/conda/conda-bld/bowtie2_1591474367590/work=/usr/local/src/conda/bowtie2-2.4.1 -fdebug-prefix-map=~/miniconda3=/usr/local/src/conda-prefix -DPOPCNT_CAPABILITY -DWITH_TBB -std=c++11 -DNO_SPINLOCK -DWITH_QUEUELOCK=1

The only information available on the version is in the line with the compiler: version 2.4.1.

When installing HUMAnN3 via conda, conda takes care of the versioning of BowTie2 and therefore the BowTie2 version should be the one specified in the YAML file. I am not sure how complicated it is to check whether HUMAnN3 was installed via conda and this YAML file, but it might be easier to implement it than trying to retrieve the BowTie2 version from the compiler note.

I could get HUMAnN3 only working when escaping the version check of BowTie2 in the HUMAnN3 Python code.

1 Like

Which conda channel was used to install bowtie2?
I’ve installed HUMAnN 3 using the bowtie2 distributed through the bioconda channel and the version number is present in the --version output

/shares/CIBIO-Storage/CM/mir/tools/anaconda3/envs/humann-3.0/bin/bowtie2-align-s version 2.3.5.1
64-bit
Built on
Wed Apr 17 02:40:25 UTC 2019
Compiler: gcc version 7.3.0 (crosstool-NG 1.23.0.450-d54ae)

It seems that the latest version available on bioconda (2.4.1) does not print correctly the version number

/shares/CIBIO-Storage/CM/mir/tools/anaconda3/envs/test/bin/bowtie2-align-s version
64-bit
Built on

I followed the instructions here and installed with the following command: conda install humann -c biobakery

Otherwise, my channel set-up is the one suggested by bioconda (first conda-forge, second bioconda) and BowTie2 was installed using the bioconda channel:

bowtie2 2.4.1 py37h4ef193e_2 bioconda

2.3.5.1 is the latest version available on conda with working --version

I get the same error. Any workarounds?

(biobakery3) user@server:~/ncbi/dbGaP-20066/sra$ humann --threads 20 --input test.fastq --output testout
Output files will be written to: /local/home/robinm/ncbi/dbGaP-20066/sra/testout
Removing spaces from identifiers in input file …

CRITICAL ERROR: Can not call software version for bowtie2

(biobakery3) user@server:~/ncbi/dbGaP-20066/sra$ bowtie2 --version
/local/home/robinm/miniconda2/envs/biobakery3/bin/bowtie2-align-s version
64-bit
Built on
Sat Jun 6 20:17:22 UTC 2020
Compiler: gcc version 7.5.0 (crosstool-NG 1.24.0.123_1667d2b)
Options: -O3 -msse2 -funroll-loops -g3 -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /local/home/robinm/miniconda2/envs/biobakery3/include -fdebug-prefix-map=/opt/conda/conda-bld/bowtie2_1591474367590/work=/usr/local/src/conda/bowtie2-2.4.1 -fdebug-prefix-map=/local/home/robinm/miniconda2/envs/biobakery3=/usr/local/src/conda-prefix -DPOPCNT_CAPABILITY -DWITH_TBB -std=c++11 -DNO_SPINLOCK -DWITH_QUEUELOCK=1
Sizeof {int, long, long long, void*, size_t, off_t}: {4,

How did you do this exacly? Which file and which lines?

I went to the module folder in your conda environment, in which you installed HUMAnN3, e.g. ~/miniconda3/envs/humann/lib/python3.7/site-packages/humann, and there I commented out line 750 in the file humann.py: #utilities.check_software_version("bowtie2", config.bowtie2_version).

Hello all, Thanks for all the posts about the bowtie2 conda package without the version information. We have released a new HUMAnN v3 conda package that throws a warning instead of an error if it is unable to get the version of bowtie2. This should resolve the errors you are seeing running with a bowtie2 without version information. Also we feel relaxing this check from an error to a warning should be okay for bowtie2 since all recent versions (>2.1) should be compatible with HUMAnN v3. Please post with any questions and/or issues.

Thank you,
Lauren

Hi Lauren,

I got into the same error with the latest version of humann3. The error msg is listed below:

(biobakery3) [usr@cluster tutorial]$ humann --input demo.fastq.gz --output demo_fastq
Output files will be written to: /usr/HUMANN3/tutorial/demo_fastq
Decompressing gzipped file …

WARNING: Can not call software version for bowtie2

Running metaphlan …

CRITICAL ERROR: Error executing: /usr/.conda/envs/biobakery3/bin/metaphlan /usr/HUMANN3/tutorial/demo_fastq/demo_humann_temp/tmp5g0oau1f/tmp2525poi5 -t rel_ab -o /usr/HUMANN3/tutorial/demo_fastq/demo_humann_temp/demo_metaphlan_bugs_list.tsv --input_type fastq --bowtie2out /usr/HUMANN3/tutorial/demo_fastq/demo_humann_temp/demo_metaphlan_bowtie2.txt

Error message returned from metaphlan :

Downloading https://www.dropbox.com/sh/7qze7m7g9fe2xjg/AAA4XDP85WHon_eHvztxkamTa/file_list.txt?dl=1
Downloading file of size: 0.00 MB
0.01 MB 232.33 % 9.88 MB/sec 0 min -0 sec
Downloading https://www.dropbox.com/sh/7qze7m7g9fe2xjg/AAAyoJpOgcjop41VIHAGWIVLa/mpa_latest?dl=1
Downloading file of size: 0.00 MB
0.01 MB 31507.69 % 15.78 MB/sec 0 min -0 sec
Downloading MetaPhlAn database
Please note due to the size this might take a few minutes

File /usr/.conda/envs/biobakery3/lib/python3.7/site-packages/metaphlan/metaphlan_databases/file_list.txt already present!

Downloading https://www.dropbox.com/sh/7qze7m7g9fe2xjg/AADlxibskzbPHPoDl6S-FyKka/mpa_v30_CHOCOPhlAn_201901.tar?dl=1
Downloading file of size: 366.62 MB
366.62 MB 100.00 % 9.73 MB/sec 0 min -0 sec
Downloading https://www.dropbox.com/sh/7qze7m7g9fe2xjg/AACTzoUYDqZps8u2JqWCNCODa/mpa_v30_CHOCOPhlAn_201901.md5?dl=1
Downloading file of size: 0.00 MB
0.01 MB 12800.00 % 12.52 MB/sec 0 min -0 sec

Decompressing /usr/.conda/envs/biobakery3/lib/python3.7/site-packages/metaphlan/metaphlan_databases/mpa_v30_CHOCOPhlAn_201901.fna.bz2 into /usr/.conda/envs/biobakery3/lib/python3.7/site-packages/metaphlan/metaphlan_databases/mpa_v30_CHOCOPhlAn_201901.fna
Traceback (most recent call last):
File “/usr/.conda/envs/biobakery3/bin/metaphlan”, line 10, in
sys.exit(main())
File “/usr/.conda/envs/biobakery3/lib/python3.7/site-packages/metaphlan/metaphlan.py”, line 915, in main
pars[‘index’] = check_and_install_database(pars[‘index’], pars[‘bowtie2db’], pars[‘bowtie2_build’], pars[‘nproc’], pars[‘force_download’])
File “/usr/.conda/envs/biobakery3/lib/python3.7/site-packages/metaphlan/init.py”, line 292, in check_and_install_database
download_unpack_tar(FILE_LIST, index, bowtie2_db, bowtie2_build, nproc)
File “/usr/.conda/envs/biobakery3/lib/python3.7/site-packages/metaphlan/init.py”, line 181, in download_unpack_tar
bt2_build_output = subp.check_output([bowtie2_build, ‘–usage’], stderr=subp.STDOUT)
File “/usr/.conda/envs/biobakery3/lib/python3.7/subprocess.py”, line 411, in check_output
**kwargs).stdout
File “/usr/.conda/envs/biobakery3/lib/python3.7/subprocess.py”, line 512, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command ‘[‘bowtie2-build’, ‘–usage’]’ returned non-zero exit status 127.

I further manually installed bowtie2 (the code: ‘conda install bowtie2’)and metaphlan3 (the code: ‘conda install metaphlan=3.0=pyh5ca1d4c_2 --no-channel-priority’), however it is still returning the same error. What could be happening?

Best,
Shuqi

1 Like

Hi Shuqi, Thank you for the detailed follow up. Can you try running the following command?

$ bowtie2-build –usage

It looks like there might be a mismatch in the bowtie2 version or there is an issue with the bowtie2 install that is causing the problem. The command above is the one that fails. Running it again should hopefully give us more information about the error.

Thank you,
Lauren

Hi Lauren,

Below are the returned results:

(base) [usr ~]$ cd HUMANN3/tutorial/
(base) [usr tutorial]$ conda activate biobakery3
(biobakery3) [usr tutorial]$ bowtie2-build -usage
/usr/.conda/envs/biobakery3/bin/bowtie2-build-s: symbol lookup error: /usr/.conda/envs/biobakery3/bin/bowtie2-build-s: undefined symbol: _ZN3tbb10interface58internal9task_base7destroyERNS_4taskE
(biobakery3) [usr tutorial]$ which bowtie2
~/.conda/envs/biobakery3/bin/bowtie2

Thank you for the quick reply and looking forward to hearing from you.
Best,
Shuqi

Hi Shuqi, Thank you for the reply and sorry for my slow response. It looks like there might be an issue with the bowtie2 install because of the symbol table error. Can you try removing and re-installing bowtie2?

Thank you,
Lauren

Thank you and I would love to try that. But just to make everything trackable, do you have a written down command line for me to follow?

Best,
Shuqi

Hi Shuqi, If you installed bowtie2 with conda you could try:

$ conda remove bowtie2
$ conda install bowtie2

Then try:

$ bowtie2-build -usage

to see if the error has been fixed.

Thank you,
Lauren

I am getting the same problem but for some of my samples. I ran like 20 samples and 12 samples were just fine but rest of the 8 samples gave this error.