Table of Contents

Modification history

This document describes incremental modifications made to the Baker lab software suite. Since the image preprocessing, image reconstruction, format conversion, and utility programs are so tightly coupled (e.g. shared standards and libraries) and released as a single package, all modifications are described together in a single document. Owing to the complexity of the software, it is impractical to provide a line-by-line listing of alterations. Instead we focus primarily on modifications that impact the end user and on large-scale changes to the code. Starting on version 4.02, more details on the changes in the latest version can be found in the file MINOR_RELEASE_NOTES, included in the software package.

auto3dem v4.05.2

New programs
General modifications
Random Model Computation
auto3dem
autopp
PPFT
POR
maskmap
rot_map
a3dm_plot_fsc

auto3dem v4.05.1

Installation
New programs
Random Model Computation
General modifications
auto3dem
autopp
robem

auto3dem v4.05

Implemented the gold standard approach, and set as default

Installation
new programs
auto3dem
autopp
P3DR
PSF
PPFT
POR
tiff2pif
dm32pif
robem

auto3dem v4.04

License
Compilation
General modifications
Common libraries
robem
autopp
auto3dem
P3DR
PCTFR
PPFT
Other programs

auto3dem v4.03

Compilation

General modifications

Common libraries

robem

autopp

auto3dem

P3DR

POR

PSF

tiff2pif

auto3dem v4.02

Compilation

General modifications

Common libraries

robem

autopp

auto3dem

capsid_generator

ctffiind3/ctftiltt

ctffit

dm32pif

emprj

imgstatst

leginon_to_bcrd

mrc2pif

P3DR

PCTFR

pifmapmask

POR

PPFT

tiff2piff

auto3dem v4.01

autopp

PPFT

robem

ctffind3

pifmapmask

parse_dm3

fixpif

auto3dem v4.0

NOTE – Following change had been implemented in v3.15, but was not described in previous version of this document:

Simplified the process of selecting CTF nodes in robem 'FFT – CTF Estimation' window. By default, images are assumed to be stigmated, but user can toggle between choosing parameters for stigmated or astigmatic images.

Building executables

auto3dem

Defocus estimation using ctffind3

ctffind3 and ctftilt use a different convention for the astigmatism angle than the Baker lab software. For use in auto3dem, the negative of the astigmatism angle should be used. This is done automatically when using autopp Option 4

setup_rmc

robem

OLD: xbatch robem –pre infile [other options]
NEW: robem –nogui –pre infile [other options]

gensph

pifmapdel

prjcompare

parse_dm3.pl

PIF library and calls to PIF library

auto3dem v3.15

auto3dem

# Example 1 – select omega within 10° of 0° auto omega1 0 auto omega1_tol 10

# Example 2 – select omega within 20° of 90° of 270° auto omega1 90 auto omega1_tol 20 auto omega2 270 auto omega2_tol 20

robem

imgstats

Code cleanup

auto3dem v3.14

auto3dem

por ticos_equiv 1       # Add to auto3dem master file
ticos_equiv 1           # Add to POR input file
por global_por 1       # Add to auto3dem master file
global_por 1           # Add to POR input file

robem

oned, ctfdisp, fixpif

emprj

New PDB manipulation scripts

New box file format conversion scripts

auto3dem v3.13

NOTE – As of version 3.13, when the software suite is built using the make_all script, the symbolic link BIN pointing to the bin directory is no longer created. In your configuration file, make sure that your path is set appropriately.

Also (see robem below), the EMDIR environment variable no longer needs to be set. It is now sufficient just to set the path to point to the location of the executables.

auto3dem

robem

ctfdisp

In addition to changes listed above, extensive cleanup of underlying code: removal of obsolete functions; deletion of unused variables, common blocks, and macros; addition of INTENT specifications in Fortran subroutines; placement of frequently used sets of operations into functions; general cleanup to improve readability of code; simplification of I/O for maps and image data; modifications to enforce compatibility of C header and Fortran include files.

auto3dem v3.12

auto3dem

autopp

setup_rmc

robem

In addition to changes listed above, general cleanup of code base and removal of obsolete or redundant subprograms. make_all and clean_all scripts modified to use /bin/bash rather than /bin/sh since some flavors of Linux (e.g. Ubuntu) no longer support /bin/sh.

auto3dem v3.11

auto3dem

autopp

robem

combine_fsc

Code cleanup

auto3dem v3.10

auto3dem

autopp

robem

auto3dem v3.09

auto3dem

setup_rmc

autopp

per_ptle_ctf

robem and ctfdisp

auto3dem v3.08

       auto freeze_annulus 0
       ppft verbose -1

Made changes to the source code that allows all programs except robem, ctfdisp, and emprj to be built using the PathScale compilers.

auto3dem v3.07

AUTO3DEM and all programs that are called by it (P3DR, PCTFR, POR, and PPFT) can now handle particle parameters files containing data for multiple boxed image files. These concatenated files are of the following form

image_file_name
defocus information
zero or more particle records
image_file_name
defocus information
zero or more particle records
…

No embedded blank lines are allowed in the concatenated particle parameter file, but trailing blank lines are still permitted.

Note that the script setup_rmc.pl, which is used to setup the random model calculations, still requires that each particle parameter file contain data for only a single micrograph. This may be remedied in future releases.

Other changes in this release include:

auto3dem v3.06

auto3dem v3.05

auto3dem v3.04

A number of important new features have been implemented in this release.

(auto|ppft|po2r|p3dr) per_ptle_ctf 1
auto noise_suppression 1

Other minor modifications and bug fixes in this release

auto3dem v3.03

auto3dem v3.02

auto3dem v3.01

auto3dem v3.0

This release gathers for the first time all of the image reconstruction, image preprocessing, and utility codes into a single archive. New additions include robem, ctfDisp, oned, fixpif, tiff2pif, emmap3dt, emmapzoom, emsf, em3dbt, emprj, diffit, normit, zerodens, and a number of conversion routines. The make_all script now takes two command line arguments

make_all (parallel | serial) (all | gui | nogui)

The first argument behaves exactly as before, while the second argument specifies which set of applications should be built. In most cases, the second argument should be ‘all’, but the ‘nogui’ option may be chosen when doing a build on a machine that does not have the Motif library installed. The ‘gui’ option is generally not needed, but is provided for added flexibility.

If you are already a user of robem, please be aware that this release contains a major overhaul of the software. Modifications include:

In order to build many of the newly added programs, you will need to install the Motif library. We do not currently have a feature in place for automatically determining whether the code is being compiled on a 32-bit or 64-bit architecture. The make.inc.common file is hardcoded for 64-bit hardware and the MOTIFLIB macro will need to be manually edited if you are running on a 32-bit machine.

Running the new programs requires that the EMDIR environment variable be set. The easiest way to do this is to set the EMDIR variable in the .cshrc file and then use it to append the path variable.

setenv EMDIR /path_to_programs/BIN
set path  = ($EMDIR $path)

All make files have been overhauled and a number of subroutines that are common to both the program PPFT (parallel PFTsearch) have been moved into libCommpk. In addition, several of the routines in the PPFT directory have been renamed so as to avoid conflicts with other routines of the same name in libEMF.

fft_map_fill           renamed         fft_map_fill_ppft
map_fft_fill           renamed         map_fft_fill_ppft
map_prj                renamed         map_prj_pfft
map_sym_cavg           renamed         map_sym_cavg_pfft

The following directories have been created to accommodate the newly added code: convert, conway_tif2pif, ctfDisp, em_tools, fixpif, lib3DAll, libEMF, oned, pftprj, robem.

auto3dem v2.04

          PIFlib         renamed         libR
          Commpk         renamed         libCommpk
          Compap         renamed         libCompar
          DIElib         renamed         libDIERCKX
          Vfftpk         renamed         libVfftpk

auto3dem v2.03

Important notes for building auto3dem

Auto3dem and the parallel codes that it calls can now be built and run in either serial or parallel mode. An implementation of the MPI library (e.g. mpich) is no longer needed when running auto3dem on a single processor. The make_all script used to build the executables now takes a single command line argument, with allowed values of ‘parallel’ or ‘serial’. Symbolic links are set by the script as follows

% make_all parallel
% ls -g make.inc BIN/mode.pm
lrwxrwxrwx  1 csd357 14 Jun 13 15:14 BIN/mode.pm -> mode_parallel.pm
lrwxrwxrwx  1 csd357 15 Jun 13 15:14 make.inc -> make.inc.parallel
% make_all serial
% ls -g make.inc BIN/mode.pm
lrwxrwxrwx  1 csd357 14 Jun 13 15:14 BIN/mode.pm -> mode_serial.pm
lrwxrwxrwx  1 csd357 15 Jun 13 15:14 make.inc -> make.inc.serial

When building auto3dem for parallel operation, the serial Fortran 90 and ANSI C compilers are called by the corresponding mpif90 and mpicc scripts. For builds in serial mode, the FC and CC macros in the make.inc.serial file must be manually edited if you are not using the gfortran and gcc compilers. The make_all script determines whether or not a build of auto3dem already exists. If the mode (serial or parallel) of the current build differs from that of the previous build, all .F files are ‘touched’ to ensure that they are run through the preprocessor and recompiled.

For auto3dem runs in serial mode, the number of CPUs no longer needs to be specified and any value set using the –ncpu flag is ignored.

Detailed listing of code changes:

auto3dem v2.02

Summary of changes that result in slight numerical differences

Detailed description of changes

The initial search for ω is now done over a coarser grid of values, with the step size dependent on NROT. This is followed by a local search using a finer grid in the vicinity of the top scoring values of ω obtained during the initial search. After several iterations of global search mode, only a small fraction of the particle images have orientations that differ from those obtained using the original algorithm and the actual differences in the orientations are minimal.

The 'quick omega' feature is enabled by default in auto3dem. Adding the following line to auto3dem input files disables this option

ppft quick_omega  0 # auto3dem input file

This new capability required the creation of a new subroutine get_phiomega_quick and modifications to the following files in directory PPFT: global.f, global_cc.f, get_tpo_g.f, pftsearch.f, ppft_info.f, and key_info.f. Also required changes to include/infohead.inc, init_params.pm, and make_program_input.pm

p3dr apo_border n # auto3dem input file

This new capability required changes to the following files: P3DR/P3dr.F, P3DR/density_clear.f, Commpk/info.f, Compar/bcast_parameters.f, info.inc, init_params.pm, and make_program_input.pm

The 'quick search' feature is enabled by default in auto3dem. Adding the following line to auto3dem input files disables this option

po2r quick_search 0 # auto3dem input file

This new capability required changes to the following files: POR/Por.f, POR/cmpt_ort.f, Commpk/info.f, Compar/bcast_parameters.f, info.inc, init_params.pm, and make_program_input.pm

auto refine_ctf 1
ppft bin_factor
ppft verbose
ppft annulus_low
ppft_annulus_high
pcut in_rad
pcut out_rad
auto freeze_annulus
auto bin_reduce
Stable orientation / stable origin
New orientation / stable origin
Flipped hand / stable origin
Stable orientation / new origin
New orientation / new origin
Flipped hand/ new origin

The 'stable' designation means that the orientation or origin for a particle is unchanged after running POR. 'Flipped hand' means that the orientation is the same except for a change in the handedness of the particle. This information is summarized in the POR output file.

Extra fields have been added to the new particle parameter files generated by POR so that the status of the orientation (Stable, New, Flipped) and origin (Stable, New) is listed for each particle.

%auto3dem -ncpu=16 -input=input_file
%auto3dem -ncpu 16 -input input_file

auto3dem v2.01

% mpirun –np 8 P3DR p3dr_input > p3dr_output
% mpirun –np 8 P3DR < p3dr_input > p3dr_output

The first syntax is preferred and is used internally by auto3dem when launching the parallel jobs. The reason for making this change is that many MPI implementations cannot handle redirection from standard input if the number of characters is greater than 4096. The second syntax is retained for continuity purposes only and is no longer recommended.

The remaining modifications listed below for v2.01 all involve internal code changes that do not affect results, use of codes, or specification of input parameters.

auto3dem v2.0

Important - Version 2.0 contains a new command line interface for running setup_rmc and auto3dem. The old usage syntax is no longer valid. Any scripts that call setup_rmc or auto3dem must be modified to use the new syntax.

setup_rmc -ncpu=4 -seed=123 -list=listfile
setup_rmc –usedefaults
auto3dem -ncpu=12 -input=input_file -nodefile=mynodelist

setup_rmc can be run purely with default values using the –usedefaults flag. For auto3dem, values must be provided for the number of CPUs and the name of the input file. The nodefile no longer needs to be specified for either setup_rmc or auto3dem. This is to be contrasted with previous versions where the word 'none' had to be explicitly used for those cases where the parallel computing environment did not require a node list. For batch systems running the PBS scheduler, the PBS node file is automatically obtained from the $PBS_NODEFILE environment variable via Perl’s %ENV hash.

Both programs list usage information if executed either without any arguments or with the -help flag. All flags are case insensitive and whitespace before or after the '=' in the key value pairs is tolerated. In addition, setup_rmc prompts the user to continue run using all default values after printing usage information.

When a list of parameter files is read from a file, now have added flexibility in the specification of the files. Wildcards, comments, blank lines, and whitespace are now allowed. Can also use a single quoted expression in place of the file. For example, -list=’*001’ will be expanded within setup_rmc to a list of all files ending with 001 in the specified directory.

An older version of P3DRhas been retained in the P3DR_old directory, but does not contain the performance enhancements described above.

auto recipient address1 address2, address3; address4

The remaining modifications listed below for v2.0 all involve internal code changes that do not affect results, use of codes, or specification of input parameters.

auto3dem v1.12

The remaining modifications listed below for v1.12 all involve internal code changes that do not affect results, use of codes, or specification of input parameters.

auto3dem v1.11

Minor changes made to auto3dem so that:

auto3dem v1.10

setup_rmc dir list ncpu nodefile [boxrad]

auto3dem v1.09

auto recipient email
setup_rmc dir list nmodels ncpu nodefile [boxrad]

CTF refinement is controlled by the new parameter ‘auto refine_ctf’ and is enabled by default. Note that CTF refinement is only done when running in refine mode since at lower resolutions the spatial frequencies may not span enough nodes in the CTF function to make a reasonable estimate of the defocus.

auto3dem v1.08

Modifications dealt primarily with the elimination of redundant functionality. In particular, the use of equivalent_view to generate symmetry-related orientations and crowther_to_matrix to determine rotation matrices corresponding to the orientations defined by (theta, phi, omega). These changes lead to very small numerical differences. A number of non-algorithmic modifications were also implemented that improve code readability.

auto3dem v1.07

auto3dem v1.06

Minor, non-algorithmic changes made to many files in Commpk, Compar, P3DR, POR, PPFT, PSF, include, and Ctffit directories. Primarily removal of unused variables, specification of argument intents, improved comments, etc.

auto3dem v1.05

auto3dem v1.04

auto3dem v1.03

Changes were implemented that make it much easier to run AUTO3DEM. Rather than creating symbolic links to Perl code and binaries, path information is simply added to the computing environment. This required some changes to the Perl code so that binaries and custom modules would always be found.

auto3dem
use lib do { __FILE__ =~ m|^(.*?)[^/]*$|; "$1"; };
./auto3dem.pl   becomes   auto3dem.pl
make_all

auto3dem v1.02

auto3dem

Program POR

handflip.pl

auto3dem v1.01

Program P3DR

Program P3DR

Program PPFT

setup_rmc

delta_theta = 1° (default 0.5°)
verbose = -1 (default 2)

auto3dem