Changes are broken down by the version in which they were incorporated.
Recent releases are listed below, for older releases consult
- IVE 4.7.1 (September 17, 2018)
- IVE 4.7.0 (January 22, 2018)
- IVE 4.6.1 (November 14, 2016)
- IVE 4.6.0 (August 22, 2016)
- IVE 4.5.0 (January 25, 2016)
- IVE 4.4.1 (November 13, 2014)
- IVE 4.4.0 (October 27, 2014)
- IVE 4.3.0 (February 19, 2013)
Related Priism Topics
Known problems |
Reporting problems |
Priism download site
Features added in 4.7.1 are:
- Added options to EWBP and TAPIR to change the conventions for the
location of the center for the aligned projections and the reconstruction.
- Added capability to set a list of GPU IDs to use for the GPU-driven EM
- In ER-Decon II, added options to supply an initial guess and to retain
the padding when the result is written. Now allow zero total iterations so
that it's possible to examine the initial guess.
- For the pupil function handling in pfimage, pf2psf, phase retrieval,
and deconvolution, added option to include surface area factor that does
not appear explicitly in Bridget Hanser's papers.
- Added a generic convolution options to Filter3D.
- Added a minimum projection option to RunProj and T-RunProj.
- Added a command line mode for Scale to make it easier to make bulk
changes to the per section scaling parameters.
- In Volume Viewer, added option to store and retrieve the opacity scaling
from a file. Also added an extended movie option to simplify generating
sequences which incorporate multiple perspectives.
- For DisplayAttr, allow one value for the -scl1, -scl2, -scl3, -scl4,
and -scl5 command line options as a way of setting a binary scale.
Bugs fixed in 4.7.1 are:
- The IM library now reports one wavelength for a data set with an EM
header, space group 401, and the same number of z slices as total number
of sections. The previous behavior, reporting zero, broke CopyRegion
when attempting to copy one time point from a dataset with an EM header,
space group 401, and multiple time points.
- In Decon, corrected the interpolation of a complex 2D transfer function
for 2D deconvolution: the components with a y spatial frequency of zero
were not handled properly. The bug also affected the interpolation of
radially averaged transfer functions for 3D deconvolution, but the effect
there appears to be less pronounced since those transfer functions have
little content along the line where the radial spatial frequency is zero.
- The EMTAR graphical interface would incorrectly issue a warning that
the file was unreadable when selecting an initial guess for TAPIR.
Conversely, it would crash if an initial guess without read permissions
- Modified bead_matcher so there's no hardwired limits on the number of
beads or projections.
- In Filter2D, update the center and size fields in the generic convolution
dialog when an MRC file is selected as the source for the kernel. Also
changed that dialog so that user changes to the center and edge handling
for a custom kernel will be preserved when the kernel is saved. Corrected
the line numbers reported in debug messages for the user's preconfigured
- Fixed Filter3D for two problems with swapping z and time with the
minimum, maximum, Gaussian, and Laplacian of Gaussian filters. One
incorrectly used the z step size rather than the time step size for
single iteration filtering in time. The other failed to write the final
sections when using a multiple iteration filter in time. Also corrected
the average deviation filter when the kernel size in y is different than
the kernel size in x.
- In Flip, fixed the working space help button.
- In Scale, changed the logic for computing a value just under or over
another value so that it will work better when the value times
FLT_EPSILON is smaller than can be normally represented by a 32-bit
- In Volume Viewer, the button to browse for the movie output file no
longer affects the default directory and pattern when looking for other
Other changes in 4.7.1 are:
- No longer include versions of libifft.a and libimcompat.a compiled
with the Portland Group compilers on Linux.
- Updated some of the third-party libraries used by Priism. Now use
Motif 2.3.8 (replaces 2.3.7), FFTW 3.3.8 (replaces 3.3.6), BLAS and
LAPACK 3.8.0 from Netlib (replaces 3.7.0), and Flex 2.6.4 (replaces 2.6.3).
Features added in 4.7.0 are:
- For compatibility with Image2000 and MRC 2014, assume that mode 0 MRC
files contain signed 8-bit data. If you have data that was written with
the assumption that it was unsigned, the
Byte (Mode 0) Conversion utility can convert
the data so it will be correctly interpreted by IVE 4.7.0 and later. Some
applications have additional changes to accommodate the handling of mode 0
- In Copy Region, converting to byte from one of the other formats
will scale the data to -128 to 127 rather than 0 to 255 as was done
- mergermrc no longer accepts
-mode=unsigned8 as an
option to force the output to be written as a mode 0 MRC file. Use
- In BlendColors, if the output format is byte, the data range will
be between -128 and 127. For the other formats, the range will be
0 to 255 as before.
- In Mrc2tiff, the default is to scale the data to zero to 255 for
any MRC file. In previous versions, scaling was not done by default
for mode 0 files.
- In Tiff2mrc, the output will be a mode 0 MRC file if the TIFF data
is 1 to 7-bit unsigned integer data or if the TIFF data is signed 8-bit
integer data. 8-bit unsigned integer TIFF data will be written as
a signed 16-bit MRC file.
- In MatToImg, unsigned 8-bit integer data from Matlab will be
converted to 16-bit integer (mode 1) MRC files. Signed 8-bit integer
data from Matlab will be converted to 8-bit signed integer (mode 0) MRC
- In the deconvolution application, if the input is a mode 0 file and
the output is not forced to be floating-point, rescale the deconvolved
result so the maximum value is 127.
- For the K2 correction application, do not treat mode 0 files
specially: i.e. convert the data to floating-point before processing.
- Added the ability to expand %u in queue submission commands to a
user-supplied string so one-off customizations are possible without
changing Priism's queue configurations or manually submitting the job.
Added some tools (the environment variable, IVE_WM_SUBMIT_DEBUG, and the
utility, priism_dump_queues) for testing and debugging queue configurations
and job submission. The documentation in the
User String topics in
BatchRegion.html is a good starting point
for how to use the changes.
- Added option to estimate uncertainties in the parameters determined by
the bead alignment.
- Added options to read and write the 3D marker coordinates from the
bead alignment. Added an option to fix those coordinates during the
- Added a generic convolution option to Filter2D that does anything
the Convolution or NewConvolution applications could do. The Convolution
and NewConvolution applications will be retired in a future release.
- Added control in EditHeader to switch between Priism's header format
and the MRC2014 format. In headit, added a similar option. In
EditHeader2, added a way to clear or set the MAP stamp.
- In header, the -a option now causes a file in the MRC2014 format which
does not have an extended header in the Agard format to be treated as if
the extended header is in the Agard format.
- In headit, added commands to change the initial time point index, the
per-wavelength minimum and maximum values for Priism's header format,
and the RMS field for the MRC2014 format. For better compatibility with
the MRC2014 format, use IMRtExHdrFmt() to determine if the extended
header has crystallographic information.
- Modified EWBP so it can also compute the unweighted backprojection.
- Use OpenMP to parallelize portions of the deconvolution application.
- In ER-Decon II with the 2014 line search, added an option to apply a
- In ER-Decon II with the 2014 line search, the cost
reported for the ith iteration is now the cost prior to the ith
update to the initial guess (so the 0th iteration result has the cost
before any updates to the initial guess). In previous versions, the cost
reported for the ith iteration was the cost after
i + 1 updates to the initial guess. Also, now report the
R-factor for the result of the last iteration's update. In previous
versions, the cost reported for an iteration did not reflect the last
refinement step of the line search for that iteration. That refinement
step is now included in the reported costs.
- Modified ER-Decon I and ER-Decon II so they
will process data with an odd number of elements in x as is rather than
adding a column of zeros and then stripping it off before writing the
- For 2D processing with ER-Decon II, allow the user to supply a file
describing a filter which will be used in the same way as the cone filter
is used for 3D processing.
- Added an option,
-logging=progress, in ER-Decon II so the
log file is updated after each deconvolution iteration rather than after
each volume deconvolved.
- Included a version of Mrc.py, originally from
Priithon, for working
with MRC files from Python code.
- In the ProcFunc framework, made changes to better handle MRC files with
more than five wavelengths. When not using the GUI, it's now possible to
select wavelengths after the first five. When appending wavelengths to a
file but not to an image window, it's now possible to leave the file with
more than five wavelengths. Processing and output is still limited to
at most five wavelengths at a time.
Bugs fixed in 4.7.0 are:
- Corrected misleading error message in appl_prm when the value set with
-rscale is not positive.
- In bead_matcher, increased a limit on the number of beads in the
reference bead list from 50 to 200. Streamlined handling of mismatches so
that a large number of mismatches won't overflow internal storage.
- The interactive bead alignment user interface would display the incorrect
tilt angles if the starting projection number was not zero.
- Corrected the interactive bead alignment's option to merge beads for the
case where the starting projection number is not zero.
- Clicking on the bar plot in the interactive bead alignment user interface
could fail to shift the bead into the field of view for the image window,
especially if the width and height of the image window were very different.
- Corrected allocation of extended header buffers in insert_tilts
(file with SerialEM extended header but MRC version number not set
- Fixed EditHeader so it did not consider that a file had been modified
after it had been closed. Reworked the display of symmetry information
- In EditHeader2, do not prompt to save changes if the file was opened
- In EditPolygon, made the tolerance for picking vertices to modify
sensitive to the window zoom to make it easier to pick when zoomed out. No
longer display a "picking outside window" message when picking to modify a
vertex or when the action mode has been set to "off". When modifying a
vertex, now track the mouse motion beyond the image bounds but coerce the
point to the closest position in the image bounds.
- For EWBP, changed how the elliptically-weighted filter sizes are written
to the output file's header labels so sizes up to 99999 will be displayed
- The font used for data values in Examine Data is no longer hardwired.
It can be set via an X resource.
- In gpurecon, the stand-alone backprojection calculation would force the
reconstruction values to be non-negative. That is no longer done so that
the behavior better matches what EWBP does.
- In gpurecon, not specifying an initial guess and using more than one
method option with the last such option as
cause a buffer overflow and crash when computing the initial guess. Fixed.
- In Edit Polygon, the clear partial and copy options in the edit menu
would create a new dialog each time. Now reuse the dialogs.
- In the ER-Decon II algorithm, corrected a second derivative calculation
used for the line search with the "2nd order total variation"
- Added missing documentation for the -imcf and -omcf options for the
ER-Decon II algorithm.
- Plugged memory leaks in Edge Enhancement, Filter2D, Filter3D, LCE, LCE3D,
Normalize, ResUp, ResDown, Reverse, RunProj, T-RunProj, and Threshold if
the initialization of the processing fails.
- In the 64-bit versions, fixed problem with image window communication for
IWGrDisGrList(), IWUpd5DMod(), and IWCaptureImage(). Fixes some image
window crashes when using EditPolygon. May resolve similar problems
with 2DObjFinder, CutMask, FindPoints, Volume Builder, Image Capture, and
- The OpenURL() AppleScript command doesn't work with modern versions of
Safari and Google Chrome. Added other help display options if using a
browser other than Safari on a Mac.
- In the IM library, ignore the least significant four bits of the
second byte in the machine stap when testing for a little-endian stamp.
That will accept files written according to the CCP4 documentation which
have 0x41 for the second byte and files written according to the MRC 2014
documentation which says that is safe to use 0x44 for the second byte.
- For the interaction of IMAlZWT() with MRC 2014 files, corrected the
logic for when to adjust the third cell size to preserve the pixel
spacing and tightened the conditions where the extended header type field
will be reset.
- In the ProcFunc framework, made the handling of non-positive values for
the number of wavelengths in an input file more consistent. Treat the
number of wavelengths available as one when that happens.
- Protected against integer overflow in IVEQDExpandCommand() if the
expanded queue submission command would have a length that does not fit in
Other changes in 4.7.0 are:
- On Linux, now use POSIX unnamed semaphores rather then SYSV semaphores
to implement semaphores in shared memory. As a result, Priism will not
work with Linux kernels prior to Linux 2.6. Source code which includes
ive_shm.h should be recompiled. Applications on any platform which
statically link against libive.a will have to be relinked to be
compatible with Priism 4.7.0.
- Updated some of the third-party libraries used by Priism. Now use
Motif 2.3.7 (replaces 2.3.6), FFTW 3.3.6 (replaces 3.3.4),
BLAS and LAPACK 3.7.0 from Netlib (replaces 3.6.0), libtiff 4.0.8
(replaces 4.0.6), Flex 2.6.3 (replaces Flex 2.6.0), and libpng 1.6.32
(replaces 1.6.19). On Linux, the included version of Motif no longer
depends on libjpeg and libpng.
Features added in 4.6.1 are:
- Added an application, AddNoise, to add
Gaussian or Poisson noise to a data set. It's in the Misc menu.
- In the IM library, modified the handling of the Priism (EM) format
for the MRC header to include the exttype and nversion fields from
the MRC2014 format. Modified EditHeader2 and mrc2image2000 to
support the MRC2014 format as well.
Bugs fixed in 4.6.1 are:
- For ER-Decon I and II, do nothing with the cone filter for 3D
processing when the cone filter weight is zero. In the case where the
cone filter calculation generates a not-a-number, that prevents the
not-a-numbers from propagating to the result.
- Use nine rather than six significant digits when writing out Image
Arithmetic's coefficients to a batch file. Six is not sufficient for
some single-precision floating-point values.
- Made Priism's graphical user interface components compatible with
XQuartz 2.7.10 and later on Mac OS X. Without that change, those
components would fail at startup and the workaround suggested by XQuartz,
setting DYLD_LIBRARY_PATH to include /opt/X11/lib/flat_namespace, would not
completely resolve the problem since some components are invoked indirectly
by shells that, by default on recent versions of Mac OS X, reset
- Link the version of the Motif library for Mac OS X included with Priism
to libXft. Previous versions did not explicitly link that library. No
symptoms were seen with the default font, but using other fonts might
have triggered fatal runtime errors.
Other changes in 4.6.1 are:
- Now use Motif 2.3.6 rather than 2.3.4.
Features added in 4.6.0 are:
- Added option to set the phase shift from a phase plate for CTF correction
and CTF visualization.
- Added option to insert_tilts to insert exposure times into the extended
header for use by massnorm.
- Modified strait and Cut Mask so they can run and generate output even if
unable to attach to an IWL session. Added a command-line mode to Cut Mask.
- Added a button to the Section Slider to have it update the available
Bugs fixed in 4.6.0 are:
- Fixed regression introduced in 4.5.0: the Linux versions of mrc2tiff,
tiff2mrc, and tiff_save.plugin were not explicitly linked with zlib. This
caused at least one symptom: the 32-bit Linux versions of Image Capture
and the movie option in 3D Model did not enable TIFF output on some systems
(x86_64 CentOS 5.6 was one).
- Fixed regression introduced in 4.5.0: large files would not appear in
the file selection dialogs because the Motif library for 32-bit Linux used
32-bit rather 64-bit file handling calls.
- Fixed regression introduced in 4.3.0: on OS X, names used for semaphores
created by IVEInitShmSemaphore() could exceed the buffer used to store the
name. The change affects the interpretation of shared memory files so
applications that statically link with the IWL library and work with
shared memory or image windows will have to be relinked to be compatible
with the new library.
- Fixed regression introduced in 4.3.0: the -l option to ivekill would not
work on OS X to remove the persistent resources allocated by Priism.
- Provided a better diagnostic message and cleaner exit when some
applications that require an IWL session are not able to connect to
a session. The affected applications are 3D Model, Align, Slider, Profile,
and Volume Viewer.
- The CTF correction for transmission EM used the wrong sign for the
portion of the CTF solely dependent on the spherical aberration.
- In some cases the CTF correction for transmission EM data would not
respond to the option to reverse the orientation of the tilt axis. That
would happen if the option was enabled to assume that the input data had
been interpolated so that the tilt axis was vertical or that option was not
used and the tilt axis was parallel to the horizontal or vertical axes.
- Corrected case (most commonly if the first value copied has the largest
value of the values copied) where maximum in header of CopyRegion's output
is set incorrectly.
- Corrected buffer allocation in Examine Data. That appears to fix the
occasional crashes seen when viewing complex-valued data in previous
- Modified Resample2D to better handle cases where either the x or y input
pixel spacing is zero. If both are zero, issue a warning but proceed with
the interpolation as if the x and y spacings were the same and positive.
If one is zero, the output axes are orthogonal, and the rotation is an
integer multiple of 90 degrees, issue a warning but proceed with the
interpolation as if both spacings were non-zero (the relative values of
the x and y spacings don't matter in that case). If one is zero but the
output axes are not orthogonal or there is a rotation that is not a
multiple of 90 degrees, issue an error. Also changed Resample2D to use
a more accurate degrees to radians conversion factor.
- Fixed Watershed so it does not crash when the patch centers dialog is
opened when no intensity sources have been selected for the patch
- Provided a better diagnostic message and cleaner exit when tfbl is run
without any arguments.
- Corrected extended header handling in vaxmrc2mrc.
- Corrected one place where 3D Model caused shared memory leaks of
point labels. Other leaks associated with the labels remain.
- Fixed IP framework to handle the case where an application used
in-core processing and registered the output before the inputs. Tightened
checks for integer overflow in the buffer allocation.
- Corrected a past-end-of-array access in the region selection code
(either for the IP framework or the stand-alone libSelectRegion.a) for
stream numbers evenly divisible by 10.
- Modified post_install.sh to run ranlib on the 64-bit OS X archive
libraries if run on a 64-bit Mac OS X system.
Features added in 4.5.0 are:
- Added fixtf, an application for applying
corrections to non-radially averaged transfer functions.
- Modified the ways that per-projection defocus values could be set for
- Added converters to convert the alignment parameters from a .bprmMn file
to a set of IMod parameters or vice versa.
- Relative library paths are encoded in the executables so no longer rely
on environment variables like LD_LIBRARY_PATH or
DYLD_FALLBACK_LIBRARY_PATH. Priism_setup and Priism_setup.sh no longer
set those variables unless requested to do so. For instance, if you
have custom executables that need the library paths, set
IVE_SET_DYNLIB_PATHS before sourcing Priism_setup or Priism_setup.sh.
Bugs fixed in 4.5.0 are:
- Fixed regression introduced in 4.4.0: files where the number of
resolutions was listed as zero could cause crashes with ProcFunc-based
applications (known example: ImageArithmetic given two of those files
would crash if "use region from first input" was toggled off).
- Fixed regression introduced in 4.3.0: RunProj and T-RunProj would use
incorrect scale factors for average projections when the starting index
for the group plus the group size equalled the last index in the region
- Fixed regression introduced in 4.4.0: Apply Calibration graphical front
would always exit with the message that memory could not be allocated.
- Because the shell, sh, in OS X 10.11 does not inherit the setting
for DYLD_FALLBACK_LIBRARY_PATH from its parent, the iterative EM alignment
applications in previous versions would fail on OS X 10.11. The changes
to the handling of library paths in 4.5.0 fix that.
- Closed a memory leak in Rotate3D.
- Corrected the final interactive stage of the bead alignment so it does
not garble the display of the bead errors if the product of the number of
beads and the number of projections is too large (in the previous version
250 sections and 69 beads was sufficient to trigger the bug).
- Corrected the final interactive stage of the bead alignment so it allows
the last bead to be merged with others.
- Changed bead_matcher to protect against uninitialized variable which
caused a crash in one test case.
- The K2 correction application no longer ignores the switch to output
- Corrected an off-by-one error in the section index when the CTF
correction application pulled information from the extended header.
- Fixed a problem in the CTF correction application that could cause
access past the end of a character array. One symptom of that was
stray characters appearing the header titles of the MRC-formatted output.
- For the EM reprojection application, corrected the pixel spacing written
to the output when using the highest resolution from the input.
- Corrected a sanity check on the y bounds in gpurecon so that it does
not mistakenly fail in some cases when using a lower resolution of a file.
- Corrected gpurecon so that it does not crash if given less than two
- The GPU reconstruction server software now responds to connections over
- Corrected the rgemt_autostart script so that it correctly retrieves the
process ID if the reconstruction server is started on a remote machine.
Also corrected rgemt_autostart's parsing of the port number in the
case where the host name does not include a port number.
- In Line Profile when only drawing to one window, do not respond to
display change events in other windows.
- In MMM and Percentiles, disable controls and clear displayed values
when an input window is overwritten (i.e. treat it as if opening a new
- In Volume Viewer, remove window graphics from the input when the input
is changed and account for the entered zoom factor when selecting regions
with the "Select Region" button.
- One failure path in shared memory attachment (shared memory file exists
and appears okay but not able to load it into memory) could unlink the
existing shared memory file because of an uninitialized variable.
- Protected against overflow in IMOpen() when a caller requests a very
large stream number.
- Changed default resources so the label of WMStatusBar widgets is visible.
- Changed the post-installation configuration with Matlab so it works on
OS X systems that report themselves as x86_64 and so that it does not
generate a dialog if run on an OS X 10.11 system which does not have the
developer tools installed.
Other changes in 4.5.0 are:
- For x86 or x86_64 Linux, requires glibc 2.3.4 or newer.
- Requires OS X 10.5 or later: support for executing the 32-bit version
on OS X 10.4 has been dropped. Linking with the Priism libraries has more
restrictive version requirements: you'll likely need OS X 10.7.4 or later
and XCode 4.5 or later.
- Binaries are now built entirely with gcc-based compilers rather than
using the Intel compilers in some cases. For instance, the default
version of libimcompat.a is now built by gfortran rather than the Intel
Fortran compiler. The Intel runtime libraries are no longer included with
- Now use the version of Motif 2.3.4 released under the LGPL license
instead of LessTif. If you have custom applications which access the
Motif widgets directly, you will need to recompile your application.
- Removed the plugins that could connect VolumeViewer to VolumePro 1000
- Removed the version of libimcompat.a generated by g77.
- Use FFTW 3.3.4 rather than FFTW 3.3.3. Removed FFTW 2 for 32-bit Linux.
- The 32-bit version of the GPU reconstruction server software now uses
CUDA 5.0.7 rather than CUDA 3.1.9.
- Increased limit on padding amount in the Fourier tools applications from
10000 to 30000.
- Removed the Fortran interface to the iomenu utility. Modified the
C interface for the iomenu utility so it could be used for interfaces like
EMTAR and BALIGN. Recoded EMTAR and BALIGN to use the iomenu utility.
Set up additional options for how the iomenu utility sets the default
output file names from the input file name.
Problems fixed in 4.4.1 are:
- With the ER-Decon II application and the new line search, the application
would crash after deconvolving the first volume if you did not use an
output plot file.
- The ER-Decon I and ER-Decon II applications did not handle time steps
different than one correctly.
- The ER-Decon II application enforced a check on the numerical aperture
and refractive index when those parameters were not used and did not
check those parameters when they were used.
Features added in 4.4.0 are:
- Modified to natively handle the Image2000 format (there's one exception:
Priism still uses mode 0 for unsigned 8-bit data; in Image2000 mode 0 is
for signed 8-bit data). Modified CopyRegion to allow the user to change
the byte order or header format of the copied data.
- Added an application for correction of some defects noted in images
from Gatan's K2 camera.
- Added log file output for the TALIGN shifts during iterative alignment.
- Modified the ER-Decon II application to incorporate an updated line
search algorithm and to expose what was an internally hardwired parameter
(but by default set the parameter to zero since that matches the 2013
PNAS paper). Parallelized more of the code in the ER-Decon II application.
- Modified DisplayAttr so more of an image windows attributes can be
modified through its interface. Added a command-line interface to
DisplayAttr so those attributes can also be set from the command line.
Added a command-line interface to SelectImgColors so an image window's
wavelength colors can be set from the command line.
- Modified tiff2mrc to allow extracting a subset of images from a file
with multiple images and to allow for different interpretations of the
page numbers in a file with multiple images.
- Added operations in Image Arithmetic to take the natural logarithm of
the pixel values or to raise them to fixed exponent.
- Added a command line interface for RadProj.
- Added an option to mrc2txt to append when writing.
- Increased the upper limits on the number of elements in a segmented
volume for Watershed (previously was 2^31-1; now is 2^32-1 for 32-bit
systems and 2^64-1 for 64-bit systems).
- For batch-mode applications, write the host used to the log file.
- Added IWXEvtToDataExt() to better work with image windows that display
- Added IWRtSecNumColor(), IWAlSecNumColor(), IWRtSecNumDisplay(), and
IWAlSecNumDisplay() to control the section number labels drawn on images
in an image window. Added IWRtDisResLevel() and IWAlDisResLevel() to
control the currently displayed resolution level in an image window.
- Added support for files with 4-bit unsigned values. As part of that,
Problems fixed in 4.4.0 are:
- In the Alignment and Reconstruction user interface, corrected two cases
where the input parameter file was not correctly propagated (tilt axis
determination with rough alignment and no mass-normalization and CTF
correction when at least one of the parameter-generating applications
before it is on). Corrected the propagation of the resolution level when
using CTF correction. Corrected how the Wiener factor for the CTF
correction is written to the job script. Corrected some cases where the
displayed state for the input alignment parameter toggle buttons in the
massnorm, tilt axis determination, and CTF correction dialogs did not
match the internal state.
- In version 4.3.0, the iterative EM alignment applications could stop
after the first iteration because the alignment parameter file from the
first iteration was written with an extra line in some cases.
- Modified massnorm and align_2d_p to recognize data with 50 floating-point
entries per image in the extended header (such data is generated by the
drift-correction software for K2 data).
- The cross-correlation images from the alignment in the iterative
alignment are no longer garbled if working with a lower resolution of the
- In the GPU reconstruction server, the 64-bit version would incorrectly
flag GPUs as busy in some cases. Replaced the 32-bit version with one
compiled against CUDA 3.1.9 since the one compiled against CUDA 5.0.7 did
not work correctly.
- Corrected the parallel versions of the EWBP and TAPIR reconstructions
and projection alignment so that output with a relative path is computed
relative to the working directory at startup rather than the temporary
directory. Corrected the parallel alignment so it does not attempt to
assemble cross-correlation images if the alignment method does not use
- gpurecon would spuriously reject certain y bounds when working at a
- gpureproj would mistakenly require the -rscale option.
- The graphical interfaces for the GPU versions of the iterative EM
alignment applications did not pass the requested number of processors to
the queueing system in all cases.
- Removed the internal limit of 6000 bead positions in the graphical
display for the final stage of the bead alignment. Now embed that display
in a scrolled window so the size of the histogram bars does not vary with
the number of tilts or beads. Corrected cleanup code in the graphical
display for the final stage of the bead alignment.
- In the EM applications, appending resolutions to an output could fail
if the output file name contained characters with special meaning to the
- In EditHeader2 and mrc2image2000, modified to use the machine stamp as
defined in the CCP4 documentation.
- Image Arithmetic incorrectly rejected -clamp as an invalid command-line
option. The handling of zero-clamping for the phase operation did not
match the documentation (i.e. that zero-clamping is only applied if the
output file does not store the data as complex).
- For real-valued input, RadProj now will report phases of pi for
negative values rather than phases of zero.
- Corrected Line Profile to avoid crashes when saving results.
- Merge/Reorder now resets the z origin in the header to zero.
- In mrcpercentiles, now represent cutoffs internally with a double
precision value (for larger data sets may want fractions close to one that
a single precision value can not accurately represent). Modified to
correctly handle cases where the cutoff is one.
- Corrected Point Values to report the correct information when working
with image windows that display multiple images and either the layout
is not the data layout or the image stepping is not along the z dimension.
- In Region Growing, corrected how the scaling and minimum and maximum
values in the header are set when no points are selected by the region
- In View File, corrected array overflow if working with input that has
more than three wavelengths.
- In Watershed, protected against overflow in the computation of the
maximum number of patches. Corrected use of uninitialized memory when
saving intensity-weighted patch centers. Removed a memory leak when
reassigning patch tags fails.
- Package with libquicktime 1.2.4 linked against libpng 1.2.50. The
version included with 4.3.0 would generate a runtime error when using PNG
as the codec.
- In the post-installation setup, use "." rather than "source" in case
/bin/sh is not bash.
- Clear the image window when changing wavelengths in pseudocolor mode
and the wavelengths have different spatial offsets when displayed.
- Corrected cases where writing a large data set to an image window,
appending resolutions to that data, and then appending more data would
cause the image window to crash.
- Corrected regression in 4.3.0: IWRtWid() would return -1 rather than 0
when the stream is not attached to an image window.
- Corrected IMTrHdr() to only transfer the extended header if its size is
positive (previously would do so if the size was different than zero).
- Corrected IMWrHdr() for the case where the number of labels is the
largest 32-bit signed integer.
Other changes in 4.4.0 are:
- By default, image files are written in the machine's native byte order.
Previously, the default was to write files in big-endian order.
- No longer supply binaries for PowerPC-based Macs.
Features added in 4.3.0 are:
- Added DataViews->DataInfo->Percentiles
for determining the intensity cutoff values that correspond to different
fractions of the total number of elements in the data set.
- Made the gpu-accelerated versions of the EM processing applications
available in all versions.
- Added a step in the EM processing to
apply CTF correction. The application
is based on David Agard's focusramp4. To accommodate the geometry
conventions used by the CTF correction, added options in other EM
applications to reverse the orientation of the tilt axis.
- Replaced Processing->EM Processing->CTF Plot with
Processing->EM Processing->CTF Visualization.
It can generate images, plots, or text tables of the CTF values.
- Modified the parallel EM applications to be able to work with OpenMPI.
Also modified them and other parallel applications to respect the NSLOTS
environment variable for better integration with the GridEngine queueing
system. As a side effect, the queue configuration file, queues.def, and
the queue integration in the iomenu library have changed in non-backwardly
- RunProj can now compute projections along the x, y, or z axes.
- Watershed will now apply a histogram sort to unsigned short data rather
than a slower heap sort after conversion to floating-point.
- Added an option in bead alignment for EM tomography to fix the alignment
parameters while allowing the fit bead positions to vary.
- Treat a coverage of zero in a particular direction as no tapering in
that direction for the various applications in the "Fourier Tools" menu.
- To simplify use of the archive libraries for MRC file I/O, those
libraries no longer depend on C++ libraries. Added implementations of the
MRC file I/O libraries for Windows.
- In the iomenu library, added options to display a subset of the region
- Added an implementation of the IM library for Windows.
- (UCSF version only) In the deconvolution applications, added an option
to skip rescaling of the transfer function. Also added the option to
generate a separate file with the R-factor or termination criteria results.
- (Internal version only) Added an implementation of Muthuvel Arigovindan's ER-Decon II deconvolution algorithm.
It was designed for 3D widefield data. It also has the option to process
Problems fixed in 4.3.0 are:
- For x86_64 Linux systems, removed the restriction that limited the
shared memory file to be less than 4 gigabytes in size. The change
breaks binary compatibility for some x86_64 Linux applications. If you
have your own applications that interact with Priism's image windows, you
may have to recompile them. The
IM library release notes has
more details on the kinds of applications that are affected.
- Priism's setup script would not recognize at least some systems as
64-bit capable under Mac OS X 10.7 or later.
- No longer depend on libXp since newer versions of X11 do not include it
at all (and older versions did not include it by default).
- Redirect standard input, output, and error when running Priism from
Priism.command to avoid problems with applications launched from Priism.
- To match the Welch method for estimating power spectra, corrected the
power spectrum applications to average the spectra before taking the
square root: previous versions took the square root and then averaged.
Also apply the power reduction factor due to the tapering window before
taking the square root rather than afterwards.
- The machine stamp written by mrc2ccp4 is now in agreement with the
the values in the CCP4 documentation.
- When "Show Point Info" is pressed in Find Points, the displayed dialog
now automatically jumps to the start of the point list.
- For wavelengths after the first, Region Min/Max/Mean displayed incorrect
wavelength values in its main dialog.
- The output size computation in Rotate3D can no longer trigger an infinite
loop if one or more of the input sizes is not positive.
- There was a buffer overflow in the interactive bead alignment if the
path name for the directory where the application was started was longer
than 99 characters.
- In the background fit option, massnorm did not count the portion of the
points in the highest histogram bin.
- Corrected handling of nonzero values for -res and -resref in the
alignment portion of the applications to iteratively align EM tomography
data. Also accept the documented -fullsize option rather than ignoring it.
- Restructured the internal help viewer: it was crashing when "up a level"
was pushed for a file in the top-level help directory.
- Corrected applications that use the 2D processing from the IP framework
so that closing an output window during processing does not trigger an
infinite loop when the application finishes the processing.
- In the I/O handling for MRC files, removed the infinite loop if attempts
to open a file are repeatedly interrupted by the operating system.
- Added IWRetBaseDirectoryExt() and IWRetSHMDirectoryExt() as replacements
for IWRetBaseDirectory() and IWRetSHMDirectory(). In the libraries and
applications, made modifications to avoid buffer overflows if those
directory names, or other values from the environment, are too long.
- Corrected the effect of turning off image buffering with IWAlBufImg() on
an image windows that had already swapped out scaled images or data.
Corrected the return value of IWRtBufImg(): previous versions included
status bits tracked internally.
- Modified the 64-bit version of OS X to use the stat64() family of calls
in case files with 64-bit inode values are encountered. In all versions,
replaced instances where the stat() family were always used with code
that uses stat() or stat64() as appropriate for the platform.
- Modified the OS X version so that semaphores created with
IVEShmInitSemaphore() have internal names that are unique across Priism
sessions running simultaneously. This changes the shared memory file
format and introduces compatibility issues with statically linked
applications from different Priism versions.
- (Internal version only) Now use zero padding in x and y for ER-Decon I
rather than linear interpolation between the edges.
Other changes in 4.3.0 are:
- Now use FFTW 3.3.3 for all versions. The FFTW 2 libraries for PowerPC
Mac OS X and 32-bit Linux are still included but may be removed in a future
- In RadProj, plots and text output now use the lower bound for the bin
as the coordinate rather than the center of the bin.
- In the EM alignment applications, the characteristic lengths for angular
parameters now use units of degrees rather than radians.
- In the tilt axis determination for EM, changed the special value that
centers the search range on the tilt axis orientation for the first image:
the new special value is -180 rather than -90.
- In the alignment portion of applications to iteratively align EM
tomography data, -nooffset is now the default and the initial value for the
stretch axis is perpendicular to the tilt axis.
- Added documentation for FTransform2D, FTransform3D, and FTransform4D
about special cases when applying non-integral shifts.
- (UCSF version only) Relaxed the wavelength checks in the deconvolution
applications. If the data and transfer function both have non-positive
wavelengths, issue a warning and proceed as if they have the same
- (Internal version only) Incorporated the changes to ER-Decon I that
Muthuvel Arigovindan made prior to early 2012.
Return to overview