bingmann / cobs Goto Github PK
View Code? Open in Web Editor NEWCOBS - Compact Bit-Sliced Signature Index (for Genomic k-Mer Data or q-Grams)
Home Page: https://panthema.net/cobs
License: MIT License
COBS - Compact Bit-Sliced Signature Index (for Genomic k-Mer Data or q-Grams)
Home Page: https://panthema.net/cobs
License: MIT License
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-directiveview' /tmp/ccMLvSpN.s:15: Error: junk at end of line, first unrecognized character is
-'
/tmp/ccMLvSpN.s:17: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:17: Error: unknown pseudo-op:
.lvu1'
/tmp/ccMLvSpN.s:18: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:18: Error: unknown pseudo-op:
.lvu2'
/tmp/ccMLvSpN.s:19: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:19: Error: unknown pseudo-op:
.lvu3'
/tmp/ccMLvSpN.s:20: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:20: Error: unknown pseudo-op:
.lvu4'
/tmp/ccMLvSpN.s:21: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:21: Error: unknown pseudo-op:
.lvu5'
/tmp/ccMLvSpN.s:25: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:25: Error: unknown pseudo-op:
.lvu6'
/tmp/ccMLvSpN.s:27: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:27: Error: unknown pseudo-op:
.lvu7'
/tmp/ccMLvSpN.s:33: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:33: Error: unknown pseudo-op:
.lvu8'
/tmp/ccMLvSpN.s:37: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:37: Error: unknown pseudo-op:
.lvu9'
/tmp/ccMLvSpN.s:40: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:40: Error: unknown pseudo-op:
.lvu10'
/tmp/ccMLvSpN.s:44: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:44: Error: unknown pseudo-op:
.lvu11'
/tmp/ccMLvSpN.s:47: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:47: Error: unknown pseudo-op:
.lvu12'
/tmp/ccMLvSpN.s:48: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:48: Error: unknown pseudo-op:
.lvu13'
/tmp/ccMLvSpN.s:51: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:51: Error: unknown pseudo-op:
.lvu14'
/tmp/ccMLvSpN.s:55: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:55: Error: unknown pseudo-op:
.lvu15'
/tmp/ccMLvSpN.s:56: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:56: Error: unknown pseudo-op:
.lvu16'
/tmp/ccMLvSpN.s:59: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:59: Error: unknown pseudo-op:
.lvu17'
/tmp/ccMLvSpN.s:61: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:61: Error: unknown pseudo-op:
.lvu18'
/tmp/ccMLvSpN.s:64: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:64: Error: unknown pseudo-op:
.lvu19'
/tmp/ccMLvSpN.s:65: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:65: Error: unknown pseudo-op:
.lvu20'
/tmp/ccMLvSpN.s:84: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:84: Error: junk at end of line, first unrecognized character is
-'
/tmp/ccMLvSpN.s:86: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:86: Error: unknown pseudo-op:
.lvu22'
/tmp/ccMLvSpN.s:119: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:119: Error: unknown pseudo-op:
.lvu23'
/tmp/ccMLvSpN.s:120: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:120: Error: unknown pseudo-op:
.lvu24'
/tmp/ccMLvSpN.s:122: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:122: Error: unknown pseudo-op:
.lvu25'
/tmp/ccMLvSpN.s:123: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:123: Error: unknown pseudo-op:
.lvu26'
/tmp/ccMLvSpN.s:125: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:125: Error: unknown pseudo-op:
.lvu27'
/tmp/ccMLvSpN.s:128: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:128: Error: unknown pseudo-op:
.lvu28'
/tmp/ccMLvSpN.s:130: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:130: Error: unknown pseudo-op:
.lvu29'
/tmp/ccMLvSpN.s:132: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:132: Error: unknown pseudo-op:
.lvu30'
/tmp/ccMLvSpN.s:134: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:134: Error: unknown pseudo-op:
.lvu31'
/tmp/ccMLvSpN.s:138: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:138: Error: unknown pseudo-op:
.lvu32'
/tmp/ccMLvSpN.s:142: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:142: Error: unknown pseudo-op:
.lvu33'
/tmp/ccMLvSpN.s:144: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:144: Error: unknown pseudo-op:
.lvu34'
/tmp/ccMLvSpN.s:145: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:145: Error: unknown pseudo-op:
.lvu35'
/tmp/ccMLvSpN.s:148: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:148: Error: unknown pseudo-op:
.lvu36'
/tmp/ccMLvSpN.s:150: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:150: Error: unknown pseudo-op:
.lvu37'
/tmp/ccMLvSpN.s:153: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:153: Error: unknown pseudo-op:
.lvu38'
/tmp/ccMLvSpN.s:154: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:154: Error: unknown pseudo-op:
.lvu39'
/tmp/ccMLvSpN.s:163: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:163: Error: unknown pseudo-op:
.lvu40'
/tmp/ccMLvSpN.s:164: Error: unknown .loc sub-directiveview' /tmp/ccMLvSpN.s:164: Error: unknown pseudo-op:
.lvu41'
/tmp/ccMLvSpN.s:169: Error: unknown .loc sub-directiveview' /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!
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?
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!
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
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.
Please let me know if there's any other info I can provide to help look into this.
Best,
Harun
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.
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.
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)?
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.
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
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
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
Reactivate envonment
conda deactivate
conda activate cobs
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/
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
I know @graceblackwell is interested in k=19
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
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&)'
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.
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
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.
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!
"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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.