Goal
Automated Fitting of Constrast Transfer Function Parameters
Authors
Wen Jiang @ Baylor College of Medicine
Chao Yang @ Lawrence Berkeley National Laboratory
Reference
Yang C, Jiang W, Chen D-H, Adiga U, Ng EG, Chiu W.
Estimating contrast transfer function and associated parameters by constrained non-linear optimization.
Journal of Microscopy (2009) vol. 233 (3) pp. 391-403.
Features
1. Fit structural factors by simutaneous fitting of multiple micrographs
2. Fit astigmatism and drift
3. Automated batch mode fitting, no need of initial seeding
4. Fast (seconds)
5. Robust. Defocus and background are VERY reliable
6. Compatible with GUI program
ctfit program in
EMAN
7. Cross platform: Linux, Windows and any platform that EMAN and Matlab run
Method
We use the constrained nonlinear multi-variable optimization function
fmincon in
Matlab as the core technique. The Contrast Transfer Function (CTF) of electron microscope
is modeled as in the
EMAN
software.
Software
|
Version
|
Comments
|
Cost
|
Matlab
|
any
|
Version 6.5 and 7.0 are tested.Other versions might also work
|
Commercial
|
Matlab
Optimization Toolbox
|
any
|
To provide fmincon function
|
Python
|
2.3 and above
|
must have optparse module
|
Free Open Source
|
pymat
|
CVS version. v1.1.90 does not
work (at least not on Mandrake 9.0)
Here is the one I am using:
pymat-python2.3-matlab6.5-linux.tar.gz,
pymat-python2.3-matlab7-linux32.so,
pymat-python2.3-matlab6.5-win32.pyd,
pymat-python2.3-matlab7-win32.pyd
|
provides Python module to
control Matlab engine
to install the one I provide: untar the file pymat-python2.3.tar.gz, mv
the new directory pymat to a directory in the $PYTHONPATH
values, or create the PYTHONPATH variable to contain the pymat
directory
make sure to include the following files from your Matlab installation
into your run time library search path (i.e. LD_LIBRARY_PATH).
$MATLAB refers to the root directory of your Matlab installation.
$MATLAB/extern/lib/glnx86/libeng.so
$MATLAB/extern/lib/glnx86/libmat.so
$MATLAB/extern/lib/glnx86/libmx.so
$MATLAB/extern/lib/glnx86/libut.so
$MATLAB/sys/os/glnx86/libstdc++-libc6.1-2.so.3
|
Numeric
Python
|
any
|
required by pymat. most
linux distributions have it but might not install it by default
|
EMAN
|
>2004-4-4 release
|
must have Python wrapping built
|
Just type
fitctf.py
and it will display the usage documentation as the following:
usage:
fitctf.py
<*.img>|<*.hdf>|<*.tnf> [options]
options:
--version
show program's version number and exit
-h,
--help
show this help message and exit
--sf=<structural factor file>
the structural factor curve file. use constant
structural factors if this file is not given
--fitsf=<structural factor file>
fit the structural factor curve from the images and
save to the file
--apix=<Angstrom/pixel>
[Required] the sampling of the image, in unit of
Angstrom/pixel
--cs=<Cs>
[Required] the microscope's spherical abberation, in
unit of mm
--voltage=<voltage> [Required] the
microscope's accelerating voltage, in
unit of kV
--min_s=<minimal spatial freq>
the minimal spatial frequency to include in fitting, in
unit of 1/Angstrom. default to 0.01
--max_s=<maximal spatial freq>
the maximal spatial frequency to include in fitting, in
unit of 1/Angstrom. default to 1.0
--min_defocus=<minimal defocus>
the closest focus to consider, in unit of micrometer
and positive for underdefocus. default to 0
--max_defocus=<maximal defocus>
the largest focus to consider, in unit of micrometer
and positive for underdefocus. default to 4
--max_bfactor=<maximal B-factor>
the largest B-factor to consider, in unit of
Angstrom^2. default to 1000
--min_ac=<minimal amplitude contrast>
the smallest amplitude contrast to consider, in range
[0-1]. default to 0
--max_ac=<maximal amplitude contrast>
the largest amplitude contrast to consider, in range
[0-1]. default to 0.2
--oversample=<n> oversample
<n> times the power spectrum so there is
enough sampling points to fit for small particles. only
used when inputs are individual particle images.
default to 1 to disable
--gridbox=<box size> if perform grid boxing first
for a large micrograph/ccd
image. default to 0 to disable
--anisotropy_bins=<number of angular bins>
the number of angular bins (>8) to fit astigmatism and
drift. default to 0 to disable astigmatism/drift
fitting
--ctfparm=<output parameter file>
the output filename for the fitting results to save.
default to ctfparm.txt
--astigmatism to
fit astigmatism. must also set anisotropy_bins>=8 to
activate. disabled by default
--drift
to fit drift. must also set anisotropy_bins>=8 to
activate. disabled by default
--pause=<seconds> to pause the
fitting for the specified number of
seconds after each micrograph, -1 will stop and wait
for keyboard return to continue. default to 0 to
disable pausing
--show_fit
to show the fitting plot during the fitting process.
disabled by default
--keep_pwr
to keep the power spectrum files (*.pwr). disabled by
default
--useoldmfile
won't write new Matlab .m scripts and use exisiting
scripts. disabled by default to output new scripts
Python executable + examples, 11.4MiB (requires EMAN and MATLAB)