muellan / metacache

memory efficient, fast & precise taxnomomic classification system for metagenomic read mapping
GNU General Public License v3.0
57 stars 12 forks source link

error compiling metacache #4

Closed ghost closed 6 years ago

ghost commented 6 years ago

Hi

I ran into this error trying to compile metacache:

mkdir build_release g++ -std=c++11 -O3 -Wall -Wextra -Wpedantic -c src/args_handling.cpp -o build_release/args_handling.o g++ -std=c++11 -O3 -Wall -Wextra -Wpedantic -c src/cmdline_utility.cpp -o build_release/cmdline_utility.o g++ -std=c++11 -O3 -Wall -Wextra -Wpedantic -c src/filesys_utility.cpp -o build_release/filesys_utility.o g++ -std=c++11 -O3 -Wall -Wextra -Wpedantic -c src/main.cpp -o build_release/main.o src/main.cpp: In function ‘int main(int, char**)’: src/main.cpp:72:16: error: ‘runtime_error’ in namespace ‘std’ does not name a type catch(std::runtime_error& e) { ^ src/main.cpp:73:37: error: ‘e’ was not declared in this scope std::cerr << "\nABORT: " << e.what() << "!" << std::endl; ^ src/main.cpp:75:16: error: ‘invalid_argument’ in namespace ‘std’ does not name a type catch(std::invalid_argument& e) { ^ src/main.cpp:76:37: error: ‘e’ was not declared in this scope std::cerr << "\nABORT: " << e.what() << "!" << std::endl; ^ make: *** [build_release/main.o] Error 1

Any advice on how to resolve it would be great! Thank you.

muellan commented 6 years ago

Hi, looks like the <stdexcept> header is not included in main.cpp. Which compiler do you use? Clang? The problem should go away if you #include <stdexcept> in main.cpp. I should probably fix that, too. GCC doesn't complain, probably because it is included transitively through <vector> or some other header there.

ghost commented 6 years ago

Hi Andre

Great, it finished compiling and i;m running metacache-build-refseq now.

If I want to move the database to another system can i just tarball the "genomes" folder to the new system?

Thank you.

On Tue, Nov 28, 2017 at 10:41 AM, André Müller notifications@github.com wrote:

Hi, looks like the header is not included in main.cpp. Which compiler do you use? Clang? The problem should go away if you #include in main.cpp. I should probably fix that, too. GCC doesn't complain, probably because it is included transitively through or some other header there.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/muellan/metacache/issues/4#issuecomment-347563974, or mute the thread https://github.com/notifications/unsubscribe-auth/ABAVGNDtUksji-kQK2bbD2l6zqYl1xP6ks5s7CnAgaJpZM4QrxH8 .

muellan commented 6 years ago

The genomes itself and the taxonomy are no longer needed after the database has been built. The database consists of one large binary file that contains all relevant information for classification. (But you might want to keep the genomes and taxonomy if you want to build another database with different settings.)

ghost commented 6 years ago

Hi Andre

is there a way to generate a taxonomic/abundance table from the results file?

Thank you

muellan commented 6 years ago

Hi. Yes, that's one of the things a colleague of mine is currently working on :-) He does it in a post processing step. But I'm sorry we can't share the code yet, because it is part of an upcoming publication.