One problem with the initial use of antibody application is that there is complie issue shown as the following:
[ ERROR ] : Caught exception : File: src/protocols/antibody/grafting/regex_based_cdr_detection.cc :47 [ ERROR ] UtilityExitException EROREROR: Your compiler does not have full support for C++ll regex, and therefore can't suport RegEx_based_CDR_Detector/antitody grafting.
According to the discussion on this issue in the forum, I learned that it was caused by the low version of gcc (the original version of gcc was 4.8).
Due to permissions, I can only update the gcc in the conda environment. Install gcc 8.4.0 (the lowest available, see Figure 1 for compiler versions in conda environment,The following operations are done in this conda environment) in conda environment, remove openmpi and compile openmpi from scratch, using the commands as follows:
tar -zxvf /data/home/ldx022/software/openmpi-4.1.4.tar.gz cd /data/home/ldx022/software/openmpi-4.1.4.tar.gz ./configure -prefix=/data/home/ldx022/software/openmpi-4.1.4 make -j 4 make install
Then start clean with the the "./scons.py -c mode=release bin extras=mpi" command (I also tried uninstalling rosetta from scratch earlier).
Compile from scratch with the "./scons.py -j 40 mode=release bin extras=mpi" command. In the rosetta folder, the build file in source is still 4.8 gcc(/data/home/ldx022/software/rosetta_src_2021.16.61629_bundle/main/source/build/external/release/linux/3.10/64/x86/gcc/4.8/mpi), plus a new problem as the figure 2.
I couldn't find the libcifparse.so file it wanted, so I found the required libcifparse.so file in rosetta in another user's directory and put it in /data/home/ldx022/lib.
Then I added "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/home/ldx022/lib" to the .bashrc file and source it, as a result:
gcc/4.8/mpi/cifparse/mapped_ptr_vector.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/mapped_vector.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/ParentChild.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/RcsbFile.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/RcsbPlatform.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/Serializer.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/TableFile.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/TTable.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/CifParser.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/CifScanner.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/DICParser.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/DICScanner.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/regcomp.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/regerror.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/regexec.os build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/regfree.os -Lexternal/lib -Lbuild/external/release/linux/3.10/64/x86/gcc/4.8/mpi -Lexternal -Lbin -L/share/platform/lsf/10.1/linux2.6-glibc2.3-x86_64/lib -L/data/home/ldx022/lib -L/usr/lib -L/usr/local/lib /usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc /usr/bin/ld: build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/cifparse/CifScanner.os: unrecognized relocation (0x2a) in section `.text' /usr/bin/ld: final link failed: Bad value collect2: error: ld returned 1 exit status scons: *** [build/external/release/linux/3.10/64/x86/gcc/4.8/mpi/libcifparse.so] Error 1 scons: building terminated because of errors.
The current problems are:
1. Is there any solution to the above situation ( compiler versions in conda environment are shown in figure 1)
2. Should I use a more advanced version of g++? I have already used the "https://www.rosettacommons.org/docs/latest/build_documentation/Cxx11Support" where it provides a test script, the result is shown in figure 3, The failure of option test seems very important to me, but since I can only use conda, I found that g++ could not be found in conda by using conda search, only mpicc and mpicxx are not high, I wonder whether they can meet the requirements.
(123) [ldx022@mn01 ~]$ conda search g++ Loading channels: done No match found for: g++. Search: *g++* PackagesNotFoundError: The following packages are not available from current channels: - g++ Current channels: - https://repo.anaconda.com/pkgs/main/linux-64 - https://repo.anaconda.com/pkgs/main/noarch - https://repo.anaconda.com/pkgs/r/linux-64 - https://repo.anaconda.com/pkgs/r/noarch To search for alternate channels that may provide the conda package you're looking for, navigate to https://anaconda.org and use the search bar at the top of the page. (123) [ldx022@mn01 ~]$ conda search mpiCC Loading channels: done No match found for: mpicc. Search: *mpicc* # Name Version Build Channel mpich-mpicc 3.2.1 h7b6447c_8 pkgs/main mpich-mpicc 3.3.2 hf39692e_0 pkgs/main openmpi-mpicc 4.0.2 h7b6447c_1 pkgs/main (123) [ldx022@mn01 ~]$ conda search mpicxx Loading channels: done No match found for: mpicxx. Search: *mpicxx* # Name Version Build Channel mpich-mpicxx 3.2.1 hfd86e86_8 pkgs/main mpich-mpicxx 3.3.2 h7b6447c_0 pkgs/main openmpi-mpicxx 4.0.2 hfd86e86_1 pkgs/main (123) [ldx022@mn01 ~]$ conda search mpicc Loading channels: done No match found for: mpicc. Search: *mpicc* # Name Version Build Channel mpich-mpicc 3.2.1 h7b6447c_8 pkgs/main mpich-mpicc 3.3.2 hf39692e_0 pkgs/main openmpi-mpicc 4.0.2 h7b6447c_1 pkgs/main
3. I am a novice, so I don't know if I compiled openmpi correctly. I compiled openmpi in a conda environment (manually rm the previous openmpi folder before recompiling, and rosetta did a similar thing when recompiling). gcc in this environment is version 8.4.0, but the final compilation of rosetta in this environment still shows version 4.8. What can I do？
I've tried many things, but nothing has worked. What should I do?
Because this is very important to me, so I am a little anxious.Any advice would be appreciated!
The version of GCC you need for the antibody support is basically 5.2 or after. GCC 8.4 should be perfectly fine in this regards. It should also be able to compile Rosetta. The reason your compiler test results aren't seeing REGEX support is that the g++ it's finding is 4.8. You would want to check your conda-installed GCC 8.5 to see if that works (it should), but you may need to provide the full path to the compiler.
Regardless, it looks like you're still grabbing the GCC 4.8 when you compile Rosetta. This may be because you're compilng MPI, and Rosetta attempts to use the mpiCC compiler (versus the g++ compiler) when it compiles MPI. (Which it looks like you've discovered.) My recommendation would be to edit the source/tools/build/site.settings file to point Rosetta expicitly to the MPI-enabled compiler you wish to use. (There should be spot for it in that file.)
I'm not sure why your mpicc (plain C compiler) is 8.5 but your mpiCC (C++ compiler) is still 4.8. It may be that when you compiled OpenMPI, you only enabled the C language support, but not C++. Or there was some other issue. I'm not entirely familiar with OpenMPI compilation, so you may need to consult their documentation to see what's needed. It may just be a naming issue, and there's some other program for the C++ compiler. (Use that name in the site.settings file.) (I note you didn't do a `which mpicc` or a `which mpiCC` tracking down where each of those is coming from may be helpful in debugging.)
Aside from the gzip library and the MPI libraries (and a few other libraries which are used in other extras compiles), Rosetta should be self-contained, and compilation should build all the needed .so files. There should be no need to copy over .so files, and I would highly recommend against it. If you're doing so, it's an indication that something is wrong with the compilation, and you'll want to fix that issue. (As it looks like you've seen, depending on the compilation settings and compiler used, the copied so file may or may not work with the rest of the Rosetta compile.)
As mentioned, I don't have a lot of experience with OpenMPI -- you'll likely need to read the documentation for it about how to configure it to use a non-system installed compiler. You'll want to iterate on that untill you get a C++ compiler which gives 8.5 when you run it with --version. Then you can put the absolute path to that (and the corresponding plain C compiler) in the site.settings file.
Thanks a lot!!!!!!Your reply really hits me.I learned a lot during the whole inspecting course!