2 # ctfDeterminationByBayes : $Revision$
5 # Usage : ctfDeterminationByBayes
15 #define GLOBAL_DECLARATION
16 #include "../inc/config.h"
19 #include "ctffuncforbayes.h"
24 #include "ctfDeterminationByBayes.h"
29 typedef struct lctfDeterminationByBayesInfo {
32 } lctfDeterminationByBayesInfo;
34 typedef enum lctfDeterminationByBayesMode {
37 } lctfDeterminationByBayesMode;
41 main(int argc, char* argv[])
44 ctfDeterminationByBayesInfo info;
46 eosBayesDistributionInfo llinfo;
50 intensityforbayes intensity;
51 defocuslikelihoodforbayes likelihood;
56 argCheck(&info, argc, argv);
59 DEBUGPRINT("Program Start\n");
64 leosBayesInit(&out, info.numDistribution, info.numLikelihood, info.mode);
65 eosBayesCondition(info.fptIn, &out, &llinfo, 0);
66 eosBayesPriorWrite(info.fptOut2, &out,0);
67 DistributionChangeCheck(&out, 0);
70 /*For CTF and intensity*/
71 ctfforbayesInit(info.fptIn2,&ctf,0);
72 intensityforbayesInit(&intensity,info.flagIn4,ctf.n,0);
73 spatialfrequencyRead(info.fptIn2,&ctf,info.rmax,info.rmin,0);
74 for(i=0;i<info.flagIn4;i++){
75 intensityRead(info.In4[i],&intensity,i,0);
77 ctfInfoRead(info.fptIn3,&ctfinfo,"",0);
78 DEBUGPRINT4("kV:%f Cs:%f Ain:%f ctfMode:%ld\n",ctfinfo.kV,ctfinfo.Cs,ctfinfo.Ain,ctfinfo.mode);
79 DEBUGPRINT1("flagIn4:%ld\n",info.flagIn4);
80 DEBUGPRINT("ctf start\n");
81 ctfFunctionforbayes(&ctf, &intensity,out.likelihood,&ctfinfo,out.numLikelihood,0,1);
84 defocusLikelihoodInit(&likelihood,out,0);
86 /*defocus estimation*/
87 for(i=0;i<info.flagIn4;i++){
89 DEBUGPRINT("set intensity\n");
90 intensitySet(&ctf,intensity,i,0);
93 ctfforbayescheckintensity(ctf,out.likelihood,out.numLikelihood,i,1);
97 DEBUGPRINT("likelihood start\n");
98 defocusLikelihood(&likelihood,ctf,&out,i,0);
99 LikelihoodChangeCheck(&out,i,0);
102 DEBUGPRINT("estimate start\n");
103 eosBayesEstimation(&out,0);
104 DistributionChangeCheck(&out,1);
107 DEBUGPRINT("change start\n");
108 eosBayesPosteriortoPrior(&out,0);
111 DEBUGPRINT("loop end\n");
113 eosBayesPriorWrite(info.fptOut,&out,0);
121 fprintf(stderr, "----- Additional Usage -----\n");