luntergroup / octopus

Bayesian haplotype-based mutation calling
MIT License
299 stars 37 forks source link

Install Guide Centos 7 for cluster admins #197

Closed HansBartelmess closed 2 years ago

HansBartelmess commented 2 years ago

For all centos cluster admins go to the last entry for install instructions.

Dear Developers of octopus

We got a request from a user of our cluster system to make octopus available as a module. We are working with a module based software stack to make it easy for the user to just load and use the software. Also this gives us a solution to manage software centrally as admins and saves a lot of disc space. I am sorry for the long text after this line, but i wanted to describe and show the problems clearly.

I tried the different ways of installing octopus. And the conda way seems to be only supporting ubuntu.



1. way Our build host with cmake

[odcf-sw@odcf-vm121 build]$ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
[odcf-sw@odcf-vm121 build]$ module list
Currently Loaded Modulefiles:
  1) gcc/9.4.0       2) git/2.26.0      3) gmp/6.1.0       4) cmake/3.20.5    5) boost/1.69.0    6) htslib/1.11.0

echo $PATH
/software/htslib/1.11.0/bin:/software/boost/1.69.0/lib:/software/cmake/3.20.5/bin:/software/git/2.26.0/bin:/software/gcc/9.4.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/software/bin:/root/bin:/opt/sysadmin/bin:/opt/sysadmin/local/bin:/opt/sysadmin/tools/useradm:/opt/sysadmin/tools/dhcpdump/bin:/opt/sysadmin/tools/ipam:/opt/sysadmin/tools/testssl.sh:/opt/sysadmin/tools/mem:/opt/sysadmin/tools/cpu:/opt/sysadmin/tools/fs:/software/bin
[odcf-sw@odcf-vm121 build]$ echo $LD_LIBRARY_PATH
/software/boost/1.69.0/lib:/software/gmp/6.1.0/lib:/software/gcc/9.4.0/lib64:/software/gcc/9.4.0/lib

All the prerequisites are satisfied it seems....

cmake -DCMAKE_INSTALL_PREFIX:PATH=/software/octopus/0.7.4 ..

With only this command it will not check for the loaded gmp/6.1.0 module in the $PATH variable instead it seems to only look for the systems /usr/bin i also created some extra setenv variables to set those at the loading of the module:

Here is an example module file

set     pkg             gmp
set     name            "gmp"
set     version         6.1.0

set     topdir          /software/$pkg/$version
set     sys             linux86
set     helpline        "$pkg/$version - sets the Environment for $name $version"

proc ModulesHelp { } {
        global version helpline
        puts stderr "$helpline"
}

module-whatis   "$helpline"

prepend-path    LD_LIBRARY_PATH                    $topdir/lib
prepend-path    C_INCLUDE_PATH                     $topdir/include
setenv          GMP_INCLUDES                       $topdir/include
setenv          GMP_LIBRARIES                      $topdir/lib


and the boost end part:

prepend-path    PATH                    $topdir/lib
prepend-path    LD_LIBRARY_PATH         $topdir/lib
prepend-path    C_INCLUDE_PATH          $topdir/include/boost
setenv          BOOST_DIR               $topdir
setenv          BOOST_ROOT              $topdir
setenv          BOOST_INCLUDEDIR        $topdir/include
setenv          BOOST_LIBRARYDIR        $topdir/lib
-- GMP_INCLUDES=/usr/include
-- Found GMP: /usr/include (Required is at least version "5.1.0") 
-- GMP include dir: /usr/include
-- GMP libraries: /usr/lib64/libgmp.so

So I added those 2 Lines to the installation command: 
cmake -DCMAKE_INSTALL_PREFIX:PATH=/software/octopus/0.7.4 -DGMP_INCLUDES=/software/gmp/6.1.0/include -DGMP_LIBRARIES=/software/gmp/6.1.0/lib ..

-- GMP_INCLUDES=/software/gmp/6.1.0/include
-- Found GMP: /software/gmp/6.1.0/include (Required is at least version "5.1.0") 
-- GMP include dir: /software/gmp/6.1.0/include
-- GMP libraries: /software/gmp/6.1.0/lib

After adding those commands cmake works mentioning the warning:

WARNING: Target "octopus" requests linking to directory "/software/gmp/6.1.0/lib". Targets may link only to libraries. CMake is dropping the item.



make install then fails with:


[ 34%] Building CXX object src/CMakeFiles/octopus.dir/core/callers/cancer_caller.cpp.o
In Datei, eingebunden von /software/boost/1.69.0/include/boost/multiprecision/traits/is_variable_precision.hpp:10,
                 von /software/boost/1.69.0/include/boost/multiprecision/detail/precision.hpp:9,
                 von /software/boost/1.69.0/include/boost/multiprecision/number.hpp:23,
                 von /software/boost/1.69.0/include/boost/multiprecision/cpp_dec_float.hpp:29,
                 von /data/build/octopus/test/octopus/src/basics/phred.hpp:16,
                 von /data/build/octopus/test/octopus/src/core/callers/cancer_caller.hpp:24,
                 von /data/build/octopus/test/octopus/src/core/callers/cancer_caller.cpp:4:
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp: In Instanziierung von »typename boost::enable_if_c<(boost::multiprecision::number_category<Num>::value == boost::multiprecision::number_kind_floating_point), boost::multiprecision::number<Backend, ExpressionTemplates> >::type boost::multiprecision::frexp(const boost::multiprecision::number<Backend, ExpressionTemplates>&, int*) [with T = boost::multiprecision::backends::gmp_float<1000>; boost::multiprecision::expression_template_option ExpressionTemplates = boost::multiprecision::et_on; typename boost::enable_if_c<(boost::multiprecision::number_category<Num>::value == boost::multiprecision::number_kind_floating_point), boost::multiprecision::number<Backend, ExpressionTemplates> >::type = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >]«:
/software/boost/1.69.0/include/boost/math/special_functions/next.hpp:205:21:   erfordert durch »T boost::math::detail::float_next_imp(const T&, const true_&, const Policy&) [with T = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; Policy = boost::math::policies::policy<boost::math::policies::domain_error<boost::math::policies::errno_on_error>, boost::math::policies::pole_error<boost::math::policies::errno_on_error>, boost::math::policies::overflow_error<boost::math::policies::errno_on_error>, boost::math::policies::evaluation_error<boost::math::policies::errno_on_error>, boost::math::policies::rounding_error<boost::math::policies::errno_on_error> >; mpl_::true_ = mpl_::bool_<true>]«
/software/boost/1.69.0/include/boost/math/special_functions/next.hpp:267:33:   erfordert durch »typename boost::math::tools::promote_args<T>::type boost::math::float_next(const T&, const Policy&) [with T = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; Policy = boost::math::policies::policy<boost::math::policies::domain_error<boost::math::policies::errno_on_error>, boost::math::policies::pole_error<boost::math::policies::errno_on_error>, boost::math::policies::overflow_error<boost::math::policies::errno_on_error>, boost::math::policies::evaluation_error<boost::math::policies::errno_on_error>, boost::math::policies::rounding_error<boost::math::policies::errno_on_error> >; typename boost::math::tools::promote_args<T>::type = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >]«
/software/boost/1.69.0/include/boost/math/special_functions/next.hpp:435:65:   erfordert durch »typename boost::math::tools::promote_args<RT1, RT2>::type boost::math::nextafter(const T&, const U&, const Policy&) [with T = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; U = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; Policy = boost::math::policies::policy<boost::math::policies::domain_error<boost::math::policies::errno_on_error>, boost::math::policies::pole_error<boost::math::policies::errno_on_error>, boost::math::policies::overflow_error<boost::math::policies::errno_on_error>, boost::math::policies::evaluation_error<boost::math::policies::errno_on_error>, boost::math::policies::rounding_error<boost::math::policies::errno_on_error> >; typename boost::math::tools::promote_args<RT1, RT2>::type = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >]«
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp:2374:36:   erfordert durch »boost::multiprecision::number<Backend, ExpressionTemplates> boost::multiprecision::nextafter(const boost::multiprecision::number<Backend, ExpressionTemplates>&, const boost::multiprecision::number<Backend, ExpressionTemplates>&) [with Backend = boost::multiprecision::backends::gmp_float<1000>; boost::multiprecision::expression_template_option ExpressionTemplates = boost::multiprecision::et_on]«
/data/build/octopus/test/octopus/src/basics/phred.hpp:103:62:   erfordert durch »octopus::Phred<Q> octopus::probability_true_to_phred(boost::multiprecision::number<From>) [with T = double; Backend = boost::multiprecision::backends::gmp_float<1000>; typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type = void]«
/data/build/octopus/test/octopus/src/core/callers/cancer_caller.cpp:932:61:   von hier erfordert
/software/boost/1.69.0/include/boost/multiprecision/detail/number_base.hpp:151:39: Fehler: das Verschieben eines lokalen Objekts in einer return-Anweisung verhindert das Einsparen der Kopie [-Werror=pessimizing-move]
  151 | #  define BOOST_MP_MOVE(x) std::move(x)
      |                                       ^
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp:2708:11: Anmerkung: bei Substitution des Makros »BOOST_MP_MOVE«
 2708 |    return BOOST_MP_MOVE(result);
      |           ^~~~~~~~~~~~~
/software/boost/1.69.0/include/boost/multiprecision/detail/number_base.hpp:151:39: Anmerkung: entfernen Sie den Aufruf von »std::move«
  151 | #  define BOOST_MP_MOVE(x) std::move(x)
      |                                       ^
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp:2708:11: Anmerkung: bei Substitution des Makros »BOOST_MP_MOVE«
 2708 |    return BOOST_MP_MOVE(result);
      |           ^~~~~~~~~~~~~
cc1plus: Alle Warnungen werden als Fehler behandelt
make[2]: *** [src/CMakeFiles/octopus.dir/core/callers/cancer_caller.cpp.o] Fehler 1
make[1]: *** [src/CMakeFiles/octopus.dir/all] Fehler 2
make: *** [all] Fehler 2

I also tried boost modules in version 1.70 and 1.71 instead of the 1.65 needed coming to the same error.



2. Way

 desktop machine 
 CentOS Linux release 7.9.2009 (Core)

As the installation you suggest starts with a git clone command I first load the module for it and some support stuff:

-bash-4.2$ module load gcc/9.4.0 git/2.26.0 miniconda/4.9.2 curl/7.77.0
-bash-4.2$ which git
/software/git/2.26.0/bin/git
-bash-4.2$ echo $PATH
/software/gcc/9.4.0/bin:/software/miniconda/4.9.2/bin:/software/git/2.26.0/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/software/bin
-bash-4.2$ which python
/software/miniconda/4.9.2/bin/python
-bash-4.2$ which python3
/software/miniconda/4.9.2/bin/python3
-bash-4.2$ python --version
Python 3.9.1
-bash-4.2$ curl --version
curl 7.77.0 (x86_64-pc-linux-gnu) libcurl/7.77.0 OpenSSL/1.0.2k-fips zlib/1.2.7 OpenLDAP/2.4.44
Release-Date: 2021-05-26

I know here curl is not in the PATH, but it was trust me. ;) So we set some prerequisite that we could satisfy

-bash-4.2$ octopus/scripts/install.py --dependencies --forests --prefix=/data/hans/oct

Error: Please update your system curl.
Minimum required version: 7.41.0
Your curl version: 7.29.0
Your curl executable: /usr/bin/curl
Error: Please update your system Git.
Minimum required version: 2.7.0
Your Git version: 1.8.3.1
Your Git executable: /usr/bin/git
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:97e639a64dcec285392b53ad804b5334c324f1d2a8bdc2b5087b8bf8051e332f

………(cuttet out the other stuff that worked)


==> Installing cmake dependency: libmpc
==> Pouring libmpc--1.2.1.x86_64_linux.bottle.tar.gz
🍺  /data/hans/octopus/build/brew/Cellar/libmpc/1.2.1: 14 files, 550.0KB
==> Installing cmake dependency: gcc@5
==> ../configure --prefix=/data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7 --libdir=/data/hans/octopus/build/
==> make bootstrap
Last 15 lines from /home/bartelme/.cache/Homebrew/Logs/gcc@5/02.make:
# @multilib_flags@ is still needed because this may use
# /tmp/gccA5-20210714-24898-ti425h/gcc-5.5.0/build/./gcc/xgcc -B/tmp/gccA5-20210714-24898-ti425h/gcc-5.5.0/build/./gcc/ -B/data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/bin/ -B/data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/lib/ -isystem /data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/include -isystem /data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/sys-include    and -O2  -g -O2 -DIN_GCC    -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  directly.
# @multilib_dir@ is not really necessary, but sometimes it has
# more uses than just a directory name.
/bin/sh ../../../libgcc/../mkinstalldirs .
/tmp/gccA5-20210714-24898-ti425h/gcc-5.5.0/build/./gcc/xgcc -B/tmp/gccA5-20210714-24898-ti425h/gcc-5.5.0/build/./gcc/ -B/data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/bin/ -B/data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/lib/ -isystem /data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/include -isystem /data/hans/octopus/build/brew/Cellar/gcc@5/5.5.0_7/x86_64-unknown-linux-gnu/sys-include    -O2  -g -O2 -DIN_GCC    -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o getf2_s.o letf2_s.o eqtf2_s.o _divtc3_s.o _multc3_s.o _powitf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
ld: cannot find crti.o: Datei oder Verzeichnis nicht gefunden
collect2: error: ld returned 1 exit status
make[3]: *** [libgcc_s.so] Fehler 1
make[3]: Leaving directory `/tmp/gccA5-20210714-24898-ti425h/gcc-5.5.0/build/x86_64-unknown-linux-gnu/libgcc'
make[2]: *** [all-stage1-target-libgcc] Fehler 2
make[2]: Leaving directory `/tmp/gccA5-20210714-24898-ti425h/gcc-5.5.0/build'
make[1]: *** [stage1-bubble] Fehler 2
make[1]: Leaving directory `/tmp/gccA5-20210714-24898-ti425h/gcc-5.5.0/build'
make: *** [bootstrap] Fehler 2

READ THIS: https://docs.brew.sh/Troubleshooting

These open issues may also help:
`brew install gcc` requires gcc https://github.com/Homebrew/linuxbrew-core/issues/23436
gcc@5: force cellar: :any on Linux https://github.com/Homebrew/linuxbrew-core/pull/23361
`ld: cannot find crti.o` error when installing `gcc@5` on CentOS 7 https://github.com/Homebrew/linuxbrew-core/issues/23460
Traceback (most recent call last):
  File "/data/hans/octopus/scripts/install.py", line 428, in main
    ret = call(["cmake3"] + cmake_options + [".."])
  File "/software/miniconda/4.9.2/lib/python3.9/subprocess.py", line 349, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/software/miniconda/4.9.2/lib/python3.9/subprocess.py", line 947, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/software/miniconda/4.9.2/lib/python3.9/subprocess.py", line 1819, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'cmake3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/data/hans/octopus/scripts/install.py", line 521, in <module>
    main(args)
  File "/data/hans/octopus/scripts/install.py", line 430, in main
    ret = call(["cmake"] + cmake_options + [".."])
  File "/software/miniconda/4.9.2/lib/python3.9/subprocess.py", line 349, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/software/miniconda/4.9.2/lib/python3.9/subprocess.py", line 947, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/software/miniconda/4.9.2/lib/python3.9/subprocess.py", line 1819, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'cmake'

I appreciate any help on this installation.

Regards, Hans

HansBartelmess commented 2 years ago

Update when loading all the modules on the desktop there is a different error:

module load gcc/9.4.0 git/2.26.0 boost/1.69.0 htslib/1.11.0 gmp/6.1.0 cmake/3.20.5 curl/7.77.0 miniconda/4.9.2

-- Found Boost: /software/boost/1.69.0/include (found suitable version "1.69.0", minimum required is "1.65") found components: system filesystem program_options date_time log_setup log iostreams timer thread regex chrono atomic 
-- Boost include dir: /software/boost/1.69.0/include
-- Boost libraries: /software/boost/1.69.0/lib/libboost_system.so/software/boost/1.69.0/lib/libboost_filesystem.so/software/boost/1.69.0/lib/libboost_program_options.so/software/boost/1.69.0/lib/libboost_date_time.so/software/boost/1.69.0/lib/libboost_log_setup.so/software/boost/1.69.0/lib/libboost_log.so/software/boost/1.69.0/lib/libboost_iostreams.so/software/boost/1.69.0/lib/libboost_timer.so/software/boost/1.69.0/lib/libboost_thread.so-pthread/software/boost/1.69.0/lib/libboost_regex.so/software/boost/1.69.0/lib/libboost_chrono.so/software/boost/1.69.0/lib/libboost_atomic.so
-- GMP_INCLUDES=GMP_INCLUDES-NOTFOUND
CMake Error at /software/cmake/3.20.5/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GMP (missing: GMP_INCLUDES GMP_LIBRARIES GMP_VERSION_OK)
  (Required is at least version "5.1.0")
Call Stack (most recent call first):
  /software/cmake/3.20.5/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  build/cmake/modules/FindGMP.cmake:74 (find_package_handle_standard_args)
  src/CMakeLists.txt:782 (find_package)

-- Configuring incomplete, errors occurred!
See also "/data/octopus/build/CMakeFiles/CMakeOutput.log".
See also "/data/octopus/build/CMakeFiles/CMakeError.log".

When we check the ENV variables they are set correctly:

-bash-4.2$ echo $GMP_INCLUDES
/software/gmp/6.1.0/include
-bash-4.2$ echo $GMP_LIBRARIES
/software/gmp/6.1.0/lib

so not only those 2 need to be explicitly set by the installer options:

octopus/scripts/install.py --dependencies --forests --prefix=/data/hans/oct --gmp=/software/gmp/6.1.0 --htslib=/software/htslib/1.11.0

-- GMP_INCLUDES=/software/gmp/6.1.0/include
-- Found GMP: /software/gmp/6.1.0/include (Required is at least version "5.1.0") 
-- GMP include dir: /software/gmp/6.1.0/include
-- GMP libraries: /software/gmp/6.1.0/lib/libgmp.so
-- Found HTSlib 
--    HTSlib include dirs: /software/htslib/1.11.0/include
--    HTSlib libraries: /software/htslib/1.11.0/lib/libhts.so
-- IPO is supported!
-- Configuring done
-- Generating done
-- Build files have been written to: /data/octopus/build
Installing Octopus 0.7.4 (master ed012a6e)

He found them! but instead of 34% he fails at 35%:

[ 35%] Building CXX object src/CMakeFiles/octopus.dir/core/callers/individual_caller.cpp.o
In Datei, eingebunden von /software/boost/1.69.0/include/boost/multiprecision/traits/is_variable_precision.hpp:10,
                 von /software/boost/1.69.0/include/boost/multiprecision/detail/precision.hpp:9,
                 von /software/boost/1.69.0/include/boost/multiprecision/number.hpp:23,
                 von /software/boost/1.69.0/include/boost/multiprecision/cpp_dec_float.hpp:29,
                 von /data/octopus/src/basics/phred.hpp:16,
                 von /data/octopus/src/core/callers/cancer_caller.hpp:24,
                 von /data/octopus/src/core/callers/cancer_caller.cpp:4:
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp: In Instanziierung von »typename boost::enable_if_c<(boost::multiprecision::number_category<Num>::value == boost::multiprecision::number_kind_floating_point), boost::multiprecision::number<Backend, ExpressionTemplates> >::type boost::multiprecision::frexp(const boost::multiprecision::number<Backend, ExpressionTemplates>&, int*) [with T = boost::multiprecision::backends::gmp_float<1000>; boost::multiprecision::expression_template_option ExpressionTemplates = boost::multiprecision::et_on; typename boost::enable_if_c<(boost::multiprecision::number_category<Num>::value == boost::multiprecision::number_kind_floating_point), boost::multiprecision::number<Backend, ExpressionTemplates> >::type = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >]«:
/software/boost/1.69.0/include/boost/math/special_functions/next.hpp:205:21:   erfordert durch »T boost::math::detail::float_next_imp(const T&, const true_&, const Policy&) [with T = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; Policy = boost::math::policies::policy<boost::math::policies::domain_error<boost::math::policies::errno_on_error>, boost::math::policies::pole_error<boost::math::policies::errno_on_error>, boost::math::policies::overflow_error<boost::math::policies::errno_on_error>, boost::math::policies::evaluation_error<boost::math::policies::errno_on_error>, boost::math::policies::rounding_error<boost::math::policies::errno_on_error> >; mpl_::true_ = mpl_::bool_<true>]«
/software/boost/1.69.0/include/boost/math/special_functions/next.hpp:267:33:   erfordert durch »typename boost::math::tools::promote_args<T>::type boost::math::float_next(const T&, const Policy&) [with T = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; Policy = boost::math::policies::policy<boost::math::policies::domain_error<boost::math::policies::errno_on_error>, boost::math::policies::pole_error<boost::math::policies::errno_on_error>, boost::math::policies::overflow_error<boost::math::policies::errno_on_error>, boost::math::policies::evaluation_error<boost::math::policies::errno_on_error>, boost::math::policies::rounding_error<boost::math::policies::errno_on_error> >; typename boost::math::tools::promote_args<T>::type = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >]«
/software/boost/1.69.0/include/boost/math/special_functions/next.hpp:435:65:   erfordert durch »typename boost::math::tools::promote_args<RT1, RT2>::type boost::math::nextafter(const T&, const U&, const Policy&) [with T = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; U = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >; Policy = boost::math::policies::policy<boost::math::policies::domain_error<boost::math::policies::errno_on_error>, boost::math::policies::pole_error<boost::math::policies::errno_on_error>, boost::math::policies::overflow_error<boost::math::policies::errno_on_error>, boost::math::policies::evaluation_error<boost::math::policies::errno_on_error>, boost::math::policies::rounding_error<boost::math::policies::errno_on_error> >; typename boost::math::tools::promote_args<RT1, RT2>::type = boost::multiprecision::number<boost::multiprecision::backends::gmp_float<1000> >]«
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp:2374:36:   erfordert durch »boost::multiprecision::number<Backend, ExpressionTemplates> boost::multiprecision::nextafter(const boost::multiprecision::number<Backend, ExpressionTemplates>&, const boost::multiprecision::number<Backend, ExpressionTemplates>&) [with Backend = boost::multiprecision::backends::gmp_float<1000>; boost::multiprecision::expression_template_option ExpressionTemplates = boost::multiprecision::et_on]«
/data/octopus/src/basics/phred.hpp:103:62:   erfordert durch »octopus::Phred<Q> octopus::probability_true_to_phred(boost::multiprecision::number<From>) [with T = double; Backend = boost::multiprecision::backends::gmp_float<1000>; typename std::enable_if<std::is_arithmetic<_Tp>::value, void>::type = void]«
/data/octopus/src/core/callers/cancer_caller.cpp:932:61:   von hier erfordert
/software/boost/1.69.0/include/boost/multiprecision/detail/number_base.hpp:151:39: Fehler: das Verschieben eines lokalen Objekts in einer return-Anweisung verhindert das Einsparen der Kopie [-Werror=pessimizing-move]
  151 | #  define BOOST_MP_MOVE(x) std::move(x)
      |                                       ^
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp:2708:11: Anmerkung: bei Substitution des Makros »BOOST_MP_MOVE«
 2708 |    return BOOST_MP_MOVE(result);
      |           ^~~~~~~~~~~~~
/software/boost/1.69.0/include/boost/multiprecision/detail/number_base.hpp:151:39: Anmerkung: entfernen Sie den Aufruf von »std::move«
  151 | #  define BOOST_MP_MOVE(x) std::move(x)
      |                                       ^
/software/boost/1.69.0/include/boost/multiprecision/detail/default_ops.hpp:2708:11: Anmerkung: bei Substitution des Makros »BOOST_MP_MOVE«
 2708 |    return BOOST_MP_MOVE(result);
      |           ^~~~~~~~~~~~~
[ 35%] Building CXX object src/CMakeFiles/octopus.dir/core/callers/population_caller.cpp.o
[ 35%] Building CXX object src/CMakeFiles/octopus.dir/core/callers/trio_caller.cpp.o
[ 36%] Building CXX object src/CMakeFiles/octopus.dir/core/callers/polyclone_caller.cpp.o

Seems to be stuck from there running into a state where the RAM and swap are completely filled up

So far from me today.

Regards, Hans

HansBartelmess commented 2 years ago

Update: So at least pulling the latest Docker image via Singularity (https://luntergroup.github.io/octopus/docs/installation#singularity) seems to work:

singularity build octopus.sif docker://dancooke/octopus singularity run octopus.sif --help singularity run octopus.sif --version octopus version 0.7.4 Target: x86_64 Linux 4.19.121-linuxkit SIMD extension: AVX2 Compiler: GNU 10.2.0 Boost: 1_75

https://github.com/luntergroup/octopus/blob/develop/Dockerfile regarding this dockerfile it seems it is build with ubuntu

HansBartelmess commented 2 years ago

I Compiled it somehow on centos 7.9 but cant on 7.4

After checking your dockerfile i went to install boost/1.76.0 in the morning with gcc/11.1.0 and cmake/3.20.5 and miniconda/4.9.2 for python3.9.1

module list
Currently Loaded Modulefiles:
  1) gcc/11.1.0        3) boost/1.76.0      5) gmp/6.1.0         7) curl/7.77.0
  2) git/2.26.0        4) htslib/1.11.0     6) cmake/3.20.5      8) miniconda/4.9.2

Then i loaded up those modules below to start the script like:

octopus/scripts/install.py --gmp=/software/gmp/6.1.0 --prefix=/data/hans/oct

Ignoring the version issue it compield

[100%] Linking CXX executable octopus
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)

/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
[100%] Built target octopus
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
Install the project...
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
/software/cmake/3.20.5/bin/cmake: /software/gcc/11.1.0/lib64/libstdc++.so.6: no version information available (required by /software/cmake/3.20.5/bin/cmake)
-- Install configuration: "Release"
-- Installing: /data/hans/oct/octopus
-- Set runtime path of "/data/hans/oct/octopus" to ""
-bash-4.2$ oct/octopus --version
oct/octopus: error while loading shared libraries: libhts.so.3: cannot open shared object file: No such file or directory
-bash-4.2$ file oct/octopus 
oct/octopus: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

Does this look good to you so far? @dancooke

Update 7.4:

The only difference to our desktop is, that there is no cmake installed at all. He is just using the cmake command out of the module cmake/3.20.5 https://github.com/luntergroup/octopus/issues/37 So there is really a cmake3 in centos but we are working with a module system. It seems when you compile v. 3.20.5 from sources only a cmake will be created.

1. So i tried first to completly remove the system installed cmake. 2. cmake installed again and created a symlink cmake3 -> cmake

Both variants end after 37% with the compiler error:

[ 37%] Building CXX object src/CMakeFiles/octopus.dir/core/types/calls/call.cpp.o
In Datei, eingebunden von /software/boost/1.76.0/include/boost/smart_ptr/detail/sp_thread_sleep.hpp:22,
                 von /software/boost/1.76.0/include/boost/smart_ptr/detail/yield_k.hpp:23,
                 von /software/boost/1.76.0/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp:14,
                 von /software/boost/1.76.0/include/boost/smart_ptr/detail/spinlock.hpp:42,
                 von /software/boost/1.76.0/include/boost/smart_ptr/detail/spinlock_pool.hpp:25,
                 von /software/boost/1.76.0/include/boost/smart_ptr/shared_ptr.hpp:29,
                 von /software/boost/1.76.0/include/boost/shared_ptr.hpp:17,
                 von /software/boost/1.76.0/include/boost/date_time/time_clock.hpp:17,
                 von /software/boost/1.76.0/include/boost/date_time/posix_time/posix_time_types.hpp:10,
                 von /data/build/octopus/octopus/src/logging/logging.hpp:17,
                 von /data/build/octopus/octopus/src/config/common.hpp:20,
                 von /data/build/octopus/octopus/src/core/callers/caller.hpp:18,
                 von /data/build/octopus/octopus/src/core/callers/trio_caller.hpp:10,
                 von /data/build/octopus/octopus/src/core/callers/trio_caller.cpp:4:
/software/boost/1.76.0/include/boost/config/pragma_message.hpp:24:34: Anmerkung: »#pragma message: This header is deprecated. Use <iterator> instead.«
   24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x)))
      |                                  ^~~~~~~
/software/boost/1.76.0/include/boost/config/pragma_message.hpp:24:34: Anmerkung: in Definition des Makros »BOOST_PRAGMA_MESSAGE«
   24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x)))
      |                                  ^~~~~~~
/software/boost/1.76.0/include/boost/detail/iterator.hpp:13:1: Anmerkung: bei Substitution des Makros »BOOST_HEADER_DEPRECATED«
   13 | BOOST_HEADER_DEPRECATED("<iterator>")
      | ^~~~~~~~~~~~~~~~~~~~~~~
c++: internal compiler error: Killed (program cc1plus)
make[2]: *** [src/CMakeFiles/octopus.dir/core/callers/cancer_caller.cpp.o] Fehler 1
make[2]: ***

I am not sure if this is now related to the cmake3 making trouble or the older centos-release 7.4

Any suggestions?

dancooke commented 2 years ago

Hi, can you try adding --boost /software/boost/1.76.0 --htslib /software/htslib/1.11.0 --static --threads 1 --verbose to your latest attempt and post the full build output if it fails?

HansBartelmess commented 2 years ago

i clean out the long version of the complete text, but here is the failing part:

[ 76%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/phylogeny_posterior.cpp.o
cd /data/build/octopus/octopus/build/src && /software/gcc/11.1.0/bin/c++  -I/data/build/octopus/octopus/build/generated -I/data/build/octopus/octopus/lib -I/data/build/octopus/octopus/src -I/software/boost/1.76.0/include -I/software/gmp/6.1.0/include -I/software/htslib/1.11.0/include -O3 -DNDEBUG -flto -fno-fat-lto-objects -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-function -Wno-missing-braces -Wno-deprecated-copy -Wno-maybe-uninitialized -Wno-noexcept-type -msse2 -ffast-math -march=native -mfpmath=both -std=gnu++14 -MD -MT src/CMakeFiles/octopus.dir/core/csr/measures/phylogeny_posterior.cpp.o -MF CMakeFiles/octopus.dir/core/csr/measures/phylogeny_posterior.cpp.o.d -o CMakeFiles/octopus.dir/core/csr/measures/phylogeny_posterior.cpp.o -c /data/build/octopus/octopus/src/core/csr/measures/phylogeny_posterior.cpp
In Datei, eingebunden von /software/boost/1.76.0/include/boost/math/tools/cxx03_warn.hpp:9,
                 von /software/boost/1.76.0/include/boost/math/constants/constants.hpp:11,
                 von /software/boost/1.76.0/include/boost/math/special_functions/gamma.hpp:23,
                 von /data/build/octopus/octopus/src/utils/maths.hpp:20,
                 von /data/build/octopus/octopus/src/utils/string_utils.hpp:20,
                 von /data/build/octopus/octopus/src/io/variant/vcf_record.hpp:23,
                 von /data/build/octopus/octopus/src/core/csr/measures/measure.hpp:18,
                 von /data/build/octopus/octopus/src/core/csr/measures/phylogeny_posterior.hpp:9,
                 von /data/build/octopus/octopus/src/core/csr/measures/phylogeny_posterior.cpp:4:
/software/boost/1.76.0/include/boost/config/pragma_message.hpp:24:34: Anmerkung: »#pragma message: This header is deprecated. Use <iterator> instead.«
   24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x)))
      |                                  ^~~~~~~
/software/boost/1.76.0/include/boost/config/header_deprecated.hpp:23:37: Anmerkung: bei Substitution des Makros »BOOST_PRAGMA_MESSAGE«
   23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.")
      |                                     ^~~~~~~~~~~~~~~~~~~~
/software/boost/1.76.0/include/boost/detail/iterator.hpp:13:1: Anmerkung: bei Substitution des Makros »BOOST_HEADER_DEPRECATED«
   13 | BOOST_HEADER_DEPRECATED("<iterator>")
      | ^~~~~~~~~~~~~~~~~~~~~~~
[ 76%] Building CXX object src/CMakeFiles/octopus.dir/core/models/haplotype_likelihood_array.cpp.o
cd /data/build/octopus/octopus/build/src && /software/gcc/11.1.0/bin/c++  -I/data/build/octopus/octopus/build/generated -I/data/build/octopus/octopus/lib -I/data/build/octopus/octopus/src -I/software/boost/1.76.0/include -I/software/gmp/6.1.0/include -I/software/htslib/1.11.0/include -O3 -DNDEBUG -flto -fno-fat-lto-objects -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-function -Wno-missing-braces -Wno-deprecated-copy -Wno-maybe-uninitialized -Wno-noexcept-type -msse2 -ffast-math -march=native -mfpmath=both -std=gnu++14 -MD -MT src/CMakeFiles/octopus.dir/core/models/haplotype_likelihood_array.cpp.o -MF CMakeFiles/octopus.dir/core/models/haplotype_likelihood_array.cpp.o.d -o CMakeFiles/octopus.dir/core/models/haplotype_likelihood_array.cpp.o -c /data/build/octopus/octopus/src/core/models/haplotype_likelihood_array.cpp
[ 77%] Building CXX object src/CMakeFiles/octopus.dir/core/models/haplotype_likelihood_model.cpp.o
cd /data/build/octopus/octopus/build/src && /software/gcc/11.1.0/bin/c++  -I/data/build/octopus/octopus/build/generated -I/data/build/octopus/octopus/lib -I/data/build/octopus/octopus/src -I/software/boost/1.76.0/include -I/software/gmp/6.1.0/include -I/software/htslib/1.11.0/include -O3 -DNDEBUG -flto -fno-fat-lto-objects -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-function -Wno-missing-braces -Wno-deprecated-copy -Wno-maybe-uninitialized -Wno-noexcept-type -msse2 -ffast-math -march=native -mfpmath=both -std=gnu++14 -MD -MT src/CMakeFiles/octopus.dir/core/models/haplotype_likelihood_model.cpp.o -MF CMakeFiles/octopus.dir/core/models/haplotype_likelihood_model.cpp.o.d -o CMakeFiles/octopus.dir/core/models/haplotype_likelihood_model.cpp.o -c /data/build/octopus/octopus/src/core/models/haplotype_likelihood_model.cpp
In Datei, eingebunden von /software/gcc/11.1.0/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/immintrin.h:39,
                 von /software/gcc/11.1.0/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/x86intrin.h:32,
                 von /data/build/octopus/octopus/lib/fmath.hpp:47,
                 von /data/build/octopus/octopus/src/utils/maths.hpp:30,
                 von /data/build/octopus/octopus/src/core/models/pairhmm/pair_hmm.hpp:26,
                 von /data/build/octopus/octopus/src/core/models/haplotype_likelihood_model.hpp:26,
                 von /data/build/octopus/octopus/src/core/models/haplotype_likelihood_model.cpp:4:
/data/build/octopus/octopus/src/core/models/pairhmm/sse2_pair_hmm_impl.hpp: In Funktion »octopus::hmm::simd::SSE2PairHMMInstructionSet<8u, int>::do_extract<0>(long long __vector(2) const&, int)auto«:
/software/gcc/11.1.0/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/smmintrin.h:447:1: Fehler: Inlining beim Aufruf von »_mm_extract_epi32(long long __vector(2), int)« mit »always_inline« fehlgeschlagen: target specific option mismatch
  447 | _mm_extract_epi32 (__m128i __X, const int __N)
      | ^~~~~~~~~~~~~~~~~
In Datei, eingebunden von /data/build/octopus/octopus/src/core/models/pairhmm/simd_pair_hmm_factory.hpp:10,
                 von /data/build/octopus/octopus/src/core/models/pairhmm/pair_hmm.hpp:27,
                 von /data/build/octopus/octopus/src/core/models/haplotype_likelihood_model.hpp:26,
                 von /data/build/octopus/octopus/src/core/models/haplotype_likelihood_model.cpp:4:
/data/build/octopus/octopus/src/core/models/pairhmm/sse2_pair_hmm_impl.hpp:123:33: Anmerkung: von hier aufgerufen
  123 |         return _mm_extract_epi32(a, index);
      |                ~~~~~~~~~~~~~~~~~^~~~~~~~~~
make[2]: *** [src/CMakeFiles/octopus.dir/core/models/haplotype_likelihood_model.cpp.o] Fehler 1
make[2]: Leaving directory `/data/build/octopus/octopus/build'
make[1]: *** [src/CMakeFiles/octopus.dir/all] Fehler 2
make[1]: Leaving directory `/data/build/octopus/octopus/build'
make: *** [all] Fehler 2
[odcf-sw@odcf-vm121 octopus]$ 
dancooke commented 2 years ago

hmm, what architecture is the build machine; what's the output of head -25 /proc/cpuinfo?

HansBartelmess commented 2 years ago

build host is a virtual machine:

[odcf-sw@odcf-vm121 octopus]$ uname -a
Linux odcf-vm121 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[odcf-sw@odcf-vm121 octopus]$ head -25 /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 15
model       : 6
model name  : Common KVM processor
stepping    : 1
microcode   : 0x1
cpu MHz     : 2399.998
cache size  : 16384 KB
physical id : 0
siblings    : 8
core id     : 0
cpu cores   : 8
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology pni cx16 x2apic hypervisor lahf_lm
bogomips    : 4799.99
clflush size    : 64
cache_alignment : 128
address sizes   : 40 bits physical, 48 bits virtual
power management:

this is the desktop machine:

-bash-4.2$ uname -a
Linux w610-pc09 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
-bash-4.2$ head -25 /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 42
model name  : Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
stepping    : 7
microcode   : 0x2f
cpu MHz     : 1625.305
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear spec_ctrl intel_stibp flush_l1d
bogomips    : 6185.68
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
dancooke commented 2 years ago

Ok - it turns out that _mm_extract_epi32 is an SSE 4.1 instruction so the build machine needs that as minimum (I had thought this was an SSE2 instruction). Your virtual machine only has SSE2 - that's why your getting the error on that.

dancooke commented 2 years ago

Your desktop machine has SSE4.2 so that should be fine.

HansBartelmess commented 2 years ago

OK thanks for that. It made me crazy for the last 3 days :D Hope this issue can help other cluster operators to set it up! Many thanks to @dancooke I will talk to my colleagues to find a solution now

PS: maybe the instructions on the following site should be updated.

https://luntergroup.github.io/octopus/docs/installation/#docker

HansBartelmess commented 2 years ago

Dear @dancooke,

we have added the support of SSSE4.1 Instructions and more to the VM.

head -25 /proc/cpuinfo | grep ssse
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm invpcid_single spec_ctrl ibpb_support fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt arat

I get an error about linking:

[100%] Linking CXX executable octopus
cd /data/build/octopus/octopus/build/src && /software/cmake/3.20.5/bin/cmake -E cmake_link_script CMakeFiles/octopus.dir/link.txt --verbose=1
/software/gcc/11.1.0/bin/c++ -O3 -DNDEBUG -flto -fno-fat-lto-objects CMakeFiles/octopus.dir/main.cpp.o CMakeFiles/octopus.dir/config/config.cpp.o CMakeFiles/octopus.dir/config/common.cpp.o CMakeFiles/octopus.dir/config/option_parser.cpp.o CMakeFiles/octopus.dir/config/option_collation.cpp.o CMakeFiles/octopus.dir/config/octopus_vcf.cpp.o CMakeFiles/octopus.dir/exceptions/error.cpp.o CMakeFiles/octopus.dir/exceptions/missing_file_error.cpp.o CMakeFiles/octopus.dir/exceptions/malformed_file_error.cpp.o CMakeFiles/octopus.dir/exceptions/missing_index_error.cpp.o CMakeFiles/octopus.dir/exceptions/unwritable_file_error.cpp.o CMakeFiles/octopus.dir/exceptions/unimplemented_feature_error.cpp.o CMakeFiles/octopus.dir/exceptions/file_open_error.cpp.o CMakeFiles/octopus.dir/basics/cigar_string.cpp.o CMakeFiles/octopus.dir/basics/aligned_read.cpp.o CMakeFiles/octopus.dir/basics/ploidy_map.cpp.o CMakeFiles/octopus.dir/basics/pedigree.cpp.o CMakeFiles/octopus.dir/basics/trio.cpp.o CMakeFiles/octopus.dir/basics/read_pileup.cpp.o CMakeFiles/octopus.dir/basics/tandem_repeat.cpp.o CMakeFiles/octopus.dir/basics/aligned_template.cpp.o CMakeFiles/octopus.dir/logging/logging.cpp.o CMakeFiles/octopus.dir/logging/progress_meter.cpp.o CMakeFiles/octopus.dir/logging/error_handler.cpp.o CMakeFiles/octopus.dir/logging/main_logging.cpp.o CMakeFiles/octopus.dir/io/reference/caching_fasta.cpp.o CMakeFiles/octopus.dir/io/reference/fasta.cpp.o CMakeFiles/octopus.dir/io/reference/reference_genome.cpp.o CMakeFiles/octopus.dir/io/reference/threadsafe_fasta.cpp.o CMakeFiles/octopus.dir/io/region/region_parser.cpp.o CMakeFiles/octopus.dir/io/pedigree/pedigree_reader.cpp.o CMakeFiles/octopus.dir/io/read/htslib_sam_facade.cpp.o CMakeFiles/octopus.dir/io/read/read_manager.cpp.o CMakeFiles/octopus.dir/io/read/read_reader.cpp.o CMakeFiles/octopus.dir/io/read/read_writer.cpp.o CMakeFiles/octopus.dir/io/read/annotated_aligned_read.cpp.o CMakeFiles/octopus.dir/io/variant/htslib_bcf_facade.cpp.o CMakeFiles/octopus.dir/io/variant/vcf_header.cpp.o CMakeFiles/octopus.dir/io/variant/vcf_parser.cpp.o CMakeFiles/octopus.dir/io/variant/vcf_reader.cpp.o CMakeFiles/octopus.dir/io/variant/vcf_record.cpp.o CMakeFiles/octopus.dir/io/variant/vcf_type.cpp.o CMakeFiles/octopus.dir/io/variant/vcf_utils.cpp.o CMakeFiles/octopus.dir/io/variant/vcf_writer.cpp.o CMakeFiles/octopus.dir/readpipe/read_pipe.cpp.o CMakeFiles/octopus.dir/readpipe/buffered_read_pipe.cpp.o CMakeFiles/octopus.dir/readpipe/downsampling/downsampler.cpp.o CMakeFiles/octopus.dir/readpipe/filtering/read_filter.cpp.o CMakeFiles/octopus.dir/readpipe/transformers/read_transform.cpp.o CMakeFiles/octopus.dir/readpipe/transformers/read_transformer.cpp.o CMakeFiles/octopus.dir/utils/compression.cpp.o CMakeFiles/octopus.dir/utils/path_utils.cpp.o CMakeFiles/octopus.dir/utils/read_stats.cpp.o CMakeFiles/octopus.dir/utils/string_utils.cpp.o CMakeFiles/octopus.dir/utils/input_reads_profiler.cpp.o CMakeFiles/octopus.dir/utils/kmer_mapper.cpp.o CMakeFiles/octopus.dir/utils/memory_footprint.cpp.o CMakeFiles/octopus.dir/utils/repeat_finder.cpp.o CMakeFiles/octopus.dir/utils/genotype_reader.cpp.o CMakeFiles/octopus.dir/utils/thread_pool.cpp.o CMakeFiles/octopus.dir/utils/system_utils.cpp.o CMakeFiles/octopus.dir/utils/read_duplicates.cpp.o CMakeFiles/octopus.dir/core/callers/caller_builder.cpp.o CMakeFiles/octopus.dir/core/callers/caller_factory.cpp.o CMakeFiles/octopus.dir/core/callers/caller.cpp.o CMakeFiles/octopus.dir/core/callers/cancer_caller.cpp.o CMakeFiles/octopus.dir/core/callers/individual_caller.cpp.o CMakeFiles/octopus.dir/core/callers/population_caller.cpp.o CMakeFiles/octopus.dir/core/callers/trio_caller.cpp.o CMakeFiles/octopus.dir/core/callers/polyclone_caller.cpp.o CMakeFiles/octopus.dir/core/callers/cell_caller.cpp.o CMakeFiles/octopus.dir/core/types/calls/call.cpp.o CMakeFiles/octopus.dir/core/types/calls/germline_variant_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/reference_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/somatic_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/variant_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/denovo_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/denovo_reference_reversion_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/cell_variant_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/polyclone_variant_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/cnv_call.cpp.o CMakeFiles/octopus.dir/core/types/calls/call_wrapper.cpp.o CMakeFiles/octopus.dir/core/types/calls/call_utils.cpp.o CMakeFiles/octopus.dir/core/tools/vcf_header_factory.cpp.o CMakeFiles/octopus.dir/core/tools/vcf_record_factory.cpp.o CMakeFiles/octopus.dir/core/csr/facets/facet.cpp.o CMakeFiles/octopus.dir/core/csr/facets/samples.cpp.o CMakeFiles/octopus.dir/core/csr/facets/overlapping_reads.cpp.o CMakeFiles/octopus.dir/core/csr/facets/read_assignments.cpp.o CMakeFiles/octopus.dir/core/csr/facets/reference_context.cpp.o CMakeFiles/octopus.dir/core/csr/facets/genotypes.cpp.o CMakeFiles/octopus.dir/core/csr/facets/alleles.cpp.o CMakeFiles/octopus.dir/core/csr/facets/ploidies.cpp.o CMakeFiles/octopus.dir/core/csr/facets/pedigree.cpp.o CMakeFiles/octopus.dir/core/csr/facets/repeat_context.cpp.o CMakeFiles/octopus.dir/core/csr/facets/reads_summary.cpp.o CMakeFiles/octopus.dir/core/csr/facets/facet_factory.cpp.o CMakeFiles/octopus.dir/core/csr/filters/variant_call_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/single_pass_variant_call_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/double_pass_variant_call_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/threshold_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/unsupervised_clustering_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/variant_call_filter_factory.cpp.o CMakeFiles/octopus.dir/core/csr/filters/threshold_filter_factory.cpp.o CMakeFiles/octopus.dir/core/csr/filters/unsupervised_clustering_filter_factory.cpp.o CMakeFiles/octopus.dir/core/csr/filters/passing_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/training_filter_factory.cpp.o CMakeFiles/octopus.dir/core/csr/filters/conditional_threshold_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/somatic_threshold_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/denovo_threshold_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/random_forest_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/random_forest_filter_factory.cpp.o CMakeFiles/octopus.dir/core/csr/filters/somatic_random_forest_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/denovo_random_forest_filter.cpp.o CMakeFiles/octopus.dir/core/csr/filters/variant_filter_utils.cpp.o CMakeFiles/octopus.dir/core/csr/measures/measure.cpp.o CMakeFiles/octopus.dir/core/csr/measures/quality.cpp.o CMakeFiles/octopus.dir/core/csr/measures/depth.cpp.o CMakeFiles/octopus.dir/core/csr/measures/quality_by_depth.cpp.o CMakeFiles/octopus.dir/core/csr/measures/genotype_quality.cpp.o CMakeFiles/octopus.dir/core/csr/measures/genotype_quality_by_depth.cpp.o CMakeFiles/octopus.dir/core/csr/measures/mapping_quality_zero_count.cpp.o CMakeFiles/octopus.dir/core/csr/measures/mean_mapping_quality.cpp.o CMakeFiles/octopus.dir/core/csr/measures/model_posterior.cpp.o CMakeFiles/octopus.dir/core/csr/measures/allele_depth.cpp.o CMakeFiles/octopus.dir/core/csr/measures/allele_frequency.cpp.o CMakeFiles/octopus.dir/core/csr/measures/allele_frequency_bias.cpp.o CMakeFiles/octopus.dir/core/csr/measures/strand_bias.cpp.o CMakeFiles/octopus.dir/core/csr/measures/mapping_quality_divergence.cpp.o CMakeFiles/octopus.dir/core/csr/measures/gc_content.cpp.o CMakeFiles/octopus.dir/core/csr/measures/filtered_read_fraction.cpp.o CMakeFiles/octopus.dir/core/csr/measures/clipped_read_fraction.cpp.o CMakeFiles/octopus.dir/core/csr/measures/is_denovo.cpp.o CMakeFiles/octopus.dir/core/csr/measures/is_somatic.cpp.o CMakeFiles/octopus.dir/core/csr/measures/measure_factory.cpp.o CMakeFiles/octopus.dir/core/csr/measures/ambiguous_read_fraction.cpp.o CMakeFiles/octopus.dir/core/csr/measures/median_base_quality.cpp.o CMakeFiles/octopus.dir/core/csr/measures/mismatch_count.cpp.o CMakeFiles/octopus.dir/core/csr/measures/mismatch_fraction.cpp.o CMakeFiles/octopus.dir/core/csr/measures/is_refcall.cpp.o CMakeFiles/octopus.dir/core/csr/measures/normal_contamination.cpp.o CMakeFiles/octopus.dir/core/csr/measures/denovo_contamination.cpp.o CMakeFiles/octopus.dir/core/csr/measures/read_side_bias.cpp.o CMakeFiles/octopus.dir/core/csr/measures/alt_allele_count.cpp.o CMakeFiles/octopus.dir/core/csr/measures/str_length.cpp.o CMakeFiles/octopus.dir/core/csr/measures/str_period.cpp.o CMakeFiles/octopus.dir/core/csr/measures/posterior_probability.cpp.o CMakeFiles/octopus.dir/core/csr/measures/posterior_probability_by_depth.cpp.o CMakeFiles/octopus.dir/core/csr/measures/classification_confidence.cpp.o CMakeFiles/octopus.dir/core/csr/measures/somatic_haplotype_count.cpp.o CMakeFiles/octopus.dir/core/csr/measures/median_somatic_mapping_quality.cpp.o CMakeFiles/octopus.dir/core/csr/measures/strand_disequilibrium.cpp.o CMakeFiles/octopus.dir/core/csr/measures/supplementary_fraction.cpp.o CMakeFiles/octopus.dir/core/csr/measures/misaligned_read_count.cpp.o CMakeFiles/octopus.dir/core/csr/measures/read_tail_bias.cpp.o CMakeFiles/octopus.dir/core/csr/measures/read_end_bias.cpp.o CMakeFiles/octopus.dir/core/csr/measures/variant_length.cpp.o CMakeFiles/octopus.dir/core/csr/measures/base_mismatch_count.cpp.o CMakeFiles/octopus.dir/core/csr/measures/base_mismatch_fraction.cpp.o CMakeFiles/octopus.dir/core/csr/measures/base_mismatch_quality.cpp.o CMakeFiles/octopus.dir/core/csr/measures/assigned_depth.cpp.o CMakeFiles/octopus.dir/core/csr/measures/duplicate_concordance.cpp.o CMakeFiles/octopus.dir/core/csr/measures/duplicate_allele_depth.cpp.o CMakeFiles/octopus.dir/core/csr/measures/duplicate_allele_fraction.cpp.o CMakeFiles/octopus.dir/core/csr/measures/error_rate.cpp.o CMakeFiles/octopus.dir/core/csr/measures/error_rate_stdev.cpp.o CMakeFiles/octopus.dir/core/csr/measures/is_transversion.cpp.o CMakeFiles/octopus.dir/core/csr/measures/phase_length.cpp.o CMakeFiles/octopus.dir/core/csr/measures/max_read_length.cpp.o CMakeFiles/octopus.dir/core/csr/measures/mean_likelihood.cpp.o CMakeFiles/octopus.dir/core/csr/measures/allele_mapping_quality.cpp.o CMakeFiles/octopus.dir/core/csr/measures/phylogeny_posterior.cpp.o CMakeFiles/octopus.dir/core/models/haplotype_likelihood_array.cpp.o CMakeFiles/octopus.dir/core/models/haplotype_likelihood_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/subclone_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/constant_mixture_genotype_likelihood_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/individual_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/independent_population_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/population_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/trio_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/cancer_genotype_prior_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/coalescent_population_prior_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/hardy_weinberg_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/variable_mixture_genotype_likelihood_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/variational_bayes_mixture_mixture_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/single_cell_prior_model.cpp.o CMakeFiles/octopus.dir/core/models/genotype/single_cell_model.cpp.o CMakeFiles/octopus.dir/core/models/error/indel_error_model.cpp.o CMakeFiles/octopus.dir/core/models/error/repeat_based_indel_error_model.cpp.o CMakeFiles/octopus.dir/core/models/error/repeat_based_snv_error_model.cpp.o CMakeFiles/octopus.dir/core/models/error/snv_error_model.cpp.o CMakeFiles/octopus.dir/core/models/error/error_model_factory.cpp.o CMakeFiles/octopus.dir/core/models/error/basic_repeat_based_indel_error_model.cpp.o CMakeFiles/octopus.dir/core/models/error/custom_repeat_based_indel_error_model.cpp.o CMakeFiles/octopus.dir/core/models/mutation/somatic_mutation_model.cpp.o CMakeFiles/octopus.dir/core/models/mutation/coalescent_model.cpp.o CMakeFiles/octopus.dir/core/models/mutation/denovo_model.cpp.o CMakeFiles/octopus.dir/core/models/mutation/indel_mutation_model.cpp.o CMakeFiles/octopus.dir/core/models/reference/individual_reference_likelihood_model.cpp.o CMakeFiles/octopus.dir/core/tools/haplotype_filter.cpp.o CMakeFiles/octopus.dir/core/tools/read_assigner.cpp.o CMakeFiles/octopus.dir/core/tools/read_realigner.cpp.o CMakeFiles/octopus.dir/core/tools/bam_realigner.cpp.o CMakeFiles/octopus.dir/core/tools/indel_profiler.cpp.o CMakeFiles/octopus.dir/core/tools/bad_region_detector.cpp.o CMakeFiles/octopus.dir/core/tools/hapgen/genome_walker.cpp.o CMakeFiles/octopus.dir/core/tools/hapgen/haplotype_generator.cpp.o CMakeFiles/octopus.dir/core/tools/hapgen/haplotype_tree.cpp.o CMakeFiles/octopus.dir/core/tools/phaser/phaser.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/cigar_scanner.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/downloader.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/local_reassembler.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/randomiser.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/variant_generator.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/vcf_extractor.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/variant_generator_builder.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/active_region_generator.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/repeat_scanner.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/utils/assembler.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/utils/global_aligner.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/utils/assembler_active_region_generator.cpp.o CMakeFiles/octopus.dir/core/tools/vargen/utils/misaligned_reads_detector.cpp.o CMakeFiles/octopus.dir/core/types/allele.cpp.o CMakeFiles/octopus.dir/core/types/cancer_genotype.cpp.o CMakeFiles/octopus.dir/core/types/genotype.cpp.o CMakeFiles/octopus.dir/core/types/haplotype.cpp.o CMakeFiles/octopus.dir/core/types/variant.cpp.o CMakeFiles/octopus.dir/core/types/phylogeny.cpp.o CMakeFiles/octopus.dir/core/calling_components.cpp.o CMakeFiles/octopus.dir/core/octopus.cpp.o CMakeFiles/octopus.dir/timers.cpp.o -o octopus  ../lib/tandem/libtandem.a ../lib/ranger/libranger.a ../lib/date/libdate-tz.a /software/boost/1.76.0/lib/libboost_system.a /software/boost/1.76.0/lib/libboost_filesystem.a /software/boost/1.76.0/lib/libboost_program_options.a /software/boost/1.76.0/lib/libboost_date_time.a /software/boost/1.76.0/lib/libboost_log_setup.a /software/boost/1.76.0/lib/libboost_log.a /software/boost/1.76.0/lib/libboost_iostreams.a /software/boost/1.76.0/lib/libboost_timer.a /software/boost/1.76.0/lib/libboost_thread.a -pthread /software/boost/1.76.0/lib/libboost_regex.a /software/boost/1.76.0/lib/libboost_chrono.a /software/boost/1.76.0/lib/libboost_atomic.a /software/gmp/6.1.0/lib/libgmp.a /software/htslib/1.11.0/lib/libhts.a /usr/lib64/libz.so /usr/lib64/libbz2.so /usr/lib64/liblzma.so /usr/lib64/libcurl.so /usr/lib64/libssl.so /usr/lib64/libcrypto.so -pthread -lm -lmvec -static -static-libgcc -static-libstdc++ ../lib/tandem/libdivsufsort/liblibdivsufsort.a 
/software/binutils/2.34/bin/ld: attempted static link of dynamic object `/usr/lib64/libz.so'
collect2: Fehler: ld gab 1 als Ende-Status zurück
make[2]: *** [src/octopus] Fehler 1
make[2]: Leaving directory `/data/build/octopus/octopus/build'
make[1]: *** [src/CMakeFiles/octopus.dir/all] Fehler 2
make[1]: Leaving directory `/data/build/octopus/octopus/build'
make: *** [all] Fehler 2

I tried using a newer bintuils version with no success, but I could fix this by installing yum install zlib-static.x86_64

[odcf-sw@odcf-vm121 octopus]$ echo $PATH
/software/binutils/2.34/bin:/software/miniconda/4.9.2/bin:/software/curl/7.77.0/bin:/software/cmake/3.20.5/bin:/software/htslib/1.11.0/bin:/software/boost/1.76.0/lib:/software/git/2.26.0/bin:/software/gcc/11.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/software/bin:/root/bin:/opt/sysadmin/bin:/opt/sysadmin/local/bin:/opt/sysadmin/tools/useradm:/opt/sysadmin/tools/dhcpdump/bin:/opt/sysadmin/tools/ipam:/opt/sysadmin/tools/testssl.sh:/opt/sysadmin/tools/mem:/opt/sysadmin/tools/cpu:/opt/sysadmin/tools/fs:/software/bin
[odcf-sw@odcf-vm121 octopus]$ echo $LD_LIBRARY_PATH
/software/binutils/2.34/lib:/software/curl/7.77.0/lib:/software/gmp/6.1.0/lib:/software/boost/1.76.0/lib:/software/gcc/11.1.0/lib64:/software/gcc/11.1.0/lib

new error is:

/software/binutils/2.34/bin/ld: attempted static link of dynamic object/usr/lib64/libbz2.so'`

[odcf-sw@odcf-vm121 octopus]$ sudo yum search bzip2
Geladene Plugins: fastestmirror
Loading mirror speeds from cached hostfile
================================================================== N/S matched: bzip2 ===================================================================
bzip2-devel.i686 : Libraries and header files for apps which will use bzip2
bzip2-devel.x86_64 : Libraries and header files for apps which will use bzip2
bzip2-libs.i686 : Libraries for applications using bzip2
bzip2-libs.x86_64 : Libraries for applications using bzip2
lbzip2.x86_64 : Fast, multi-threaded bzip2 utility
lbzip2-debuginfo.x86_64 : Debug information for package lbzip2
lbzip2-utils.x86_64 : Utilities for working with bzip2 compressed files
lbzip2-utils-debuginfo.x86_64 : Debug information for package lbzip2-utils
libknet1-compress-bzip2-plugin.x86_64 : Provides libknet1 bzip2 support
pbzip2.x86_64 : Parallel implementation of bzip2
pbzip2-debuginfo.x86_64 : Debug information for package pbzip2
perl-Compress-Raw-Bzip2.x86_64 : Low-level interface to bzip2 compression library
bzip2.x86_64 : A file compression utility
python2-bz2file.noarch : Read and write bzip2-compressed files

  only-Übereinstimmungen in Name und Zusammenfassung, «Alles suchen» für vollständige Suche.
[odcf-sw@odcf-vm121 octopus]$ rpm -qa | grep bzip2
bzip2-libs-1.0.6-13.el7.x86_64
bzip2-1.0.6-13.el7.x86_64
bzip2-devel-1.0.6-13.el7.x86_64

any suggestion which package could fix the issue? Is 1.0.6 sufficient or should we install bzip/1.0.8

Regards, Hans

dancooke commented 2 years ago

To link statically you need static libraries for all Octopus dependencies and htslib dependencies (e.g. /usr/lib64/libbz2.a). It doesn't look like a static libbz2 is available from RPM. You can either find another way to install it, or try linking dynamically again by removing the --static option from the install command. It may also be worth adding --clean to your install command to ensure the CMake cache isn't causing any problems.

HansBartelmess commented 2 years ago
-- Install configuration: "Release"
-- Installing: /software/octopus/0.7.4/octopus
-- Set runtime path of "/software/octopus/0.7.4/octopus" to ""
[odcf-sw@odcf-vm121 octopus]$ 
[odcf-sw@odcf-vm121 octopus]$ .//software/octopus/0.7.4/octopus --help
bash: .//software/octopus/0.7.4/octopus: No such file or directory
[odcf-sw@odcf-vm121 octopus]$ /software/octopus/0.7.4/octopus --help
/software/octopus/0.7.4/octopus: error while loading shared libraries: libhts.so.3: cannot open shared object file: No such file or director

so this was fixed by adding the LD_LIBRARAY_PATH to the module file of htslib.


[odcf-sw@odcf-vm121 octopus]$ /software/octopus/0.7.4/octopus --help
Octopus command line options:

General:
  -h [ --help ]                         Report detailed option information

@dancooke thanks for your very helpfull support.

I will go through the installation and write some install instruction for cluster admins and will leave it in this thread with the closing.

Best regards, Hans

HansBartelmess commented 2 years ago

Dear Daniel,

i tried to load the finished module on the desktop system with no sucess. It is compiled without the static operand.

-bash-4.2$ module load octopus/0.7.4
-bash-4.2$ octopus --help
illegal operation

SIGILL/ILL_ILLOPN (Illegal operand)

dmesg shows:

traps: octopus[38225] trap invalid opcode ip:50ba63 sp:7ffe59500be0
error:0 in octopus[412000+ada000]

I am not sure how to proceed. Does this have something to do with maybe now to new CPU Falgs on the build host?

dancooke commented 2 years ago

This error indicates that the build architecture is incompatible with the executing host - by default, the build is optimised for the build host (-march=native). It looks like your desktop CPU only supports AVX (Ivy Bridge or earlier), but you added AVX2 to your virtual build machine (Haswell or later), which would explain your error. You can explicitly set the architecture during complication with the --architecture option (e.g. --architecture ivybridge). If your cluster has a variety of architectures then you can build one binary using the oldest architecture supported, potentially resulting in a suboptimal binary on newer systems but easiest to use. Alternatively, you can build optimised binaries for each host architecture, which means you need to select the correct binary for the executing host (potentially a little tricky when submitting to grid queues).

HansBartelmess commented 2 years ago

So the question is does this result in a workflow difference of minutes or hours? Somehow it depends on this question if the work is worth it. Thanks a lot again. Hans

dancooke commented 2 years ago

Difficult to say - depends a lot on your machines and use-cases. If you're just doing initial performance evaluations then I'd probably just start with the generalised binary and optimise later if/when a pipeline is locked down.

HansBartelmess commented 2 years ago

Dear @dancooke

i tried compiling with the "--architecture sandybridge" option with no success in using the octopus binary afterwards.

octopus/scripts/install.py --gmp /software/gmp/6.1.0 --prefix /software/octopus/0.7.4_avx --boost /software/boost/1.76.0 --htslib /software/htslib/1.11.0 --threads 1 --architecture sandybridge --clean

For me it seems that he will still use the higher architecture from the virtual machine... The completed binary is working on newer hosts...

I mean I can now change the VM`s architecture to what i need for compiling, but your --architecture option should normally override that or?

I can confirm changing the VMs settings and compiling then works.

Regards, Hans

HansBartelmess commented 2 years ago

We are working with a centralized software stack on a module based system with CentOS. Our HPC users are then able to easily load and use software on the cluster nodes. Octopus was a difficult installation here are some notes of problems you can run into:

your VM should have CPU Flags at least sse4_1

compile with --threads 1 to avoid a problem where it compiles a component which is needed by another component which tries to compile at the same time not finding the needed things

add all the flags to the install script, because it otherwise seems not to read your $PATH variable to get the newer version that are loaded

--architecture function did not seem to change anything, for multiple versions with differnt compiler flags you need to change the flags on the VM or SW build host

we have build octopus with a boost version which used the same prerequisites:

module load binutils/2.34 gcc/11.1.0 cmake/3.21.0

the module looks like

prepend-path    PATH                    $topdir/lib
prepend-path    LD_LIBRARY_PATH         $topdir/lib
prepend-path    C_INCLUDE_PATH          $topdir/include/boost
#following maybe unneeded
setenv          BOOST_DIR               $topdir
setenv          BOOST_ROOT              $topdir
setenv          BOOST_INCLUDEDIR        $topdir/include
setenv          BOOST_LIBRARYDIR        $topdir/lib

Installation of octopus itself:

mkdir -p /data/build/octopus && cd /data/build/octopus
mkdir -p /software/octopus/0.7.4

yum install zlib-static.x86_64

module load gcc/11.1.0 cmake/3.21.0 miniconda/4.9.2 boost/1.76.0 gmp/6.1.0 git/2.26.0 curl/7.77.0 htslib/1.11.0 binutils/2.34

git clone https://github.com/luntergroup/octopus.git

octopus/scripts/install.py --gmp /software/gmp/6.1.0 --prefix /software/octopus/0.7.4 --boost /software/boost/1.76.0 --htslib /software/htslib/1.11.0 --threads 1
octopus/scripts/install.py --gmp /software/gmp/6.1.0 --prefix /software/octopus/0.7.4_avx --boost /software/boost/1.76.0 --htslib /software/htslib/1.11.0 --threads 1 --architecture ivybridge

/opt/sysadmin/bin/generate_module.sh octopus 0.7.4 "Octopus v. 0.7.4"

cp /software/.modules/sw/octopus/0.7.4 /software/.modules/sw/octopus/0.7.4_avx
### edit version number in new file

with the module to run it:

module load miniconda/4.9.2
module load boost/1.76.0
module load gmp/6.1.0
module load htslib/1.11.0
module load gcc/11.1.0
module load cmake/3.21.0
module load git/2.26.0
module load binutils/2.34

prepend-path    PATH                    $topdir