salmon icon indicating copy to clipboard operation
salmon copied to clipboard

problem in installing salmon

Open shanmugavadivelps opened this issue 6 years ago • 7 comments

Is the bug primarily related to salmon (bulk mode) or alevin (single-cell mode)?

Describe the bug I installed salmon using cmake command

i.e mkdir build/.. cd build... cmake and i encountered these To Reproduce Steps and data to reproduce the behavior:

Specifically, please provide at least the following information:

  • latest version 1.0

Expected behavior A clear and concise description of what you expected to happen.

Screenshots -- fetch PUFFERFISH exit code 0 -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.a (found version "1.2.11") CMake Error at CMakeLists.txt:319 (find_package): By not providing "FindIconv.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Iconv", but CMake did not find one.

Could not find a package configuration file provided by "Iconv" with any of the following names:

IconvConfig.cmake
iconv-config.cmake

Add the installation prefix of "Iconv" to CMAKE_PREFIX_PATH or set "Iconv_DIR" to a directory containing one of the above files. If "Iconv" provides a separate development package or SDK, be sure it has been installed.

-- Configuring incomplete, errors occurred! See also "/home/iipr/trinityrnaseq-Trinity-v2.8.5/salmon/build/CMakeFiles/CMakeOutput.log". See also "/home/iipr/trinityrnaseq-Trinity-v2.8.5/salmon/build/CMakeFiles/CMakeError.log" Desktop (please complete the following information):

  • OS: Ubuntu
  • Version [ If you are on OSX, the output of sw_vers. If you are on linux the output of uname -a and lsb_release -a]

Additional context Add any other context about the problem here.

shanmugavadivelps avatar Nov 21 '19 09:11 shanmugavadivelps

Hi @shanmugavadivelps,

This is because, to properly find and link libiconv, the build requires a version of CMake that ships with FindIConv.cmake. So, to build salmon from source, you should have at least CMake version 3.12. Internally and on our continuous integration servers, we use version 3.15.

Also, I'll mention that it may not be essential to build from source. Salmon is available via Bioconda, and a docker image is available via DockerHub. Also, we have a pre-compiled binary that should work on many linux distributions available under our releases.

rob-p avatar Nov 21 '19 15:11 rob-p

If Salmon requires CMake 3.12 (or later), it would probably be worth bumping the cmake_minimum_required to this version in CMakeLists.txt. It's currently set to 3.9.

This would at least point users to the "proper" error. At the moment, it's unclear if Salmon meant to provide its own FindIconv.cmake (like it does for several other packages) or not.

cljacobs avatar Nov 22 '19 20:11 cljacobs

@cljacobs : yes; great point. This has been fixed in develop. It was an oversight due to our testing infrastructure already having a newer version of CMake that didn't run into this problem.

rob-p avatar Nov 22 '19 21:11 rob-p

Thanks for your input sir.

On Sat, Nov 23, 2019 at 3:07 AM Rob Patro [email protected] wrote:

@cljacobs https://github.com/cljacobs : yes; great point. This has been fixed in develop https://github.com/COMBINE-lab/salmon/blob/develop/CMakeLists.txt#L1. It was an oversight due to our testing infrastructure already having a newer version of CMake that didn't run into this problem.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/COMBINE-lab/salmon/issues/453?email_source=notifications&email_token=AN2V7HXRZ7T5IT4HH7XJX2DQVBGLJA5CNFSM4JP7NHKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE66GMI#issuecomment-557703985, or unsubscribe https://github.com/notifications/unsubscribe-auth/AN2V7HTSAKLGW4THGPC2QSDQVBGLJANCNFSM4JP7NHKA .

-- Shanmugavadivel, P. S. Scientist (Agricultural Biotechnology),

#216, Block A, ICAR-Indian Institute of Pulses Research,

Min. of Agriculture & Farmers Welfare,

Govt. of India,Kanpur - 208 024. email: [email protected] [email protected] www.iipr.res.in http://www.iipr.res.in

shanmugavadivelps avatar Nov 23 '19 07:11 shanmugavadivelps

Thanks for the help sir

On Sat, Nov 23, 2019 at 1:52 AM cljacobs [email protected] wrote:

If Salmon requires CMake 3.12 (or later), it would probably be worth bumping the cmake_minimum_required to this version in CMakeLists.txt. It's currently set to 3.9.

This would at least point users to the "proper" error. At the moment, it's unclear if Salmon meant to provide its own FindIconv.cmake (like it does for several other packages) or not.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/COMBINE-lab/salmon/issues/453?email_source=notifications&email_token=AN2V7HUD74JWFOQATIRUGM3QVA5QXA5CNFSM4JP7NHKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE6YORY#issuecomment-557680455, or unsubscribe https://github.com/notifications/unsubscribe-auth/AN2V7HT2IHF63T56PP3EECTQVA5QXANCNFSM4JP7NHKA .

-- Shanmugavadivel, P. S. Scientist (Agricultural Biotechnology),

#216, Block A, ICAR-Indian Institute of Pulses Research,

Min. of Agriculture & Farmers Welfare,

Govt. of India,Kanpur - 208 024. email: [email protected] [email protected] www.iipr.res.in http://www.iipr.res.in

shanmugavadivelps avatar Nov 23 '19 07:11 shanmugavadivelps

Thanks sir

On Thu, Nov 21, 2019 at 9:27 PM Rob Patro [email protected] wrote:

Hi @shanmugavadivelps https://github.com/shanmugavadivelps,

This is because, to properly find and link libiconv, the build requires a version of CMake that ships with FindIConv.cmake. So, to build salmon from source, you should have at least CMake version 3.12. Internally and on our continuous integration servers, we use version 3.15.

Also, I'll mention that it may not be essential to build from source. Salmon is available via Bioconda, and a docker image is available via DockerHub. Also, we have a pre-compiled binary that should work on many linux distributions available under our releases https://github.com/COMBINE-lab/salmon/releases.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/COMBINE-lab/salmon/issues/453?email_source=notifications&email_token=AN2V7HW3GLUZR52T4BJKOFLQU2VYHA5CNFSM4JP7NHKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE2W3DI#issuecomment-557149581, or unsubscribe https://github.com/notifications/unsubscribe-auth/AN2V7HTVJB3TCKRKDY6YKI3QU2VYHANCNFSM4JP7NHKA .

-- Shanmugavadivel, P. S. Scientist (Agricultural Biotechnology),

#216, Block A, ICAR-Indian Institute of Pulses Research,

Min. of Agriculture & Farmers Welfare,

Govt. of India,Kanpur - 208 024. email: [email protected] [email protected] www.iipr.res.in http://www.iipr.res.in

shanmugavadivelps avatar Nov 23 '19 07:11 shanmugavadivelps

I've run into this (or a similar) issue attempting to install Salmon on the UC Berkeley HPC cluster.

Iconv was present within one of our Python installs, but that didn't seem to have the header files, so I installed libiconv/1.16 thinking this was a dependency issue. Unfortunately this didn't seem to help. Any guidance would be greatly appreciated.

Here is my build script to the point of failure:

#!/bin/sh                                                                                                                
MODULE_HOME=/clusterfs/vector/home/groups/software/sl-7.x86_64
PACKAGE_NAME=salmon
GITHUB_URL=https://api.github.com/repos/COMBINE-lab/salmon/releases/latest
VERSION=$(curl -s $GITHUB_URL | \
              grep '"tag_name":' | \
              cut -d : -f 2,3 | \
              tr -d \",v | \
              xargs)
LATEST_RELEASE=$(curl -s $GITHUB_URL | \
                     grep '"tarball_url"' | \
                     cut -d : -f 2,3 | \
                     tr -d \", | \
                     xargs)
module load gcc/7.4.0 cmake/3.15.1 boost/1.70.0-gcc libiconv/1.16
export CC=`which gcc`
export CXX=`which c++`

cd $MODULE_HOME
mkdir -p source/$PACKAGE_NAME/$VERSION
INSTALL_DIR=$MODULE_HOME/modules/$PACKAGE_NAME/$VERSION
mkdir -p $INSTALL_DIR
mkdir -p modfiles/$PACKAGE_NAME


cd source/$PACKAGE_NAME/$VERSION
wget $LATEST_RELEASE -O - | tar -xz --strip-components 1
cmake -DBOOST_ROOT=/global/software/sl-7.x86_64/modules/gcc/7.4.0/boost/1.70.0-gcc -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR
make

And the tail of the output from make:

   creating: /clusterfs/vector/home/groups/software/sl-7.x86_64/source/salmon/1.5.1/scripts/../external/pufferfish-salmon-v1.5.1/tests/compile_tests/
  inflating: /clusterfs/vector/home/groups/software/sl-7.x86_64/source/salmon/1.5.1/scripts/../external/pufferfish-salmon-v1.5.1/tests/compile_tests/int128_numeric_limits.cpp  
-- fetch PUFFERFISH exit code 0
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11") 
-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Failed
CMake Error at /global/home/groups/consultsw/sl-7.x86_64/modules/cmake/3.15.1/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Iconv (missing: Iconv_LIBRARY)
Call Stack (most recent call first):
  /global/home/groups/consultsw/sl-7.x86_64/modules/cmake/3.15.1/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /global/home/groups/consultsw/sl-7.x86_64/modules/cmake/3.15.1/share/cmake-3.15/Modules/FindIconv.cmake:120 (find_package_handle_standard_args)
  CMakeLists.txt:362 (find_package)


-- Configuring incomplete, errors occurred!
See also "/clusterfs/vector/home/groups/software/sl-7.x86_64/source/salmon/1.5.1/CMakeFiles/CMakeOutput.log".
See also "/clusterfs/vector/home/groups/software/sl-7.x86_64/source/salmon/1.5.1/CMakeFiles/CMakeError.log".

I'm also attaching the full CMake logs.

This is right at the edge of my knowledge, so I'm not 100% sure I got libiconv installed correctly. Compilation completed without error, and I added the bin, include, and lib directories to PATH, CPATH, and LD_LIBRARY_PATH, respectively.

CMakeError.log CMakeOutput.log

channsoden avatar Jun 16 '21 21:06 channsoden