smithlabcode / methpipe

A pipeline for analyzing DNA methylation data from bisulfite sequencing.
http://smithlabresearch.org/methpipe
67 stars 27 forks source link

Install fatal error: gsl/gsl_sf_psi.h: No such file or directory #189

Closed Hannah1746 closed 2 years ago

Hannah1746 commented 3 years ago

I am currently trying to install methpipe on to a ubuntu 16 computer that has both Zlib and HTSlib installed. When I try to make in the build directory I get this error: (base) computer@lab:~/Documents/apps/methpipe-4.1.1/build$ make make all-recursive make[1]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build' Making all in src/smithlab_cpp make[2]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' make all-am make[3]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' make[3]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' make[2]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' make[2]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build' CXX src/common/BetaBin.o ../src/common/BetaBin.cpp:31:10: fatal error: gsl/gsl_sf_psi.h: No such file or directory

include <gsl/gsl_sf_psi.h>

      ^~~~~~~~~~~~~~~~~~

compilation terminated. make[2]: [Makefile:1080: src/common/BetaBin.o] Error 1 make[2]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build' make[1]: [Makefile:1102: all-recursive] Error 1 make[1]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build' make: *** [Makefile:622: all] Error 2

I was hoping you could help me understand what is going wrong with the install.

guilhermesena1 commented 3 years ago

Hi Hannah,

Seems like you don't have the GNU scientific library installed (GSL). Could you try the command below and seeing if this fixes the problem?

sudo apt install libgsl-dev

Let us know!

Hannah1746 commented 3 years ago

I tried that and I get: (base) computerb@lab:~/Documents/apps/methpipe-4.1.1/build$ sudo apt install libgsl-dev Reading package lists... Done Building dependency tree
Reading state information... Done libgsl-dev is already the newest version (2.1+dfsg-2). 0 upgraded, 0 newly installed, 0 to remove and 43 not upgraded.

(base) computer@lab:~/Documents/apps/methpipe-4.1.1/build$ make make all-recursive make[1]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build' Making all in src/smithlab_cpp make[2]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' make all-am make[3]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' CXX GenomicRegion.lo CXX MappedRead.lo CXX OptionParser.lo CXX QualityScore.lo CXX bisulfite_utils.lo CXX chromosome_utils.lo CXX sim_utils.lo CXX smithlab_os.lo CXX smithlab_utils.lo CXX zlib_wrapper.lo CXX dna_four_bit.lo CXXLD libsmithlab_cpp.la make[3]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' make[2]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build/src/smithlab_cpp' make[2]: Entering directory '/home/lab/Documents/apps/methpipe-4.1.1/build' CXX src/common/BetaBin.o ../src/common/BetaBin.cpp:31:10: fatal error: gsl/gsl_sf_psi.h: No such file or directory

include <gsl/gsl_sf_psi.h>

      ^~~~~~~~~~~~~~~~~~

compilation terminated. make[2]: [Makefile:1080: src/common/BetaBin.o] Error 1 make[2]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build' make[1]: [Makefile:1102: all-recursive] Error 1 make[1]: Leaving directory '/home/lab/Documents/apps/methpipe-4.1.1/build' make: *** [Makefile:622: all] Error 2

guilhermesena1 commented 3 years ago

hm...this means that either you are not looking for the libs/includes in the standard linux directories (i.e. /usr/include and /usr/local/include). Do you see a gsl directory under either of these directories?

It may also be the case that you ran ../configure and set up lib/include directories that were not updated once you reran make, so I would try a fresh rebuild of everything:

make clean
../configure
make
make install

Unrelated, I would also recommend you use methpipe 5.0.0 instead of the version you are using. Lots of improvements have been made in this version.

Hannah1746 commented 3 years ago

So gsl is in the /usr/include directory. I download the methpipe 5.0.0 and now I am having troubles running the ../configure. When I do I get this error: (base) lab@lab-VAA:~/Documents/apps/methpipe-5.0.0/build$ ../configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes /bin/bash: /home/lab/Documents/apps/methpipe-5.0.0/build/missing: No such file or directory configure: WARNING: 'missing' script is too old or missing checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether /home/lab/Documents/apps/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ accepts -g... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of /home/lab/Documents/apps/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++... none checking whether /home/lab/Documents/apps/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ supports C++11 features with -std=c++11... yes checking for ranlib... /home/lab/Documents/apps/anaconda3/bin/x86_64-conda_cos6-linux-gnu-ranlib checking for library containing hts_version... no configure: error: in `/home/lab/Documents/apps/methpipe-5.0.0/build': configure: error: Failed to locate HTSLib on your system. Please use the LDFLAGS and CPPFLAGS variables to specify the directories where the HTSLib library and headers can be found.

See `config.log' for more details

andrewdavidsmith commented 3 years ago

This tells us that if you have installed HTSLib, then it has been installed in a non-standard location, relative to your compiler. I see anaconda3 among these messages. That's usually an indication that problems will arise eventually. But you should be able to overcome such issues (in the short run) by using he LDFLAGS and CPPFLAGS to indicate where HTSLib has been installed.

guilhermesena1 commented 3 years ago

maybe it can be as simple as

sudo apt install libhts-dev
Hannah1746 commented 3 years ago

I try the sudo apt install libhts-dev but then when I run ../configure I get the same error again. I am a little confused about the flags andrew suggested. Where would I be using these flags? when I run ../configure?

andrewdavidsmith commented 3 years ago

These are indicated below step 4 in the README.md that I think is released with ver. 5.0.0. But the explanation is there on the front page of GitHub for methpipe. Let us know if you can't find it.

guilhermesena1 commented 3 years ago

if your default library and include path are pointed to conda this may solve it

 conda install -c bioconda htslib 
moqri commented 2 years ago

I am having exactly same problems: gsl/gsl_sf_psi.h: No such file or directory for version 4 (while gsl is installed) and Failed to locate HTSLib on your system. Please use the LDFLAGS and CPPFLAGS variables to specify the directories where the HTSLib library and headers can be found. (while I point to my htslib lib and header from my conda) ../configure CPPFLAGS='-I /home/moqri/anaconda3/pkgs/htslib-1.9-ha228f0b_7/include/htslib' LDFLAGS='-L/home/moqri/anaconda3/pkgs/htslib-1.9-ha228f0b_7/lib' --prefix=/home/moqri/methpipe5 Could you please check and help!

Hannah1746 commented 2 years ago

Hey moqri,

It seems that it is more a problem with htslib lib install than this program. Our lab is still working on trying to find out how to get it to install correctly. I will let you know when we have made any progress.

andrewdavidsmith commented 2 years ago

@moqri can you paste in your precise error message and on which steps? I see two error messages, but I'm not sure at which stage during the installation they appeared. @Hannah1746 I can try to help a bit more on this -- I might not be able to solve the problem, but we are now tied to htslib, so I'll try to help.

avkermanov commented 2 years ago

As there was no continuation on the thread, I will provide my error code, as I have exactly same problem. Here is the listing:

make all-recursive make[1]: Entering directory '/home/akermanov/Packages/methpipe-4.1.1' Making all in src/smithlab_cpp make[2]: Entering directory '/home/akermanov/Packages/methpipe-4.1.1/src/smithlab_cpp' make all-am make[3]: Entering directory '/home/akermanov/Packages/methpipe-4.1.1/src/smithlab_cpp' make[3]: Leaving directory '/home/akermanov/Packages/methpipe-4.1.1/src/smithlab_cpp' make[2]: Leaving directory '/home/akermanov/Packages/methpipe-4.1.1/src/smithlab_cpp' make[2]: Entering directory '/home/akermanov/Packages/methpipe-4.1.1' CXX src/common/BetaBin.o src/common/BetaBin.cpp:31:10: fatal error: gsl/gsl_sf_psi.h: No such file or directory

include <gsl/gsl_sf_psi.h>

^~~~~~ compilation terminated. Makefile:1080: recipe for target 'src/common/BetaBin.o' failed make[2]: [src/common/BetaBin.o] Error 1 make[2]: Leaving directory '/home/akermanov/Packages/methpipe-4.1.1' Makefile:1102: recipe for target 'all-recursive' failed make[1]: [all-recursive] Error 1 make[1]: Leaving directory '/home/akermanov/Packages/methpipe-4.1.1' Makefile:622: recipe for target 'all' failed make: *** [all] Error 2

moqri commented 2 years ago

Thanks @andrewdavidsmith , I am getting the error when running the config command: -bash-4.2$ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of g++... none checking whether g++ supports C++11 features with -std=c++11... yes checking for ranlib... ranlib checking for library containing hts_version... no configure: error: in `/labs/mpsnyder/moqri/z/soft/methpipe-5.0.0': configure: error: Failed to locate HTSLib on your system. Please use the LDFLAGS and CPPFLAGS variables to specify the directories where the HTSLib library and headers can be found.

moqri commented 2 years ago

Thanks to the personal communication with Dr. Smith, this issue is resolved for me

Dr. Smith: "I personally set things up without sudo. The issues are (1) HTSLib, and (2) GSL. Both of those can be installed by you, but GSL should be already installed, although some sys admins in science just don’t understand such things…

Installing GSL with a configure; make; make install is relatively easy. Then after that’s done in your user space, I can help you make sure your methpipe build can see it. Similar for HTSLib, but that might be easier. It’s possible conda can take care of both of these, but I’m not entirely sure."

My config after following his advise: ../configure CPPFLAGS='-I/labs/mpsnyder/moqri/soft/htslib/inst/include -I/home/moqri/gsl/include' LDFLAGS='-L/labs/mpsnyder/moqri/soft/htslib/inst/lib -L/home/moqri/gsl/lib'

P.S. My team from Stanford Medicine sends their thanks and love to Smith Lab!