camoragaq / BrumiR

BrumiR: A toolkit for de novo discovery of microRNAs from sRNA-seq data.
MIT License
9 stars 2 forks source link

Error during compiling: bin directory is missing. #3

Open annefleurbrand opened 2 years ago

annefleurbrand commented 2 years ago

Hello,

I would like to use BrumiR to identify small RNAs in a species without a reference genome (thanks for developing BrumiR), but get the following error during compilation:

~/brumir$ make all

g++ -o bin/ed_aligner src/ed_aligner.cpp ./edlib/edlib/src/edlib.cpp -O3 -std=c++11 -I ./edlib/edlib/include /usr/bin/ld: cannot open output file bin/ed_aligner: No such file or directory collect2: error: ld returned 1 exit status makefile:35: recipe for target 'bin/ed_aligner' failed make: *** [bin/ed_aligner] Error 1

I am working on a Linux server and have used docker to copy brumirv2.0 into my home directory. I also installed the dependencies.

~/brumir$ ls aux_scripts brumir2reference.pl brumir.pl db Dockerfile edlib img lib LICENSE makefile README.md src test

I'd be very grateful for any help you can provide.

Thanks in advance,

Fleur

annefleurbrand commented 2 years ago

The following works (but generates warnings):

  1. copy the folder src in a new folder called bin
  2. make all

make all c++ -o bin/ed_aligner src/ed_aligner.cpp ./edlib/edlib/src/edlib.cpp -O3 -std=c++11 -I ./edlib/edlib/include c++ -o bin/ed_genome_aligner src/ed_genome_aligner.cpp ./edlib/edlib/src/edlib.cpp -O3 -std=c++11 -I ./edlib/edlib/include src/ed_genome_aligner.cpp:199:63: warning: format specifies type 'int' but the argument has type 'std::1::basic_string<char, std::__1::char_traits, std::1::allocator >::size_type' (aka 'unsigned long') [-Wformat] printf("Scanning seq:%s %d\n",targets[t].name.c_str(),targets[t].seq.length()); ~~ ^~~~~~~ %lu src/ed_genome_aligner.cpp:211:37: warning: format specifies type 'int' but the argument has type 'std::1::vector<mihit, std::1::allocator >::size_type' (aka 'unsigned long') [-Wformat] printf("Total hits stored %d\n",mihits.size()); ~~ ^~~~~ %lu 2 warnings generated

RJEGR commented 1 year ago

Hello Carol,

Same problem, bin folder doesn't exist but by using @annefleurbrand recommendation resulted in the warning message although the test example did run well. perl brumir.pl -a test/sRNA-seq.human.trim.fa.gz -p prefix.

Regards

Running on debian (Ubuntu 20.04.1 LTS)

My pipe:

1) Installing dependencies

wget https://github.com/GATB/bcalm/releases/download/v2.2.2/bcalm-binaries-v2.2.2-Linux.tar.gz
wget https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_4_x/ViennaRNA-2.4.14.tar.gz

tar -zxvf ViennaRNA-2.4.14.tar.gz

cd ViennaRNA-2.4.14.tar.gz

./configure
ln -s /usr/include/locale.h /usr/include/xlocale.h
make
sudo make install

ln -s bcalm-binaries-v2.2.2-Linux/bin/bcalm ~/BrumiR-3.0/bin
ln -s /usr/local/bin/RNA* ~/BrumiR-3.0/bin

2) then,

mkdir bin
cp src/* bin/
make all
g++ -o bin/ed_aligner src/ed_aligner.cpp ./edlib/edlib/src/edlib.cpp -O3 -std=c++11 -I ./edlib/edlib/include g++ -o bin/ed_genome_aligner src/ed_genome_aligner.cpp ./edlib/edlib/src/edlib.cpp -O3 -std=c++11 -I ./edlib/edlib/include src/ed_genome_aligner.cpp: In function ‘int main(int, char const)’: src/ed_genome_aligner.cpp:199:34: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘std::__cxx11::basic_string::size_type’ {aka ‘long unsigned int’} [-Wformat=] 199 printf("Scanning seq:%s %d\n",targets[t].name.c_str(),targets[t].seq.length()); ~^ ~~~~~~~
int std::__cxx11::basic_string::size_type {aka long unsigned int}
%ld
src/ed_genome_aligner.cpp:211:32: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector::size_type’ {aka ‘long unsigned int’} [-Wformat=] 211 printf("Total hits stored %d\n",mihits.size()); ~^ ~~~~~
int std::vector::size_type {aka long unsigned int}
%ld

3) Testing

perl brumir.pl -a test/sRNA-seq.human.trim.fa.gz -p prefix