Open FabianaRossi opened 3 years ago
In case it is helpful, FYI: this is caused by a change in autoconf 2.70, which is now the default in homebrew (the only other version available from homebrew now is 2.13; haven't tried that myself). It's fixed in htslib by https://github.com/samtools/htslib/pull/1198 which is released in htslib 1.12. (I happened across this issue while trying to fix it myself, in a different software package)
Hi, Actually, the same error message still appears even after installing htslib 1.12. Do you have any idea what is being problematic in this case? I am quite new to git and it is bit confusing in terms of where I should be starting
It is an autoconf issue; installing the newest version of htslib will not fix the issue (kallisto comes bundled with an older version of htslib, not htslib 1.12).
You need to uninstall autoconf then manually install autoconf 2.69.
@Yenaled I have a htslib 1.13 installed by brew. Is there any way to skip htslib config step by providing the path to existing htslib 1.13 during make process ?
It won't work. Kallisto relies on the older version of htslib and I think there are updates in the newer version of htslib that make it incompatible with kallisto.
One way is to simply get autoconf 2.69.
Otherwise, if you really want to stick with autoconf 2.7, here's a modified version of the installation that should work (at least it does on my end):
git clone https://github.com/pachterlab/kallisto.git
cd kallisto/ext/htslib
sed '/AC_PROG_CC/a \
AC_CANONICAL_HOST \
AC_PROG_INSTALL \
' configure.ac > configure.ac2
mv configure.ac2 configure.ac
autoreconf -i
autoheader
autoconf
cd ../../
mkdir build
cd build
cmake ..
make
make install
Basically, what the above does is add AC_CANONICAL_HOST and AC_PROG_INSTALL to configure.ac and it also runs autoreconf -i (which generates config.guess and config.sub). Credit goes to https://github.com/jmarshall/htslib/commit/16e2301c62ac6bf32ddcaf96c112f09bd045d47b
@Yenaled , Thanks. kallisto is now installed in my M1 Mac mini.
build git:(master) ✗ sudo make install
Password:
[ 27%] Built target htslib
[ 93%] Built target kallisto_core
[100%] Built target kallisto
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/bin/kallisto
autoconf -V
autoconf (GNU Autoconf) 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>, <https://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David J. MacKenzie and Akim Demaille.
~ neofetch
,xNMM. -------------------------
.OMMMMo OS: macOS 11.5.1 20G80 arm64
OMMM0, Host: Macmini9,1
.;loddo:' loolloddol;. Kernel: 20.6.0
cKMMMMMMMMMMNWMMMMMMMMMM0: Uptime: 5 days, 21 hours, 58 mins
.KMMMMMMMMMMMMMMMMMMMMMMMWd. Packages: 70 (brew)
XMMMMMMMMMMMMMMMMMMMMMMMX. Shell: zsh 5.8
;MMMMMMMMMMMMMMMMMMMMMMMM: Resolution: 1920x1080
:MMMMMMMMMMMMMMMMMMMMMMMM: DE: Aqua
.MMMMMMMMMMMMMMMMMMMMMMMMX. WM: Quartz Compositor
kMMMMMMMMMMMMMMMMMMMMMMMMWd. WM Theme: Blue (Light)
.XMMMMMMMMMMMMMMMMMMMMMMMMMMk Terminal: iTerm2
.XMMMMMMMMMMMMMMMMMMMMMMMMK. Terminal Font: Monaco 11
kMMMMMMMMMMMMMMMMMMMMMMd CPU: Apple M1
;KMMMMMMMWXXWMMMMMMMk. GPU: Apple M1
.cooc,. .,coo:. Memory: 2376MiB / 16384MiB
~ kallisto
kallisto 0.46.2
Usage: kallisto <CMD> [arguments] ..
Where <CMD> can be one of:
index Builds a kallisto index
quant Runs the quantification algorithm
bus Generate BUS files for single-cell data
pseudo Runs the pseudoalignment step
merge Merges several batch runs
h5dump Converts HDF5-formatted results to plaintext
inspect Inspects and gives information about an index
version Prints version information
cite Prints citation information
Running kallisto <CMD> without arguments prints usage information for <CMD>
The solution from Jul 22, 2021 works for 0.48.0, but I cannot get it to work on any of the 0.46 versions. I am using the htslib provided in the source folders.
[ 62%] Building CXX object src/CMakeFiles/kallisto_core.dir/MinCollector.cpp.o
/src/MinCollector.cpp: In member function ‘std::vector<int> MinCollector::intersectECs(std::vector<std::pair<KmerEntry, int> >&) const’:
/src/MinCollector.cpp:194:21: error: ‘numeric_limits’ is not a member of ‘std’
194 | int minpos = std::numeric_limits<int>::max();
| ^~~~~~~~~~~~~~
/src/MinCollector.cpp:194:36: error: expected primary-expression before ‘int’
194 | int minpos = std::numeric_limits<int>::max();
| ^~~
/src/MinCollector.cpp: In member function ‘double MinCollector::get_mean_frag_len(bool) const’:
src/MinCollector.cpp:294:19: error: ‘numeric_limits’ is not a member of ‘std’
294 | return std::numeric_limits<double>::max();
| ^~~~~~~~~~~~~~
/src/MinCollector.cpp:294:34: error: expected primary-expression before ‘double’
294 | return std::numeric_limits<double>::max();
| ^~~~~~
/src/MinCollector.cpp:294:34: error: expected ‘;’ before ‘double’
294 | return std::numeric_limits<double>::max();
| ^~~~~~
| ;
/src/MinCollector.cpp:294:40: error: expected unqualified-id before ‘>’ token
294 | return std::numeric_limits<double>::max();
| ^
make[2]: *** [src/CMakeFiles/kallisto_core.dir/build.make:202: src/CMakeFiles/kallisto_core.dir/MinCollector.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:128: src/CMakeFiles/kallisto_core.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
I have followed https://pachterlab.github.io/kallisto/source guide to build Kallisto on a 11.2.3 macOS Big Sur, doing the following steps:
When I execute % make, I get the following error:
Any idea of what might be going on?
Thank you in advance!
GNU M4 1.4.6 zlib version 1.2.11 cmake version 3.20.1 autoconf version 2.71 hdf5 version 1.12.0_1 g++ version Apple clang version 12.0.0 (clang-1200.0.32.29) Target: x86_64-apple-darwin20.3.0