Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | List of all members
ProgTomoExtractParticleStacks Class Reference

#include <tomo_extract_particlestacks.h>

Inheritance diagram for ProgTomoExtractParticleStacks:
Inheritance graph
[legend]
Collaboration diagram for ProgTomoExtractParticleStacks:
Collaboration graph
[legend]

Public Member Functions

void defineParams ()
 
void createCircle (MultidimArray< double > &maskNormalize)
 
void readTiltSeriesInfo (std::string &tsid)
 
void getCoordinateOnTiltSeries (int xcoor, int ycoor, int zcoor, double &rot, double &tilt, double &tx, double &ty, int &x_2d, int &y_2d)
 
void readParams ()
 
void run ()
 
- Public Member Functions inherited from XmippProgram
const char * getParam (const char *param, int arg=0)
 
const char * getParam (const char *param, const char *subparam, int arg=0)
 
int getIntParam (const char *param, int arg=0)
 
int getIntParam (const char *param, const char *subparam, int arg=0)
 
double getDoubleParam (const char *param, int arg=0)
 
double getDoubleParam (const char *param, const char *subparam, int arg=0)
 
float getFloatParam (const char *param, int arg=0)
 
float getFloatParam (const char *param, const char *subparam, int arg=0)
 
void getListParam (const char *param, StringVector &list)
 
int getCountParam (const char *param)
 
bool checkParam (const char *param)
 
bool existsParam (const char *param)
 
void addParamsLine (const String &line)
 
void addParamsLine (const char *line)
 
ParamDefgetParamDef (const char *param) const
 
virtual void quit (int exit_code=0) const
 
virtual int tryRun ()
 
void initProgress (size_t total, size_t stepBin=60)
 
void setProgress (size_t value=0)
 
void endProgress ()
 
void processDefaultComment (const char *param, const char *left)
 
void setDefaultComment (const char *param, const char *comment)
 
virtual void initComments ()
 
void setProgramName (const char *name)
 
void addUsageLine (const char *line, bool verbatim=false)
 
void clearUsage ()
 
void addExampleLine (const char *example, bool verbatim=true)
 
void addSeeAlsoLine (const char *seeAlso)
 
void addKeywords (const char *keywords)
 
const char * name () const
 
virtual void usage (int verb=0) const
 
virtual void usage (const String &param, int verb=2)
 
int version () const
 
virtual void show () const
 
virtual void read (int argc, const char **argv, bool reportErrors=true)
 
virtual void read (int argc, char **argv, bool reportErrors=true)
 
void read (const String &argumentsLine)
 
 XmippProgram ()
 
 XmippProgram (int argc, const char **argv)
 
virtual ~XmippProgram ()
 

Public Attributes

FileName fnOut
 
FileName fnTs
 
FileName fnCoor
 
size_t Xdim
 
size_t Ydim
 
size_t Zdim
 
size_t Xts
 
size_t Yts
 
double tilt
 
double rot
 
double tx
 
double ty
 
bool invertContrast
 
bool normalize
 
bool swapXY
 
bool setCTF
 
bool defocusPositive
 
std::vector< double > tsTiltAngles
 
std::vector< double > tsRotAngles
 
std::vector< double > tsShiftX
 
std::vector< double > tsShiftY
 
std::vector< double > tsDefU
 
std::vector< double > tsDefV
 
std::vector< double > tsDefAng
 
std::vector< double > tsDose
 
std::vector< MultidimArray< double > > tsImages
 
double scaleFactor
 
double sampling
 
int boxsize
 
int nthrs
 
- Public Attributes inherited from XmippProgram
bool doRun
 
bool runWithoutArgs
 
int verbose
 Verbosity level. More...
 
int debug
 

Additional Inherited Members

- Protected Member Functions inherited from XmippProgram
void defineCommons ()
 
- Protected Attributes inherited from XmippProgram
int errorCode
 
ProgramDefprogDef
 Program definition and arguments parser. More...
 
std::map< String, CommentListdefaultComments
 
int argc
 Original command line arguments. More...
 
const char ** argv
 

Detailed Description

Definition at line 37 of file tomo_extract_particlestacks.h.

Member Function Documentation

◆ createCircle()

void ProgTomoExtractParticleStacks::createCircle ( MultidimArray< double > &  maskNormalize)

Definition at line 65 of file tomo_extract_particlestacks.cpp.

66 {
67  int halfboxsize = 0.5* boxsize;
68  if (normalize)
69  {
70 
71  maskNormalize.initZeros(1, 1, boxsize, boxsize);
72 
73  for (int i=0; i<boxsize; i++)
74  {
75  int i2 = i-halfboxsize;
76  int i2k2 = i2*i2;
77  for (int j=0; j<boxsize; j++)
78  {
79  int j2 = (j- halfboxsize);
80  if (sqrt(i2k2 + j2*j2)>halfboxsize)
81  A2D_ELEM(maskNormalize, i, j) = 1;
82  }
83  }
84  }
85 }
#define A2D_ELEM(v, i, j)
void sqrt(Image< double > &op)
#define i
#define j
void initZeros(const MultidimArray< T1 > &op)

◆ defineParams()

void ProgTomoExtractParticleStacks::defineParams ( )
virtual

Function in which the param of each Program are defined.

Reimplemented from XmippProgram.

Definition at line 48 of file tomo_extract_particlestacks.cpp.

49 {
50  addUsageLine("This function takes a tomogram an extract a set of subtomogram from it. The coordinates of the subtomograms are speciffied in the metadata given by coordinates.");
51  addParamsLine(" --tiltseries <xmd_file=\"\"> : Metadata (.xmd file) with the tilt series");
52  addParamsLine(" --coordinates <xmd_file=\"\"> : Metadata (.xmd file) with the coordidanates to be extracted from the tomogram");
53  addParamsLine(" --boxsize <boxsize=100> : Particle box size in voxels.");
54  addParamsLine(" --sampling <s=1> : Sampling rate in (A).");
55  addParamsLine(" [--defocusPositive] : This flag must be put if the defocus increases or decreases along the z-axis. This is requires to set the local CTF");
56  addParamsLine(" [--invertContrast] : Put this flag if the particles to be extracted are 3D particles (subtvolumes)");
57  addParamsLine(" [--swapXY] : Put this flag if the tomogram and the tilt series have the same dimensions but the X and Y coordinates are swaped");
58  addParamsLine(" [--setCTF] : Put this flag if the tilt series metadata has CTF parameters. The CTF per particle will be calculated and set in the final set of particles");
59  addParamsLine(" [--normalize] : Put this flag to normalize the background of the particle (zero mean and unit std)");
60  // addParamsLine(" [--downsample <scaleFactor=0.5>] : Scale factor of the extracted subtomograms");
61  addParamsLine(" -o <mrc_file=\"\"> : path to the output directory. ");
62  addParamsLine(" [--threads <s=4>] : Number of threads");
63 }
void addUsageLine(const char *line, bool verbatim=false)
void addParamsLine(const String &line)

◆ getCoordinateOnTiltSeries()

void ProgTomoExtractParticleStacks::getCoordinateOnTiltSeries ( int  xcoor,
int  ycoor,
int  zcoor,
double &  rot,
double &  tilt,
double &  tx,
double &  ty,
int &  x_2d,
int &  y_2d 
)

Definition at line 87 of file tomo_extract_particlestacks.cpp.

88 {
89  double ct = cos(tilt);
90  double st = sin(tilt);
91 
92  double cr = cos(rot);
93  double sr = sin(rot);
94 
95  /*
96  First the picked coordinate, r, is projected on the aligned tilt series
97  r' = Pr Where r is the coordinates to be projected by the matrix P
98  [x'] [ct 0 st][x]
99  [y'] = [0 1 0][y]
100  [z'] [0 0 0][z]
101  Next is to undo the transformation This is Aligned->Unaligned
102  If T is the transformation matrix unaligned->aligned, we need T^-{1}
103  Let us define a rotation matrix
104  R=[cos(rot) -sin(rot)]
105  [ sin(rot) cos(rot)];
106 
107  The inverse of T is given by
108  T^{-1} = [R' -R'*t;
109  0 0 1]);
110 
111  Where t are the shifts of T
112  */
113 
114  // Projection
115  x_2d = (int) (xcoor * ct + zcoor* st);
116  y_2d = (int) (ycoor);
117 
118  //Inverse transformation
119  double x_2d_prime = cr*x_2d + sr*y_2d - cr*tx - sr*ty;
120  double y_2d_prime = -sr*x_2d + cr*y_2d + sr*tx - cr*ty;
121 
122  if (swapXY)
123  {
124  x_2d = -x_2d_prime+0.5*Xts;
125  y_2d = -y_2d_prime+0.5*Yts;
126  }
127  else
128  {
129  x_2d = -x_2d_prime+0.5*Yts;
130  y_2d = -y_2d_prime+0.5*Xts;
131  }
132 }

◆ readParams()

void ProgTomoExtractParticleStacks::readParams ( )
virtual

Function in which each program will read parameters that it need. If some error occurs the usage will be printed out.

Reimplemented from XmippProgram.

Definition at line 31 of file tomo_extract_particlestacks.cpp.

32 {
33  fnTs = getParam("--tiltseries");
34  fnCoor = getParam("--coordinates");
35  boxsize = getIntParam("--boxsize");
36  sampling = getDoubleParam("--sampling");
37  defocusPositive = checkParam("--defocusPositive");
38  invertContrast = checkParam("--invertContrast");
39  // scaleFactor = getDoubleParam("--downsample");
40  normalize = checkParam("--normalize");
41  swapXY = checkParam("--swapXY");
42  setCTF = checkParam("--setCTF");
43  fnOut = getParam("-o");
44  nthrs = getIntParam("--threads");
45 }
double getDoubleParam(const char *param, int arg=0)
const char * getParam(const char *param, int arg=0)
bool checkParam(const char *param)
int getIntParam(const char *param, int arg=0)

◆ readTiltSeriesInfo()

void ProgTomoExtractParticleStacks::readTiltSeriesInfo ( std::string &  tsid)

Definition at line 134 of file tomo_extract_particlestacks.cpp.

135 {
136  //TODO: Ensure there is only a single TSId
137  MetaDataVec mdts;
138  mdts.read(fnTs);
139 
140  Image<double> tiltImg;
141  auto &ptrtiltImg = tiltImg();
142 
143  // The tilt series is stored as a stack of images;
144  MultidimArray<double> tsImg;
145  std::vector<FileName> tsNames(0);
146 
147  FileName fnImg;
148 
149  size_t Nimages = 0;
150  double defU=0, defV=0, defAng=0, dose = 0;
151 
152  for (const auto& row : mdts)
153  {
154  row.getValue(MDL_IMAGE, fnImg);
155  row.getValue(MDL_ANGLE_TILT, tilt);
156  row.getValue(MDL_ANGLE_ROT, rot);
157 
158  if (setCTF)
159  {
160  row.getValue(MDL_CTF_DEFOCUSU, defU);
161  row.getValue(MDL_CTF_DEFOCUSV, defV);
162  row.getValue(MDL_CTF_DEFOCUS_ANGLE, defAng);
163  row.getValue(MDL_CTF_DEFOCUS_ANGLE, dose);
164  tsDefU.push_back(defU);
165  tsDefV.push_back(defV);
166  tsDefAng.push_back(defAng);
167 
168  tsDose.push_back(dose);
169  }
170 
171 
172  row.getValue(MDL_SHIFT_X, tx);
173  row.getValue(MDL_SHIFT_Y, ty);
174  row.getValue(MDL_TSID, tsid);
175 
176  tiltImg.read(fnImg);
177 
178  tsImages.push_back(ptrtiltImg);
179 
180  tsTiltAngles.push_back(tilt);
181  tsRotAngles.push_back(rot);
182  tsShiftX.push_back(tx);
183  tsShiftY.push_back(ty);
184  tsNames.push_back(fnImg);
185  Nimages +=1;
186  }
187 
188  Xts = XSIZE(ptrtiltImg);
189  Yts = YSIZE(ptrtiltImg);
190 }
Rotation angle of an image (double,degrees)
#define YSIZE(v)
Defocus U (Angstroms)
void read(const FileName &inFile, const std::vector< MDLabel > *desiredLabels=nullptr, bool decomposeStack=true) override
Defocus angle (degrees)
Tilting angle of an image (double,degrees)
Shift for the image in the X axis (double)
Tilt series id (std::string)
#define XSIZE(v)
std::vector< MultidimArray< double > > tsImages
int read(const FileName &name, DataMode datamode=DATA, size_t select_img=ALL_IMAGES, bool mapData=false, int mode=WRITE_READONLY)
Shift for the image in the Y axis (double)
Defocus V (Angstroms)
Name of an image (std::string)

◆ run()

void ProgTomoExtractParticleStacks::run ( )
virtual

This function will be start running the program. it also should be implemented by derived classes.

Reimplemented from XmippProgram.

Definition at line 194 of file tomo_extract_particlestacks.cpp.

195 {
196  std::cout << "Starting ... "<< std::endl;
197  double signValue = 1;
198  if (invertContrast)
199  {
200  signValue = -1;
201  }
202 
203  MetaDataVec mdcoords, mdparticlestack;
204  mdcoords.read(fnCoor);
205  MetaDataVec mdts;
206 
207  int xcoor, ycoor, zcoor, xinit, yinit;
208  size_t idx=1;
209 
210  mdts.read(fnTs);
211 
212  std::string tsid;
213  readTiltSeriesInfo(tsid);
214 
215  double tilt, rot, tx, ty;
216 
217  size_t Nimages = 0;
218 
219  int halfboxsize = floor(0.5*boxsize);
220  Image<double> finalStack;
221  auto &particlestack = finalStack();
222 
223  MultidimArray<double> maskNormalize;
224  if (normalize)
225  {
226  createCircle(maskNormalize);
227  }
228 
229  size_t elem = 0;
230  double signDef = -1.0;
231 
232  FileName fnXmd;
233  fnXmd = tsid + formatString(".xmd");
234 
235  for (const auto& row : mdcoords)
236  {
237  row.getValue(MDL_XCOOR, xcoor);
238  row.getValue(MDL_YCOOR, ycoor);
239  row.getValue(MDL_ZCOOR, zcoor);
240 
241  std::vector<MultidimArray<double>> imgVec;
242  MultidimArray<double> singleImage;
243  singleImage.initZeros(1,1,boxsize, boxsize);
244 
245  FileName fnMrc;
246  fnMrc = tsid + formatString("-%i.mrcs", elem);
247 
248  size_t imgNumber = 0;
249  for (size_t idx = 0; idx<tsImages.size(); idx++)
250  {
251  auto tsImg = tsImages[idx];
252  tilt = tsTiltAngles[idx]*PI/180;
253  rot = tsRotAngles[idx]*PI/180;
254  tx = tsShiftX[idx];
255  ty = tsShiftY[idx];
256  int x_2d, y_2d;
257  getCoordinateOnTiltSeries(xcoor, ycoor, zcoor, rot, tilt, tx, ty, x_2d, y_2d);
258 
259  int xlim = x_2d + halfboxsize;
260  int ylim = y_2d + halfboxsize;
261 
262  xinit = x_2d - halfboxsize;
263  yinit = y_2d - halfboxsize;
264 
265  if ((xlim>Xts) || (ylim>Yts) || (xinit<0) || (yinit<0))
266  {
267  continue;
268  }
269 
270  for (int i=yinit; i<ylim; i++)
271  {
272  int ii = i-y_2d;
273  for (int j=xinit; j<xlim; j++)
274  {
275  A2D_ELEM(singleImage, ii+halfboxsize, j+halfboxsize-x_2d) = signValue*A2D_ELEM(tsImages[idx], i, j);
276  }
277  }
278 
279  if (normalize)
280  {
281  double sumVal = 0, sumVal2 = 0, counter = 0;
282 
283  long n = 0;
284  for (int i=0; i<boxsize; i++)
285  {
286  for (int j=0; j<boxsize; j++)
287  {
288  if (DIRECT_MULTIDIM_ELEM(maskNormalize, n)>0)
289  {
290  double val = A2D_ELEM(singleImage, i, j);
291  sumVal += val;
292  sumVal2 += val*val;
293  counter = counter + 1;
294  }
295  n++;
296 
297  }
298  }
299 
300  double mean, sigma2;
301  mean = sumVal/counter;
302  sigma2 = sqrt(sumVal2/counter - mean*mean);
303 
304  for (int i=0; i<boxsize; i++)
305  {
306  for (int j=0; j<boxsize; j++)
307  {
308  A2D_ELEM(singleImage, i, j) -= mean;
309  A2D_ELEM(singleImage, i, j) /= sigma2;
310  }
311  }
312  }
313 
314  imgVec.push_back(singleImage);
315  MDRowVec rowParticleStack;
316  rowParticleStack.setValue(MDL_TSID, tsid);
317  FileName idxstr;
318  idxstr = formatString("%i@",imgNumber+1);
319  rowParticleStack.setValue(MDL_IMAGE, idxstr+fnMrc);
320  rowParticleStack.setValue(MDL_ANGLE_TILT, tsTiltAngles[idx]);
321  rowParticleStack.setValue(MDL_ANGLE_ROT, tsRotAngles[idx]);
322  rowParticleStack.setValue(MDL_SHIFT_X, tsShiftX[idx]);
323  rowParticleStack.setValue(MDL_SHIFT_Y, tsShiftY[idx]);
324  rowParticleStack.setValue(MDL_DOSE, tsDose[idx]);
325 
326  double defU=0, defV=0, defAng=0;
327  if (setCTF)
328  {
329 // if (defocusPositive)
330 // {
331 // signDef = 1.0;
332 // }
333 
334  double Df = (xcoor * cos(tilt) + zcoor* sin(tilt))*sampling*sin(tilt);
335 
336  defU = tsDefU[idx] + signDef*Df;
337  defV = tsDefV[idx] + signDef*Df;
338  }
339  rowParticleStack.setValue(MDL_CTF_DEFOCUSU, defU);
340  rowParticleStack.setValue(MDL_CTF_DEFOCUSV, defV);
341  rowParticleStack.setValue(MDL_CTF_DEFOCUS_ANGLE, tsRotAngles[idx]);
342  rowParticleStack.setValue(MDL_XCOOR, x_2d);
343  rowParticleStack.setValue(MDL_YCOOR, y_2d);
344 
345  mdparticlestack.addRow(rowParticleStack);
346  imgNumber++;
347  }
348  mdparticlestack.write(fnOut+"/"+fnXmd);
349  Nimages = imgVec.size();
350  particlestack.initZeros(Nimages, 1, boxsize, boxsize);
351  for (int k=0; k<Nimages; k++)
352  {
353  singleImage = imgVec[k];
354  for (int i=0; i<boxsize; i++)
355  {
356  for (int j=0; j<boxsize; j++)
357  {
358  NZYX_ELEM(particlestack, k, 0, i, j) = A2D_ELEM(singleImage, i, j);
359  }
360  }
361  }
362 
363 
364 
365  finalStack.write(fnOut+"/"+fnMrc);
366 
367  elem += 1;
368 
369  }
370 
371 
372 }
Rotation angle of an image (double,degrees)
#define A2D_ELEM(v, i, j)
Defocus U (Angstroms)
__host__ __device__ float2 floor(const float2 v)
void read(const FileName &inFile, const std::vector< MDLabel > *desiredLabels=nullptr, bool decomposeStack=true) override
Defocus angle (degrees)
void sqrt(Image< double > &op)
Tilting angle of an image (double,degrees)
void setValue(const MDObject &object) override
Shift for the image in the X axis (double)
void write(const FileName &name="", size_t select_img=ALL_IMAGES, bool isStack=false, int mode=WRITE_OVERWRITE, CastWriteMode castMode=CW_CAST, int _swapWrite=0)
Tilt series id (std::string)
void write(const FileName &outFile, WriteModeMetaData mode=MD_OVERWRITE) const
#define i
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
size_t addRow(const MDRow &row) override
X component (int)
#define DIRECT_MULTIDIM_ELEM(v, n)
#define NZYX_ELEM(v, l, k, i, j)
#define j
Z component (int)
String formatString(const char *format,...)
std::vector< MultidimArray< double > > tsImages
Y component (int)
Shift for the image in the Y axis (double)
void initZeros(const MultidimArray< T1 > &op)
void getCoordinateOnTiltSeries(int xcoor, int ycoor, int zcoor, double &rot, double &tilt, double &tx, double &ty, int &x_2d, int &y_2d)
#define PI
Definition: tools.h:43
Defocus V (Angstroms)
int * n
Name of an image (std::string)
void createCircle(MultidimArray< double > &maskNormalize)
Dose e/A^2 (double)

Member Data Documentation

◆ boxsize

int ProgTomoExtractParticleStacks::boxsize

Is the volume previously masked?

Definition at line 58 of file tomo_extract_particlestacks.h.

◆ defocusPositive

bool ProgTomoExtractParticleStacks::defocusPositive

Definition at line 51 of file tomo_extract_particlestacks.h.

◆ fnCoor

FileName ProgTomoExtractParticleStacks::fnCoor

Definition at line 43 of file tomo_extract_particlestacks.h.

◆ fnOut

FileName ProgTomoExtractParticleStacks::fnOut

Filenames

Definition at line 41 of file tomo_extract_particlestacks.h.

◆ fnTs

FileName ProgTomoExtractParticleStacks::fnTs

Definition at line 42 of file tomo_extract_particlestacks.h.

◆ invertContrast

bool ProgTomoExtractParticleStacks::invertContrast

Definition at line 51 of file tomo_extract_particlestacks.h.

◆ normalize

bool ProgTomoExtractParticleStacks::normalize

Definition at line 51 of file tomo_extract_particlestacks.h.

◆ nthrs

int ProgTomoExtractParticleStacks::nthrs

Definition at line 59 of file tomo_extract_particlestacks.h.

◆ rot

double ProgTomoExtractParticleStacks::rot

Definition at line 49 of file tomo_extract_particlestacks.h.

◆ sampling

double ProgTomoExtractParticleStacks::sampling

Definition at line 55 of file tomo_extract_particlestacks.h.

◆ scaleFactor

double ProgTomoExtractParticleStacks::scaleFactor

Definition at line 55 of file tomo_extract_particlestacks.h.

◆ setCTF

bool ProgTomoExtractParticleStacks::setCTF

Definition at line 51 of file tomo_extract_particlestacks.h.

◆ swapXY

bool ProgTomoExtractParticleStacks::swapXY

Definition at line 51 of file tomo_extract_particlestacks.h.

◆ tilt

double ProgTomoExtractParticleStacks::tilt

Definition at line 49 of file tomo_extract_particlestacks.h.

◆ tsDefAng

std::vector<double> ProgTomoExtractParticleStacks::tsDefAng

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tsDefU

std::vector<double> ProgTomoExtractParticleStacks::tsDefU

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tsDefV

std::vector<double> ProgTomoExtractParticleStacks::tsDefV

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tsDose

std::vector<double> ProgTomoExtractParticleStacks::tsDose

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tsImages

std::vector<MultidimArray<double> > ProgTomoExtractParticleStacks::tsImages

Definition at line 53 of file tomo_extract_particlestacks.h.

◆ tsRotAngles

std::vector<double> ProgTomoExtractParticleStacks::tsRotAngles

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tsShiftX

std::vector<double> ProgTomoExtractParticleStacks::tsShiftX

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tsShiftY

std::vector<double> ProgTomoExtractParticleStacks::tsShiftY

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tsTiltAngles

std::vector<double> ProgTomoExtractParticleStacks::tsTiltAngles

Definition at line 52 of file tomo_extract_particlestacks.h.

◆ tx

double ProgTomoExtractParticleStacks::tx

Definition at line 49 of file tomo_extract_particlestacks.h.

◆ ty

double ProgTomoExtractParticleStacks::ty

Definition at line 49 of file tomo_extract_particlestacks.h.

◆ Xdim

size_t ProgTomoExtractParticleStacks::Xdim

Definition at line 45 of file tomo_extract_particlestacks.h.

◆ Xts

size_t ProgTomoExtractParticleStacks::Xts

Definition at line 48 of file tomo_extract_particlestacks.h.

◆ Ydim

size_t ProgTomoExtractParticleStacks::Ydim

Definition at line 46 of file tomo_extract_particlestacks.h.

◆ Yts

size_t ProgTomoExtractParticleStacks::Yts

Definition at line 48 of file tomo_extract_particlestacks.h.

◆ Zdim

size_t ProgTomoExtractParticleStacks::Zdim

Definition at line 47 of file tomo_extract_particlestacks.h.


The documentation for this class was generated from the following files: