38 addUsageLine(
"Align a set of volumes with a reference volume");
42 defaultComments[
"-o"].addComment(
"Metadata with output Euler angles and shifts");
45 addParamsLine(
" [--odir <outputDir=\".\">] : Output directory");
47 addParamsLine(
" [--frm_parameters <frm_freq=0.25> <frm_shift=10>] : This is using frm method for volume alignment with frm_freq and frm_shift as parameters");
48 addParamsLine(
" [--tilt_values <tilt0=-90> <tiltF=90>] : Optional compensation for the missing wedge. Tested extensively with tilt between [-60 60]");
49 addParamsLine(
" [--mask <mask_filename=\"\">] : Optional mask during the alignment");
50 addExampleLine(
"xmipp_volumeset_align -i volumes.xmd --ref reference.vol -o output.xmd --resume");
76 const char* aligneddata =
"/AlignedSoFar.xmd";
81 void ProgVolumeSetAlign::computeFitness(){
84 const char * randStr = fnRandom.c_str();
86 FileName fnShiftsAngles = fnRandom +
"_angles_shifts.txt";
87 const char * shifts_angles = fnShiftsAngles.c_str();
94 runSystem(
"xmipp_transform_geometry",
formatString(
"-i %s -o %s_currentvolume.vol --rotate_volume euler 0 90 0 -v 0",fnVolume1.c_str(),randStr));
95 fnVolume1 = fnRandom+
"_currentvolume.vol";
98 const char * Volume1 = fnVolume1.c_str();
99 const char * Volume2 = fnVolume2.c_str();
107 const char * mask = this->
fnMask.c_str();
117 for (
int i = 0;
i < 6;
i++){
134 static size_t imageCounter = 0;
137 snprintf(
nameTemplate, 255 ,
"_node%d_img%lu_XXXXXX",
rangen, (
long unsigned int)imageCounter);
double getDoubleParam(const char *param, int arg=0)
#define REPORT_ERROR(nerr, ErrormMsg)
virtual void writeVolumeParameters(const FileName &fnImg)
float Matrix_Angles_Shifts[6]
ProgVolumeSetAlign()
Empty constructor.
Input/Output general error.
void setFileName(const FileName &fn)
void initUniqueName(const char *templateStr="xmippTemp_XXXXXX", const String &fnDir="")
void runSystem(const String &program, const String &arguments, bool useSystem)
void readParams()
Read arguments from command line.
const FileName & getFileName() const
const char * getParam(const char *param, int arg=0)
void processImage(const FileName &fnImg, const FileName &, const MDRow &, MDRow &)
void addExampleLine(const char *example, bool verbatim=true)
virtual void preProcess()
virtual void finishProcessing()
FileName fnREF
Reference volume structure.
virtual void createWorkFiles()
String formatString(const char *format,...)
FileName fnOutDir
Output directory.
bool checkParam(const char *param)
void addUsageLine(const char *line, bool verbatim=false)
int getIntParam(const char *param, int arg=0)
void addParamsLine(const String &line)
void defineParams()
Define params.
std::map< String, CommentList > defaultComments