gaohe
June 13, 2022, 7:54am
1
Hello,
Now I have installed HUMANN3 as well as its dependencies : bowtie2 (version=2.4.1); metaphlan, diamond and python (3.7). However, when I run this software with one of my clean reads, an error appeared: WARNING: Can not call software version for bowtie2.
Sincerely look forward to your help.
Are you able to call bowtie2 --version
successfully from the command line?
For me this is because the bowtie --version output is (where the 1st line goes to stderr)
Possible unintended interpolation of @3 in string at /gpfs1/data/galaxy_server/galaxy/database/dependencies/_conda/envs/__humann@3.6.0/lib/perl5/5.32/core_perl/Config_heavy.pl line 241.
/gpfs1/data/galaxy_server/galaxy/database/dependencies/_conda/envs/__humann@3.6.0/bin/bowtie2-align-s version 2.5.1
64-bit
Built on fv-az456-736
Tue Jan 31 02:50:17 UTC 2023
Compiler: gcc version 10.4.0 (conda-forge gcc 10.4.0-19)
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 /gpfs1/data/galaxy_server/galaxy/database/dependencies/_conda/envs/__humann@3.6.0/include -fdebug-prefix-map=/opt/conda/conda-bld/bowtie2_1675132819676/work=/usr/local/src/conda/bowtie2-2.5.1 -fdebug-prefix-map=/gpfs1/data/galaxy_server/galaxy/database/dependencies/_conda/envs/__humann@3.6.0=/usr/local/src/conda-prefix -std=c++11 -DPOPCNT_CAPABILITY -DNO_SPINLOCK -DWITH_QUEUELOCK=1 -DWITH_ZSTD
Sizeof {int, long, long long, void*, size_t, off_t}: {4, 8, 8, 8, 8, 8}
Reason is that you also consider stderr:
version_required+="."+str(version["second minor"])
logger.debug("Check software, %s, for required version, %s",exe,version_required)
if not find_exe_in_path(exe):
message="Can not find software " + exe
logger.critical(message)
sys.exit("CRITICAL ERROR: " + message)
try:
process = subprocess.Popen([exe,version["flag"]],stderr=subprocess.STDOUT,
stdout=subprocess.PIPE, universal_newlines=True)
process_out=process.communicate()[0]
except EnvironmentError:
message="Error trying to call software version"
logger.debug(message)
try:
# find the version string and remove a "v" and ":" if present
version_line=list(filter(lambda x: x, process_out.split("\n")))[version["line"]]
version_line_split=version_line.split(" ")