Code Monkey home page Code Monkey logo

cobs's People

Contributors

bingmann avatar devgg avatar jnalanko avatar simongog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cobs's Issues

Fail during make -j4 (GCC8 is used)

Hi! I'm using GCC8 for compilation and my CMake output is

-- COBS CMAKE_CXX_FLAGS: -Wpedantic -W -Wall -march=native -fPIC
-- Boost version: 1.53.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- TLX CMAKE_CXX_FLAGS: -Wshadow -Wold-style-cast -std=c++17 -g -W -Wall -Wextra -fPIC -Wpedantic -W -Wall -march=native -fPIC -Wcast-qual -Winit-self -Wnoexcept -Woverloaded-virtual -Wredundant-decls
-- pybind11 v2.4.3
-- Configuring done
-- Generating done
-- Build files have been written to: /scratch/my29/cobs/build

When I run make -j4 I would get the following error, it would drag on for thousands of more lines, here is an excerpt of the beginning of the error messages

Scanning dependencies of target gtest
Scanning dependencies of target xxhash
Scanning dependencies of target tlx
[ 1%] Building C object extlib/xxhash/cmake_unofficial/CMakeFiles/xxhash.dir//xxhash.c.o
[ 2%] Linking C static library libxxhash.a
[ 2%] Built target xxhash
Scanning dependencies of target xxhsum
[ 3%] Building C object extlib/xxhash/cmake_unofficial/CMakeFiles/xxhsum.dir/
/xxhsum.c.o
[ 4%] Building CXX object extlib/googletest/googlemock/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 6%] Building CXX object extlib/tlx/tlx/CMakeFiles/tlx.dir/backtrace.cpp.o
[ 6%] Building CXX object extlib/tlx/tlx/CMakeFiles/tlx.dir/algorithm/parallel_multiway_merge.cpp.o
[ 7%] Linking C executable xxhsum
[ 7%] Built target xxhsum
[ 8%] Building CXX object extlib/tlx/tlx/CMakeFiles/tlx.dir/cmdline_parser.cpp.o
/tmp/ccMLvSpN.s: Assembler messages:
/tmp/ccMLvSpN.s:15: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:15: Error: junk at end of line, first unrecognized character is -'
/tmp/ccMLvSpN.s:17: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:17: Error: unknown pseudo-op: .lvu1'
/tmp/ccMLvSpN.s:18: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:18: Error: unknown pseudo-op: .lvu2'
/tmp/ccMLvSpN.s:19: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:19: Error: unknown pseudo-op: .lvu3'
/tmp/ccMLvSpN.s:20: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:20: Error: unknown pseudo-op: .lvu4'
/tmp/ccMLvSpN.s:21: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:21: Error: unknown pseudo-op: .lvu5'
/tmp/ccMLvSpN.s:25: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:25: Error: unknown pseudo-op: .lvu6'
/tmp/ccMLvSpN.s:27: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:27: Error: unknown pseudo-op: .lvu7'
/tmp/ccMLvSpN.s:33: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:33: Error: unknown pseudo-op: .lvu8'
/tmp/ccMLvSpN.s:37: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:37: Error: unknown pseudo-op: .lvu9'
/tmp/ccMLvSpN.s:40: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:40: Error: unknown pseudo-op: .lvu10'
/tmp/ccMLvSpN.s:44: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:44: Error: unknown pseudo-op: .lvu11'
/tmp/ccMLvSpN.s:47: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:47: Error: unknown pseudo-op: .lvu12'
/tmp/ccMLvSpN.s:48: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:48: Error: unknown pseudo-op: .lvu13'
/tmp/ccMLvSpN.s:51: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:51: Error: unknown pseudo-op: .lvu14'
/tmp/ccMLvSpN.s:55: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:55: Error: unknown pseudo-op: .lvu15'
/tmp/ccMLvSpN.s:56: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:56: Error: unknown pseudo-op: .lvu16'
/tmp/ccMLvSpN.s:59: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:59: Error: unknown pseudo-op: .lvu17'
/tmp/ccMLvSpN.s:61: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:61: Error: unknown pseudo-op: .lvu18'
/tmp/ccMLvSpN.s:64: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:64: Error: unknown pseudo-op: .lvu19'
/tmp/ccMLvSpN.s:65: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:65: Error: unknown pseudo-op: .lvu20'
/tmp/ccMLvSpN.s:84: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:84: Error: junk at end of line, first unrecognized character is -'
/tmp/ccMLvSpN.s:86: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:86: Error: unknown pseudo-op: .lvu22'
/tmp/ccMLvSpN.s:119: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:119: Error: unknown pseudo-op: .lvu23'
/tmp/ccMLvSpN.s:120: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:120: Error: unknown pseudo-op: .lvu24'
/tmp/ccMLvSpN.s:122: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:122: Error: unknown pseudo-op: .lvu25'
/tmp/ccMLvSpN.s:123: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:123: Error: unknown pseudo-op: .lvu26'
/tmp/ccMLvSpN.s:125: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:125: Error: unknown pseudo-op: .lvu27'
/tmp/ccMLvSpN.s:128: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:128: Error: unknown pseudo-op: .lvu28'
/tmp/ccMLvSpN.s:130: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:130: Error: unknown pseudo-op: .lvu29'
/tmp/ccMLvSpN.s:132: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:132: Error: unknown pseudo-op: .lvu30'
/tmp/ccMLvSpN.s:134: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:134: Error: unknown pseudo-op: .lvu31'
/tmp/ccMLvSpN.s:138: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:138: Error: unknown pseudo-op: .lvu32'
/tmp/ccMLvSpN.s:142: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:142: Error: unknown pseudo-op: .lvu33'
/tmp/ccMLvSpN.s:144: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:144: Error: unknown pseudo-op: .lvu34'
/tmp/ccMLvSpN.s:145: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:145: Error: unknown pseudo-op: .lvu35'
/tmp/ccMLvSpN.s:148: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:148: Error: unknown pseudo-op: .lvu36'
/tmp/ccMLvSpN.s:150: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:150: Error: unknown pseudo-op: .lvu37'
/tmp/ccMLvSpN.s:153: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:153: Error: unknown pseudo-op: .lvu38'
/tmp/ccMLvSpN.s:154: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:154: Error: unknown pseudo-op: .lvu39'
/tmp/ccMLvSpN.s:163: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:163: Error: unknown pseudo-op: .lvu40'
/tmp/ccMLvSpN.s:164: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:164: Error: unknown pseudo-op: .lvu41'
/tmp/ccMLvSpN.s:169: Error: unknown .loc sub-directive view' /tmp/ccMLvSpN.s:169: Error: unknown pseudo-op: .lvu42'
/tmp/ccMLvSpN.s:172: Error: unknown .loc sub-directive `view'

How should I fix this? Thank you very much!

Failing to build COBS during make

EDIT - got it to work
Hi
I am using CMake 3.14 and gcc 7.2 but run into errors about half way through the build when running make. Here is the first error that appears:

In file included from /path/cobs/cobs/kmer_buffer.hpp:14:0,
                 from /path/cobs/cobs/cortex_file.hpp:16,
                 from /path/cobs/cobs/document_list.hpp:12,
                 from /path/cobs/cobs/construction/classic_index.hpp:13,
                 from /pathcobs/cobs/construction/classic_index.cpp:14:
/pathcobs/cobs/kmer.hpp: In constructor 'cobs::KMer<N>::KMer()':
/path/cobs/cobs/kmer.hpp:47:55: error: expected ',' before ')' token
         static_assert(sizeof(KMer<N>) == KMer<N>::size);
                                                       ^

Any ideas what is causing this?

COBS for 600K genomes

Hi,
I am in charge to find presence of specific genes in 600.000 Salmonella's genomes.
I used COBS on few genomes for training
But I don't really understand the output...
I copied a subsequence (55 bp) from one of my genomes, and run COBS to see if it get it.
In the output I got 24 (see bellow).
And when I choose bigger sub sequence, sometimes it doesn't find it at all.

Another issue: how I can see if my query fully matchs or partially?

--- end of document list (5 entries) ---
documents: 5
minimum 31-mers: 2811023
maximum 31-mers: 2874904
average 31-mers: 2834688
total 31-mers: 14173442
DIE: Output file exists, will not overwrite without --clobber @ /opt/conda/conda-bld/cobs_1646087618998/work/cobs/construction/compact_index.cpp:213
terminate called without an active exception

SRR18349609 24
SRR18349610 24
SRR18349611 24

TIMER info=search hashes=9.929e-06 io=0.000567883 total=0.000577812

Query length 55

I'd really appreciate your help

Thank you!

Fails to Compile (Errors during 'make')

I'm trying to install Cobs on a Linux cluster and I believe I have all the dependencies necessary. My cmake output is:

-- The C compiler identification is GNU 5.5.0
-- The CXX compiler identification is GNU 5.5.0
-- Check for working C compiler: /software/apps/compilers/gcc/5.5.0/bin/gcc
-- Check for working C compiler: /software/apps/compilers/gcc/5.5.0/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /software/apps/compilers/gcc/5.5.0/bin/g++
-- Check for working CXX compiler: /software/apps/compilers/gcc/5.5.0/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Release' as none was specified.
-- COBS CMAKE_CXX_FLAGS: -fopenmp -Wpedantic -W -Wall -march=native -fPIC
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found PythonInterp: /software/apps/anaconda/5.2/python/3.7/bin/python (found version "3.7.1") 
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Performing Test CFLAG_Wall
-- Performing Test CFLAG_Wall - Success
-- Performing Test CFLAG_Wextra
-- Performing Test CFLAG_Wextra - Success
-- Performing Test CFLAG_Wcast_qual
-- Performing Test CFLAG_Wcast_qual - Success
-- Performing Test CFLAG_Wcast_align
-- Performing Test CFLAG_Wcast_align - Success
-- Performing Test CFLAG_Wshadow
-- Performing Test CFLAG_Wshadow - Success
-- Performing Test CFLAG_Wstrict_aliasing_1
-- Performing Test CFLAG_Wstrict_aliasing_1 - Success
-- Performing Test CFLAG_Wswitch_enum
-- Performing Test CFLAG_Wswitch_enum - Success
-- Performing Test CFLAG_Wdeclaration_after_statement
-- Performing Test CFLAG_Wdeclaration_after_statement - Success
-- Performing Test CFLAG_Wstrict_prototypes
-- Performing Test CFLAG_Wstrict_prototypes - Success
-- Performing Test CFLAG_Wundef
-- Performing Test CFLAG_Wundef - Success
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.7") 
-- Boost version: 1.68.0
-- Found the following Boost libraries:
--   system
--   filesystem
-- Performing Test TLX_CXX_HAS_CXX17
-- Performing Test TLX_CXX_HAS_CXX17 - Success
-- TLX CMAKE_CXX_FLAGS: -Wshadow -Wold-style-cast -std=c++17 -g -W -Wall -Wextra -fPIC  -fopenmp -Wpedantic -W -Wall -march=native -fPIC -Wcast-qual -Winit-self -Wnoexcept -Woverloaded-virtual -Wredundant-decls
-- Found PythonLibs: /software/apps/anaconda/5.2/python/3.7/lib/libpython3.7m.so
-- pybind11 v2.2.4
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- LTO enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /home-1/[email protected]/software/cobs/build

However I am unable to compile cobs despite using a recursive git clone. Instead it seems to crash more or less immediately:

[  1%] Building CXX object extlib/googletest/googlemock/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
In file included from /home-1/[email protected]/software/cobs/extlib/googletest/googletest/include/gtest/internal/gtest-internal.h:45:0,
                 from /home-1/[email protected]/software/cobs/extlib/googletest/googletest/include/gtest/gtest.h:59,
                 from /home-1/[email protected]/software/cobs/extlib/googletest/googletest/src/gtest-all.cc:38:
/software/centos7/usr/include/sys/wait.h:114:46: error: ‘__pid_t wait(void*)’ hides constructor for ‘union wait’ [-Werror=shadow]
 extern __pid_t wait (__WAIT_STATUS __stat_loc);
                                              ^
In file included from /software/centos7/usr/include/bits/fcntl.h:61:0,
                 from /software/centos7/usr/include/fcntl.h:35,
                 from /home-1/[email protected]/software/cobs/extlib/googletest/googletest/src/gtest.cc:61,
                 from /home-1/[email protected]/software/cobs/extlib/googletest/googletest/src/gtest-all.cc:41:
/software/centos7/usr/include/bits/fcntl-linux.h:308:27: error: ISO C++ forbids zero-size array ‘f_handle’ [-Werror=pedantic]
   unsigned char f_handle[0];
                           ^
cc1plus: all warnings being treated as errors
make[2]: *** [extlib/googletest/googlemock/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1
make[1]: *** [extlib/googletest/googlemock/gtest/CMakeFiles/gtest.dir/all] Error 2
make: *** [all] Error 2

Possible false negatives in query

Hi,

I've been using COBS in a pipeline I'm working on, but I've noticed what appear to be false negatives in COBS' querying results.

I've used the following script to build compressed COBS and Mantis indexes for the attached input sequences

PREFIX=ERR1218773
PREFIX2=ERR1217061
NAME=small

# COBS
cobs compact-construct -k 31 -f 0.01 -T 1 --num-hashes 7 inputs/ $NAME.cobs_compact

# Mantis
squeakr count -e -k 31 -t 1 -o inputs/$PREFIX.ser inputs/$PREFIX.unitigs.fq
squeakr count -e -k 31 -t 1 -o inputs/$PREFIX2.ser inputs/$PREFIX2.unitigs.fq
echo inputs/$PREFIX.ser > inputs.txt
echo inputs/$PREFIX2.ser >> inputs.txt
mantis build -s 25 -i inputs.txt -o mantis

# query
cobs query -i $NAME.cobs_compact -f queries/query.fa -T 1 -t 0.0 --load-complete
mantis query -1 -p mantis/ -o /dev/stdout queries/query.seq.txt

When I query with Mantis, I get

[2019-10-24 17:46:48.174] [mantis_console] [info] Reading colored dbg from disk.
[2019-10-24 17:46:48.297] [mantis_console] [info] Read colored dbg with 9205186 k-mers and 3 color classes
[2019-10-24 17:46:48.297] [mantis_console] [info] Reading query kmers from disk.
[2019-10-24 17:46:48.298] [mantis_console] [info] Total k-mers to query: 831
[2019-10-24 17:46:48.298] [mantis_console] [info] Querying the colored dbg.
-----------------------------------------
| Query time  | Time = 277.25 us
-----------------------------------------
0       831
inputs/ERR1218773.ser   642
inputs/ERR1217061.ser   4
[2019-10-24 17:46:48.298] [mantis_console] [info] Writing done.

Whereas when I query the file with COBS, I get

Reading complete index
Read 33.331 MiB / 33.331 MiB - 100%
Index loaded into RAM.
*gb|HQ845196|+|0-861|ARO:3001109|SHV-52 2
ERR1217061      10
ERR1218773      1
TIMER info=search hashes=0.000268999 io=0.000221758 and rows=2.1032e-05 sort results=1.396e-06 total=0.000513185

If I exclude PREFIX2 (the second input file), I get the following result in COBS

Reading complete index
Read 20.586 MiB / 20.586 MiB - 100%
Index loaded into RAM.
*gb|HQ845196|+|0-861|ARO:3001109|SHV-52 1
ERR1218773      5
TIMER info=search hashes=0.000157673 io=0.000260737 and rows=2.2831e-05 sort results=1.326e-06 total=0.000442567

So it seems like the addition of extra samples leads to a reduction in the number of reported matches. I observe the same behavior if I construct a classic index as well. I've also done some tests with larger data sets where no matches are reported in cases where Mantis reports several.

Overall, the reported numbers are much lower than those reported by Mantis, so I'm not sure how to interpret these results.

inputs.tar.gz
queries.tar.gz

Please let me know if there's any other info I can provide to help look into this.

Best,
Harun

Support more fasta file extensions

Hi, COBS is slightly inconvenient for me to use because it does not recognize the .fna file extension for fasta files. I suggest supporting all common fasta file extensions. For example, Wikipedia lists the extensions .fasta, .fna, .ffn, .faa, .frn and .fa.

Build problems

I ran the build instructions exactly as provided in the readme and it completes with no errors.
However when I run make test, the test executables are not found. The directories build/src, build/test are empty other than the make/cmake related files.

Provide the number of k-mers in the query

Could the number of k-mers in the query be included in the output so the user can calculate the percentage of the query in each dataset (or provide the percentage as well)?

Steps for compiling COBS on server with old GCC/C++/C compiler

I spent two hours finguring out how to compile cobs on our server (CentOS 7.9 with gcc 4.8.5) using conda. May this helps.

  1. Create conda env and install new gcc/cc/c++ compilers

     # conda env remove -n cobs
    
     conda create -n cobs cmake
    
     conda activate cobs
    
     # mamba is faster for installing packages
     conda install -y mamba
     
     mamba install -c conda-forge -y gcc_impl_linux-64 c-compiler cxx-compiler zlib
    
  2. Link binaries and some libs

     # gcc binary
     cd /home/shenwei/app/miniconda3/envs/cobs/bin; 
     ln -s ../libexec/gcc/x86_64-conda-linux-gnu/9.3.0/gcc
     
     # cobs uses old boost version which relies on libboost_**-mt.a
     cd /home/shenwei/app/miniconda3/envs/cobs/lib
     ln -s libboost_system.a libboost_system-mt.a
     ln -s libboost_filesystem.a libboost_filesystem-mt.a
    
  3. Edit envinronment, add few lines to ~/.bashrc.

     # vim ~/.bashrc
     export LD_LIBRARY_PATH=$app/miniconda3/envs/cobs/lib:$LD_LIBRARY_PATH
     export C_INCLUDE_PATH=$app/miniconda3/envs/cobs/include
     export CPLUS_INCLUDE_PATH=$app/miniconda3/envs/cobs/include
    
  4. Reactivate envonment

     conda deactivate
     
     conda activate cobs    
    
  5. Compile cobs

     git clone --recursive https://github.com/bingmann/cobs.git
     mkdir cobs/build
     cd cobs/build
     cmake ..
     make -j4
     
     # copy binary to somewhere in $PATH
     cp src/cobs ~/bin/
    

amino acid support

Hello COBS team,

Any possibilities to also support amino acid sequences (20 alphabets instead of 4 for DNA). I found this to be extremely useful for genome query/search.

Thanks,

Jianshu

Iteratively adding documents

Hi,

I have limited storage capacity and would like to build and index a large number of SRA files. Is it possible to do this iteratively? By this I mean, I would download 10 SRA files, build the index, delete the 10 SRA, download another 10 SRA, add these to the existing compact COB index, delete them, etc...

Thanks in advance

Error when using make -j4

Hello, I am a Mac user and appear to have successfully compiled using GCC. However, when I run make -j4 I get the following errors:

/Users/danielanderson/cobs/cobs/construction/classic_index.cpp: In function 'void cobs::classic_construct_from_documents(const cobs::DocumentList&, const std::experimental::filesystem::v1::__cxx11::path&, const cobs::ClassicIndexParameters&)':
/Users/danielanderson/cobs/cobs/construction/classic_index.cpp:139:68: error: no matching function for call to 'min(size_t&, long long unsigned int)'
  139 |         params.mem_bytes / (batch_size / 8 * params.signature_size));
      |                                                                    ^
In file included from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/ios:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/istream:38,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/fstream:38,
                 from /Users/danielanderson/cobs/cobs/construction/classic_index.cpp:10:
/usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/stl_algobase.h:198:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  198 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~


/Users/danielanderson/cobs/cobs/construction/compact_index.cpp: In function 'void cobs::compact_combine_into_compact(const std::experimental::filesystem::v1::__cxx11::path&, const std::experimental::filesystem::v1::__cxx11::path&, uint64_t, uint64_t, bool)':
/Users/danielanderson/cobs/cobs/construction/compact_index.cpp:122:64: error: no matching function for call to 'min(size_t&, long long unsigned int)'
  122 |                 batch_size, tlx::div_ceil(data_size, page_size));
      |                                                                ^
In file included from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /Users/danielanderson/cobs/cobs/cortex_file.hpp:13,
                 from /Users/danielanderson/cobs/cobs/document_list.hpp:12,
                 from /Users/danielanderson/cobs/cobs/construction/classic_index.hpp:13,
                 from /Users/danielanderson/cobs/cobs/construction/compact_index.cpp:9:
/usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/stl_algobase.h:198:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  198 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~

/Users/danielanderson/cobs/cobs/construction/compact_index.cpp:131:78: error: no matching function for call to 'min(size_t&, uint64_t)'
  131 |                 size_t this_batch = std::min(batch_size, data_size / row_size);
      |                                                                              ^
In file included from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /Users/danielanderson/cobs/cobs/cortex_file.hpp:13,
                 from /Users/danielanderson/cobs/cobs/document_list.hpp:12,
                 from /Users/danielanderson/cobs/cobs/construction/classic_index.hpp:13,
                 from /Users/danielanderson/cobs/cobs/construction/compact_index.cpp:9:
/usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/stl_algobase.h:198:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'


/Users/danielanderson/cobs/cobs/construction/classic_index.cpp: In function 'void cobs::classic_combine_streams(std::vector<std::basic_ifstream<char> >&, std::vector<long long unsigned int>&, const std::experimental::filesystem::v1::__cxx11::path&, unsigned int, uint8_t, uint64_t, uint64_t, uint64_t, uint64_t, cobs::Timer&, const std::vector<std::__cxx11::basic_string<char> >&)':
/Users/danielanderson/cobs/cobs/construction/classic_index.cpp:255:62: error: no matching function for call to 'min(size_t&, uint64_t)'
  255 |             std::min(batch_size, signature_size - current_row);
      |                                                              ^
In file included from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/ios:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/istream:38,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/fstream:38,
                 from /Users/danielanderson/cobs/cobs/construction/classic_index.cpp:10:
/usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/stl_algobase.h:198:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'

Fails to compile on Ubuntu 18.04.2

Hi @bingmann

I get the following errors when trying to compile (using g++-7):

CMake Error at CMakeLists.txt:87 (add_subdirectory):
  The source directory

    /home/simon/Programs/cobs/extlib/googletest

  does not contain a CMakeLists.txt file.


CMake Error at CMakeLists.txt:94 (add_subdirectory):
  add_subdirectory given source "extlib/xxhash/cmake_unofficial" which is not
  an existing directory.


-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   system
--   filesystem
CMake Error at CMakeLists.txt:116 (add_subdirectory):
  The source directory

    /home/simon/Programs/cobs/extlib/tlx

  does not contain a CMakeLists.txt file.


CMake Error at python/CMakeLists.txt:9 (add_subdirectory):
  The source directory

    /home/simon/Programs/cobs/python/pybind11

  does not contain a CMakeLists.txt file.


CMake Error at python/CMakeLists.txt:10 (pybind11_add_module):
  Unknown CMake command "pybind11_add_module".

tlx and pybind11 are installed on my machine too.

conda package

Hi Timo,
Would it be possible to get a conda package for cobs? I am having trouble compiling on my Mac and being able to access cobs through conda would make it easy to get working.
Thanks,
Grace

Query length limit

Would it be possible to increase the query length limit? I am wanting to query sequences up to 300kb and it would be good to avoid having to split the sequences up into chunks.

Output of compact_construct extremely large

Dear Authors,

We are trying to benchmark COBS' memory usage/model size on some fasta files. We followed exactly the commands provided in the tutorial for both the CPP and the Python version and found that the output file from the compact construct command, which can later be used to feed into the query command is extremely large and several times larger than the size of the original data.

For instance, the seven sample files in /tests/data/fasta add up to 10KB. After running the following commands,

src/cobs doc-list tests/data/fasta/
src/cobs compact-construct tests/data/fasta/ example.cobs_compact

the example.cobs_compact file has size 69K.

We looked into the serialization code and saw that "padding" is written to the serialized file.

I am writing to inquire whether I did something wrong in the construction process, what is written into the serialized files, and whether I did something wrong in measuring the size of the model.

Thank you very much!

Build failing on ubuntu 16.04.5, gcc 5.4.0

"make -j4" is failing for me. My best guess is that my compiler is not being used in c++17 mode.

The first failure is reported at Building CXX object cobs/CMakeFiles/cobs_static.dir/construction/compact_index.cpp.o The reported error is
...cobs/kmer.hpp:47:55: error: expected ',' before ')' token for a call to static_assert() with only one argument. The single argument static_assert() was introduced in c++17, before that two arguments were required. This is why I believe the problem is that the compiler is being run in pre-17 mode.

I note that the output from the top level cmake command included this line: TLX CMAKE_CXX_FLAGS: ... -std=c++17 .... Does that suggest that cmake was smart eough to know it needed to add -std=c++17 to get my compiler into c++17?

I've tried to dig through the build process to see what gcc command line was used for that first failure. That information is (effectively) hidden in the definitions of $(CXX_FLAGS) (or perhaps $(CXX_DEFINES)) in effect in cobs/CMakeFiles/cobs_static.dir/build.make, but I'm not familiar enough with the cmake process to know where to find where those are defined.

Is there any way to get make -j4 to show me all the commands it performs, i.e. the command lines instead of the usually more informative summaries it is currently showing me?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.