OSDN Git Service

modifed
author飛松亜美 <tobimatsuami@tobimatsuami-no-MacBook-Pro.local>
Wed, 1 Feb 2017 08:38:01 +0000 (17:38 +0900)
committer飛松亜美 <tobimatsuami@tobimatsuami-no-MacBook-Pro.local>
Wed, 1 Feb 2017 08:38:01 +0000 (17:38 +0900)
bin/wish/ctfDisplay/tclIndex
src/Objects/DataManip/mrcImage/src/lmrcFFTCentralSection.c
src/Objects/DataManip/mrcImage/src/lmrcFFTCentralSection.c~
src/Objects/DataManip/mrcImage/src/lmrcImageFFTSigmaCalc.c [new file with mode: 0644]
src/Objects/DataManip/mrcImage/src/lmrcImageFFTSigmaCalc.c~ [new file with mode: 0644]
src/Tools/mrcImage/mrcMultiFFTCentralSectionsCompare/inc/mrcMultiFFTCentralSectionsCompare.h~ [new file with mode: 0755]
src/Tools/rec3d/mrc2DFTto3DFT/src/mrc2DFTto3DFT.c
src/Tools/rec3d/mrc2DFTto3DFT/src/mrc2DFTto3DFT.c~ [new file with mode: 0755]

index 7877a77..2acb816 100644 (file)
@@ -7,6 +7,7 @@
 # a script that loads the command.
 
 set auto_index(libraryLoad) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(ctfDisplayDefault) [list source [file join $dir ctfDisplay.wish]]
 set auto_index(::CTF2D::Init) [list source [file join $dir ctfDisplay.wish]]
 set auto_index(::CTF2D::ctfInfoSync) [list source [file join $dir ctfDisplay.wish]]
 set auto_index(::CTF2D::ctfInfoUpload) [list source [file join $dir ctfDisplay.wish]]
@@ -34,4 +35,7 @@ set auto_index(::CTF2D::CTFInformationSet) [list source [file join $dir ctfDispl
 set auto_index(::CTF2D::CTFCalculation) [list source [file join $dir ctfDisplay.wish]]
 set auto_index(::CTF2D::ScatteringCalc) [list source [file join $dir ctfDisplay.wish]]
 set auto_index(::CTF2D::ctfInfoSave) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(::CTF2D::ctfInfoSaveDefaultDir) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(::CTF2D::ctfInfoSaveDefault) [list source [file join $dir ctfDisplay.wish]]
 set auto_index(::CTF2D::ctfInfoLoad) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(::CTF2D::dummyFunc) [list source [file join $dir ctfDisplay.wish]]
index 03eeb7a..853ec8b 100644 (file)
@@ -3,9 +3,9 @@
 # The latest update : %G% at %U%
 #
 #%Z% lmrcFFTCentralSection ver %I%
-#%Z% Created by 
+#%Z% Created by
 #%Z%
-#%Z% Usage : lmrcFFTCentralSection 
+#%Z% Usage : lmrcFFTCentralSection
 #%Z% Attention
 #%Z%
 */
@@ -17,174 +17,112 @@ static char __sccs_id[] = "%Z%lmrcFFTCentralSection ver%I%; Date:%D% %Z%";
 #include "Memory.h"
 #include "./lmrcFFTCentralSection.h"
 void
-lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcFFTCentralSectionInfo* linfo, int mode)
-{
-       mrcImageParaTypeReal X3d, Y3d, Z3d;
-       double re3d, im3d, sum;
-
-       for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < ( volFT->HeaderN.z/2.0)-0.5; Z3d++) { 
-       for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d <  (volFT->HeaderN.y/2.0)-0.5; Y3d++) { 
-       for(X3d = 0; X3d <= (volFT->HeaderN.x/2.0)-0.5; X3d++) { 
-        mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
-        mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
-        mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum,  mrcPixelRePart, linfo->InterpMode);
-        if(0<sum) {
-            re3d /= sum;
-               im3d /= sum;
-        } else {
-               re3d = 0;
-               im3d = 0;
-        }
-        mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
-        mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
-       }
-       }
-       }
-}
+lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcImageFFTCentralSectionInfo* linfo ,int mode)
+ {
+   mrcImageParaTypeReal X3d, Y3d, Z3d;
+   double re3d, im3d, sum;
+
+   for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < (volFT->HeaderN.z/2.0)-0.5; Z3d++){
+   for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d < (volFT->HeaderN.y/2.0)-0.5; Y3d++){
+   for(X3d = 0; X3d < (volFT->HeaderN.x/2.0)-0.5; X3d++){
+   mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+   mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+   mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum, mrcPixelRePart, linfo->InterpMode);
+   if(0 < sum){
+     re3d /= sum;
+     im3d /= sum;
+   } else {
+     re3d = 0;
+     im3d = 0;
+   }
+   mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
+   mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
+   }
+   }
+   }
+ }
+
 
-void
-lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* count, mrcImage* template3D, mrcImage* in, double probability, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
-{
-       mrcImageParaTypeReal X2d, Y2d, Z2d;
-       mrcImageParaTypeReal X3d, Y3d, Z3d;
-       int i, n, k0;
-       Matrix3D mat;
-       double re3d, im3d;
-       double re3d0=0, im3d0=0,counter=0;
-       double re2d, im2d;
-       double re2d0, im2d0;
-       double phaseShift;
-       //mrcImage* volFT;
-
-    DEBUGPRINT("SectionPut Start\n");
-
-       if(c==0) {
-               volFT->Header = template3D->Header;
-               count->Header = template3D->Header;
-               mrcInit(volFT, NULL);
-               mrcInit(count, NULL);
-       }
-       c++;
-
-       lmrcImageFFTCenterChange(volFT, 0);
-
-       matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);    
-
-       for(Y2d = -in->HeaderN.y/2.0; Y2d <  in->HeaderN.y/2.0; Y2d++) { 
-       for(X2d = -in->HeaderN.y/2.0; X2d <= in->HeaderN.x/2.0; X2d++) { 
-               X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
-               Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0); 
-               Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
-               if((-volFT->HeaderN.x/2)-0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5 
-                &&(-volFT->HeaderN.y/2)-0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
-                &&(-volFT->HeaderN.z/2)-0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5 ){
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
-               } else {
-                       re3d = 0;
-                       im3d = 0;
-               }
-               phaseShift = 2*M_PI*(-linfo->TransX*X2d/in->HeaderN.x - linfo->TransY*Y2d/in->HeaderN.y);                       
-
-               re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
-               im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-       
-//             DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d); 
-//             DEBUGPRINT4("data:  %f %f <- %f %f \n", re2d, im2d, re3d, im3d); 
-//             DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
-//             DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
-
-               mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
-               mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
-               re3d = re2d+re2d0*probability;
-               im3d = im2d+im2d0*probability;
-               
-        re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
-               im3d0 = re3d*sin(-phaseShift) + im3d*cos(-phaseShift);
-
-               if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5 
-                &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5 
-                &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
-                       mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d0, mrcPixelRePart);
-                       mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d0, mrcPixelImPart);
-               } 
-
-               if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5 
-                &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5 
-                &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
-            mrcPixelDataGet(count, X3d, Y3d, Z3d, &counter, mrcPixelRePart, linfo->InterpMode);
-                       mrcPixelDataSet(count, X3d, Y3d, Z3d, counter+probability, mrcPixelRePart);
-               }
-       }
-       }
-
-       lmrcImageFFTCenterChange(volFT, 0);     
-}
 
-void 
-lmrcFFTCentralSectionGet(mrcImage* out, mrcImage* template, mrcImage* volume, lmrcFFTCentralSectionInfo* linfo, int mode)
+void
+lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* count, mrcImage* template3D, mrcImage* in, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
 {
-       mrcImageParaTypeReal X2d, Y2d, Z2d;
-       mrcImageParaTypeReal X3d, Y3d, Z3d;
-       int i, n, k0;
-       Matrix3D mat;
-       double re3d, im3d;
-       double re2d, im2d;
-       double phaseShift;
-       mrcImage* volFT;
-       double weight;
-
-       if(IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
-               volFT = volume;
-       } else {
-               volFT = memoryAllocate(sizeof(mrcImage), "in lmrcFFTCentralSectionGet");
-               lmrcImageFFT(volFT, volume, 0);
-       }
-
-       out->Header = template->Header;
-       mrcInit(out, NULL);
-
-       weight = 1.0/sqrt(volFT->HeaderN.x*volFT->HeaderN.y*volFT->HeaderN.z)*sqrt(out->HeaderN.x*out->HeaderN.y);
-       
-       lmrcImageFFTCenterChange(volFT, 0);
-
-       matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);    
-
-       for(Y2d = -out->HeaderN.y/2.0; Y2d <  out->HeaderN.y/2.0; Y2d++) { 
-       for(X2d = 0;                   X2d <= out->HeaderN.x/2.0; X2d++) { 
-               X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
-               Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0); 
-               Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
-               if(-volFT->HeaderN.x/2 < X3d && X3d < volFT->HeaderN.x/2 
-                &&-volFT->HeaderN.y/2 < Y3d && Y3d < volFT->HeaderN.y/2 
-                &&-volFT->HeaderN.z/2 < Z3d && Z3d < volFT->HeaderN.z/2) {
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
-               } else {
-                       re3d = 0;
-                       im3d = 0;
-               }
-               phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);                     
-
-               re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
-               im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-       
-               DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d); 
-               DEBUGPRINT4("data:  %f %f <- %f %f \n", re2d, im2d, re3d, im3d); 
-               DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
-               DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
-               mrcPixelDataSet(out, X2d, Y2d, 0, re2d*weight, mrcPixelRePart);
-               mrcPixelDataSet(out, X2d, Y2d, 0, im2d*weight, mrcPixelImPart);
-       }
-       }
-
-       lmrcImageFFTCenterChange(volFT, 0);     
-       lmrcImageFFTCenterChange(out, 0);       
-
-       if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
-               mrcImageFree(volFT, 0);
-               memoryFree(volFT);
-       }
+  mrcImageParaTypeReal X2d, Y2d, Z2d;
+  mrcImageParaTypeReal X3d, Y3d, Z3d;
+  int i, n, k0;
+  Matrix3D mat;
+  double re3d, im3d;
+  double re3d0=0, im3d0=0, counter=0;
+  double re2d, im2d;
+  double re2d0, im2d0;
+  double phaseShift;
+  //mrcImage* volFT;
+
+  DEBUGPRINT("SectionPut Start\n");
+
+  if(c==0){
+    volFT->Header = template3D->Header;
+    count->Header = template3D->Header;
+    mrcInit(volFT, NULL);
+    mrcInit(count, NULL);
+  }
+  c++;
+  lmrcImageFFTCenterChange(volFT, 0);
+
+  matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
+
+  for(Y2d = -in->HeaderN.y/2.0; Y2d < in->HeaderN.y/2.0; Y2d++) {
+  for(X2d = -in->HeaderN.y/2.0; X2d < in->HeaderN.x/2.0; X2d++) {
+      X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
+      Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
+      Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
+
+      if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+       &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+            &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+      } else {
+       re3d = 0;
+       im3d = 0;
+      }
+      phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
+
+      re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
+      im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
+
+      mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
+       mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
+
+      re3d = re2d+re2d0*probability;
+      im3d = im2d+im2d0*probability;
+
+      re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
+      im3d0 = re3d*sin(-phaseShift) - im3d*cos(-phaseShift);
+
+      if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+       &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+            &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+         mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d0, mrcPixelRePart);
+                mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d0, mrcPixelImPart);
+       }
+
+       if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+        &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+             &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+      mrcPixelDataGet(count, X3d, Y3d, Z3d, &counter, mrcPixelRePart, linfo->InterpMode);
+      mrcPixelDataSet(count, X3d, Y3d, Z3d, 0, counter+probability, mrcPixelRePart);
+    }
+  }
+  } 
+
+  lmrcImageFFTCenterChange(volFT, 0);
+
+
+  if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+    mrcImageFree(volFT, 0);
+    memoryFree(volFT);
+  }
 }
index 6cf8959..7898192 100644 (file)
@@ -1,198 +1 @@
-/*
-# %M% %Y% %I%
-# The latest update : %G% at %U%
-#
-#%Z% lmrcFFTCentralSection ver %I%
-#%Z% Created by 
-#%Z%
-#%Z% Usage : lmrcFFTCentralSection 
-#%Z% Attention
-#%Z%
-*/
-static char __sccs_id[] = "%Z%lmrcFFTCentralSection ver%I%; Date:%D% %Z%";
-
-#undef DEBUG
-#include "genUtil.h"
-
-#include "Memory.h"
-#include "./lmrcFFTCentralSection.h"
-void
-lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcFFTCentralSectionInfo* linfo, int mode)
-{
-       mrcImageParaTypeReal X3d, Y3d, Z3d;
-       double re3d, im3d, sum;
-
-//     for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < ( volFT->HeaderN.z/2.0)-0.5; Z3d++) { 
-//     for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d <  (volFT->HeaderN.y/2.0)-0.5; Y3d++) { 
-//     for(X3d = 1; X3d < (volFT->HeaderN.x/2.0)-0.5; X3d++) { 
-               mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
-               mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
-               mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum,  mrcPixelRePart, linfo->InterpMode);
-               if(0<sum) {
-                       re3d /= sum;
-                       im3d /= sum;
-               } else {
-                       re3d = 0;
-                       im3d = 0;
-               }
-               mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
-               mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
-       }
-       }
-       }
-}
-
-void
-lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* count, mrcImage* template3D, mrcImage* in, double probability, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
-{
-       mrcImageParaTypeReal X2d, Y2d, Z2d;
-       mrcImageParaTypeReal X3d, Y3d, Z3d;
-       int i, n, k0;
-       Matrix3D mat;
-       double re3d, im3d;
-       double re3d0, im3d0;
-       double re2d, im2d;
-       double re2d0, im2d0;
-       double phaseShift;
-       //mrcImage* volFT;
-
-    DEBUGPRINT("SectionPut Start\n");
-
-       if(c==0) {
-               volFT->Header = template3D->Header;
-               count->Header = template3D->Header;
-               mrcInit(volFT, NULL);
-               mrcInit(count, NULL);
-       }
-       c++;
-
-       lmrcImageFFTCenterChange(volFT, 0);
-
-       matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);    
-
-       for(Y2d = -in->HeaderN.y/2.0; Y2d <  in->HeaderN.y/2.0; Y2d++) { 
-       for(X2d = 0;                  X2d < in->HeaderN.x/2.0; X2d++) { 
-               X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
-               Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0); 
-               Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
-               if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5 
-                &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
-                &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5 ){
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
-               } else {
-                       re3d = 0;
-                       im3d = 0;
-               }
-               phaseShift = 2*M_PI*(-linfo->TransX*X2d/in->HeaderN.x - linfo->TransY*Y2d/in->HeaderN.y);                       
-
-               re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
-               im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-       
-//             DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d); 
-//             DEBUGPRINT4("data:  %f %f <- %f %f \n", re2d, im2d, re3d, im3d); 
-//             DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
-//             DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
-
-               mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
-               mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
-
-               re3d = re2d+re2d0*probability;
-               im3d = im2d+im2d0*probability;
-
-               re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
-               im3d0 = re3d*sin(-phaseShift) + im3d*cos(-phaseShift);
-       //      DEBUGPRINT4("new data:  %f %f <- %f %f \n", re2d0, im2d0, re3d0, im3d0); 
-
-               if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5 
-                &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5 
-                &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
-                       mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d0, mrcPixelRePart);
-                       mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d0, mrcPixelImPart);
-               } 
-
-               if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5 
-                &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5 
-                &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
-                       mrcPixelDataGet(count, X3d, Y3d, Z3d, &re3d0, mrcPixelRePart, linfo->InterpMode);
-       //      DEBUGPRINT1("count:  %f \n", re3d0); 
-                       mrcPixelDataSet(count, X3d, Y3d, Z3d, re3d0+1, mrcPixelRePart);
-               } 
-       }
-       }
-
-       lmrcImageFFTCenterChange(volFT, 0);     
-/*
-       if(!IsFT(volFT, "lmrcFFTCentralSectionGet", 0)){
-               mrcImageFree(volFT, 0);
-               memoryFree(volFT);
-       }*/
-}
-
-void 
-lmrcFFTCentralSectionGet(mrcImage* out, mrcImage* template, mrcImage* volume, lmrcFFTCentralSectionInfo* linfo, int mode)
-{
-       mrcImageParaTypeReal X2d, Y2d, Z2d;
-       mrcImageParaTypeReal X3d, Y3d, Z3d;
-       int i, n, k0;
-       Matrix3D mat;
-       double re3d, im3d;
-       double re2d, im2d;
-       double phaseShift;
-       mrcImage* volFT;
-       double weight;
-
-       if(IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
-               volFT = volume;
-       } else {
-               volFT = memoryAllocate(sizeof(mrcImage), "in lmrcFFTCentralSectionGet");
-               lmrcImageFFT(volFT, volume, 0);
-       }
-
-       out->Header = template->Header;
-       mrcInit(out, NULL);
-
-       weight = 1.0/sqrt(volFT->HeaderN.x*volFT->HeaderN.y*volFT->HeaderN.z)*sqrt(out->HeaderN.x*out->HeaderN.y);
-       
-       lmrcImageFFTCenterChange(volFT, 0);
-
-       matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);    
-
-       for(Y2d = -out->HeaderN.y/2.0; Y2d <  out->HeaderN.y/2.0; Y2d++) { 
-       for(X2d = 0;                   X2d <= out->HeaderN.x/2.0; X2d++) { 
-               X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
-               Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0); 
-               Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
-               if(-volFT->HeaderN.x/2 < X3d && X3d < volFT->HeaderN.x/2 
-                &&-volFT->HeaderN.y/2 < Y3d && Y3d < volFT->HeaderN.y/2 
-                &&-volFT->HeaderN.z/2 < Z3d && Z3d < volFT->HeaderN.z/2) {
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
-                       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
-               } else {
-                       re3d = 0;
-                       im3d = 0;
-               }
-               phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);                     
-
-               re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
-               im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-       
-               DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d); 
-               DEBUGPRINT4("data:  %f %f <- %f %f \n", re2d, im2d, re3d, im3d); 
-               DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
-               DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
-               mrcPixelDataSet(out, X2d, Y2d, 0, re2d*weight, mrcPixelRePart);
-               mrcPixelDataSet(out, X2d, Y2d, 0, im2d*weight, mrcPixelImPart);
-       }
-       }
-
-       lmrcImageFFTCenterChange(volFT, 0);     
-       lmrcImageFFTCenterChange(out, 0);       
-
-       if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
-               mrcImageFree(volFT, 0);
-               memoryFree(volFT);
-       }
-}
+a
diff --git a/src/Objects/DataManip/mrcImage/src/lmrcImageFFTSigmaCalc.c b/src/Objects/DataManip/mrcImage/src/lmrcImageFFTSigmaCalc.c
new file mode 100644 (file)
index 0000000..6ed2d75
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+# %M% %Y% %I%
+# The latest update : %G% at %U%
+#
+#%Z% lmrcFFTCentralSection ver %I%
+#%Z% Created by
+#%Z%
+#%Z% Usage : lmrcFFTCentralSection
+#%Z% Attention
+#%Z%
+*/
+static char __sccs_id[] = "%Z%lmrcImageFFTSigmaCalc ver%I%; Date:%D% %Z%";
+
+#undef DEBUG
+#include "genUtil.h"
+
+#include "Memory.h"
+#include "./lmrcImageFFTSigmaCalc.h"
+void
+lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcImageFFTCentralSectionInfo* linfo ,int mode)
+ {
+   mrcImageParaTypeReal X3d, Y3d, Z3d;
+   double re3d, im3d, sum;
+
+   for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < (volFT->HeaderN.z/2.0)-0.5; Z3d++){
+   for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d < (volFT->HeaderN.y/2.0)-0.5; Y3d++){
+   for(X3d = 0; X3d < (volFT->HeaderN.x/2.0)-0.5; X3d++){
+   mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+   mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+   mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum, mrcPixelRePart, linfo->InterpMode);
+   if(0 < sum){
+     re3d /= sum;
+     im3d /= sum;
+   } else {
+     re3d = 0;
+     im3d = 0;
+   }
+   mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
+   mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
+   }
+   }
+   }
+ }
+
+
+
+void
+lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* out, mrcImage* count, mrcImage* template3D, mrcImage* in, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
+{
+  mrcImageParaTypeReal X2d, Y2d, Z2d;
+  mrcImageParaTypeReal X3d, Y3d, Z3d;
+  int i, n, k0;
+  Matrix3D mat;
+  double re3d, im3d;
+  double re3d0=0, im3d0=0, counter=0;
+  double re2d, im2d;
+  double re2d0, im2d0;
+  double reSigma=0, imSigma=0;
+  double phaseShift;
+  //mrcImage* volFT;
+
+  DEBUGPRINT("SectionPut Start\n");
+
+  if(c==0){
+    volFT->Header = template3D->Header;
+    count->Header = template3D->Header;
+    mrcInit(volFT, NULL);
+    mrcInit(count, NULL);
+  }
+  c++;
+  lmrcImageFFTCenterChange(volFT, 0);
+
+  matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
+
+  for(Y2d = -in->HeaderN.y/2.0; Y2d < in->HeaderN.y/2.0; Y2d++) {
+  for(X2d = -in->HeaderN.y/2.0; X2d < in->HeaderN.x/2.0; X2d++) {
+      X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
+      Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
+      Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
+
+      if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+       &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+            &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+      } else {
+       re3d = 0;
+       im3d = 0;
+      }
+      phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
+
+      re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
+      im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
+
+      mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
+       mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
+
+      re3d = re2d+re2d0*probability;
+      im3d = im2d+im2d0*probability;
+
+      re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
+      im3d0 = re3d*sin(-phaseShift) - im3d*cos(-phaseShift);
+
+      reSigma = probability * (re2d0 - re3d) * (re2d0 - re3d);
+      imSigma = probability * (im2d0 - im3d) * (im2d0 - im3d);
+
+      if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+       &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+            &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+         mrcPixelDataSet(Sigma, X3d, Y3d, Z3d, reSigma, mrcPixelRePart);
+       }
+
+       if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+        &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+             &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+      mrcPixelDataGet(count, X3d, Y3d, Z3d, &counter, mrcPixelRePart, linfo->InterpMode);
+      mrcPixelDataSet(count, X3d, Y3d, Z3d, 0, counter+probability, mrcPixelRePart);
+    }
+  }
+  }
+
+  lmrcImageFFTCenterChange(volFT, 0);
+
+
+  if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+    mrcImageFree(volFT, 0);
+    memoryFree(volFT);
+  }
+}
diff --git a/src/Objects/DataManip/mrcImage/src/lmrcImageFFTSigmaCalc.c~ b/src/Objects/DataManip/mrcImage/src/lmrcImageFFTSigmaCalc.c~
new file mode 100644 (file)
index 0000000..b542e4a
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+# %M% %Y% %I%
+# The latest update : %G% at %U%
+#                                                                                                                                                                                                                                             
+#%Z% lmrcFFTCentralSection ver %I%                                                                                                                                                                                                            
+#%Z% Created by                                                                                                                                                                                                                               
+#%Z%                                                                                                                                                                                                                                          
+#%Z% Usage : lmrcFFTCentralSection                                                                                                                                                                                                            
+#%Z% Attention                                                                                                                                                                                                                                
+#%Z%                                                                                                                                                                                                                                          
+*/
+static char __sccs_id[] = "%Z%lmrcFFTCentralSection ver%I%; Date:%D% %Z%";
+
+#undef DEBUG
+#include "genUtil.h"
+
+#include "Memory.h"
+#include "./lmrcFFTCentralSection.h"
+
+void
+lmrcFFTCentralSectionGet(mrcImage* out, mrcImage* template, mrcImage* volume, lmrcFFTCentralSectionInfo* linfo, int mode)
+{
+  mrcImageParaTypeReal X2d, Y2d, Z2d;
+  mrcImageParaTypeReal X3d, Y3d, Z3d;
+  int i, n, k0;
+  Matrix3D mat;
+  double re3d, im3d;
+  double re2d, im2d;
+  double phaseShift;
+  mrcImage* volFT;
+  double weight;
+
+  if(IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+    volFT = volume;
+  } else {
+    volFT = memoryAllocate(sizeof(mrcImage), "in lmrcFFTCentralSectionGet");
+    lmrcImageFFT(volFT, volume, 0);
+  }
+
+  out->Header = template->Header;
+  mrcInit(out, NULL);
+
+  weight = 1.0/sqrt(volFT->HeaderN.x*volFT->HeaderN.y*volFT->HeaderN.z)*sqrt(out->HeaderN.x*out->HeaderN.y);
+
+  lmrcImageFFTCenterChange(volFT, 0);
+
+  matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
+
+  for(Y2d = -out->HeaderN.y/2.0; Y2d <  out->HeaderN.y/2.0; Y2d++) {
+    for(X2d = 0;                   X2d <= out->HeaderN.x/2.0; X2d++) {
+      X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);                                                                                                                                                                   
+      Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);                                                                                                                                                                   
+      Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);                                                                                                                                                                   
+
+      if(-volFT->HeaderN.x/2 < X3d && X3d < volFT->HeaderN.x/2
+                 &&-volFT->HeaderN.y/2 < Y3d && Y3d < volFT->HeaderN.y/2
+        &&-volFT->HeaderN.z/2 < Z3d && Z3d < volFT->HeaderN.z/2) {
+       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+       mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+      } else {
+       re3d = 0;
+       im3d = 0;
+      }
+      phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
+
+      re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
+      im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
+
+      DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d);
+      DEBUGPRINT4("data:  %f %f <- %f %f \n", re2d, im2d, re3d, im3d);
+      DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
+      DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
+      mrcPixelDataSet(out, X2d, Y2d, 0, re2d*weight, mrcPixelRePart);
+      mrcPixelDataSet(out, X2d, Y2d, 0, im2d*weight, mrcPixelImPart);
+    }
+  }
+
+  lmrcImageFFTCenterChange(volFT, 0);
+  lmrcImageFFTCenterChange(out, 0);
+
+  if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+    mrcImageFree(volFT, 0);
+    memoryFree(volFT);
+  }
+}
+
+
+
diff --git a/src/Tools/mrcImage/mrcMultiFFTCentralSectionsCompare/inc/mrcMultiFFTCentralSectionsCompare.h~ b/src/Tools/mrcImage/mrcMultiFFTCentralSectionsCompare/inc/mrcMultiFFTCentralSectionsCompare.h~
new file mode 100755 (executable)
index 0000000..c97270a
--- /dev/null
@@ -0,0 +1,108 @@
+#ifndef MRCMULTIFFTCENTRALSECTIONSCOMPARE_H
+#define MRCMULTIFFTCENTRALSECTIONSCOMPARE_H
+#include <stdio.h>
+#include <stdlib.h>
+
+#define OPTION_FLAG     '-'
+#define OPTION_FLAG_POS (0)
+#define OPTION_POS      (1)
+
+
+
+
+typedef struct mrcMultiFFTCentralSectionsCompareInfo {
+    long flagRedirect;
+
+    long flagIn2D;
+    char* In2D;
+    FILE* fptIn2D;
+    
+    long flagIn3D;
+    char* In3D;
+    FILE* fptIn3D;
+    
+    long flagvolPath;
+    char* volPath;
+    
+    long flagPrior;
+    char* Prior;
+    FILE* fptPrior;
+    
+    long flagPriPath;
+    char* PriPath;
+    
+    long flagEulerMode;
+    char* EulerMode;
+    
+    long flagRot1Start;
+    float Rot1Start;
+    
+    long flagRot1End;
+    float Rot1End;
+    
+    long flagRot1Delta;
+    float Rot1Delta;
+    
+    long flagRot2Start;
+    float Rot2Start;
+    
+    long flagRot2End;
+    float Rot2End;
+    
+    long flagRot2Delta;
+    float Rot2Delta;
+    
+    long flagRot3Start;
+    float Rot3Start;
+    
+    long flagRot3End;
+    float Rot3End;
+    
+    long flagRot3Delta;
+    float Rot3Delta;
+    
+    long flagTransX;
+    float TransX;
+    
+    long flagTransY;
+    float TransY;
+    
+    long flagInterpMode;
+    long InterpMode;
+    
+    long flagOut1;
+    char* Out1;
+    FILE* fptOut1;
+    
+    long flagconfigFile;
+    char* configFile;
+    FILE* fptconfigFile;
+    
+    long flagLcalcmode;
+    long Lcalcmode;
+    
+    long flagLmode1;
+    float Lmode1;
+    
+    long flagLmode2;
+    float Lmode2;
+    
+    long flagmode;
+    long mode;
+    
+} mrcMultiFFTCentralSectionsCompareInfo;
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void argCheck(mrcMultiFFTCentralSectionsCompareInfo* info, int argc, char* avgv[]);
+extern void khorosInit(int argc, char* avgv[]);
+extern void init0(mrcMultiFFTCentralSectionsCompareInfo* info);
+extern void init1(mrcMultiFFTCentralSectionsCompareInfo* info);
+extern void usage(char* usage);
+extern void additionalUsage(void);
+extern void htmlBeforeUsage(char* usage);
+extern void htmlAfterUsage(char* usage);
+#ifdef __cplusplus
+};
+#endif
+#endif /* MRCMULTIFFTCENTRALSECTIONSCOMPARE_H */
index f6d0997..8cc6f8d 100755 (executable)
@@ -1,18 +1,18 @@
 /*
-# mrc2DFTto3DFT : $Revision$  
-# $Date$ 
+# mrc2DFTto3DFT : $Revision$
+# $Date$
 # Created by $Author$
 # Usage : mrc2DFTto3DFT
 # Attention
 #   $Loccker$
-#      $State$ 
+#      $State$
 #
 */
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
 #include <string.h>
-#include <math.h>                  
+#include <math.h>
 #define GLOBAL_DECLARATION
 #include "../inc/config.h"
 
@@ -35,16 +35,17 @@ typedef enum lmrc2DFTto3DFTMode {
 */
 
 int
-main(int argc, char* argv[]) 
+main(int argc, char* argv[])
 {
        mrc2DFTto3DFTInfo info;
     lmrcFFTCentralSectionInfo linfo;
     char file2d[256], file3d[256], buf[256];
     char filename[]="hogehoge";
     double probability;
-    mrcImage temp3d, in ,count;
+    mrcImage temp3d, in ,count, Sigma;
     mrcImage* Inlist;
     mrcImage Out;
+               //書き込み mrcImage Sigma;
     int num,ref,i=0;
     int size;
     clock_t start,end;
@@ -65,7 +66,7 @@ main(int argc, char* argv[])
     linfo.TransX = 0.0;
     linfo.TransY = 0.0;
     linfo.InterpMode = info.InterpMode;
-    
+
     Out.Header = temp3d.Header;
     count.Header = temp3d.Header;
     mrcInit(&Out, NULL);
@@ -94,8 +95,28 @@ main(int argc, char* argv[])
  //       DEBUGPRINT2("in Header:  %d %d \n", Inlist[num].HeaderN.x, Inlist[num].HeaderN.y)
         lmrcImageFFTCentralSectionPut(&Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
     }
+
+
+
+
 //    lmrcImageFFTRhoFilter(&Out, &count, &linfo, info.mode);
     mrcFileWrite(&Out, info.Out, "in main", 0);
+
+
+
+
+               /*書き込み
+               lmrcImageFFTSigmaCalc(&Sigma, &Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
+                */
+
+
+
+
+    //////    mrcFileWrite(&Sigma, info.Out, "in main", 0);
+
+
+
+
     free(Inlist);
     end = clock();
     DEBUGPRINT1("time %f\n",(double)(end-start)/CLOCKS_PER_SEC);
diff --git a/src/Tools/rec3d/mrc2DFTto3DFT/src/mrc2DFTto3DFT.c~ b/src/Tools/rec3d/mrc2DFTto3DFT/src/mrc2DFTto3DFT.c~
new file mode 100755 (executable)
index 0000000..602083e
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+# mrc2DFTto3DFT : $Revision$  
+# $Date$ 
+# Created by $Author$
+# Usage : mrc2DFTto3DFT
+# Attention
+#   $Loccker$
+#      $State$ 
+#
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <string.h>
+#include <math.h>                  
+#define GLOBAL_DECLARATION
+#include "../inc/config.h"
+
+#define DEBUG
+#include "genUtil.h"
+#include "lmrcFFTCentralSection.h"
+//#include "Class.h"
+
+/*
+Example:
+typedef struct lmrc2DFTto3DFTInfo {
+       float a;
+       int   b;
+} lmrc2DFTto3DFTInfo;
+
+typedef enum lmrc2DFTto3DFTMode {
+       a=0,
+       b=1
+} lmrc2DFTto3DFTMode;
+*/
+
+int
+main(int argc, char* argv[]) 
+{
+       mrc2DFTto3DFTInfo info;
+    lmrcFFTCentralSectionInfo linfo;
+    char file2d[256], file3d[256], buf[256];
+    char filename[]="hogehoge";
+    double probability;
+    mrcImage temp3d, in ,count, Sigma;
+    mrcImage* Inlist;
+    mrcImage Out;
+    int num,ref,i=0;
+    int size;
+    clock_t start,end;
+    FILE* fp;
+
+
+    start = clock();
+
+       init0(&info);
+    argCheck(&info, argc, argv);
+    init1(&info);
+       DEBUGPRINT("Program Start\n");
+
+    mrcFileRead(&temp3d, info.temp3d, "in main", 0);
+   // mrcFileRead(&Out, info.In3D, "in main", 0);
+
+    int c=0;
+    linfo.TransX = 0.0;
+    linfo.TransY = 0.0;
+    linfo.InterpMode = info.InterpMode;
+    
+    Out.Header = temp3d.Header;
+    count.Header = temp3d.Header;
+    mrcInit(&Out, NULL);
+    mrcInit(&count, NULL);
+
+    while(fgets(buf, 256, info.fptIn) != NULL){
+        size ++;
+    }
+    rewind(info.fptIn);
+
+    Inlist = malloc(sizeof(mrcImage)*size);
+    if(Inlist ==NULL){
+        printf("malloc error\n");
+    }
+    num =0;
+    while(fscanf(info.fptIn,"%s %s %lf %lf %lf %s %d %lf",file2d, linfo.EulerMode, &linfo.Rot1, &linfo.Rot2, &linfo.Rot3, file3d, &num, &probability) != EOF){
+        if((ref=strcmp(filename,file2d))!= 0){
+   //     DEBUGPRINT1("Num %d\n", i);
+        mrcFileRead(&Inlist[i], file2d, "in main", 0);
+        strcpy(filename,file2d);
+//        DEBUGPRINT2("filename %s %s\n",filename, file2d);
+        i++;
+        }
+        num =i-1;
+ //       DEBUGPRINT1("Num %d\n", i);
+ //       DEBUGPRINT2("in Header:  %d %d \n", Inlist[num].HeaderN.x, Inlist[num].HeaderN.y)
+        lmrcImageFFTCentralSectionPut(&Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
+    }
+
+
+
+
+
+
+
+
+
+
+    /*
+while(fscanf(info.fptIn,"%s %s %lf %lf %lf %s %d %lf",file2d, linfo.EulerMode, &linfo.Rot1, &linfo.Rot2, &linfo.Rot3, file3d, &num, &pr\
+obability) != EOF){
+        if((ref=strcmp(filename,file2d))!= 0){ 
+        mrcFileRead(&Sigma, file2d, "in main", 0);
+        strcpy(filename,file2d);
+i++;
+        }
+        num =i-1;
+        lmrcImageFFTSigmaCalc(&Sigma, &Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
+    }
+
+     */
+
+
+
+
+
+
+
+
+//    lmrcImageFFTRhoFilter(&Out, &count, &linfo, info.mode);
+    mrcFileWrite(&Out, info.Out, "in main", 0);
+    //////    mrcFileWrite(&Sigma, info.Out, "in main", 0);
+    free(Inlist);
+    end = clock();
+    DEBUGPRINT1("time %f\n",(double)(end-start)/CLOCKS_PER_SEC);
+       exit(EXIT_SUCCESS);
+}
+
+void
+additionalUsage()
+{
+       fprintf(stderr, "----- Additional Usage -----\n");
+}