Nesvilab/FragPipe

Percolator fails when reading libstdc++

Closed this issue · 6 comments

Hi,

Thank you for developing FragPipe! Recently I updated FragPipe to version 21.1 on Linux and tried a run based on DIA_SpecLib_Quant workflow, while the run paused in the step of Percolator. The log file is attached here: log_2024-04-30_15-20-45.txt.

I tried the troubleshooting of ldd diann-1.8.1.8 and the return messages are as follows:


./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.8' not found (required by ./diann-1.8.1.8) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.22' not found (required by ./diann-1.8.1.8)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by ./diann-1.8.1.8) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by ./diann-1.8.1.8)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by ./diann-1.8.1.8) ./diann-1.8.1.8: /lib64/libm.so.6: version GLIBC_2.27' not found (required by ./diann-1.8.1.8)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtimsdata.so) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.8' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtimsdata.so)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtimsdata.so) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtimsdata.so)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.8' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.11' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.22' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so)
./diann-1.8.1.8: /lib64/libm.so.6: version GLIBC_2.27' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so) ./diann-1.8.1.8: /lib64/libm.so.6: version GLIBC_2.23' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libc10.so) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libc10.so)
./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.22' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libc10.so) ./diann-1.8.1.8: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libc10.so)
linux-vdso.so.1 => (0x00007fff627bc000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f103feda000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f103fcbe000)
libtimsdata.so => /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtimsdata.so (0x00007f103ea76000)
libtorch_cpu.so => /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libtorch_cpu.so (0x00007f10257e1000)
libc10.so => /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libc10.so (0x00007f1041327000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f10254da000)
libm.so.6 => /lib64/libm.so.6 (0x00007f10251d8000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f1024fc2000)
libc.so.6 => /lib64/libc.so.6 (0x00007f1024bf5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f10411c6000)
libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f10249cf000)
librt.so.1 => /lib64/librt.so.1 (0x00007f10247c7000)
libgomp-52f2fd74.so.1 => /home/jitan/FragPipe-21.1/tools/diann/1.8.2_beta_8/linux/./libgomp-52f2fd74.so.1 (0x00007f1024594000)


I guess a potential reason is that Percolator read libstdc++ file in the directory at /lib64 instead of the libstdc++ file at the directory of /home/jitan/FragPipe-21.1/tools/diann_so, so I tried to set the variable LD_LIBRARY_PATH as /home/jitan/FragPipe-21.1/tools/diann_so. However, after changing this variable, when trying to run FragPipe by ./fragpipe, I found FragPipe could not be opened with such error messages:

Error: dl failure on line 534 Error: failed /gsc/software/linux-x86_64-centos7/jdk-15.0.1/lib/server/libjvm.so, because /home/jitan/FragPipe-21.1/tools/diann_so/libm.so.6: symbol __strtof128_nan, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference

Are there any solutions for the issue? Thank you for your help!

fcyu commented

Your Linux's GLIBC is too old. You have to either upgrade your Linux or use our Docker image (https://hub.docker.com/r/fcyucn/fragpipe, require basic knowledge about Docker and command line)

Best,

Fengchao

Thank you for your fast reply. Percolator worked previously when I analyzed my DDA data using FragPipe 20.0. Is the current problem of GLIBC exclusive to DIA data, or both DDA and DIA when using FragPipe 21.1?

fcyu commented

The error was not from Percolator. It was from the deep-learning prediction of DIA-NN.

Best,

Fengchao

Sorry for my further disturbance. I am thinking about requesting our system manager an update on the necessary library. Based on the error information, do I need to request the update of both the GLIBC library and CXXABI, or only the GLIBC library? Besides, could you please suggest the minimal version requirement for the potential update?
Please correct me if I misunderstand anything.

fcyu commented

No worries.

Based on the error information, do I need to request the update of both the GLIBC library and CXXABI, or only the GLIBC library?

I think both GLIBC and CXXABI. But note that these libraries are normally bundled with specific Linux versions. It might not be as easy as upgrading a third-part software.

Besides, could you please suggest the minimal version requirement for the potential update?

I am not quite sure. But according to the error message, it should be GLIBCXX 3.4.22 and CXXABI 1.3.11.

Best,

Fengchao

Thank you very much for your help and reply.