If you cannot resolve your error just send a mail to incoming+paulklemm-phd-proteinortho-7278443-issue-@incoming.gitlab.com (Please include the Parameter-vector' printed for all errors)
Table of Contents
1. Make errors
1.0 cannot find g++
1.1 undefined reference
1.2 cannot find lapack
1.3 libssl.so.1.1: cannot open shared object file: No such file or directory
1.4 No CMAKE_Fortran_COMPILER could be found
1.5 unrecognized command line option
1.6 conda error: not available ... openmp
1.7 FATAL: kernel too old
2. Runtime Errors
2.1 cannot find XYZ
2.2 Failed to detect ...
2.3 'proteinortho_clustering' failed with code 32256 / cannot execute binary file
2.4 'proteinortho_clustering' failed with code 33792
2.5 No coordinate found for ... gene(s)
2.6 'diamond' failed with code 33792 / sh: line 1: 4446 Illegal instruction: 4 diamond
1. Make errors
1.0 cannot find g++
/bin/sh: 1: g++: not found
Reason:
The g++ compiler is missing or not found
Solution:
- Linux:
sudo apt-get install g++
and if needed do asudo apt-get update --fix-missing
in before. - OSX:
brew install gcc
orbrew install gcc --without-multilib
(old macs) (this installs g++-7 or -8 ... usually in /usr/local/Cellar/gcc/*/bin/g++-7)
If the error persists, specify the g++ explicitly with
make CXX=/PATH/TO/g++
(The same goes for the c-compiler (gcc/cc), the flag is CC=/PATH/TO/cc)
the same goes for the following error on OSX:
clang: error: unsupported option '-fopenmp'
1.1 undefined reference
(...)
/usr/lib/gcc/x86_64-linux-gnu/7/libgomp.a(target.o): In function 'gomp_target_init':
(.text+0x8b): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.a(write.o): In function 'get_precision':
(.text.get_precision+0x127): undefined reference to 'quadmath_snprintf'
/usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.a(write.o): In function `get_float_string':
(.text.get_float_string+0x13b): undefined reference to 'quadmath_snprintf'
(.text.get_float_string+0xb2d): undefined reference to 'quadmath_snprintf'
(.text.get_float_string+0x135a): undefined reference to 'quadmath_snprintf'
collect2: error: ld returned 1 exit status
Reason:
You need gfortran and lapack
Solution:
- Linux:
sudo apt-get install libatlas3-base
orsudo apt-get install libopenblas-base
. (Do update g++ if needed withsudo apt-get upgrade g++
). For gfortran e.g.conda install gcc
orsudo apt-get install gfortran
- OSX: osx comes with gfortran and lapack, if not then:
brew install gcc
orbrew install gcc --without-multilib
(old macs).
CMAKE_Fortran_COMPILER
1.2 cannot find lapack
(...)
/usr/bin/ld: cannot find -llapack
/usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit statusproteinortho_clustering compilation failed. Please visit https://gitlab.com/paulklemm_PHD/proteinortho/wikis/Error%20Codes
Reason:
The lapack library was not found
Solution:
Install lapack (e.g. with conda install -c conda-forge lapack
on linux+mac) OR:
For Linux: sudo apt-get install libatlas3-base
or sudo apt-get install libopenblas-base
. (Do update g++ if needed with sudo apt-get upgrade g++
)
1.3 libssl.so.1.1: cannot open shared object file: No such file or directory
(...)
......last linking failed too too too, now I try to recompile lapack (v.3.8.0) and then compile proteinortho_clustering with dynamic linking.
......[ 33%] Extracting the LAPACK library
......[ 66%] Compiling the LAPACK library (using cmake + make)
cmake: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
......[ 99%] Building proteinortho_clustering with LAPACK (dynamic linking)
/usr/bin/ld: cannot find -llapack
/usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit status
proteinortho_clustering compilationCMAKE_Fortran_COMPILER failed. Please visit https://gitlab.com/paulklemm_PHD/proteinortho/wikis/Error%20Codes
Reason:
The cmake is not working correctly.
Solution:
Reinstall cmake (or install openblas/lapack with apt-get, then cmake is not needed)
1.4 No CMAKE_Fortran_COMPILER could be found
(...)
......last linking failed too too too, now I try to recompile lapack (v.3.8.0) and then compile proteinortho_clustering with dynamic linking.
......[ 33%] Extracting the LAPACK library
......[ 66%] Compiling the LAPACK library (using cmake + make)
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_Fortran_COMPILER could bCMAKE_Fortran_COMPILERe found.
Tell CMake where to find the compiler by setting either the environment
variable "FC" or the CMake cache entry CMAKE_Fortran_COMPILER to the full
path to the compiler, or to the compiler name if it is in the PATH.
......[ 99%] Building proteinortho_clustering with LAPACK (dynamic linking)
/usr/bin/ld: cannot find -llapack
/usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit status
proteinortho_clustering compilation failed. Please visit https://gitlab.com/paulklemm_PHD/proteinortho/wikis/Error%20Codes
make: *** [src/BUILD/Linux_x86_64/proteinortho_clustering] Error 1
Reason:
The fortran comipler is not working correctly or missing.
Solution:
sudo apt-get install gfortran
or
conda install gcc
. And set the enviroment variable FC to the installed binary.
(or install openblas/lapack with apt-get, then this step is not needed)
1.5 unrecognized command line option
[ 20%] Building proteinortho_clustering with LAPACK ...
g++: error: unrecognized command line option '-std=c++17'
g++: error: unrecognized command line option '-fno-plt'
g++: error: unrecognized command line option '-fstack-protector-strong'
g++: error: unrecognized command line option ...
Reason:
Your enviroment variables are filled with stuff proteinortho do not like (check this with make echoENV, or echo $CXXFLAGS)
Solution:
call with make CXXFLAGS=""
or the LDFLAGS are the problem...
1.6 conda error: not available ... openmp
PackagesNotFoundError: The following packages are not available from current channels openmp
Reason:
conda does now find openmp
Solution:
call conda config --add channels defaults && conda config --add channels bioconda && conda config --add channels conda-forge
and then the conda install proteinortho
1.7 FATAL: kernel too old
Reason:
the precompiled proteinortho_clustering is not compatible with your kernel.
Solution:
make clean && make all
to recompile proteinortho_clustering
2. Runtime Errors
2.1 cannot find XYZ
cannot find proteinortho_clustering in: the current directory '.', ./src/, ./src/BUILD/$uname , /usr/bin, /usr/local/bin, -binpath=$binpath.
or
cannot find proteinortho2html.pl in: the current directory '.', ./src/, ./src/BUILD/$uname , /usr/bin, /usr/local/bin, -binpath=$binpath.
or
...
Reason:
Some went wrong with the installation.
Solution:
Please do one of the following:
A. recompile proteinortho (with 'make clean', 'make' and 'make install' or 'make install PREFIX=...') a freshly downloaded version (https://gitlab.com/paulklemm_PHD/proteinortho) or use conda/brew (see README)
B. execute from within the downloaded directory, there are precompiled binaries for Linux_x86_64 (not OSX)
C. specify the path to the binaries (proteinortho_clustering) with -binpath=...
2.2 Failed to detect ...
[Error] Failed to detect 'blastn'! Tried to call
'/data/USERNAME/bin/blast_2.9//blastall'.
Please install blastn in /data/USERNAME/bin/blast_2.9/ (or specify another
binpath with -binpath=/home/...)
Reason:
The binary cannot be found in the specified -binpath or are not executable
Solution:
Please do one of the following:
A. Add the path of the binary to PATH enviroment variable (e.g. add /home/paul/bin to $PATH : export PATH=/home/paul/bin:$PATH
) and make sure they are executable. Then rerun proteinortho (it should now find the binary)
B. specify the binary path with the -binpath, make sure that all needed binaries (proteinortho_clustering,diamond,...) are located there and are executable
2.3 'proteinortho_clustering' failed with code 32256 / cannot execute binary file
sh: /Users/paul/Documents/proteinortho//src/BUILD/Darwin_x86_64/proteinortho_clustering: cannot execute binary file
Parameter-vector : (...) [Error] 'proteinortho_clustering' failed with code 32256. ...
Reason:
The binary is not executable
Solution:
Recompile proteinortho with make clean
and make all
This should resolve your error (if proteinortho_clustering does not compile look at the corresponding error in chapter 1)
2.4 'proteinortho_clustering' failed with code 33792
Step 3
Clustering by similarity (Proteinortho mode) using up to 40000 MB of memory and 12 cpu core(s). Adjust this behaviour with the -mem option.
Reading myproject.blast-graph
2 species
93112312912399 paired proteins
481923999000201123959 bidirectional edges
Illegal instruction
Parameter-vector : (...)
[Error] 'proteinortho_clustering' failed with code 33792 ...
Reason:
Your machine architecture is not compatible with -mtune and -march
Version v6.0.17 was set up to directly compile using -mtune and -march.
Solution:
Please upgrade to v6.0.18 or later. In these version the -mtune and -march are optional. You can enable these with the make file make MTUNEARCH=TRUE all
.
2.5 No coordinate found for ... gene(s)
[Error] No coordinate found for 3891 gene(s): 'sp|A1KIL2|WHIA_MYCBP,tr|A0A0H3MAE9|A0A0H3MAE9_MYCBP,tr|A0A0H3M2F6|A0A0H3M2F6_MYCBP,sp|A1KM74|RECX_MY...' using 'infiles/test.gff' and 'infiles/test.faa'
Please make sure that the gff file corresponds to the input fasta files. Each protein XXX needs to be refered in the gff file with Name=XXX For more information see 'https://gitlab.com/paulklemm_PHD/proteinortho#poff'
Reason:
The gff file does not match the fasta file
Solution:
Make sure that each protein of the fasta file corresponds to one CDS entry of the genomic gff file (via the Name=...; identifier in the gff file)
For example you can use the *_genomic.gff, *_protein.faa of an NCBI assembly.
2.6 'diamond' failed with code 33792
Step 2 using diamond
sh: line 1: 4446 Illegal instruction: 4 diamond blastp --threads 1 --db 'test/C.faa.diamond' --query 'test/E.faa' -e 1e-05 --outfmt 6 --quiet --sensitive 2> /dev/null
[Error] diamond failed with code 33792. (Please visit https://gitlab.com/paulklemm_PHD/proteinortho/wikis/Error%20Code)
...
Reason:
diamond is outdated
Solution:
Please upgrade diamond to v2.0.6 or higher.