pachterlab / kallisto

Near-optimal RNA-Seq quantification
https://pachterlab.github.io/kallisto
BSD 2-Clause "Simplified" License
631 stars 168 forks source link

Can't Bootstrap even after attempts to compile with cmake #382

Open sikayler opened 1 year ago

sikayler commented 1 year ago

kallisto version 48.0 OS: macOS Monterey Version 12.6.5

Issue: Unable to compile kallisto with -DUSE_HDF5=ON, kallisto ignores bootstrap option.

kallisto returns:

Warning: kallisto was not compiled with HDF5 support so no bootstrapping
will be performed. Run quant with --plaintext option or recompile with
HDF5 support to obtain bootstrap estimates.

And attempting to compile kallisto without brew returns:

build % make                                                               
[  3%] Creating directories for 'htslib'
[  6%] No download step for 'htslib'
[ 10%] No update step for 'htslib'
[ 13%] No patch step for 'htslib'
[ 17%] Performing configure step for 'htslib'
autoheader: error: 'configure.ac' is required
make[2]: *** [/usr/local/bin/kallisto/ext/htslib/src/htslib-stamp/htslib-configure] Error 1
make[1]: *** [CMakeFiles/htslib.dir/all] Error 2
make: *** [all] Error 2

Attempting to compile CMake:

The Fortran compiler

    "/usr/local/Cellar/gcc/13.1.0/bin/gfortran"

  is not able to compile a simple test program.

I also followed along with the instructions listed in Issue #303 and:

aclocal: warning: couldn't open directory '../m4': No such file or directory
Can't exec "libtoolize": No such file or directory at /usr/local/share/autoconf/Autom4te/FileUtils.pm line 345, <GEN3> line 6.
autoreconf: failed to run libtoolize: No such file or directory
autoreconf: libtoolize is needed because this package uses Libtool

At this point, I am at a loss for how to get bootstrapping done for my files so I can pass them to sleuth. I do realize that hdf5 is being phased out, but don't we still require this capability to pass to sleuth?

mschilli87 commented 1 year ago

What does brew info libtool say? Just guessing based on your error message and this.

sikayler commented 1 year ago
% brew info libtool
Generic library support script
https://www.gnu.org/software/libtool/
/usr/local/Cellar/libtool/2.4.7 (75 files, 3.8MB) *
  Poured from bottle using the formulae.brew.sh API on 2023-06-01 at 13:09:23
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/libtool.rb
License: GPL-2.0-or-later
==> Dependencies
Required: m4 ✔
==> Caveats
All commands have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
  PATH="/usr/local/opt/libtool/libexec/gnubin:$PATH"
==> Analytics
install: 47,491 (30 days), 18,552 (90 days), 2,123,808 (365 days)
install-on-request: 7,148 (30 days), 4,674 (90 days), 267,586 (365 days)
build-error: 0 (30 days)
Yenaled commented 1 year ago

HDF5 is not really being phased out -- it's just a pain to deal with that file structure and all the issues (including compilation issues) associated with it, but I don't think we'll deal with that problem anytime soon since it still works and I still use it all the time for sleuth analysis. It's kinda a pain to spend time rewriting parts of kallisto and sleuth for something that already works.

But yeah, you need to get libtoolize working otherwise you cannot install kallisto from source. I haven't personally dealt with libtoolize so I'm not sure how to solve it.

mschilli87 commented 1 year ago

I guess you have your solution right there:

==> Caveats
All commands have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
  PATH="/usr/local/opt/libtool/libexec/gnubin:$PATH"
sikayler commented 1 year ago

I wanted to make sure I noted what "fixed" my problem; first I followed this:

     wget http://ftp.gnu.org/gnu/m4/m4-1.4.14.tar.gz
     wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz
     wget http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.gz
     wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.tar.gz

Note I tried to run the next lines listed from that link, but those did not run in my terminal. I then deleted the kallisto file from Homebrew Cellar (I triple checked and it did not have ext/htslib)

git clone https://github.com/pachterlab/kallisto.git

These gave me:

[100%] Built target kallisto

You still have to follow the instructions for ext/htslib to give HDF5 file capabilities.

Sources: https://github.com/pachterlab/kallisto/blob/master/ext/htslib/INSTALL https://github.com/pachterlab/kallisto/blob/master/INSTALL.md

Yenaled commented 1 year ago

Amazing! Thanks for your contribution toward installing kallisto from source -- for htslib, I'm planning/hoping to make it an optional cmake option in the future, since it's been giving trouble (in part because the code base is based on an old version of HTSLIB; and honestly speaking, HTSLIB isn't really necessary for almost all use cases of kallisto anyway).

mschilli87 commented 1 year ago

@Yenaled: That's great news. Shameless plug: Don't forget to close my FR from seven years ago once you do so. 😜