Spring installation on MacOS 10.14

28 views
Skip to first unread message

Martin

unread,
Feb 14, 2020, 5:23:40 AM2/14/20
to emspring
Dear Spring Developers,

I'm trying to install the latest release of Spring on a Mac running OS 10.14 (Mojave) and having a few problems. Versions are:

singlem% spring --version && springenv e2version.py
Spring environment loaded.
GUI from package Emspring-0.86.1661
Spring environment loaded.
EMAN 2.1 alpha2 (CVS 2013/08/04 17:01:06)
Your EMAN2 is running on: Mac OS 10.14.6 x86_64
Your Python version is:  2.7.16

Installation of the Mac binary proceeds correctly until the testing begins:

Spring environment loaded.

..segmentclass --f parfile_1615.par --l segmentclass_test.log --d segmentclass_test

Program to classify excised in-plane rotated segments using SPARX's k-means clustering


Input parameters are read from parfile_1615.par

The following input parameters have been received:

Image input stack                        = /Applications/spring_v0-86-1661/test_segmentclass/test_segments.hdf

Class average stack                      = test_averages.hdf

Reference image option                   = False

Image reference stack                    = test_ref_segments.hdf

Spring database option                   = False

Database prepare option                  = False

spring.db file                           = ../spring.db

Class variance stack                     = test_variances.hdf

Eigenimage stack                         = test_eigenimages.hdf

Pixel size in Angstrom                   = 5.0

Estimated helix width and height in Angstrom = (450, 675)

Number of classes                        = 3

Number of iterations                     = 3

Keep intermediate files                  = False

Limit in-plane rotation                  = True

Delta in-plane rotation angle            = 10.0

X and Y translation range in Angstrom    = (20, 15)

High-pass filter option                  = False

Low-pass filter option                   = False

High and low-pass filter cutoffs in 1/Angstrom = (0.01, 0.06)

B-Factor                                 = 0

Custom filter option                     = False

Custom-built filter file                 = test_filter_file.dat

Automatic filter option                  = False

Binning option                           = True

Binning factor                           = 2

MPI option                               = True

Number of CPUs                           = 4

Temporary directory                      = /Applications/spring_v0-86-1661/test_segmentclass

/Applications/spring_v0-86-1661/test_segmentclass/test_segments.hdf found

/Applications/spring_v0-86-1661/test_segmentclass found

PMIx has detected a temporary directory name that results

in a path that is too long for the Unix domain socket:


    Temp dir: /var/folders/d0/40s8dyws26n0cjw2z1ydmsdxm0h351/T/openmpi-sessions-1745357985@C02VQ0CFHV2H_0/54328


Try setting your TMPDIR environmental variable to point to

something shorter in length

Traceback (most recent call last):

  File "/Applications/spring_v0-86-1661/bin/segmentclass", line 172, in <module>

    sys.exit(spring.segment2d.segmentclass.main())

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/emspring-0.86.1661-py2.7.egg/spring/segment2d/segmentclass.py", line 813, in main

    stack.classify()

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/emspring-0.86.1661-py2.7.egg/spring/segment2d/segmentclass.py", line 781, in classify

    avgstack, varstack = self.sx_kmeans_wrap(aligned_stack, self.maskfile, self.noclasses)

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/emspring-0.86.1661-py2.7.egg/spring/segment2d/segmentclass.py", line 505, in sx_kmeans_wrap

    local_avg_stack, local_var_stack = self.sx_kmeans(alistack, maskfile, class_counts[0])

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/emspring-0.86.1661-py2.7.egg/spring/segment2d/segmentclass.py", line 549, in sx_kmeans

    external_kmeans_run.check_expected_output_file(program_to_be_launched, avgstack)

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/emspring-0.86.1661-py2.7.egg/spring/csinfrastr/csproductivity.py", line 538, in check_expected_output_file

    raise IOError(error_message)

IOError: /Applications/spring_v0-86-1661/parts/EMAN2/bin/sxk_means.py did not finish successfully. The output file sxk_means00/averages.hdf was not found, please check logfile of /Applications/spring_v0-86-1661/parts/EMAN2/bin/sxk_means.py for details.

test_segments.hdf=/Applications/spring_v0-86-1661/test_segmentclass/test_segments.hdf

test_averages.hdf=test_averages.hdf

False=False

test_ref_segments.hdf=test_ref_segments.hdf

False=False

False=False

../spring.db=../spring.db

test_variances.hdf=test_variances.hdf

test_eigenimages.hdf=test_eigenimages.hdf

5.0=5.0

(450, 675)=(450, 675)

3=3

3=3

False=False

True=True

10.0=10.0

(20, 15)=(20, 15)

False=False

False=False

(0.01, 0.06)=(0.01, 0.06)

0=0

False=False

test_filter_file.dat=test_filter_file.dat

False=False

True=True

2=2

True=True

4=4

/Applications/spring_v0-86-1661/test_segmentclass=/Applications/spring_v0-86-1661/test_segmentclass

E.

======================================================================

ERROR: spring.tests.segment2d.test_segmentclass.TestSegmentClassMpi.do_end_to_end_test_sc_inputfile_MPI

----------------------------------------------------------------------

Traceback (most recent call last):

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/case.py", line 384, in tearDown

    try_run(self.inst, ('teardown', 'tearDown'))

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/nose-1.3.7-py2.7.egg/nose/util.py", line 471, in try_run

    return func()

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/emspring-0.86.1661-py2.7.egg/spring/tests/segment2d/test_segmentclass.py", line 156, in teardown

    self.teardown_segmentclass()

  File "/Applications/spring_v0-86-1661/lib/python2.7/site-packages/emspring-0.86.1661-py2.7.egg/spring/tests/segment2d/test_segmentclass.py", line 132, in teardown_segmentclass

    os.remove('spring.db')

OSError: [Errno 2] No such file or directory: 'spring.db'


----------------------------------------------------------------------

Ran 4 tests in 22.259s


FAILED (errors=1)



So it seems as if the $TMPDIR path is too long. Setting it manually before running installation does not help. 

The Spring GUI will still start, but, if I try and run an application, any process freezes at the first step. For example, running Micctfdetermine from the GUI, the log is:

INFO:singlem:

####################################################################################################

Beginning of the program micctfdetermine (Emspring v0.86.1661): Fri, 14 Feb 2020 10:17:09

####################################################################################################

INFO:singlem:

############################################ INPUT ############################################

INFO:startlog:


INFO:startlog:The following input parameters have been received:

INFO:startlog:Micrographs = /Users/singlem/Desktop/dd/FoilHole_11602689_Data_11603067_11603069_20200212_161613_Fractions.mrc

INFO:startlog:Diagnostic plot pattern = micctfdetermine_diag.pdf

INFO:startlog:Spring database option = None

INFO:startlog:spring.db file = None

INFO:startlog:Continue spring.db option = None

INFO:startlog:Spherical aberration = 2.7

INFO:startlog:Electron voltage in kV = 200

INFO:startlog:Amplitude contrast = None

INFO:startlog:Pixel size in Angstrom = 1.26

INFO:startlog:Range of defocus in Angstrom = None

INFO:startlog:Defocus search step size = None

INFO:startlog:Astigmatism search restraint in Angstrom = None

INFO:startlog:Tile size power spectrum in Angstrom = None

INFO:startlog:Resolution search range in Angstrom = None

INFO:startlog:CTFTILT refine option = None

INFO:startlog:Local defocus search range = None

INFO:startlog:Expected tilt and tilt search range in degrees = None

INFO:startlog:Binning option = None

INFO:startlog:Binning factor = None

INFO:startlog:MPI option = None

INFO:startlog:Number of CPUs = None

INFO:startlog:Temporary directory = None

INFO:startlog:

----------------------------------------------------------------------------------------------------

The final set of parameters has been completed with the provided default parameters:

INFO:startlog:Micrographs = /Users/singlem/Desktop/dd/FoilHole_11602689_Data_11603067_11603069_20200212_161613_Fractions.mrc

INFO:startlog:Diagnostic plot pattern = micctfdetermine_diag.pdf

INFO:startlog:Spring database option = False

INFO:startlog:spring.db file = spring.db

INFO:startlog:Continue spring.db option = False

INFO:startlog:Spherical aberration = 2.7

INFO:startlog:Electron voltage in kV = 200

INFO:startlog:Amplitude contrast = 0.1

INFO:startlog:Pixel size in Angstrom = 1.26

INFO:startlog:Range of defocus in Angstrom = (10000, 45000)

INFO:startlog:Defocus search step size = 300

INFO:startlog:Astigmatism search restraint in Angstrom = 2000

INFO:startlog:Tile size power spectrum in Angstrom = 600

INFO:startlog:Resolution search range in Angstrom = (30.0, 6.0)

INFO:startlog:CTFTILT refine option = False

INFO:startlog:Local defocus search range = 3000

INFO:startlog:Expected tilt and tilt search range in degrees = (0, 8)

INFO:startlog:Binning option = True

INFO:startlog:Binning factor = 2

INFO:startlog:MPI option = True

INFO:startlog:Number of CPUs = 2

INFO:startlog:Temporary directory = /tmp

INFO:startlog:

############################################ START ############################################

INFO:startlog:progress state: 1 % [> ]

INFO:singlem:/Applications/spring_v0-86-1661/parts/openmpi/bin/mpirun -np 1 /Applications/spring_v0-86-1661/bin/micctfdetermine_mpi --f parfile_7298.par --d . --l report.log

logged on Fri, 14 Feb 2020 10:17:09


The GUI progress bar remains frozen (status "Initialized"), but the program never executes.


Any help would be appreciated!


Thanks,


Martin


Carsten Sachse

unread,
Feb 16, 2020, 3:52:15 PM2/16/20
to emspring
Dear Martin,

I have looked into your error. Currently, due to our lab move we do not support neither Mojave nor Catalina. Proper debugging will take some time to fix up the code before we can properly support the latest OSs. Please be patient, we will work on it.

We can try some brief debugging.

The first relevant error message states:

PMIx has detected a temporary directory name that results

in a path that is too long for the Unix domain socket:


    Temp dir: /var/folders/d0/40s8dyws26n0cjw2z1ydmsdxm0h351/T/openmpi-sessions-1745357985@C02VQ0CFHV2H_0/54328


Seems like the default TMPDIR appears to be giving error messages.
Could you run the command that is being put out by the GUI, i.e.
% TMPDIR=/Users/me/anydir micctfdetermine --f myparams.par

Does it still complain about the error? 

Best wishes,


Carsten

Martin

unread,
Feb 17, 2020, 5:55:08 AM2/17/20
to emspring
Dear Carsten,

That seems to have worked. If I explicitly set TMPDIR before running the program, either from command line or GUI it executes fine. Thanks for your help!

Regards,

Martin

Carsten Sachse

unread,
Feb 18, 2020, 7:32:21 AM2/18/20
to emspring
Dear Martin,

I am glad to hear the proposed fix worked! This is a relatively easy fix.

Best wishes,


Carsten


On Friday, 14 February 2020 11:23:40 UTC+1, Martin wrote:
Reply all
Reply to author
Forward
0 new messages