barricklab / breseq

breseq is a computational pipeline for finding mutations relative to a reference sequence in short-read DNA resequencing data. It is intended for haploid microbial genomes (<20 Mb). breseq is a command line tool implemented in C++ and R.
http://barricklab.org/breseq
GNU General Public License v2.0
137 stars 21 forks source link

Can't find expected R scripts #347

Closed jsa-aerial closed 1 year ago

jsa-aerial commented 1 year ago

Installed breseq via breseq-0.38.0-Linux-x86_64.tar.gz

When trying to run, it says it can't find expected R scripts. But the relative location it gives for them seems to have them (unless the above archive file doesn't actually have them all).

Here is a transcript showing things

/usr/local/breseq-0.38.0-Linux-x86_64 $ dir total 44 -rw------- 1 root root 18092 Apr 4 14:15 LICENSE -rw------- 1 root root 543 Apr 4 14:15 README drwxr-xr-x 2 root root 4096 Apr 7 20:59 bin/ drwxr-xr-x 5 root root 4096 Apr 7 20:59 documentation/ -rwxr-xr-x 1 root root 51 Apr 4 14:15 run_tests.sh drwxr-xr-x 3 root root 4096 Apr 4 14:15 share/ drwxr-xr-x 4 root root 4096 Apr 7 20:59 tests/ $ $ dir bin total 7676 -rwxr-xr-x 1 root root 4003432 Apr 4 14:15 breseq -rwxr-xr-x 1 root root 3854312 Apr 4 14:15 gdtools $ $ dir share/breseq/ total 96 -rw------- 1 root root 17441 Apr 4 14:15 breseq.png -rw------- 1 root root 1685 Apr 4 14:15 breseq_small.png -rw------- 1 root root 7543 Apr 4 14:15 combined_circos.conf -rw------- 1 root root 12956 Apr 4 14:15 coverage_distribution.r -rw------- 1 root root 2477 Apr 4 14:15 indels.conf -rw------- 1 root root 3897 Apr 4 14:15 mobs.conf -rw------- 1 root root 4203 Apr 4 14:15 mutations.conf -rw------- 1 root root 5686 Apr 4 14:15 plot_coverage.r -rw------- 1 root root 6157 Apr 4 14:15 plot_error_rate.r -rwx------ 1 root root 1797 Apr 4 14:15 plot_jc_scores.r -rw------- 1 root root 7453 Apr 4 14:15 polymorphism_statistics.r -rwx------ 1 root root 327 Apr 4 14:15 run_circos.sh $ $ cd bin/ $ ./breseq !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!> FATAL ERROR <!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Could not find expected R scripts inside of data path set relative to executable: /usr/local/breseq-0.38.0-Linux-x86_64/bin/../share/breseq Please, see the installation instructions in the HTM documentation. FILE: ./libbreseq/settings.h LINE: 655 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!> STACK TRACE <!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Backtrace with 6 stack frames. ./breseq() [0x43f736] ./breseq() [0x44298b] ./breseq() [0x40b20a] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f135d46fd90] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f135d46fe40] ./breseq() [0x4192c7] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $ $ dir ../share/breseq/ total 96 -rw------- 1 root root 17441 Apr 4 14:15 breseq.png -rw------- 1 root root 1685 Apr 4 14:15 breseq_small.png -rw------- 1 root root 7543 Apr 4 14:15 combined_circos.conf -rw------- 1 root root 12956 Apr 4 14:15 coverage_distribution.r -rw------- 1 root root 2477 Apr 4 14:15 indels.conf -rw------- 1 root root 3897 Apr 4 14:15 mobs.conf -rw------- 1 root root 4203 Apr 4 14:15 mutations.conf -rw------- 1 root root 5686 Apr 4 14:15 plot_coverage.r -rw------- 1 root root 6157 Apr 4 14:15 plot_error_rate.r -rwx------ 1 root root 1797 Apr 4 14:15 plot_jc_scores.r -rw------- 1 root root 7453 Apr 4 14:15 polymorphism_statistics.r -rwx------ 1 root root 327 Apr 4 14:15 run_circos.sh* $

jeffreybarrick commented 1 year ago

Thanks for posting the detailed view of your directories.

It looks like there are permission problems with how you downloaded and/or uncompressed the archive.

Only the root user has r/w access to the R script files. So, when breseq tries to check for the files when you run it as a normal user (which it does by trying to open the files), it can't do that.

You could chown or chmod to fix the permissions or maybe re-download and unarchive as a normal user.

jsa-aerial commented 1 year ago

I think chmoding is the right way to fix this. As a suggestion, it may make sense to ensure that the archive has world/all readable on everything (I don't think breseq would require write on any of this - correct??). The permissions are what came out of the archive, but the user:group was modified post unpack to root:root.

jeffreybarrick commented 1 year ago

I agree. It makes sense to do that. We'll update our build scripts so the permissions should work out of the box no matter how the ownership is changed.