Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

22 Commits

Repository files navigation

License

The code in this project is distributed under the GPL-3.0 license.

postprocessing.py

Description

Post-processing of cryo-EM maps and generation of FSC curves corrected by masking effects

NOTE: The code in postprocessing.py was adapted from https://github.com/C-CINA/focustools.

Usage

At a minimum, two half maps should be provided as input. To see all available options type:

./postprocessing.py --help
Usage: postprocessing.py [] [options]
Options:
-h, --help show this help message and exit
--out=postprocess Output rootname.
--angpix=1.0 Pixel size in Angstroems
--fsc_threshold=0.143
Display the resolution at which the FSC curve crosses
this value.
--lowpass="auto" Resolution (in Angstroems) at which to low-pass filter
the final map. A negative value will skip low-pass
filtering. Default ('auto') is to low-pass at
resolution determined from FSC threshold.
--highpass="auto" Resolution (in Angstroems) at which to high-pass
filter the final map. Useful to to attenuate artefacts
such as background ramps (e.g. high-pass at 2/3 of the
box size). A negative value will skip high-pass
filtering (default).
--mask=MyMask.mrc A file containing the mask to be applied to the half-
maps before calculating the FSC. Can be combined with
other masking options.
--mask_radius=0.5 Creates a soft spherical mask. This is the radius of
such mask, in pixels or fraction of the box size. Can
--automask_floodfill_center=0,0,0
Three numbers describing where the center of the
sphere should be placed to initialize flood-filling
approach in auto-masking (in pixels). Useful to mask
parts of the 3D map that are not close to the center.
Default is the middle of the box: 0,0,0. Can be
positive or negative.
--automask_floodfill_fraction=0.1
Use this fraction of the voxels with the highest
densities (0.10 = top 10 percent highest densities) to
initialize the flood-filling algorithm. Typically
follows the correct map density for capsid-like or
hollow-center particles. Note that this is only used
to initialize the smart masking algorithm and has no
influence on the threshold, that is defined
independently (see options below).
--automask_lp=14.0 Resolution (in Angstroems) at which to low-pass filter
the input map for auto-masking purposes. Should
typically be in the range of 10-20 A. However if using
the flood-filling approach a value in the range 5-10 A
might work better. Use a negative number to disable
this filter.
--automask_lp_edge_width=5.0
Width of the cosine-edge low-pass filter to be used
for auto-masking (in Fourier pixels).
--automask_lp_gauss Use a Gaussian instead of cosine-edge low-pass filter
for auto-masking.
--automask_threshold=0.02
Absolute threshold to generate the initial binary
volume in auto-masking. This has precedence over
--automask_fraction and --automask_sigma.
--automask_fraction=0.1
Use this fraction of the voxels with the highest
densities (0.10 = top 10 percent highest densities) to
generate the initial binary volume in auto-masking.
This has precedence over --automask_sigma.
--automask_sigma=1.0 Use this many standard deviation(s) above the mean
density value as threshold for initial binary volume
generation in auto-masking. This is the default
option.
--automask_expand_width=3.0
Width in pixels to expand the binary mask in auto-
masking. Useful to make the mask more generous and
correct for imperfections of the initial binarization.
--automask_soft_width=6.0
Width in pixels to expand the binary mask in auto-
masking with a soft cosine edge. Very important to
prevent artificial correlations induced by the mask.
--automask_optimize Will generate a mask automatically based on the
automask procedure, and then tune it to optimize the
masked FSC corrected by High-Resolution Noise
Substitution (Chen et al, Ultramicroscopy 2013)
--skip_fsc Skip all FSC calculations, only do masking and
filtering stuff.
--mw=1000.0 Molecular mass in kDa of particle or helical segment
comprised within the mask. Needed to calculate volume-
normalized Single-Particle Wiener filter (Sindelar &
Grigorieff, JSB 2012). If not specified, will do
conventional FSC weighting on the final map (Rosenthal
& Henderson, JMB 2003).
--mw_ignore=MW_IGNORE
CAUTION! EXPERIMENTAL OPTION: Molecular mass in kDa
present within the mask that needs to be ignored.
Needed to calculate an adaptation of the volume-
normalized Single-Particle Wiener filter (Sindelar &
Grigorieff, JSB 2012). Only used if --mw is also
specified. May be useful if your particles are
extracted from 2D crystals.
--skip_fsc_weighting Do NOT apply FSC weighting (Rosenthal & Henderson, JMB
2003) to the final map, nor the Single-Particle Wiener
filter (Sindelar & Grigorieff, JSB 2012).
--gaussian Apply a Gaussian (instead of cosine-edge) low-pass
filter to the map, with cutoffs defined by --highpass
and --lowpass.
--cosine Apply a cosine-edge low-pass filter to the final map,
with cutoffs defined by --highpass and --lowpass. This
is the default. The width of the cosine edge can be
specified with the option --edge_width.
--cosine_edge_width=3.0
Width of the cosine-edge filter (in Fourier pixels).
The cutoff frequency will have a weight of 0.5, with
corresponding weighting above and below following the
cosine falloff. If set to zero, becomes a top-hat
filter with weighting of 1.0 at the cutoff frequency.
--tophat Apply a top-hat low-pass filter to the final map.
Equivalent to specifying --cosine with
--cosine_edge_width=0.
--mtf=MTF File containing the detector MTF for sharpening of the
final map.
--auto_bfac=10.0,0.0 Estimate B-factor automatically using information in
this resolution range, in Angstroems (lowres,highres).
This works based on the Guinier plot, which should
ideally be a straight line from ~10.0 A and beyond
(Rosenthal & Henderson, JMB 2003).'If you set lowres
and/or maxres to -1, these values will be calculated
automatically. MTF and FSC weighting information are
employed, if not ommitted.
--adhoc_bfac=ADHOC_BFAC
Apply an ad-hoc B-factor to the map (in Angstroems^2).
Can be positive (smoothing) or negative (sharpening).
--whiten Whiten the final map (that is, makes the radial
Amplitude Spectrum equal to 1.0 across all
frequencies). Should normally be used in combination
with the option --gaussian and --skip_fsc_weighting,
and also --highpass in some cases. If using this
option, B-factor and MTF sharpening become
meaningless.
--whiten_amps Whiten the radial Amplitude Spectrum instead of the
radial Power Spectrum (Amplitudes^2). Whitening
amplitudes seems to give a slightly more peaky (sharp)
map as measured by kurtosis, but the results are
visually almost identical. Only valid if using option
--whiten above.
--randomize_below_fsc=0.8
If provided, will randomize phases for all Fourier
shells beyond the point where the FSC drops below this
value, to assess correlations introduced by the mask
by High-Resolution Noise Substitution (Chen et al,
Ultramicroscopy 2013). Be aware that this procedure
may introduce a 'dip' in the FSC curves at the
corresponding resolution value, but that is normal.
--randomize_beyond=10
If provided, will randomize phases for all Fourier
shells beyond this resolution shell, to assess
correlations introduced by the mask by High-Resolution
Noise Substitution (Chen et al, Ultramicroscopy 2013).
Be aware that this procedure may introduce a 'dip' in
the FSC curves at the corresponding resolution value,
but that is normal.
--random_seed=123456789
Choose the random seed for High-Resolution Noise
Substitution (see option --randomize_below_fsc above)
--flip_x Invert handedness of input volumes along the X axis.
--flip_y Invert handedness of input volumes along the Y axis.
--flip_z Invert handedness of input volumes along the Z axis.
--xml Save FSC curves also in XML format for EMDB
deposition.

par_to_bild.py

Description

Convert a cisTEM parameter file into a .bild file for visualization in Chimera

NOTE: The code in par_to_bild.py is based on RELION's SymList Object and pyem's star2bild script.

Usage

The program takes a .par file as input and produces a .bild file ready to load in Chimera.

par_to_bilt.py --help
usage: par_to_bild.py [-h] [--input INPUT] [--output OUTPUT] [--tomo] [--tilt_max TILT_MAX] [--healpix_order HEALPIX_ORDER] [--apix APIX] [--boxsize BOXSIZE] [--height_scale HEIGHT_SCALE] [--width_scale WIDTH_SCALE] [--occ_cutoff OCC_CUTOFF] [--sym SYM]
optional arguments:
-h, --help show this help message and exit
--input INPUT Input alignment file
--output OUTPUT Output .bild file
--tomo Refinement from tomogram tilt images
--tilt_max TILT_MAX max tilt angel to use from tomo data
--healpix_order HEALPIX_ORDER
Healpix order (Relion convention)
--apix APIX Angstroms per pixel
--boxsize BOXSIZE Box size in pixels
--height_scale HEIGHT_SCALE
--width_scale WIDTH_SCALE
--occ_cutoff OCC_CUTOFF
Only use the particles with occupancy above this threshold
--sym SYM Symmetry group to impose on distribution (Relion conventions)

About

Post-processing and generation of FSC curves

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages