/usr/include/relion-1.3/src/postprocessing.h is in librelion-dev-common 1.3+dfsg-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | /***************************************************************************
*
* Author: "Sjors H.W. Scheres"
* MRC Laboratory of Molecular Biology
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This complete copyright notice must be included in any revised version of the
* source code. Additional authorship citations may be added, but existing
* author citations must be preserved.
***************************************************************************/
#ifndef POSTPROCESSING_H_
#define POSTPROCESSING_H_
#include "src/image.h"
#include "src/multidim_array.h"
#include "src/metadata_table.h"
#include <src/fftw.h>
#include <src/time.h>
#include <src/mask.h>
#include <src/funcs.h>
class Postprocessing
{
public:
// I/O Parser
IOParser parser;
// Verbosity
int verb;
// Input & Output rootname
FileName fn_in, fn_out, fn_I1, fn_I2;
// Images for the two half-reconstructions and the mask
Image<double> I1, I2, I1phi, I2phi, Im;
// Pixel size in Angstroms
double angpix;
/////// Masking
// Perform automated masking (based on a density threshold)
bool do_auto_mask;
// Density threshold below which to calculate initial mask seed
double ini_mask_density_threshold;
// Number of pixels to extend the mask beyond the initial mask seed
double extend_ini_mask;
// Width (in pixels) for soft mask edge
double width_soft_mask_edge;
// From the resolution where the FSC drops below this value, randomize the phases in the two maps
double randomize_fsc_at;
// Filename for a user-provided mask
FileName fn_mask;
//////// Sharpening
// Filename for the STAR-file with the MTF of the detector
FileName fn_mtf;
// Flag to indicate whether to perform Rosenthal&Henderson-2003 like B-factor estimation
bool do_auto_bfac;
// Flag to indicate whether we'll do masking
bool do_mask;
// Minimum and maximum resolution to use in the fit
double fit_minres, fit_maxres;
// User-provided (ad hoc) B-factor
double adhoc_bfac;
///////// Filtering
// Flag to indicate whether to use FSC-weighting before B-factor sharpening
bool do_fsc_weighting;
// Frequency at which to low-pass filter the final map
double low_pass_freq;
// Width of raised cosine edge on low-pass filter
int filter_edge_width;
// Arrays to store FSC, Guinier curves etc
MultidimArray<double> fsc_unmasked;
MultidimArray<double> fsc_masked, fsc_random_masked, fsc_true;
double global_intercept, global_slope, global_corr_coeff, global_bfactor, global_resol;
// The Guinier plots
std::vector<fit_point2D> guinierin, guinierinvmtf, guinierweighted, guiniersharpen;
public:
// Read command line arguments
void read(int argc, char **argv);
// Print usage instructions
void usage();
// Set parameters to some useful defaults
void clear();
// Initialise some stuff after reading
void initialise();
// Generate the mask (or read it from file)
// Returns true if masking needs to be done, false otherwise
bool getMask();
// Make a mask automatically based on initial density threshold
void getAutoMask();
// Divide by MTF and perform FSC-weighted B-factor sharpening, as in Rosenthal and Henderson, 2003
void sharpenMap();
// This divides the input FT by the mtf (if fn_mtf !="")
void divideByMtf(MultidimArray<Complex > &FT);
// Make a Guinier plot from the Fourier transform of an image
void makeGuinierPlot(MultidimArray<Complex > &FT, std::vector<fit_point2D> &guinier);
// Apply sqrt(2FSC/(FSC=1)) weighting prior to B-factor sharpening
void applyFscWeighting(MultidimArray<Complex > &FT, MultidimArray<double> my_fsc);
// Output map and STAR files with metadata, also write final resolution to screen
void writeOutput();
// Write XML file for EMDB submission
void writeFscXml(MetaDataTable &MDfsc);
// General Running
void run();
};
#endif /* POSTPROCESSING_H_ */
|