nanoporetech / scrappie

Scrappie is a technology demonstrator for the Oxford Nanopore Research Algorithms group
Mozilla Public License 2.0
90 stars 27 forks source link

OpenSUSE Leap 42.3 #10

Closed avierstr closed 6 years ago

avierstr commented 6 years ago

I have installed Scrappie on a fresh OpenSUSE Leap 42.3 system.
I had to install the following extra packages: -cmake -gcc -hdf5 -hdf5-devel -blas-devel -cblas-devel -openblas-devel -libcunit1 -cunit-devel

I have changed line 58 of CMakeLists.txt from set (BLAS "blas") to set (BLAS "openblas")

Building gives an error message at 10% of building but continues to the end. Is this error message important ? Any idea what package could be missing ?

Thanks, Andy

avierstr@briggsae:~/scrappie-master/scrappie-master> mkdir build && cd build && cmake .. && make
-- The C compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
Defaulting to release build
-- Performing Test HAS_OPENMP
-- Performing Test HAS_OPENMP - Success
-- Looking for hdf5.h
-- Looking for hdf5.h - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/avierstr/scrappie-master/scrappie-master/build
Scanning dependencies of target scrappie_objects
[  3%] Building C object CMakeFiles/scrappie_objects.dir/src/decode.c.o
[  6%] Building C object CMakeFiles/scrappie_objects.dir/src/event_detection.c.o
[ 10%] Building C object CMakeFiles/scrappie_objects.dir/src/layers.c.o
/home/avierstr/scrappie-master/scrappie-master/src/layers.c: In function ‘residual_inplace’:
/home/avierstr/scrappie-master/scrappie-master/src/layers.c:305:18: warning: unused variable ‘nr’ [-Wunused-variable]
     const size_t nr = X->nr;
                  ^
[ 13%] Building C object CMakeFiles/scrappie_objects.dir/src/networks.c.o
[ 16%] Building C object CMakeFiles/scrappie_objects.dir/src/nnfeatures.c.o
[ 20%] Building C object CMakeFiles/scrappie_objects.dir/src/scrappie_common.c.o
[ 23%] Building C object CMakeFiles/scrappie_objects.dir/src/scrappie_matrix.c.o
[ 26%] Building C object CMakeFiles/scrappie_objects.dir/src/util.c.o
[ 26%] Built target scrappie_objects
Scanning dependencies of target scrappie_static
[ 30%] Linking C static library libscrappie.a
[ 30%] Built target scrappie_static
Scanning dependencies of target scrappie
[ 33%] Building C object CMakeFiles/scrappie.dir/src/scrappie.c.o
[ 36%] Building C object CMakeFiles/scrappie.dir/src/scrappie_raw.c.o
[ 40%] Building C object CMakeFiles/scrappie.dir/src/scrappie_events.c.o
[ 43%] Building C object CMakeFiles/scrappie.dir/src/scrappie_squiggle.c.o
[ 46%] Building C object CMakeFiles/scrappie.dir/src/scrappie_subcommands.c.o
[ 50%] Building C object CMakeFiles/scrappie.dir/src/scrappie_help.c.o
[ 53%] Building C object CMakeFiles/scrappie.dir/src/fast5_interface.c.o
[ 56%] Linking C executable scrappie
[ 56%] Built target scrappie
Scanning dependencies of target scrappie_unittest
[ 60%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/scrappie_test_runner.c.o                                                                                     
[ 63%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_util.c.o
[ 66%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/scrappie_util.c.o
[ 70%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_convolution.c.o
[ 73%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_skeleton.c.o
[ 76%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_decoding.c.o
[ 80%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_elu.c.o
[ 83%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_event_detection.c.o
[ 86%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_matrix.c.o
[ 90%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_signal.c.o
[ 93%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_scrappie_squiggle.c.o
[ 96%] Building C object CMakeFiles/scrappie_unittest.dir/src/test/test_util.c.o
[100%] Linking C executable scrappie_unittest
[100%] Built target scrappie_unittest
avierstr@briggsae:~/scrappie-master/scrappie-master/build> ./scrappie
Scrappie is a technology demonstrator for the Oxford Nanopore Technologies
Limited Research Algorithms group.

Basic usage:
* scrappie events    Base call from event based data.
* scrappie help      Print general help or help about specific Scrappie command.
* scrappie licence   Print licensing information.
* scrappie raw       Base call directly from raw signal.
* scrappie version   Print version information.
avierstr@briggsae:~/scrappie-master/scrappie-master/build> 
myrtlecat commented 6 years ago

This warning should be safe to ignore.

Thanks for the information on the steps you took to build scrappie on openSUSE. That will be very useful for anyone else wanting to do the same.

Was the change you made to CMakeLists.txt necessary for the build to succeed? If so than we can try to fix it so that you won't need to manually change the configuration in future.

avierstr commented 6 years ago

When I change line 58 of CMakeLists.txt back to "blas", it fails:

avierstr@briggsae:~/scrappie-master/scrappie-master> mkdir build && cd build && cmake .. && make
-- The C compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
Defaulting to release build
-- Performing Test HAS_OPENMP
-- Performing Test HAS_OPENMP - Success
-- Looking for hdf5.h
-- Looking for hdf5.h - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/avierstr/scrappie-master/scrappie-master/build
Scanning dependencies of target scrappie_objects
[  3%] Building C object CMakeFiles/scrappie_objects.dir/src/decode.c.o
[  6%] Building C object CMakeFiles/scrappie_objects.dir/src/event_detection.c.o
[ 10%] Building C object CMakeFiles/scrappie_objects.dir/src/layers.c.o
/home/avierstr/scrappie-master/scrappie-master/src/layers.c: In function ‘residual_inplace’:
/home/avierstr/scrappie-master/scrappie-master/src/layers.c:305:18: warning: unused variable ‘nr’ [-Wunused-variable]
     const size_t nr = X->nr;
                  ^
[ 13%] Building C object CMakeFiles/scrappie_objects.dir/src/networks.c.o
[ 16%] Building C object CMakeFiles/scrappie_objects.dir/src/nnfeatures.c.o
[ 20%] Building C object CMakeFiles/scrappie_objects.dir/src/scrappie_common.c.o
[ 23%] Building C object CMakeFiles/scrappie_objects.dir/src/scrappie_matrix.c.o
[ 26%] Building C object CMakeFiles/scrappie_objects.dir/src/util.c.o
[ 26%] Built target scrappie_objects
Scanning dependencies of target scrappie_static
[ 30%] Linking C static library libscrappie.a
[ 30%] Built target scrappie_static
Scanning dependencies of target scrappie
[ 33%] Building C object CMakeFiles/scrappie.dir/src/scrappie.c.o
[ 36%] Building C object CMakeFiles/scrappie.dir/src/scrappie_raw.c.o
[ 40%] Building C object CMakeFiles/scrappie.dir/src/scrappie_events.c.o
[ 43%] Building C object CMakeFiles/scrappie.dir/src/scrappie_squiggle.c.o
[ 46%] Building C object CMakeFiles/scrappie.dir/src/scrappie_subcommands.c.o
[ 50%] Building C object CMakeFiles/scrappie.dir/src/scrappie_help.c.o
[ 53%] Building C object CMakeFiles/scrappie.dir/src/fast5_interface.c.o
[ 56%] Linking C executable scrappie
libscrappie.a(scrappie_matrix.c.o): In function `affine_map':
scrappie_matrix.c:(.text+0xc4b): undefined reference to `cblas_sgemm'
libscrappie.a(scrappie_matrix.c.o): In function `affine_map2':
scrappie_matrix.c:(.text+0xd80): undefined reference to `cblas_sgemm'
scrappie_matrix.c:(.text+0xded): undefined reference to `cblas_sgemm'
libscrappie.a(layers.c.o): In function `convolution':
layers.c:(.text+0xeb5): undefined reference to `cblas_sgemv'
layers.c:(.text+0xfed): undefined reference to `cblas_sgemm'
layers.c:(.text+0x111f): undefined reference to `cblas_sgemv'
libscrappie.a(layers.c.o): In function `gru_step':
layers.c:(.text+0x1509): undefined reference to `cblas_sgemv'
layers.c:(.text+0x16dc): undefined reference to `cblas_sgemv'
layers.c:(.text+0x18b3): undefined reference to `cblas_sgemv'
libscrappie.a(layers.c.o): In function `lstm_step':
layers.c:(.text+0x1d6e): undefined reference to `cblas_sgemv'
collect2: error: ld returned 1 exit status
CMakeFiles/scrappie.dir/build.make:251: recipe for target 'scrappie' failed
make[2]: *** [scrappie] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/scrappie.dir/all' failed
make[1]: *** [CMakeFiles/scrappie.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
avierstr@briggsae:~/scrappie-master/scrappie-master/build>
tmassingham-ont commented 6 years ago

Hello and sorry you've been having problems. We're going to provide Dockerfiles in a future release to demonstrate a minimal working environment to build for different distributions but, until then, here is one for OpenSUSE 42.3:

FROM opensuse:42.3
MAINTAINER Tim Massingham <tim.massingham@nanoporetech.com>

RUN zypper refresh
RUN zypper --non-interactive install gcc git make cmake
RUN zypper --non-interactive install \
    libopenblas_serial0 libopenblas_serial-devel cblas-devel \
    libcunit1 cunit-devel hdf5 hdf5-devel
RUN ln -s /usr/lib64/libblas.so.3 /usr/lib64/libblas.so

RUN git clone --depth 1 http://github.com/nanoporetech/scrappie.git

RUN cd scrappie && \
    mkdir build && \
    cd build && \ 
    cmake .. && \
    make && \
    make test