Bsoft 2.1.4
Bernard's software package
mg_pick.h File Reference

Header file for single particle picking functions. More...

#include "mg_processing.h"
#include "rwimg.h"
#include "marker.h"

Functions

Bparticleparticles_from_peaks (Bimage *pcc, long bin, double excl_dist, double part_ori, double &fommin, double fommax=1e30, long maxnum=1000000, double pix_min=2, double pix_max=10)
 Finds the peaks in a cross-correlation map corresponding to particles. More...
 
Bparticleparticles_pick_cc (Bimage *p, Bimage *ptemp, Bimage *pmask, double hires, double lores, double fommin, double fommax, double excl_dist, long bin=1)
 Picks particles using cross-correlation. More...
 
Bparticleparticles_pick_var (Bimage *p, long average_kernel, long var_kernel, double nsig, double part_ori, double excl_dist, long bin)
 Picks particles in variance map. More...
 
Bparticleparticles_pick_var (Bimage *p, long average_kernel, long var_kernel, double cutmin, double cutmax, double part_ori, double excl_dist, long bin)
 
Bparticleparticles_pick_cc (Bstring &filename, long img_num, Bimage *ptemp, Bimage *pmask, double hires, double lores, double fommin, double fommax, double excl_dist, long bin=1)
 Picks particles using cross-correlation. More...
 
Bparticleparticles_pick_var (Bstring &filename, long img_num, long average_kernel, long var_kernel, double nsig, double part_ori, double excl_dist, long bin)
 Picks particles in variance map. More...
 
double project_pick_particles (Bproject *project, Bimage *ptemp, Bimage *pmask, double hires, double lores, double fommin, double fommax, double excl_dist, long bin)
 Picks particles using cross-correlation. More...
 
double project_pick_particles (Bproject *project, long average_kernel, long var_kernel, double nsig, double part_ori, double excl_dist, long bin)
 Picks particles in variance map. More...
 
long project_pick_particles (Bproject *project, double din, double dout, int avg_kernel, double ainc, int flags, int contrast)
 Locates particles using a fore/background difference measure. More...
 
long project_pick_background (Bproject *project, long number, long average_kernel, long var_kernel, double excl_dist)
 Picks background areas not overlapping existing particles. More...
 
long project_pick_sym_axis (Bproject *project, Bsymmetry &sym, int sym_axis, double axis_dist)
 Picks subregions in 3D particles on the given symmetry axis. More...
 
double project_extract_orient_particles (Bproject *project, Bstring &tempfile, Bsymmetry &sym, double hires, double lores, long bin)
 Picks particles using cross-correlation. More...
 

Detailed Description

Header file for single particle picking functions.

Author
Bernard Heymann
Date
Created: 20000505
Modified: 20190912

Function Documentation

◆ particles_from_peaks()

Bparticle * particles_from_peaks ( Bimage pcc,
long  bin,
double  excl_dist,
double  part_ori,
double &  fommin,
double  fommax,
long  maxnum,
double  pix_min,
double  pix_max 
)

Finds the peaks in a cross-correlation map corresponding to particles.

Parameters
*pccpeak map (after binning).
binbinning to speed up calculations.
excl_distdistance between peaks.
part_oriparticle origin.
fomminminimum threshold to accept peaks.
fommaxmaximum threshold to accept peaks.
maxnummaximum number of peaks to pick.
pix_minminimum peak width.
pix_maxmaximum peak width.
Returns
Bparticle* list of particles.
The map is searched in increments of the particle radius to identify
peaks above the threshold and within a box the size of the
particle radius. The identified peaks are further examined to eliminate 
ones that are too close to a higher scoring peak. The acceptable distance
between peaks is set to 1.8 times the particle radius.

◆ particles_pick_cc() [1/2]

Bparticle * particles_pick_cc ( Bimage p,
Bimage ptemp,
Bimage pmask,
double  hires,
double  lores,
double  fommin,
double  fommax,
double  excl_dist,
long  bin 
)

Picks particles using cross-correlation.

Parameters
*pimage to pick from.
*ptemptemplate image.
*pmaskfrequency space mask.
hireshigh resolution limit.
loreslow resolution limit.
fomminminimum FOM cutoff.
fommaxmaximum FOM cutoff.
excl_distminimum distance between particles.
binlevel of image binning.
Returns
Bparticle* list of particles.
A template is cross-correlated with the input image including
bandpass filtering to target the size of the particle.

◆ particles_pick_cc() [2/2]

Bparticle * particles_pick_cc ( Bstring filename,
long  img_num,
Bimage ptemp,
Bimage pmask,
double  hires,
double  lores,
double  fommin,
double  fommax,
double  excl_dist,
long  bin 
)

Picks particles using cross-correlation.

Parameters
&filenameimage to pick from.
img_numsub-image number.
*ptemptemplate image.
*pmaskfrequency space mask.
hireshigh resolution limit.
loreslow resolution limit.
fomminminimum FOM cutoff.
fommaxmaximum FOM cutoff.
excl_distminimum distance between particles.
binlevel of image binning.
Returns
Bparticle* list of particles.
A template is cross-correlated with the input image including
bandpass filtering to target the size of the particle.
The template must have the correct pixel size.

◆ particles_pick_var() [1/3]

Bparticle * particles_pick_var ( Bimage p,
long  average_kernel,
long  var_kernel,
double  cutmin,
double  cutmax,
double  part_ori,
double  excl_dist,
long  bin 
)

◆ particles_pick_var() [2/3]

Bparticle * particles_pick_var ( Bimage p,
long  avg_kernel,
long  var_kernel,
double  nsig,
double  part_ori,
double  excl_dist,
long  bin 
)

Picks particles in variance map.

Parameters
*pimage to pick from.
avg_kernelaveraging kernel size.
var_kernelvariance kernel size.
nsigmultiple of sigma above variance average to accept peaks.
part_oriparticle origin.
excl_distminimum distance between particles.
binlevel of image binning.
Returns
Bparticle* list of particles.
A copy of the micrograph is filtered with an averaging kernel
and a variance map calculated. The variance map is then used to
find high variance peaks as candidate locations for particles.

◆ particles_pick_var() [3/3]

Bparticle * particles_pick_var ( Bstring filename,
long  img_num,
long  avg_kernel,
long  var_kernel,
double  nsig,
double  part_ori,
double  excl_dist,
long  bin 
)

Picks particles in variance map.

Parameters
&filenameimage to pick from.
img_numsub-image number.
avg_kernelaveraging kernel size.
var_kernelvariance kernel size.
nsigmultiple of sigma above variance average to accept peaks.
part_oriparticle origin.
excl_distminimum distance between particles.
binlevel of image binning.
Returns
Bparticle* list of particles.
A copy of the micrograph is filtered with an averaging kernel
and a variance map calculated. The variance map is then used to
find high variance peaks as candidate locations for particles.

◆ project_extract_orient_particles()

double project_extract_orient_particles ( Bproject project,
Bstring tempfile,
Bsymmetry sym,
double  hires,
double  lores,
long  bin 
)

Picks particles using cross-correlation.

Parameters
*projectproject parameter structure.
&tempfiletemplate image.
sympoint group symmetry.
hireshigh resolution limit.
loreslow resolution limit.
binlevel of image binning.
Returns
double minimum threshold used to accept peaks.
Each micrograph is cross-correlated with the template image including
bandpass filtering and frequency space masking.

◆ project_pick_background()

long project_pick_background ( Bproject project,
long  number,
long  avg_kernel,
long  var_kernel,
double  excl_dist 
)

Picks background areas not overlapping existing particles.

Parameters
*projectproject parameter structure.
numbermaximum number of background images to pick.
avg_kernelaveraging kernel to smooth the image.
var_kernelkernel to calculate a local variance image.
excl_distexclusion distance between areas.
Returns
long number of background areas.

◆ project_pick_particles() [1/3]

double project_pick_particles ( Bproject project,
Bimage ptemp,
Bimage pmask,
double  hires,
double  lores,
double  fommin,
double  fommax,
double  excl_dist,
long  bin 
)

Picks particles using cross-correlation.

Parameters
*projectproject parameter structure.
*ptemptemplate image.
*pmaskfrequency space mask.
hireshigh resolution limit.
loreslow resolution limit.
fomminminimum FOM cutoff.
fommaxmaximum FOM cutoff.
excl_distminimum distance between particles.
binlevel of image binning.
Returns
double minimum threshold used to accept peaks.
Each micrograph is cross-correlated with the template image including
bandpass filtering and frequency space masking.

◆ project_pick_particles() [2/3]

long project_pick_particles ( Bproject project,
double  din,
double  dout,
int  avg_kernel,
double  ainc,
int  flags,
int  contrast 
)

Locates particles using a fore/background difference measure.

Parameters
*projectproject parameter structure.
dininner diameter corresponding to particle edge.
doutouter diameter corresponding to background.
avg_kernelaveraging kernle to smooth difference map.
aincangular increment.
flagsflags: bit 1 = filter extremes.
contrastcontrast direction (foreground: white=1, black=0).
Returns
long number of particles.
Two marker sets are generated at the indicated diameters.
At each pixel, the marker sets are used to calculate a difference
between the foreground and background as an estimate of the
presence of a particle.

◆ project_pick_particles() [3/3]

double project_pick_particles ( Bproject project,
long  avg_kernel,
long  var_kernel,
double  nsig,
double  part_ori,
double  excl_dist,
long  bin 
)

Picks particles in variance map.

Parameters
*projectproject parameter structure.
avg_kernelaveraging kernel size.
var_kernelvariance kernel size.
nsigmultiple of sigma above variance average to accept peaks.
part_oriparticle origin.
excl_distminimum distance between particles.
binlevel of image binning.
Returns
double minimum threshold used to accept peaks.
A copy of the micrograph is filtered with an averaging kernel
and a variance map calculated. The variance map is then used to
find high variance peaks as candidate locations for particles.

◆ project_pick_sym_axis()

long project_pick_sym_axis ( Bproject project,
Bsymmetry sym,
int  sym_axis,
double  axis_dist 
)

Picks subregions in 3D particles on the given symmetry axis.

Parameters
*projectparameter structure with all parameters.
sympoint group symmetry.
sym_axissymmetry axis to pick subregions.
axis_distdistance along symmetry axis.
Returns
long number of new particles.
The existing particles are replaced by the new particles.