SOLVED: Missing library for findem64.exe
Added by Patrick Goetz about 7 years ago
I'm at a loss for how to proceed with findem64.exe. This program requires a shared library libg2c.so
cnsit@kraken:~$ findem64.exe findem64.exe: error while loading shared libraries: libg2c.so.0: cannot open shared object file: No such file or directory
which hasn't shipped with Ubuntu for 8 years due to changes in gcc. I can't find it in the CentOS7/RHEL repos either. Nor can I find compat-gcc-34-g77, as described here:
http://emg.nysbc.org/projects/appion/wiki/Compile_FindEM
Normally, the solution would be to compile the program by hand on a sympathetic platform and link the library statically rather than as a .so/DLL, as indicated here:
http://emg.nysbc.org/projects/appion/wiki/Install_FindEM_from_source
however, I don't have a findem folder in myami-beta/appion at all.
Has this program been superseded by another tool? In any case it is still being called by templateCorrelator.py
evan@armadillo:/home/local/evan/17dec11_E3_E5$ templateCorrelator.py --thread_findem --nodes=2 --ppn=2 --mem=16 --walltime=3 --cput=3 --runname=tmplrun1 --rundir=/cryodata/appion/17dec14w/extract/tmplrun1 --projectid=1 --session=17dec14w --no-rejects --no-wait --no-commit --no-continue --mrclist=17dec14w_17dec11_E3_E5_0059 --pdiam=195 --lpval=15 --hpval=0 --medianval=2 --pixlimit=4 --binval=4 --planereg --minthresh=0.35 --maxthresh=5 --maxpeaks=1500 --peaktype=centerofmass --maxsize=1.0 --overlapmult=1.5 --template_list=1 --range_list=0,360,10 ... Time stamp: 17dec18m06 ... Function name: templateCorrelator ... Appion directory: /usr/local/lib/python2.7/dist-packages ... Processing hostname: armadillo Usage: templateCorrelator.py --projectid=## --runname=<runname> --session=<session> --preset=<preset> --description='<text>' --commit [options] templateCorrelator.py: error: no such option: --nodes evan@armadillo:/home/local/evan/17dec11_E3_E5$ templateCorrelator.py --thread_findem --ppn=2 --mem=16 --walltime=3 --cput=3 --runname=tmplrun1 --rundir=/cryodata/appion/17dec14w/extract/tmplrun1 --projectid=1 --session=17dec14w --no-rejects --no-wait --no-commit --no-continue --mrclist=17dec14w_17dec11_E3_E5_0059 --pdiam=195 --lpval=15 --hpval=0 --medianval=2 --pixlimit=4 --binval=4 --planereg --minthresh=0.35 --maxthresh=5 --maxpeaks=1500 --peaktype=centerofmass --maxsize=1.0 --overlapmult=1.5 --template_list=1 --range_list=0,360,10 ... Time stamp: 17dec18m07 ... Function name: templateCorrelator ... Appion directory: /usr/local/lib/python2.7/dist-packages ... Processing hostname: armadillo Usage: templateCorrelator.py --projectid=## --runname=<runname> --session=<session> --preset=<preset> --description='<text>' --commit [options] templateCorrelator.py: error: no such option: --ppn evan@armadillo:/home/local/evan/17dec11_E3_E5$ templateCorrelator.py --thread_findem --mem=16 --walltime=3 --cput=3 --runname=tmplrun1 --rundir=/cryodata/appion/17dec14w/extract/tmplrun1 --projectid=1 --session=17dec14w --no-rejects --no-wait --no-commit --no-continue --mrclist=17dec14w_17dec11_E3_E5_0059 --pdiam=195 --lpval=15 --hpval=0 --medianval=2 --pixlimit=4 --binval=4 --planereg --minthresh=0.35 --maxthresh=5 --maxpeaks=1500 --peaktype=centerofmass --maxsize=1.0 --overlapmult=1.5 --template_list=1 --range_list=0,360,10 ... Time stamp: 17dec18m07 ... Function name: templateCorrelator ... Appion directory: /usr/local/lib/python2.7/dist-packages ... Processing hostname: armadillo Usage: templateCorrelator.py --projectid=## --runname=<runname> --session=<session> --preset=<preset> --description='<text>' --commit [options] templateCorrelator.py: error: no such option: --mem evan@armadillo:/home/local/evan/17dec11_E3_E5$ templateCorrelator.py --thread_findem --runname=tmplrun1 --rundir=/cryodata/appion/17dec14w/extract/tmplrun1 --projectid=1 --session=17dec14w --no-rejects --no-wait --no-commit --no-continue --mrclist=17dec14w_17dec11_E3_E5_0059 --pdiam=195 --lpval=15 --hpval=0 --medianval=2 --pixlimit=4 --binval=4 --planereg --minthresh=0.35 --maxthresh=5 --maxpeaks=1500 --peaktype=centerofmass --maxsize=1.0 --overlapmult=1.5 --template_list=1 --range_list=0,360,10 ... Time stamp: 17dec18m08 ... Function name: templateCorrelator ... Appion directory: /usr/local/lib/python2.7/dist-packages ... Processing hostname: armadillo ... Using split database Connected to database: 'ap1' !!! WARNING: Not committing data to database ... Found 16 processors on this machine ... Found project id=1 for session 17dec14w in 9.58 msec ... Run directory: /cryodata/appion/17dec14w/extract/tmplrun1 ... Writing function log to: templateCorrelator.log ... Uploading ScriptData.... ... Found 16 processors on this machine ... Running Appion version 'myami-beta' ... Creating new done dictionary: templateCorrelator.donedict ... Looking up session, 17dec14w Querying database for 1 specific images ... ... Found 1 images in 5.69 msec ... Remove processed images ... finished skipping in 9.37 msec ... Process images old to new ... getting templates ... getting template: /cryodata/appion/17dec14w/templates/template17dec18m02/PKS_Picking_Template-17dec18m02.mrc ... reading MRC: origTemplate1.mrc size:(96, 96) dtype:float32 ... rescaling template 1: 3.6->2.05 ... scaling template by a factor of 1.75609756098 /usr/lib/python2.7/dist-packages/numpy/core/_methods.py:59: RuntimeWarning: Mean of empty slice. warnings.warn("Mean of empty slice.", RuntimeWarning) /usr/lib/python2.7/dist-packages/numpy/core/_methods.py:70: RuntimeWarning: invalid value encountered in true_divide ret = ret.dtype.type(ret / rcount) ... changing box size from 169 to 160 ... Median filter of size 2 pixels ... Binning image by a factor of 4 ... Applying a 2D plane regression and subtraction ... plane_regress: x-slope: 0.399, y-slope: -0.845, xy-intercept: 0.520 ... Applying a low pass filter of 15.0 A (apix 2.0A) of type gauss ... Applying pixel limit filter of ± 4.0 standard deviations .. Pixel Limits -37.706 <> 37.706 ... filtered image in 3.57 msec ... scaled & filtered 1 file(s) Template list: ['filterTemplate1.mrc'] ... Looking up session, 17dec14w Beginning Main Loop ... Pixel size: 2.05 ... Median filter of size 2 pixels ... Binning image by a factor of 4 ... Applying a 2D plane regression and subtraction ... plane_regress: x-slope: -0.169, y-slope: 0.304, xy-intercept: 0.181 ... Applying a low pass filter of 15.0 A (apix 2.0A) of type gauss ... Applying pixel limit filter of ± 4.0 standard deviations .. Pixel Limits -1.620 <> 1.620 ... .. replacing 523 of 1048576 pixels with pixel limit ... filtered image in 4.8 sec ... writing MRC: 17dec14w_17dec11_E3_E5_0059.dwn.mrc size:(1024, 1024) dtype:float64 ... image file, 17dec14w_17dec11_E3_E5_0059.dwn.mrc ... template file, filterTemplate1.mrc ... threading findem64.exe (1 of 1) ... FindEM finished in 157.16 msec Traceback (most recent call last): File "/usr/local/bin/templateCorrelator.py", line 8, in <module> imgLoop.run() File "/usr/local/lib/python2.7/dist-packages/appionlib/appionLoop2.py", line 89, in run results = self.loopProcessImage(imgdata) File "/usr/local/lib/python2.7/dist-packages/appionlib/particleLoop2.py", line 101, in loopProcessImage self.peaktree = filterLoop.FilterLoop.loopProcessImage(self, imgdata) File "/usr/local/lib/python2.7/dist-packages/appionlib/filterLoop.py", line 83, in loopProcessImage peaktree = self.processImage(imgdata, self.filtarray) File "/usr/local/lib/python2.7/dist-packages/appionlib/apTemplateCorrelator.py", line 196, in processImage cclist = self.runTemplateCorrelator(imgdata) File "/usr/local/lib/python2.7/dist-packages/appionlib/apTemplateCorrelator.py", line 148, in runTemplateCorrelator ccmaplist = apFindEM.runFindEM(imgdata, self.params, thread=self.params['threadfindem']) File "/usr/local/lib/python2.7/dist-packages/appionlib/apFindEM.py", line 158, in runFindEM apDisplay.printError("findem.exe did not run or crashed.\n") File "/usr/local/lib/python2.7/dist-packages/appionlib/apDisplay.py", line 65, in printError raise Exception, colorString("\n *** FATAL ERROR ***\n"+text+"\n\a","red") Exception: *** FATAL ERROR *** findem.exe did not run or crashed.
Replies (5)
RE: Missing library for findem64.exe - Added by Sargis Dallakyan about 7 years ago
Thanks for the message. I've update the wiki to include a link to FindEM source at http://emg.nysbc.org/projects/software/wiki/FindEM
I haven't compiled FindEM from source for years. I can make a Singularity container for FindEM if it's hard to build it from source.
RE: Missing library for findem64.exe - Added by Patrick Goetz about 7 years ago
Singularity containers is one of the things I've been tasked with looking at after this project wraps up. I will try and compile the code, but if it comes this boxing the app, how would findem64.exe interact with the rest of the Appion suite if it's in a container?
RE: Missing library for findem64.exe - Added by Sargis Dallakyan about 7 years ago
I have been experimenting with Singularity containers and I find it more suitable for HPC than Docker. Appion is calling findem64.exe through system calls (subprocess.Popen). As long as you have all your in/out files in your home folder, there won't be any difference if findem64.exe is an executable or a Singularity container. If in/out file are in a shared folder, then Singularity container needs to be modified to mount that folder and it will act the same as findem64.exe executable.
RE: Missing library for findem64.exe - Added by Patrick Goetz almost 7 years ago
I solved this problem by creating CentOS 6 virtual machine, installing the compat-gcc-34-g77 package, and then harvesting libg2c.so.0.0.0 from this package.
I also had to harvest libgfortran.so.1.0.0 from the EMAN2 distribution. Then
# mv libg2c.so.0.0.0 /usr/local/lib # mv libgfortran.so.1.0.0 /usr/local/lib # cd /usr/local/lib # ln -s libg2c.so.0.0.0 libg2c.so.0 # ln -s libgfortran.so.1.0.0 libgfortran.so.1
That's it, although users might need to set LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/usr/local/lib
Because linux maintains ABI compatibility, and because this program is strictly computational, this works on Ubuntu 16.04.
RE: SOLVED: Missing library for findem64.exe - Added by Anchi Cheng almost 7 years ago
Thanks, Patrick