| Bsoft 2.0.5 Bernard's software package

Classes | Macros | Enumerations | Functions
mg_processing.h File Reference

Header file for micrograph processing. More...

`#include "ctf.h"`
`#include "symmetry.h"`
`#include "marker.h"`
`#include "View.h"`
`#include "Euler.h"`
`#include "Bstring.h"`

Go to the source code of this file.

## Classes
struct | Bframe
struct | Bparticle
struct | Bfilnode
struct | Bfilament
struct | Bbadarea
struct | Bstrucfac
struct | Blayerline
struct | Bmicrograph
struct | Bfield
struct | Breconstruction
struct | Bproject

## Macros
#define | NFOM 10
#define | MODE_PPS 0
#define | MODE_SCC 1
#define | MODE_CCC 2
#define | MODE 3
#define | FULL_ASU 8
#define | MULTI_FILE 16
#define | APPLY_CTF 32
#define | PART_LOG 64
#define | WRITE_PPX 128
#define | CHECK_PPX 256
#define | _ProjectParamStructs_

## Enumerations
enum | FOMType { NoFOM, FOM, FOM_CC, FOM_CV, FOM_SNR, FOM_CC_AVG, FOM_CC_STD, FOM_HAND_A, FOM_HAND_B, FOM_PFT_CC, FOM_PFT_PRJ, FOM_PFT_CMP, FOM_RFACTORAB, COVERAGE, FOM1, FOM2, FOM3, FOM4, FOM5, FOM6, FOM7, FOM8, FOM9 }

## Functions
Bproject * | project_init ()
| Initializes a micrograph processing project parameter structure. More...
Bproject * | project_create (int nmg, int nrec)
| Creates a micrograph processing project parameter structure. More...
int | project_equal_mg_part_files (Bproject *project)
| Sets micrograph and particle files to be the same. More...
Bfield * | field_add (Bfield **field, Bstring &field_id)
| Adds a field-of-view parameter structure to a linked list. More...
Bfield * | field_find_id (Bfield *field, Bstring &field_id)
| Finds a field-of-view based on its identifier. More...
Bmicrograph * | field_find_micrograph (Bfield *field, int mg_select, int mg_index, double mg_ang)
| Returns a pointer to a specific micrograph in a field-of-view structure based on a unique characteristic of that micrograph. More...
Bmicrograph * | field_find_micrograph_n (Bfield *field, int n)
| Returns a pointer to the nth micrograph in a field-of-view structure. More...
Bmicrograph * | field_find_micrograph_by_focus (Bfield *field, int focus_opt, int index)
| Returns a pointer to the micrograph in a field-of-view structure based on the focus level and iteration index. More...
Bmicrograph * | field_find_micrograph_by_rotang (Bfield *field, double rotang)
| Returns a pointer to the micrograph in a field-of-view structure with the specified in-plane rotational angle. More...
Bmicrograph * | field_find_micrograph_by_tiltang (Bfield *field, double tiltang)
| Returns a pointer to the micrograph in a field-of-view structure with the specified tilt angle. More...
Bmicrograph * | field_find_zero_tilt_mg (Bfield *field)
| Finds the micrograph closest to a zero degree tilt in a series. More...
Bmicrograph * | field_find_low_tilt_mg_with_markers (Bfield *field)
| Finds the micrograph closest to a zero degree tilt in a series with markers. More...
Bmicrograph * | micrograph_add (Bmicrograph **mg, Bstring &mg_id)
| Adds a micrograph parameter structure to a linked list. More...
Bframe * | frame_add (Bframe **frame, int pid)
| Adds a movie frame parameter structure to a linked list. More...
Bparticle * | particle_add (Bparticle **part, int pid)
| Adds a particle parameter structure to a linked list. More...
int | mg_part_links (Bmicrograph *mg)
| Sets the links from particles to micrographs. More...
int | rec_part_links (Breconstruction *rec)
| Sets the links from particles to reconstructions. More...
Bparticle * | part_find_first (Bproject *project)
| Finds the first particle in a project. More...
Bfilament * | filament_add (Bfilament **fil, int pid)
| Adds a filament parameter structure to a linked list. More...
Bfilnode * | filament_node_add (Bfilnode **fnode, int pid)
| Adds a filament node parameter structure to a linked list. More...
double | filament_length (Bfilament *fil)
| Calculates the length of a filament. More...
Breconstruction * | reconstruction_add (Breconstruction **rec, Bstring &rec_id)
| Adds a reconstruction parameter structure to a linked list. More...
long | project_count_fields (Bproject *project)
| Counts all the fields in the project structure. More...
long | project_count_micrographs (Bproject *project)
| Counts all the micrographs in the project structure. More...
long | project_count_mg_selected (Bproject *project)
| Counts all the selected micrographs in the project structure. More...
long | project_count_reconstructions (Bproject *project)
| Counts all the reconstructions in the project structure. More...
long | project_count_rec_selected (Bproject *project)
| Counts all the selected reconstructions in the project structure. More...
long | project_count_mg_particles (Bproject *project)
| Counts all the particles in the project structure. More...
long | project_count_mg_part_selected (Bproject *project)
| Counts the number of particles in a project. More...
long | project_count_mg_part_selected (Bproject *project, int num_select)
| Counts the number of particles in a project. More...
long | project_count_mg_groups (Bproject *project)
| Counts the number of groups of particles in the project structure. More...
long | project_count_rec_particles (Bproject *project)
| Counts all the particles in the project structure. More...
long | project_count_rec_part_selected (Bproject *project)
| Counts all the particles in the project structure. More...
long | project_count_rec_groups (Bproject *project)
| Counts all the particles in the project structure. More...
long | project_count_mg_filaments (Bproject *project)
| Counts the number of filaments in a project. More...
long | project_count_mg_filament_nodes (Bproject *project)
| Counts the number of filament nodes in a project. More...
long | project_count_rec_filaments (Bproject *project)
| Counts the number of filaments in a project. More...
long | project_count_rec_filament_nodes (Bproject *project)
| Counts the number of filaments in a project. More...
long | field_count (Bfield *field)
| Counts the number of fields-of-view in a linked list. More...
long | field_count_micrographs (Bfield *field)
| Counts all the micrographs in the field-of-view structure. More...
long | field_count_mg_selected (Bfield *field)
| Counts all the micrographs in the field-of-view structure. More...
long | field_count_particles (Bfield *field)
| Counts all the particles in the field-of-view structure. More...
long | micrograph_count (Bmicrograph *mg)
| Counts the number of micrographs in a linked list. More...
long | micrograph_count_particles (Bmicrograph *mg)
| Counts all the particles in the micrograph structure. More...
long | particle_count (Bparticle *part)
| Counts the number of particles in a linked list. More...
long | particle_count_selected (Bparticle *part)
| Counts the number of particles in a linked list. More...
long | filament_count (Bfilament *fil)
| Counts the number of filaments in a linked list of filaments. More...
long | filament_node_count (Bfilament *fil)
| Counts the number of filament nodes in a linked list of filaments. More...
int | project_kill (Bproject *project)
| Frees a whole project. More...
int | field_kill (Bfield *field)
| Frees a whole field-of-view structure. More...
int | micrograph_kill (Bmicrograph *mg)
| Frees a whole micrograph parameter structure. More...
int | particle_kill (Bparticle *part)
| Frees a list of particles. More...
int | filament_kill (Bfilament *fil)
| Frees a list of filaments. More...
int | reconstruction_kill (Breconstruction *rec)
| Frees a whole reconstruction parameter structure. More...
Bparticle * | particle_copy (Bparticle **partlist, Bparticle *part)
| Adds one particle onto a list of particle parameters. More...
Bparticle * | particle_copy (Bparticle *partlist)
| Copies a list of particle parameters to a new list. More...
Bmicrograph * | micrograph_copy (Bmicrograph *mg)
| Copies a micrograph. More...
int | project_update (Bproject *project, Bproject *proj_new, int fom_index)
| Updates an existing project with new information. More...
int | micrograph_update (Bmicrograph *mg, Bmicrograph *nu_mg, int fom_index, int flags)
| Updates an existing micrograph with new information. More...
int | reconstruction_update (Breconstruction *rec, Breconstruction *nu_rec, int fom_index, int flags)
| Updates an existing reconstruction with new information. More...
int | particle_update (Bparticle **pnt_part, Bparticle *new_part, int fom_index)
| Updates an existing particle with new information. More...
int | project_merge_part_parameters (Bproject *project, Bproject *partproject)
| Puts particle parameters from one project into another. More...
long | project_set_part_links (Bproject *project)
| Sets the links from particles back to the micrographs and reconstructions. More...
long | micrograph_set_part_links (Bmicrograph *mg)
| Sets the links from particles back to the micrograph. More...
long | reconstruction_set_part_links (Breconstruction *rec)
| Sets the links from particles back to the reconstruction. More...
long | project_divide (Bproject *project, long n)
| Divides a project into a number of micrograph subsets. More...
Bmicrograph ** | project_micrograph_array (Bproject *project, long &nmg)
| Sets up an array of selected micrograph pointers. More...
Bparticle ** | project_mg_particle_array (Bproject *project, int part_select, long &npart)
| Sets up an array of selected particle pointers. More...
Bparticle ** | project_rec_particle_array (Bproject *project, int part_select, long &npart)
| Sets up an array of selected particle pointers. More...
Bparticle ** | particle_array (Bparticle *partlist, int part_select, long &npart)
| Sets up an array of selected particle pointers. More...
int | project_revert_filenames (Bproject *project, Bproject *project_old, int flag)
| Reverts file names to what it was in an old project. More...
int | project_set_field_id (Bproject *project, int nseries, Bstring &field_id)
| Sets the field id's according to a regular series. More...
long | project_show_hierarchy (Bproject *project)
| Shows the project hierarchy. More...
long | project_maximum_selection (Bproject *project)
| Finds the maximum slection number for a project. More...
long | project_show_selection_numbers (Bproject *project)
| Shows the selection numbers for the particles in a project. More...
long | project_show_selected (Bproject *project)
| Shows the selected particles in a project. More...
long | project_show_class_averages (Bproject *project)
| Shows the class averages in a project. More...
long | project_show_selected_parameters (Bproject *project, int show)
| Shows the selected particle parameters in a project. More...
long | project_show_parameter (Bproject *project, Bstring &tag)
| Shows the particle parameter indicated by the tag in a project. More...
long | project_show_fom_histogram (Bproject *project)
| Shows a histogram of the FOM values. More...
long | project_show_mag_histogram (Bproject *project, int bins, double increment)
| Shows the histogram for magnification values for selected particles. More...
long | project_dump (Bproject *project, Bstring &filename)
| Dumps particle info in the project hierarchy. More...
int | project_select_field (Bproject *project, Bstring &field_id)
| Selects a field from the project and deletes the rest. More...
int | project_select_micrograph (Bproject *project, Bstring &mg_id)
| Selects a micrograph from the project and deletes the rest. More...
int | project_set_micrograph_path (Bproject *project, Bstring &path)
| Sets the path to micrograph files for all the micrographs. More...
int | project_set_frame_path (Bproject *project, Bstring &path)
| Sets the path to micrograph frames files for all the micrographs. More...
int | project_set_powerspectrum_path (Bproject *project, Bstring &path)
| Sets the path to powerspectrum files for all the micrographs. More...
int | project_set_particle_path (Bproject *project, Bstring &path)
| Sets the path to particle files for all the micrographs. More...
int | project_set_filament_path (Bproject *project, Bstring &path)
| Sets the path to filament files for all the micrographs. More...
int | project_set_magnification (Bproject *project, double mag)
| Sets the magnification for all the micrographs. More...
int | project_set_scan_sampling (Bproject *project, double sampling)
| Sets the scan sampling for all the micrographs. More...
int | project_set_pixel_size (Bproject *project, double pixel_size)
| Sets the pixel size for all the micrographs. More...
int | project_set_tilt (Bproject *project, double tilt_axis, double tilt_angle)
| Sets the tilt parameters for all the micrographs. More...
int | project_sort_by_tilt (Bproject *project)
| Sorts the micrographs in each field by tilt angle. More...
int | project_set_dose (Bproject *project, double dose)
| Sets the electron dose of all the micrographs. More...
int | project_set_micrograph_origins (Bproject *project, Vector3< float > origin)
| Sets micrograph origins to the given origin. More...
int | project_add_origins_to_coords (Bproject *project)
| Adds the particle origins to the micrograph coordinates. More...
int | project_flip_origins (Bproject *project, int flip)
| Flip origin coordinates. More...
long | project_renumber_particles (Bproject *project)
| Renumbers particles. More...
int | project_set_particle_box_size (Bproject *project, Vector3< long > box_size)
| Sets particle box size to the given value. More...
int | project_set_particle_box_size (Bproject *project, long box_size)
| Sets particle box size to the given value. More...
int | project_set_particle_origins (Bproject *project, Vector3< double > origin)
| Sets particle origins to given values. More...
int | project_set_particle_asu_views (Bproject *project, Bstring &symmetry_asu)
| Sets particle views within the asymmetric unit. More...
int | project_set_particle_asu_views (Bproject *project, Bsymmetry *sym)
int | project_rotate_particle_views (Bproject *project, View view)
| Rotates particle views with respect to a reference view. More...
int | project_apply_map_magnifications (Bproject *project, int mag_num, float *mag)
| Change particle pixel sizes for particles based on map magnifications. More...
View * | views_from_project (Bproject *project, int selection)
| Retrieves the particle views from a project. More...
Bstring | get_fom_tag (FOMType fom_type)
| Returns the tag associated with a particular FOM. More...
int | get_fom_tag (FOMType fom_type, char *tag)
| Returns the tag associated with a particular FOM. More...

## Detailed Description

Header file for micrograph processing.

Author
  Bernard Heymann

Date
  Created: 20000426
  Modified: 20191015

Definition in file mg_processing.h.

## Macro Definition Documentation

## ◆ _ProjectParamStructs_

#define _ProjectParamStructs_

Definition at line 348 of file mg_processing.h.

## ◆ APPLY_CTF

#define APPLY_CTF 32

Definition at line 24 of file mg_processing.h.

## ◆ CHECK_PPX

#define CHECK_PPX 256

Definition at line 27 of file mg_processing.h.

## ◆ FULL_ASU

#define FULL_ASU 8

Definition at line 22 of file mg_processing.h.

## ◆ MODE

#define MODE 3

Definition at line 21 of file mg_processing.h.

## ◆ MODE_CCC

#define MODE_CCC 2

Definition at line 20 of file mg_processing.h.

## ◆ MODE_PPS

#define MODE_PPS 0

Definition at line 18 of file mg_processing.h.

## ◆ MODE_SCC

#define MODE_SCC 1

Definition at line 19 of file mg_processing.h.

## ◆ MULTI_FILE

#define MULTI_FILE 16

Definition at line 23 of file mg_processing.h.

## ◆ NFOM

#define NFOM 10

Definition at line 16 of file mg_processing.h.

## ◆ PART_LOG

#define PART_LOG 64

Definition at line 25 of file mg_processing.h.

## ◆ WRITE_PPX

#define WRITE_PPX 128

Definition at line 26 of file mg_processing.h.

## Enumeration Type Documentation

## ◆ FOMType

enum FOMType

Enumerator
NoFOM |
FOM |
FOM_CC |
FOM_CV |
FOM_SNR |
FOM_CC_AVG |
FOM_CC_STD |
FOM_HAND_A |
FOM_HAND_B |
FOM_PFT_CC |
FOM_PFT_PRJ |
FOM_PFT_CMP |
FOM_RFACTORAB |
COVERAGE |
FOM1 |
FOM2 |
FOM3 |
FOM4 |
FOM5 |
FOM6 |
FOM7 |
FOM8 |
FOM9 |

Definition at line 38 of file mg_processing.h.

## Function Documentation

## ◆ field_add()

Bfield* field_add | ( | Bfield ** | field,
|  | Bstring & | field_id
| ) |  |

Adds a field-of-view parameter structure to a linked list.

Parameters

  **field | pointer to any field-of-view in the list.
  field_id | field identifier.

Returns
  Bfield* new field-of-view.

      The function allocates memory for a new field-of-view structure.
      If the content of the pointer is null, the new structure is
      the first in the list. Otherwise, the end of the list is found
      and the new structure added to it.

Definition at line 120 of file mg_processing.cpp.

## ◆ field_count()

long field_count | ( | Bfield * | field | ) |

Counts the number of fields-of-view in a linked list.

    The function counts fields-of-view in the list from the given pointer,
    and does not count fields-of-view prior to this one.

Parameters

  *field | pointer to any field-of-view in the list.

Returns
  long number of fields-of-view.

Definition at line 1053 of file mg_processing.cpp.

## ◆ field_count_mg_selected()

long field_count_mg_selected | ( | Bfield * | field | ) |

Counts all the micrographs in the field-of-view structure.

Parameters

  *field | field-of-view parameter structure.

Returns
  long number of micrographs of field.

Definition at line 1082 of file mg_processing.cpp.

## ◆ field_count_micrographs()

long field_count_micrographs | ( | Bfield * | field | ) |

Counts all the micrographs in the field-of-view structure.

Parameters

  *field | field-of-view parameter structure.

Returns
  long number of micrographs of field.

Definition at line 1067 of file mg_processing.cpp.

## ◆ field_count_particles()

long field_count_particles | ( | Bfield * | field | ) |

Counts all the particles in the field-of-view structure.

Parameters

  *field | field-of-view parameter structure.

Returns
  long number of particles in field.

Definition at line 1097 of file mg_processing.cpp.

## ◆ field_find_id()

Bfield* field_find_id | ( | Bfield * | field,
|  | Bstring & | field_id
| ) |  |

Finds a field-of-view based on its identifier.

Parameters

  *field | pointer to first field-of-view in the list.
  &field_id | field-of-view identifier.

Returns
  Bfield* field-of-view or NULL if not found.

      The function searches a linked list for the field-of-view
      identifier and returns a pointer to that structure or NULL if
      it cannot find it.

Definition at line 152 of file mg_processing.cpp.

## ◆ field_find_low_tilt_mg_with_markers()

Bmicrograph* field_find_low_tilt_mg_with_markers | ( | Bfield * | field | ) |

Finds the micrograph closest to a zero degree tilt in a series with markers.

Parameters

  *field | field-of-view.

Returns
  Bmicrograph* micrograph closest to zero degrees tilt with markers.

      The first micrograph with the smallest deviation from zero degree
      tilt with defined markers is returned.

Definition at line 431 of file mg_processing.cpp.

## ◆ field_find_micrograph()

Bmicrograph* field_find_micrograph | ( | Bfield * | field,
|  | int | mg_select,
|  | int | mg_index,
|  | double | mg_ang
| ) |  |

Returns a pointer to a specific micrograph in a field-of-view structure based on a unique characteristic of that micrograph.

Author
  David Belnap

Parameters

  *field | field-of-view.
  mg_select | selection criterion.
  mg_index | Reference by its index in field (for mg_ref_select=0|1|2).
  mg_ang | Reference by micrograph rotation or tilt angle (for mg_ref_select=3|4).

Returns
  Bmicrograph* Pointer to the selected micrograph

      Calls functions that find a micrograph by index number within the
      field, by focus level, in-plane rotational angle, tilt angle, or
      tilt angle plus focus level or index number:

      criterion                        mg_select   mg_index  mg_ang
      --------------------------------------------------------------
      nth closest-to-focus                 0           n        -
      nth farthest-from-focus              1           n        -
      index number in series (1...n)       2         index      -
      in-plane rotation angle              3           -      angle
      tilt angle                           4           -      angle

Definition at line 183 of file mg_processing.cpp.

## ◆ field_find_micrograph_by_focus()

Bmicrograph* field_find_micrograph_by_focus | ( | Bfield * | field,
|  | int | focus_opt,
|  | int | iselect
| ) |  |

Returns a pointer to the micrograph in a field-of-view structure based on the focus level and iteration index.

Author
  David Belnap and Bernard Heymann

Parameters

  *field | a field-of-view structure
  focus_opt | 0=closest-to-focus, 1=farthest-from-focus
  iselect | 0,1,...,n; select (index+1)th-closest or (index+1)th-farthest focus

Returns
  Bmicrograph* mg Micrograph at specified focus level Loops through micrographs in the field-of-view. Orders focus values in an array from smallest to largest. Selects the (index+1)th closest-to-focus or farthest-from-focus value. (focus_opt determines whether the closest or farthest value is selected.) Loops through micrographs again to find the micrograph with the selected value. Tests if there are zero or multiple micrographs with the same focus value and exits program if so. Otherwise, the pointer to the micrograph with the specified focus level is returned. An example, if index=1 and focus_opt=0, a pointer to the 2nd closest-to-focus micrograph will be returned. To get the closest-to-focus or farthest-from-focus value, the index must be zero.

Definition at line 261 of file mg_processing.cpp.

## ◆ field_find_micrograph_by_rotang()

Bmicrograph* field_find_micrograph_by_rotang | ( | Bfield * | field,
|  | double | rotang
| ) |  |

Returns a pointer to the micrograph in a field-of-view structure with the specified in-plane rotational angle.

Author
  David Belnap and Bernard Heymann

Parameters

  *field | a field-of-view
  rotang | in-plane rotational angle of micrograph (in radians)

Returns
  Bmicrograph* mg Pointer to micrograph with rotang

      Loop through all micrographs in the field-of-view to find
      micrograph with the specified angle.  Test if there are zero or
      multiple micrographs with the same rotational angle, halt program
      if true.  If not true, then return pointer to the micrograph with
      the specified angle.

Definition at line 318 of file mg_processing.cpp.

## ◆ field_find_micrograph_by_tiltang()

Bmicrograph* field_find_micrograph_by_tiltang | ( | Bfield * | field,
|  | double | tiltang
| ) |  |

Returns a pointer to the micrograph in a field-of-view structure with the specified tilt angle.

Author
  David Belnap

Parameters

  *field | a field-of-view
  tiltang | tilt angle of micrograph (in radians)

Returns
  Bmicrograph* micrograph with rotang

      Loop through all micrographs in the field-of-view to find
      micrograph with the specified tilt angle.  Test if there are zero
      or multiple micrographs with the same angle, halt program if true.
      If not true, then return pointer to the micrograph with the
      specified angle.

Definition at line 362 of file mg_processing.cpp.

## ◆ field_find_micrograph_n()

Bmicrograph* field_find_micrograph_n | ( | Bfield * | field,
|  | int | n
| ) |  |

Returns a pointer to the nth micrograph in a field-of-view structure.

Author
  David Belnap and Bernard Heymann

Parameters

  *field | a field-of-view
  n | nth micrograph index (first index number = 1)

Returns
  Bmicrograph* Pointer to the nth micrograph

      Loop through micrographs in the field-of-view until the nth
      micrograph is reached.  Return pointer to that micrograph.
      Tests whether n is within the appropriate range.

Definition at line 223 of file mg_processing.cpp.

## ◆ field_find_zero_tilt_mg()

Bmicrograph* field_find_zero_tilt_mg | ( | Bfield * | field | ) |

Finds the micrograph closest to a zero degree tilt in a series.

Parameters

  *field | field-of-view.

Returns
  Bmicrograph* micrograph closest to zero degrees tilt.

      The first micrograph with the smallest deviation from zero degree
      tilt is returned.

Definition at line 400 of file mg_processing.cpp.

## ◆ field_kill()

int field_kill | ( | Bfield * | field | ) |

Frees a whole field-of-view structure.

    Frees all the structures down the hierarchy.

Parameters

  *field | field-of-view parameter structure.

Returns
  int 0.

Definition at line 1261 of file mg_processing.cpp.

## ◆ filament_add()

Bfilament* filament_add | ( | Bfilament ** | fil,
|  | int | pid
| ) |  |

Adds a filament parameter structure to a linked list.

Parameters

  **fil | pointer to any filament in the list.
  pid | filament number in file (starts at 1).

Returns
  Bfilament* new filament.

      The function allocates memory for a new filament structure.
      If the content of the pointer is null, the new structure is
      the first in the list. Otherwise, the end of the list is found
      and the new structure added to it.

Definition at line 625 of file mg_processing.cpp.

## ◆ filament_count()

long filament_count | ( | Bfilament * | fil | ) |

Counts the number of filaments in a linked list of filaments.

    The function counts filaments in the list from the given pointer,
    and does not count filaments prior to this one.

Parameters

  *fil | pointer to any filament in the list.

Returns
  long number of filaments.

Definition at line 1187 of file mg_processing.cpp.

## ◆ filament_kill()

int filament_kill | ( | Bfilament * | fil | ) |

Frees a list of filaments.

    Frees all the structures down the hierarchy.

Parameters

  *fil | filament parameter structure.

Returns
  int 0.

Definition at line 1347 of file mg_processing.cpp.

## ◆ filament_length()

double filament_length | ( | Bfilament * | fil | ) |

Calculates the length of a filament.

Parameters

  *fil | pointer to a filament.

Returns
  double length in coordinate units.

      The length is defined as the sum of the link lengths connecting the nodes.

Definition at line 681 of file mg_processing.cpp.

## ◆ filament_node_add()

Bfilnode* filament_node_add | ( | Bfilnode ** | fnode,
|  | int | pid
| ) |  |

Adds a filament node parameter structure to a linked list.

Parameters

  **fnode | pointer to any filament node in the list.
  pid | filament node number in file (starts at 1).

Returns
  Bfilnode* new filament node.

      The function allocates memory for a new filament node structure.
      If the content of the pointer is null, the new structure is
      the first in the list. Otherwise, the end of the list is found
      and the new structure added to it.

Definition at line 655 of file mg_processing.cpp.

## ◆ filament_node_count()

long filament_node_count | ( | Bfilament * | fil | ) |

Counts the number of filament nodes in a linked list of filaments.

    The function counts filament nodes in the list from the given pointer,
    and does not count filaments prior to this one.

Parameters

  *fil | pointer to any filament in the list.

Returns
  long number of filament nodes.

Definition at line 1205 of file mg_processing.cpp.

## ◆ frame_add()

Bframe* frame_add | ( | Bframe ** | frame,
|  | int | pid
| ) |  |

Adds a movie frame parameter structure to a linked list.

Parameters

  **frame | pointer to any frame in the list.
  pid | particle number in file (starts at 1).

Returns
  Bframe* new frame.

      The function allocates memory for a new frame structure.
      If the content of the pointer is null, the new structure is
      the first in the list. Otherwise, the end of the list is found
      and the new structure added to it.

Definition at line 495 of file mg_processing.cpp.

## ◆ get_fom_tag() [1/2]

Bstring get_fom_tag | ( | FOMType | fom_type | ) |

Returns the tag associated with a particular FOM.

Parameters

  fom_type | type of FOM.

Returns
  Bstring FOM tag.

Definition at line 3971 of file mg_processing.cpp.

## ◆ get_fom_tag() [2/2]

int get_fom_tag | ( | FOMType | fom_type,
|  | char * | tag
| ) |  |

Returns the tag associated with a particular FOM.

Parameters

  fom_type | type of FOM.
  *tag | FOM tag.

Returns
  int string length of the new comment.

Definition at line 4009 of file mg_processing.cpp.

## ◆ mg_part_links()

int mg_part_links | ( | Bmicrograph * | mg | ) |

Sets the links from particles to micrographs.

Parameters

  *mg | pointer to micrograph.

Returns
  int 0.

Definition at line 555 of file mg_processing.cpp.

## ◆ micrograph_add()

Bmicrograph* micrograph_add | ( | Bmicrograph ** | mg,
|  | Bstring & | mg_id
| ) |  |

Adds a micrograph parameter structure to a linked list.

Parameters

  **mg | pointer to any micrograph in the list.
  mg_id | micrograph identifier.

Returns
  Bmicrograph* new micrograph.

      The function allocates memory for a new micrograph structure.
      If the content of the pointer is null, the new structure is
      the first in the list. Otherwise, the end of the list is found
      and the new structure added to it.

Definition at line 461 of file mg_processing.cpp.

## ◆ micrograph_copy()

Bmicrograph* micrograph_copy | ( | Bmicrograph * | mg | ) |

Copies a micrograph.

Parameters

  *mg | micrograph structure to be copied.

Returns
  Bmicrograph* new micrograph.

Definition at line 1529 of file mg_processing.cpp.

## ◆ micrograph_count()

long micrograph_count | ( | Bmicrograph * | mg | ) |

Counts the number of micrographs in a linked list.

    The function counts micrographs in the list from the given pointer,
    and does not count micrographs prior to this one.

Parameters

  *mg | pointer to any micrograph in the list.

Returns
  long number of micrographs.

Definition at line 1118 of file mg_processing.cpp.

## ◆ micrograph_count_particles()

long micrograph_count_particles | ( | Bmicrograph * | mg | ) |

Counts all the particles in the micrograph structure.

Parameters

  *mg | micrograph parameter structure.

Returns
  long number of particles in micrograph.

Definition at line 1132 of file mg_processing.cpp.

## ◆ micrograph_kill()

int micrograph_kill | ( | Bmicrograph * | mg | ) |

Frees a whole micrograph parameter structure.

    Frees all the structures down the hierarchy.

Parameters

  *mg | micrograph parameter structure.

Returns
  int 0.

Definition at line 1288 of file mg_processing.cpp.

## ◆ micrograph_set_part_links()

long micrograph_set_part_links | ( | Bmicrograph * | mg | ) |

Sets the links from particles back to the micrograph.

Parameters

  *mg | micrograph parameter structure.

Returns
  long number of particles.

Definition at line 1928 of file mg_processing.cpp.

## ◆ micrograph_update()

int micrograph_update | ( | Bmicrograph * | mg,
|  | Bmicrograph * | nu_mg,
|  | int | fom_index,
|  | int | flags
| ) |  |

Updates an existing micrograph with new information.

Parameters

  *mg | micrograph structure to be updated.
  *nu_mg | micrograph structure with new information.
  fom_index | index of FOM to select on.
  flags | flags indicating which parts to update.

Returns
  int 0.

      The new information is encoded as a micrograph structure.
      All fields are updated if the new fields contain non-default data.
      Defaults are defined here as zero-length strings or zeroes.
      The particles in the original micrograph are matched by ID with
      those in the new micrograph and updated, with any new particles
      added from the new micrograph.
      The bad area and marker coordinates are replaced if they exist
      in the new structure.
      The new micrograph structure is not modified, except for deletion
      of bad areas and markers.

      Flags:
          1   particles
          2   bad areas
          4   filaments
          8   structure factors
          16  layer lines
          32  markers

Definition at line 1670 of file mg_processing.cpp.

## ◆ part_find_first()

Bparticle* part_find_first | ( | Bproject * | project | ) |

Finds the first particle in a project.

Parameters

  *project | pointer to project.

Returns
  Bparticle* first particle with a filename.

      The function searches for the first particle with a filename.

Definition at line 589 of file mg_processing.cpp.

## ◆ particle_add()

Bparticle* particle_add | ( | Bparticle ** | part,
|  | int | pid
| ) |  |

Adds a particle parameter structure to a linked list.

Parameters

  **part | pointer to any particle in the list.
  pid | particle number in file (starts at 1).

Returns
  Bparticle* new particle.

      The function allocates memory for a new particle structure.
      If the content of the pointer is null, the new structure is
      the first in the list. Otherwise, the end of the list is found
      and the new structure added to it.

Definition at line 527 of file mg_processing.cpp.

## ◆ particle_array()

Bparticle** particle_array | ( | Bparticle * | partlist,
|  | int | part_select,
|  | long & | npart
| ) |  |

Sets up an array of selected particle pointers.

Parameters

  *partlist | particle linked list.
  part_select | particle selection (-1 if none).
  &npart | array length (modified).

Returns
  Bparticle** particle pointer array.

      FOM's of non-selected particles are zeroed.

Definition at line 2107 of file mg_processing.cpp.

## ◆ particle_copy() [1/2]

Bparticle* particle_copy | ( | Bparticle ** | partlist,
|  | Bparticle * | part
| ) |  |

Adds one particle onto a list of particle parameters.

Parameters

  **partlist | destination particle list.
  *part | particle.

Returns
  Bparticle* new particle.

Definition at line 1409 of file mg_processing.cpp.

## ◆ particle_copy() [2/2]

Bparticle* particle_copy | ( | Bparticle * | partlist | ) |

Copies a list of particle parameters to a new list.

Parameters

  *partlist | source particle list.

Returns
  Bparticle* new list.

Definition at line 1437 of file mg_processing.cpp.

## ◆ particle_count()

long particle_count | ( | Bparticle * | part | ) |

Counts the number of particles in a linked list.

    The function counts particles in the list from the given pointer,
    and does not count particles prior to this one.

Parameters

  *part | pointer to any particle in the list.

Returns
  long number of particles.

Definition at line 1151 of file mg_processing.cpp.

## ◆ particle_count_selected()

long particle_count_selected | ( | Bparticle * | part | ) |

Counts the number of particles in a linked list.

    The function counts particles in the list from the given pointer,
    and does not count particles prior to this one.

Parameters

  *part | pointer to any particle in the list.

Returns
  long number of particles selected.

Definition at line 1169 of file mg_processing.cpp.

## ◆ particle_kill()

int particle_kill | ( | Bparticle * | part | ) |

Frees a list of particles.

    Frees all the structures down the hierarchy.

Parameters

  *part | particle parameter structure.

Returns
  int 0.

Definition at line 1323 of file mg_processing.cpp.

## ◆ particle_update()

int particle_update | ( | Bparticle ** | pnt_part,
|  | Bparticle * | nu_part,
|  | int | fom_index
| ) |  |

Updates an existing particle with new information.

Parameters

  **pnt_part | particle structure list to be updated.
  *nu_part | particle structure list with new information.
  fom_index | index of FOM to select on.

Returns
  int 0.

      The new information is encoded as a particle structure.
      All fields are updated if the new fields contain non-default data.
      Defaults are defined here as zeroes.
      The new particle structure is not modified.

Definition at line 1817 of file mg_processing.cpp.

## ◆ project_add_origins_to_coords()

int project_add_origins_to_coords | ( | Bproject * | project | ) |

Adds the particle origins to the micrograph coordinates.

Parameters

  *project | project parameter structure.

Returns
  int 0.

      The coordinates of particles from a micrograph and particle origins
      in an image processing parameter structure are added. The old
      micrograph coordinates are overwritten with the results.
      Requirement: The box radius for picked particles must be specified.

Definition at line 3563 of file mg_processing.cpp.

## ◆ project_apply_map_magnifications()

int project_apply_map_magnifications | ( | Bproject * | project,
|  | int | mag_num,
|  | float * | mag
| ) |  |

Change particle pixel sizes for particles based on map magnifications.

Parameters

  *project | project parameter structure.
  mag_num | number of maps;
  *mag | array of map magnifications.

Returns
  int 0.

Definition at line 3880 of file mg_processing.cpp.

## ◆ project_count_fields()

long project_count_fields | ( | Bproject * | project | ) |

Counts all the fields in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of fields in project.

Definition at line 731 of file mg_processing.cpp.

## ◆ project_count_mg_filament_nodes()

long project_count_mg_filament_nodes | ( | Bproject * | project | ) |

Counts the number of filament nodes in a project.

    The function counts all the filament nodes in a project.

Parameters

  *project | project.

Returns
  long number of filament nodes.

Definition at line 983 of file mg_processing.cpp.

## ◆ project_count_mg_filaments()

long project_count_mg_filaments | ( | Bproject * | project | ) |

Counts the number of filaments in a project.

    The function counts all the filaments in a project.

Parameters

  *project | project.

Returns
  long number of filaments.

Definition at line 960 of file mg_processing.cpp.

## ◆ project_count_mg_groups()

long project_count_mg_groups | ( | Bproject * | project | ) |

Counts the number of groups of particles in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of groups in project.

Definition at line 879 of file mg_processing.cpp.

## ◆ project_count_mg_part_selected() [1/2]

long project_count_mg_part_selected | ( | Bproject * | project | ) |

Counts the number of particles in a project.

Parameters

  *project | project.

Returns
  long number of particles selected.

      The function counts all the selected particles in a project.

Definition at line 833 of file mg_processing.cpp.

## ◆ project_count_mg_part_selected() [2/2]

long project_count_mg_part_selected | ( | Bproject * | project,
|  | int | num_select
| ) |  |

Counts the number of particles in a project.

    The function counts all the selected particles in a project.

Parameters

  *project | project.
  num_select | selection number.

Returns
  long number of particles selected.

Definition at line 857 of file mg_processing.cpp.

## ◆ project_count_mg_particles()

long project_count_mg_particles | ( | Bproject * | project | ) |

Counts all the particles in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of particles in project.

Definition at line 811 of file mg_processing.cpp.

## ◆ project_count_mg_selected()

long project_count_mg_selected | ( | Bproject * | project | ) |

Counts all the selected micrographs in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of micrographs selected in project.

Definition at line 763 of file mg_processing.cpp.

## ◆ project_count_micrographs()

long project_count_micrographs | ( | Bproject * | project | ) |

Counts all the micrographs in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of micrographs in project.

Definition at line 746 of file mg_processing.cpp.

## ◆ project_count_rec_filament_nodes()

long project_count_rec_filament_nodes | ( | Bproject * | project | ) |

Counts the number of filaments in a project.

    The function counts all the filaments in a project.

Parameters

  *project | project.

Returns
  long number of filaments.

Definition at line 1029 of file mg_processing.cpp.

## ◆ project_count_rec_filaments()

long project_count_rec_filaments | ( | Bproject * | project | ) |

Counts the number of filaments in a project.

    The function counts all the filaments in a project.

Parameters

  *project | project.

Returns
  long number of filaments.

Definition at line 1008 of file mg_processing.cpp.

## ◆ project_count_rec_groups()

long project_count_rec_groups | ( | Bproject * | project | ) |

Counts all the particles in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of particles in project.

Definition at line 937 of file mg_processing.cpp.

## ◆ project_count_rec_part_selected()

long project_count_rec_part_selected | ( | Bproject * | project | ) |

Counts all the particles in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of particles in project.

Definition at line 919 of file mg_processing.cpp.

## ◆ project_count_rec_particles()

long project_count_rec_particles | ( | Bproject * | project | ) |

Counts all the particles in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of particles in project.

Definition at line 902 of file mg_processing.cpp.

## ◆ project_count_rec_selected()

long project_count_rec_selected | ( | Bproject * | project | ) |

Counts all the selected reconstructions in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of reconstructions selected in project.

Definition at line 795 of file mg_processing.cpp.

## ◆ project_count_reconstructions()

long project_count_reconstructions | ( | Bproject * | project | ) |

Counts all the reconstructions in the project structure.

Parameters

  *project | project parameter structure.

Returns
  long number of reconstructions in project.

Definition at line 780 of file mg_processing.cpp.

## ◆ project_create()

Bproject* project_create | ( | int | nmg,
|  | int | nrec
| ) |  |

Creates a micrograph processing project parameter structure.

Parameters

  nmg | number of micrograph structures.
  nrec | number of reconstruction structures.

Returns
  Bproject* project parameter structure.

      The function allocates memory for the project structure, a field-of-view structure,
      and the requested number of micrographs and reconstructions.

Definition at line 47 of file mg_processing.cpp.

## ◆ project_divide()

long project_divide | ( | Bproject * | project,
|  | long | n
| ) |  |

Divides a project into a number of micrograph subsets.

Parameters

  *project | project parameter structure.
  n | number of subsets.

Returns
  long number of new projects created.

      Only selected micrographs are considered in the subdivision.

Definition at line 1962 of file mg_processing.cpp.

## ◆ project_dump()

long project_dump | ( | Bproject * | project,
|  | Bstring & | filename
| ) |  |

Dumps particle info in the project hierarchy.

Parameters

  *project | project parameter structure.
  &filename | output file name.

Returns
  long number of particles dumped.

Definition at line 2974 of file mg_processing.cpp.

## ◆ project_equal_mg_part_files()

int project_equal_mg_part_files | ( | Bproject * | project | ) |

Sets micrograph and particle files to be the same.

Parameters

  *project | project parameter structure.

Returns
  int 0.

      If the micrograph file name exists, that is used, otherwise the
      particle file name is used.

Definition at line 87 of file mg_processing.cpp.

## ◆ project_flip_origins()

int project_flip_origins | ( | Bproject * | project,
|  | int | flip
| ) |  |

Flip origin coordinates.

Parameters

  *project | project parameter structure.
  flip | axes to flip.

Returns
  int 0.

      The particle origins are reversed.
      The specification of axes to flip is embedded in the flip number:
          first bit  - x
          second bit - y
          third bit  - z

Definition at line 3605 of file mg_processing.cpp.

## ◆ project_init()

Bproject* project_init | ( |  | ) |

Initializes a micrograph processing project parameter structure.

Returns
  Bproject* project parameter structure.

      The function allocates memory for the project structure.

Definition at line 29 of file mg_processing.cpp.

## ◆ project_kill()

int project_kill | ( | Bproject * | project | ) |

Frees a whole project.

    Frees all the structures down the hierarchy.

Parameters

  *project | project parameter structure.

Returns
  int 0.

Definition at line 1224 of file mg_processing.cpp.

## ◆ project_maximum_selection()

long project_maximum_selection | ( | Bproject * | project | ) |

Finds the maximum slection number for a project.

Parameters

  *project | project parameter structure.

Returns
  long maximum selection number.

Definition at line 2364 of file mg_processing.cpp.

## ◆ project_merge_part_parameters()

int project_merge_part_parameters | ( | Bproject * | project,
|  | Bproject * | partproject
| ) |  |

Puts particle parameters from one project into another.

Parameters

  *project | project parameter structure with all parameters.
  *partproject | project parameter structure with particle parameters.

Returns
  int 0.

Definition at line 1876 of file mg_processing.cpp.

## ◆ project_mg_particle_array()

Bparticle** project_mg_particle_array | ( | Bproject * | project,
|  | int | part_select,
|  | long & | npart
| ) |  |

Sets up an array of selected particle pointers.

Parameters

  *project | project parameter structure.
  part_select | particle selection (-1 if none).
  &npart | array length (modified).

Returns
  Bparticle** particle pointer array.

      FOM's of non-selected particles are zeroed.

Definition at line 2029 of file mg_processing.cpp.

## ◆ project_micrograph_array()

Bmicrograph** project_micrograph_array | ( | Bproject * | project,
|  | long & | nmg
| ) |  |

Sets up an array of selected micrograph pointers.

Parameters

  *project | project parameter structure.
  &nmg | array length (modified).

Returns
  Bmicrograph** micrograph pointer array.

      FOM's of non-selected micrographs are zeroed.

Definition at line 2001 of file mg_processing.cpp.

## ◆ project_rec_particle_array()

Bparticle** project_rec_particle_array | ( | Bproject * | project,
|  | int | part_select,
|  | long & | npart
| ) |  |

Sets up an array of selected particle pointers.

Parameters

  *project | project parameter structure.
  part_select | particle selection (-1 if none).
  &npart | array length (modified).

Returns
  Bparticle** particle pointer array.

      FOM's of non-selected particles are zeroed.

Definition at line 2071 of file mg_processing.cpp.

## ◆ project_renumber_particles()

long project_renumber_particles | ( | Bproject * | project | ) |

Renumbers particles.

Parameters

  *project | project parameter structure.

Returns
  long total number of particles.

      For each micrograph the particles are renumbered starting from 1.

Definition at line 3656 of file mg_processing.cpp.

## ◆ project_revert_filenames()

int project_revert_filenames | ( | Bproject * | project,
|  | Bproject * | project_old,
|  | int | flag
| ) |  |

Reverts file names to what it was in an old project.

Parameters

  *project | project parameter structure.
  *project_old | project parameter structure with old file names.
  flag | 1=mg, 2=ps, 4=rec, 8=part, 16=frames.

Returns
  int 0.

Definition at line 2135 of file mg_processing.cpp.

## ◆ project_rotate_particle_views()

int project_rotate_particle_views | ( | Bproject * | project,
|  | View | view
| ) |  |

Rotates particle views with respect to a reference view.

Author
  Eduardo Sanz-Garcia

Parameters

  *project | project parameter structure.
  view | reference view.

Returns
  int 0.

Definition at line 3838 of file mg_processing.cpp.

## ◆ project_select_field()

int project_select_field | ( | Bproject * | project,
|  | Bstring & | field_id
| ) |  |

Selects a field from the project and deletes the rest.

Parameters

  *project | project parameter structure.
  &field_id | field to select.

Returns
  int 0.

Definition at line 3074 of file mg_processing.cpp.

## ◆ project_select_micrograph()

int project_select_micrograph | ( | Bproject * | project,
|  | Bstring & | mg_id
| ) |  |

Selects a micrograph from the project and deletes the rest.

Parameters

  *project | project parameter structure.
  &mg_id | micrograph to select.

Returns
  int 0.

Definition at line 3106 of file mg_processing.cpp.

## ◆ project_set_dose()

int project_set_dose | ( | Bproject * | project,
|  | double | dose
| ) |  |

Sets the electron dose of all the micrographs.

Parameters

  *project | project parameter structure.
  dose | electron dose (electrons/angstrom).

Returns
  int 0.

Definition at line 3508 of file mg_processing.cpp.

## ◆ project_set_field_id()

int project_set_field_id | ( | Bproject * | project,
|  | int | nseries,
|  | Bstring & | field_id
| ) |  |

Sets the field id's according to a regular series.

    The micrograph data blocks must be arranged in a regular order with
    every nseries micrographs from the same field-of-view.
    The field id's are taken from the first micrograph id in a series.

Parameters

  *project | project parameter structure.
  nseries | number of micrographs per field-of-view.
  &field_id | a user-specified field ID.

Returns
  int 0.

Definition at line 2203 of file mg_processing.cpp.

## ◆ project_set_filament_path()

int project_set_filament_path | ( | Bproject * | project,
|  | Bstring & | path
| ) |  |

Sets the path to filament files for all the micrographs.

Parameters

  *project | project parameter structure.
  &path | path to filament files.

Returns
  int 0.

      If the requested path is "." or "./", the path is completely removed.

Definition at line 3304 of file mg_processing.cpp.

## ◆ project_set_frame_path()

int project_set_frame_path | ( | Bproject * | project,
|  | Bstring & | path
| ) |  |

Sets the path to micrograph frames files for all the micrographs.

Parameters

  *project | project parameter structure.
  &path | path to micrograph frames files.

Returns
  int 0.

      If the requested path is "." or "./", the path is completely removed.

Definition at line 3196 of file mg_processing.cpp.

## ◆ project_set_magnification()

int project_set_magnification | ( | Bproject * | project,
|  | double | mag
| ) |  |

Sets the magnification for all the micrographs.

Parameters

  *project | project parameter structure.
  mag | magnification.

Returns
  int 0.

Definition at line 3355 of file mg_processing.cpp.

## ◆ project_set_micrograph_origins()

int project_set_micrograph_origins | ( | Bproject * | project,
|  | Vector3< float > | origin
| ) |  |

Sets micrograph origins to the given origin.

Parameters

  *project | project parameter structure.
  origin | particle origin.

Returns
  int 0.

      For each micrograph the micrograph origin is set to the given origin.

Definition at line 3531 of file mg_processing.cpp.

## ◆ project_set_micrograph_path()

int project_set_micrograph_path | ( | Bproject * | project,
|  | Bstring & | path
| ) |  |

Sets the path to micrograph files for all the micrographs.

Parameters

  *project | project parameter structure.
  &path | path to micrograph files.

Returns
  int 0.

      If the requested path is "." or "./", the path is completely removed.

Definition at line 3167 of file mg_processing.cpp.

## ◆ project_set_part_links()

long project_set_part_links | ( | Bproject * | project | ) |

Sets the links from particles back to the micrographs and reconstructions.

Parameters

  *project | project parameter structure.

Returns
  long number of particles.

Definition at line 1906 of file mg_processing.cpp.

## ◆ project_set_particle_asu_views() [1/2]

int project_set_particle_asu_views | ( | Bproject * | project,
|  | Bstring & | symmetry_asu
| ) |  |

Sets particle views within the asymmetric unit.

Parameters

  *project | project parameter structure.
  &symmetry_asu | point group string.

Returns
  int 0.

      For each micrograph or reconstruction the particle view is set to within the asymmetric unit.

Definition at line 3792 of file mg_processing.cpp.

## ◆ project_set_particle_asu_views() [2/2]

int project_set_particle_asu_views | ( | Bproject * | project,
|  | Bsymmetry * | sym
| ) |  |

Definition at line 3805 of file mg_processing.cpp.

## ◆ project_set_particle_box_size() [1/2]

int project_set_particle_box_size | ( | Bproject * | project,
|  | Vector3< long > | box_size
| ) |  |

Sets particle box size to the given value.

Parameters

  *project | project parameter structure.
  box_size | particle box size.

Returns
  int 0.

      For each micrograph or reconstruction the particle box size is set
      to the given radius and the particle origins are adjusted as well.

Definition at line 3693 of file mg_processing.cpp.

## ◆ project_set_particle_box_size() [2/2]

int project_set_particle_box_size | ( | Bproject * | project,
|  | long | box_size
| ) |  |

Sets particle box size to the given value.

Parameters

  *project | project parameter structure.
  box_size | particle box size.

Returns
  int 0.

      For each micrograph or reconstruction the particle box size is set
      to the given radius and the particle origins are adjusted as well.

Definition at line 3738 of file mg_processing.cpp.

## ◆ project_set_particle_origins()

int project_set_particle_origins | ( | Bproject * | project,
|  | Vector3< double > | origin
| ) |  |

Sets particle origins to given values.

Parameters

  *project | project parameter structure.
  origin | particle origin.

Returns
  int 0.

      For each micrograph or reconstruction the particle origin is set to the given origin.

Definition at line 3757 of file mg_processing.cpp.

## ◆ project_set_particle_path()

int project_set_particle_path | ( | Bproject * | project,
|  | Bstring & | path
| ) |  |

Sets the path to particle files for all the micrographs.

Parameters

  *project | project parameter structure.
  &path | path to particle files.

Returns
  int 0.

      If the requested path is "." or "./", the path is completely removed.

Definition at line 3254 of file mg_processing.cpp.

## ◆ project_set_pixel_size()

int project_set_pixel_size | ( | Bproject * | project,
|  | double | pixel_size
| ) |  |

Sets the pixel size for all the micrographs.

Parameters

  *project | project parameter structure.
  pixel_size | pixel size.

Returns
  int 0.

Definition at line 3398 of file mg_processing.cpp.

## ◆ project_set_powerspectrum_path()

int project_set_powerspectrum_path | ( | Bproject * | project,
|  | Bstring & | path
| ) |  |

Sets the path to powerspectrum files for all the micrographs.

Parameters

  *project | project parameter structure.
  &path | path to powerspectrum files.

Returns
  int 0.

      If the requested path is "." or "./", the path is completely removed.

Definition at line 3225 of file mg_processing.cpp.

## ◆ project_set_scan_sampling()

int project_set_scan_sampling | ( | Bproject * | project,
|  | double | sampling
| ) |  |

Sets the scan sampling for all the micrographs.

    Sampling is isotropic.

Parameters

  *project | project parameter structure.
  sampling | sampling.

Returns
  int 0.

Definition at line 3378 of file mg_processing.cpp.

## ◆ project_set_tilt()

int project_set_tilt | ( | Bproject * | project,
|  | double | tilt_axis,
|  | double | tilt_angle
| ) |  |

Sets the tilt parameters for all the micrographs.

Parameters

  *project | project parameter structure.
  tilt_axis | micrograph tilt axis angle.
  tilt_angle | micrograph tilt angle.

Returns
  int 0.

Definition at line 3427 of file mg_processing.cpp.

## ◆ project_show_class_averages()

long project_show_class_averages | ( | Bproject * | project | ) |

Shows the class averages in a project.

Parameters

  *project | project parameter structure.

Returns
  long number of class averages.

Definition at line 2645 of file mg_processing.cpp.

## ◆ project_show_fom_histogram()

long project_show_fom_histogram | ( | Bproject * | project | ) |

Shows a histogram of the FOM values.

Parameters

  *project | project parameter structure.

Returns
  long number of particles selected.

Definition at line 2831 of file mg_processing.cpp.

## ◆ project_show_hierarchy()

long project_show_hierarchy | ( | Bproject * | project | ) |

Shows the project hierarchy.

Parameters

  *project | project parameter structure.

Returns
  long number of particles selected.

Definition at line 2253 of file mg_processing.cpp.

## ◆ project_show_mag_histogram()

long project_show_mag_histogram | ( | Bproject * | project,
|  | int | bins,
|  | double | increment
| ) |  |

Shows the histogram for magnification values for selected particles.

Parameters

  *project | project parameter structure.
  bins | number of bins.
  increment | increment between bins.

Returns
  long number of particles selected.

Definition at line 2928 of file mg_processing.cpp.

## ◆ project_show_parameter()

long project_show_parameter | ( | Bproject * | project,
|  | Bstring & | tag
| ) |  |

Shows the particle parameter indicated by the tag in a project.

Parameters

  *project | project parameter structure.
  &tag | parameter tag.

Returns
  long number of particles selected.

Definition at line 2783 of file mg_processing.cpp.

## ◆ project_show_selected()

long project_show_selected | ( | Bproject * | project | ) |

Shows the selected particles in a project.

Parameters

  *project | project parameter structure.

Returns
  long number of particles selected.

Definition at line 2446 of file mg_processing.cpp.

## ◆ project_show_selected_parameters()

long project_show_selected_parameters | ( | Bproject * | project,
|  | int | show
| ) |  |

Shows the selected particle parameters in a project.

Parameters

  *project | project parameter structure.
  show | selection number to show.

Returns
  long number of particles selected.

Definition at line 2674 of file mg_processing.cpp.

## ◆ project_show_selection_numbers()

long project_show_selection_numbers | ( | Bproject * | project | ) |

Shows the selection numbers for the particles in a project.

Parameters

  *project | project parameter structure.

Returns
  long number of particles selected.

Definition at line 2391 of file mg_processing.cpp.

## ◆ project_sort_by_tilt()

int project_sort_by_tilt | ( | Bproject * | project | ) |

Sorts the micrographs in each field by tilt angle.

Parameters

  *project | project parameter structure.

Returns
  int 0.

Definition at line 3490 of file mg_processing.cpp.

## ◆ project_update()

int project_update | ( | Bproject * | project,
|  | Bproject * | proj_new,
|  | int | fom_index
| ) |  |

Updates an existing project with new information.

Parameters

  *project | project parameter structure to be updated.
  *proj_new | project parameter structure with new information.
  fom_index | index of FOM to select on.

Returns
  int 0.

    The new information is encoded as a project hierarchy.
    The original project hierarchy is searched for the micrograph ID
    tags that correspond to the original project hierarchy and those
    micrograph parameters are updated. Because the micrograph ID tags
    should be unique in themselves, the field ID tags are ignored and
    the two project hierarchies may have different field designations.
    If a micrograph ID from the new project hierarchy is not found in
    the original project hierarchy, it is added.
    The new project hierarchy is not modified.

Definition at line 1601 of file mg_processing.cpp.

## ◆ rec_part_links()

int rec_part_links | ( | Breconstruction * | rec | ) |

Sets the links from particles to reconstructions.

Parameters

  *rec | pointer to reconstruction.

Returns
  int 0.

Definition at line 571 of file mg_processing.cpp.

## ◆ reconstruction_add()

Breconstruction* reconstruction_add | ( | Breconstruction ** | rec,
|  | Bstring & | rec_id
| ) |  |

Adds a reconstruction parameter structure to a linked list.

Parameters

  **rec | pointer to any reconstruction in the list.
  &rec_id | reconstruction identifier.

Returns
  Breconstruction* new reconstruction.

      The function allocates memory for a new micrograph structure.
      If the content of the pointer is null, the new structure is
      the first in the list. Otherwise, the end of the list is found
      and the new structure added to it.

Definition at line 704 of file mg_processing.cpp.

## ◆ reconstruction_kill()

int reconstruction_kill | ( | Breconstruction * | rec | ) |

Frees a whole reconstruction parameter structure.

    Frees all the structures down the hierarchy.

Parameters

  *rec | reconstruction parameter structure.

Returns
  int 0.

Definition at line 1377 of file mg_processing.cpp.

## ◆ reconstruction_set_part_links()

long reconstruction_set_part_links | ( | Breconstruction * | rec | ) |

Sets the links from particles back to the reconstruction.

Parameters

  *rec | reconstruction parameter structure.

Returns
  long number of particles.

Definition at line 1943 of file mg_processing.cpp.

## ◆ reconstruction_update()

int reconstruction_update | ( | Breconstruction * | rec,
|  | Breconstruction * | nu_rec,
|  | int | fom_index,
|  | int | flags
| ) |  |

Updates an existing reconstruction with new information.

Parameters

  *rec | reconstruction structure to be updated.
  *nu_rec | reconstruction structure with new information.
  fom_index | index of FOM to select on.
  flags | flags indicating which parts to update.

Returns
  int 0.

      The new information is encoded as a reconstruction structure.
      The update is only done if the FOM of the new reconstruction is better.
      All fields are updated if the new fields contain non-default data.
      Defaults are defined here as zero-length strings or zeroes.
      The particles in the original reconstruction are matched by ID with
      those in the new reconstruction and updated, with any new particles
      added from the new reconstruction.
      The bad area and marker coordinates are replaced if they exist
      in the new structure.
      The new reconstruction structure is not modified, except for deletion
      of bad areas and markers.

Definition at line 1772 of file mg_processing.cpp.

## ◆ views_from_project()

View* views_from_project | ( | Bproject * | project,
|  | int | selection
| ) |  |

Retrieves the particle views from a project.

Parameters

  *project | project parameter structure.
  selection | selection number (-1 selects positives, 0 selects all).

Returns
  View* linked list of views.

Definition at line 3925 of file mg_processing.cpp.