OSDN Git Service

modified: include/lmrcImageRadialDistribution.h v2.3.44p0258
authorTakuo Yasunaga <yasunaga@bio.kyutech.ac.jp>
Tue, 18 Oct 2016 05:13:01 +0000 (14:13 +0900)
committerTakuo Yasunaga <yasunaga@bio.kyutech.ac.jp>
Tue, 18 Oct 2016 05:13:01 +0000 (14:13 +0900)
modified:   src/Objects/DataManip/mrcImage/src/lmrcImageRadialDistribution.c
modified:   src/Objects/DataManip/mrcImage/src/lmrcImageRadialDistribution.h

modified:   src/Tools/filter/mrc2png/src/mrc2png.c

20 files changed:
bin/wish/Display2/tclIndex
include/lmrcImageHoleFilling.h
include/lmrcImageRadialDistribution.h
src/Objects/DataManip/mrcImage/doc/mrcImage.html
src/Objects/DataManip/mrcImage/src/lmrcImageHoleFilling.h
src/Objects/DataManip/mrcImage/src/lmrcImageRadialDistribution.c
src/Objects/DataManip/mrcImage/src/lmrcImageRadialDistribution.h
src/Tools/Config/Define.inc
src/Tools/Makefile [changed mode: 0644->0755]
src/Tools/filter/mrc2png/src/mrc2png.c
src/Tools/mrcImage/mrcImageRadialDistribution/Config/OptionControlFile
src/Tools/mrcImage/mrcImageRadialDistribution/inc/mrcImageRadialDistribution.h
src/Tools/mrcImage/mrcImageRadialDistribution/src/argCheck.c
src/Tools/mrcImage/mrcImageRadialDistribution/src/init.c
src/Tools/mrcImage/mrcImageRadialDistribution/src/mrcImageRadialDistribution.c
src/Tools/mrcImage/mrcImageRadialDistribution/src/mrcImageRadialDistribution.html
src/Tools/mrcImage/mrcImageRadialDistribution/src/mrcImageRadialDistribution.pane
src/Tools/mrcImage/mrcImageRadialDistribution/src/test/Makefile [new file with mode: 0644]
src/Tools/mrcImage/mrcImageRadialDistribution/src/test/data [new symlink]
src/Tools/mrcImage/mrcImageRadialDistribution/src/usage.c

index ddbd17b..c4c3f5a 100644 (file)
@@ -54,6 +54,7 @@ set auto_index(menuMultiRoiOKCommand) [list source [file join $dir Display2MenuR
 set auto_index(menuMultiRoiAllDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
 set auto_index(menuMultiRoiDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
 set auto_index(menuEditCreate) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
 set auto_index(layerLineRecreate) [list source [file join $dir LayerLineUtil.wish]]
 set auto_index(layerLineCreate) [list source [file join $dir LayerLineUtil.wish]]
 set auto_index(layerLineClear) [list source [file join $dir LayerLineUtil.wish]]
@@ -136,4 +137,3 @@ set auto_index(sectionClearAll) [list source [file join $dir SectionUtil.wish]]
 set auto_index(sectionClear) [list source [file join $dir SectionUtil.wish]]
 set auto_index(sectionChange) [list source [file join $dir SectionUtil.wish]]
 set auto_index(unitCellRecreate) [list source [file join $dir UnitCell.wish]]
-set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
index 0230fc0..51ffbc3 100644 (file)
@@ -29,7 +29,7 @@ typedef struct lmrcImageHoleFillingInfo {
        mrcImage areaBlack;
        mrcImage labelWhite;
        mrcImage labelBlack;
-       mrcImage reversal;
+       mrcImage ToneReverse;
 
 } lmrcImageHoleFillingInfo;
 
index e064b5b..f89d497 100644 (file)
@@ -19,6 +19,7 @@
 typedef struct lmrcImageRadialDistributionInfo {
        float Cx;
        float Cy;
+       float Cz;
        int flagAverage;
        int flagAzimuth;
        int NAzimuth;
index 68ff019..1c2ba3c 100755 (executable)
 <H2>Information from source codes</H2>
 </A>
 <PRE>
-../src/fftn.c:
-
-../src/lmrcFETnormalizeBySD.c:
-
-../src/lmrcFFTCentralSection.c:
-
-../src/lmrcFFTCentralSectionCompare.c:
-
-../src/lmrcFFTCentralSectionCompareInfoWrite.c:
-
-../src/lmrcFFTCentralSectionsGet.c:
-
-../src/lmrcFFTExpression.c:
-
-../src/lmrcFFTFGconj.c:
-
-../src/lmrcFFTFxG.c:
-
-../src/lmrcFFTInfo.c:
-
-../src/lmrcImage3DPad.c:
-
-../src/lmrcImage3DWindowing.c:
-
-../src/lmrcImageAddValue.c:
-
-../src/lmrcImageAsProbability.c:
-
-../src/lmrcImageAverage.c:
-
-../src/lmrcImageBandPassFilter.c:
-
-../src/lmrcImageBilateralFilter.c:
-
-../src/lmrcImageBinarization.c:
-
-../src/lmrcImageBottomHatTransform.c:
-
-../src/lmrcImageBoundaryInfo.c:
-
-../src/lmrcImageCTFCompensation.c:
-
-../src/lmrcImageCTFDetermination.c:
-
-../src/lmrcImageCTFObservation.c:
-
-../src/lmrcImageCTFSN.c:
-
-../src/lmrcImageCVE.c:
-
-../src/lmrcImageCalcArea.c:
-
-../src/lmrcImageCenterGet.c:
-
-../src/lmrcImageCentre.c:
-
-../src/lmrcImageClosing.c:
-
-../src/lmrcImageClusterAnalysis.c:
-
-../src/lmrcImageCommonLine.c:
-
-../src/lmrcImageConnection.c:
-
-../src/lmrcImageConnectivityNumberCalc.c:
-
-../src/lmrcImageContourSurface.c:
-
-../src/lmrcImageContraction.c:
-
-../src/lmrcImageCorrelation.c:
-     $lmrcImageEuclidDistanceCalc:  Calculate Euclid distance between two images $
-     $arg: in1:  input mrcImage1 $
-     $arg: in2:  input mrcImage2 $
-     $arg: mode: input int $
-     $mode: 0 Sum of SQR $
-     $mode: 1 Distance $
-     $return: EuclidDistance $
-
-../src/lmrcImageCorrelationPVM.c:
-
-../src/lmrcImageCorrelationWithCTFCompensation.c:
-
-../src/lmrcImageCorrelationinSpace.c:
-
-../src/lmrcImageCrystalCreate.c:
-
-../src/lmrcImageDataMaxAndMinGetByImage.c:
-
-../src/lmrcImageDataStraightCopy.c:
-
-../src/lmrcImageDeconvolution.c:
-
-../src/lmrcImageDensity.c:
-
-../src/lmrcImageDensityInverse.c:
-
-../src/lmrcImageDensityNormalizationByImage.c:
-
-../src/lmrcImageDifferential.c:
-
-../src/lmrcImageDilation.c:
-
-../src/lmrcImageDistanceConversion.c:
-
-../src/lmrcImageEdge.c:
-
-../src/lmrcImageEdgeAverage.c:
-
-../src/lmrcImageEdgeEnhancement.c:
-
-../src/lmrcImageErosion.c:
-
-../src/lmrcImageFFT.c:
-
-../src/lmrcImageFOMCalc.c:
-
-../src/lmrcImageFeatureCalc.c:
-
-../src/lmrcImageFeatureExtraction.c:
-
-../src/lmrcImageFeatureExtractionCoOccurrence.c:
-
-../src/lmrcImageFeatureExtractionRunLength.c:
-
-../src/lmrcImageFilterCreate.c:
-
-../src/lmrcImageFirstNoiseReductionByRelaxation.c:
-
-../src/lmrcImageFloating.c:
-
-../src/lmrcImageFourierNeighborCorrelation.c:
-
-../src/lmrcImageFourierPowerSpectrum.c:
-
-../src/lmrcImageFourierShellCorrelation.c:
-
-../src/lmrcImageHighPassFilter.c:
-
-../src/lmrcImageHighlighting.c:
-
-../src/lmrcImageHoughTransform.c:
-
-../src/lmrcImageLabeling.c:
-
-../src/lmrcImageLocalMaximumValuesFind.c:
-
-../src/lmrcImageLogicalOperation.c:
-
-../src/lmrcImageLowPassFilter.c:
-
-../src/lmrcImageMasking.c:
-
-../src/lmrcImageMaxDataGet.c:
-
-../src/lmrcImageMirroring.c:
-     $lmrcImageMirroring: (mrcImage* out, mrcImage* in, lmrcImageMirroring mode) $
-
-../src/lmrcImageModeChange.c:
-
-../src/lmrcImageModelCreate.c:
-
-../src/lmrcImageMontageCreate.c:
-
-../src/lmrcImageMorphology.c:
-
-../src/lmrcImageMove.c:
-
-../src/lmrcImageMultiCTFCompensation.c:
-
-../src/lmrcImageMultiplying.c:
-
-../src/lmrcImageNegativeLaplacian.c:
-
-../src/lmrcImageNoiseCreate.c:
-
-../src/lmrcImageNormalizing.c:
-
-../src/lmrcImageOneLineSimilarityCalc.c:
-
-../src/lmrcImageOpening.c:
-
-../src/lmrcImagePad.c:
-
-../src/lmrcImagePartImageSegmentation.c:
-
-../src/lmrcImagePattersonFunctionCalc.c:
-
-../src/lmrcImagePixelSummationOfProbabilityGetByImage.c:
-
-../src/lmrcImagePosterization.c:
-
-../src/lmrcImagePrewitt.c:
-
-../src/lmrcImageProjection.c:
-
-../src/lmrcImageProportionalDensityLevelSetByImage.c:
-
-../src/lmrcImageROI2D.c:
-
-../src/lmrcImageROI3D.c:
-
-../src/lmrcImageROInotChangeHeaderLength.c:
-
-../src/lmrcImageRadialDistribution.c:
-
-../src/lmrcImageRhoFiltering.c:
-
-../src/lmrcImageRoberts.c:
-
-../src/lmrcImageRotation.c:
-
-../src/lmrcImageSSDA.c:
-
-../src/lmrcImageSamplingUnitChange.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxation.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationDijDimensionSet.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationDijValueCalculate.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationDijValueSet.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationQValueSet.c:
-
-../src/lmrcImageSecondNoiseReductionByRelaxationRValueSet.c:
-
-../src/lmrcImageShapePCA.c:
-
-../src/lmrcImageShift.c:
-
-../src/lmrcImageShrink.c:
-
-../src/lmrcImageSigmaCalculate.c:
-
-../src/lmrcImageSinogram.c:
-
-../src/lmrcImageSinogramCorrelation.c:
-
-../src/lmrcImageSinogramFFT.c:
-
-../src/lmrcImageSmoothing.c:
-
-../src/lmrcImageSobel.c:
-
-../src/lmrcImageSolventFlattening.c:
-
-../src/lmrcImageSpatialFrequencyFilter.c:
-
-../src/lmrcImageSphere.c:
-
-../src/lmrcImageSplit.c:
-
-../src/lmrcImageStack.c:
-
-../src/lmrcImageStudentCalculate.c:
-
-../src/lmrcImageSubtractionCalc.c:
-
-../src/lmrcImageSummationCalculate.c:
-
-../src/lmrcImageSurfaceAreaCalc.c:
-
-../src/lmrcImageSymmetryFind.c:
-
-../src/lmrcImageTfunction.c:
-
-../src/lmrcImageToneReversal.c:
-
-../src/lmrcImageTopHatTransform.c:
-
-../src/lmrcImageTrans.c:
-
-../src/lmrcImageTransformDescartesIntoPolar.c:
-
-../src/lmrcImageTranspose.c:
-
-../src/lmrcImageTriming.c:
-
-../src/lmrcImageUnsharpening.c:
-
-../src/lmrcImageVolumeCalc.c:
-
-../src/lmrcImageWindowing.c:
-
-../src/lmrcImagesFTest.c:
-
-../src/lmrcImagesStatDataGet.c:
-
-../src/lmrcImagesTTest.c:
-
-../src/lmrcImagesVarianceAnalysis.c:
-
-../src/lmrcImagesVarianceMap.c:
-
-../src/lmrcMultiFFTCentralSectionsCompare.c:
-
-../src/lmrcSinogramFET.c:
-
-../src/lmrcSinogramFETPCA.c:
-
-../src/lmrcSinogramFETcalcWeight.c:
-
-../src/lmrcSinogramFETcorrelationMap.c:
-
-../src/lmrcSinogramFETnormalizedMap.c:
-
-../src/lmrcSinogramFETreferredCorrelation.c:
-
-../src/lmrcSinogramFETsmoothParameterMatching.c:
-
-../src/mrcImageCheckFFT.c:
-
-../src/mrcImageCheckSameSize.c:
-
-../src/mrcImageCopy.c:
-
-../src/mrcImageDataSet.c:
-
-../src/mrcImageError.c:
-
-../src/mrcImageGet.c:
-
-../src/mrcImageGetPixels.c:
-
-../src/mrcImageInfo.c:
-
-../src/mrcImageInit.c:
-
-../src/mrcImageOperation.c:
-
-../src/mrcImagePVM.c:
-
-../src/mrcImagePrint.c:
-
-../src/mrcImageRead.c:
-
-../src/mrcImageSectionGet.c:
-
-../src/mrcImageSectionSet.c:
-
-../src/mrcImageSet.c:
-
-../src/mrcImageTailer.c:
-
-../src/mrcImageToIntImage.c:
-
-../src/mrcImageUtil.c:
-
-../src/mrcImageUtilityforVariance.c:
-
-../src/mrcImageWrite.c:
-
-../src/mrcImageWrite2.c:
-
-../src/mrcImagefuncmin.c:
-
-../src/mrcRefUtil.c:
 </PRE>
 <HR>
 <A NAME="include">
index 0230fc0..51ffbc3 100644 (file)
@@ -29,7 +29,7 @@ typedef struct lmrcImageHoleFillingInfo {
        mrcImage areaBlack;
        mrcImage labelWhite;
        mrcImage labelBlack;
-       mrcImage reversal;
+       mrcImage ToneReverse;
 
 } lmrcImageHoleFillingInfo;
 
index 4be7d0e..0c47b31 100755 (executable)
@@ -45,19 +45,79 @@ lmrcImageRadialDistribution(
                dst->data[i]   = 0;
                count.data[i] = 0;
        }
+       for(z=0; z<mrc->HeaderN.z; z++) {
+       for(y=linfo->Cy - size; y<linfo->Cy + size; y++) {
        for(x=linfo->Cx - size; x<linfo->Cx + size; x++) {
-               for(y=linfo->Cy - size; y<linfo->Cy + size; y++) {
-                       for(z=0; z<mrc->HeaderN.z; z++) {
-                               length = sqrt(SQR(x-linfo->Cx)+SQR(y-linfo->Cy));
-                               ilength = floor(length+0.5);
-                               if(ilength<size) {
-                                       mrcPixelDataGet(mrc, x, y, 0.0, &data, mrcPixelRePart, mrcPixelHowNearest); 
-                                       dst->data[ilength]  += data;
-                                       count.data[ilength] += 1;;
-                               }
-                       }
+               length = sqrt(SQR(x-linfo->Cx)+SQR(y-linfo->Cy));
+               ilength = floor(length+0.5);
+               if(ilength<size) {
+                       mrcPixelDataGet(mrc, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest); 
+                       dst->data[ilength]  += data;
+                       count.data[ilength] += 1;;
                }
        }
+       }
+       }
+       if(linfo->flagAverage) {
+               DEBUGPRINT("Averaging\n");
+               for(i=0; i<size; i++) {
+                       DEBUGPRINT2("%f: %f\n", dst->data[i], count.data[i]);
+                       dst->data[i] = dst->data[i]/count.data[i];
+               }
+       } else {
+               DEBUGPRINT("Integral\n");
+               for(i=0; i<size; i++) {
+                       DEBUGPRINT2("%f: %f\n", dst->data[i], count.data[i]);
+                       dst->data[i] = dst->data[i]/count.data[i]*radius*i;
+               }
+       }
+
+       return *dst;
+}
+
+floatVector
+lmrcImageRadialDistributionSphericalCoordinates(
+       floatVector* dst,
+       mrcImage* mrc,
+       lmrcImageRadialDistributionInfo* linfo)
+{
+       int sx, sy, sz, size;
+       float x, y, z;
+       float length;
+       float radius; 
+       int i, ilength;
+       floatVector count;
+       double data;
+
+       sx = MIN(mrc->HeaderN.x - 1 - linfo->Cx, linfo->Cx);
+       sy = MIN(mrc->HeaderN.y - 1 - linfo->Cy, linfo->Cy);
+       sz = MIN(mrc->HeaderN.z - 1 - linfo->Cz, linfo->Cz);
+       size = MIN(sx, MIN(sy, sz)) + 1;        
+       DEBUGPRINT4("Size(%d %d %d) -> %d\n", sx, sy, sz, size);
+       radius = mrc->HeaderLength.x;
+
+       dst->size = size;
+       floatVectorInit(dst, size);
+       count.size = size;
+       floatVectorInit(&count, size);
+       
+       for(i=0; i<size; i++) {
+               dst->data[i]   = 0;
+               count.data[i] = 0;
+       }
+       for(z=linfo->Cz - size; z<linfo->Cz + size; z++) {
+       for(y=linfo->Cy - size; y<linfo->Cy + size; y++) {
+       for(x=linfo->Cx - size; x<linfo->Cx + size; x++) {
+               length = sqrt(SQR(x-linfo->Cx)+SQR(y-linfo->Cy)+SQR(z-linfo->Cz));
+               ilength = floor(length+0.5);
+               if(ilength<size) {
+                       mrcPixelDataGet(mrc, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest); 
+                       dst->data[ilength]  += data;
+                       count.data[ilength] += 1;;
+               }
+       }
+       }
+       }
        if(linfo->flagAverage) {
                DEBUGPRINT("Averaging\n");
                for(i=0; i<size; i++) {
index e064b5b..f89d497 100755 (executable)
@@ -19,6 +19,7 @@
 typedef struct lmrcImageRadialDistributionInfo {
        float Cx;
        float Cy;
+       float Cz;
        int flagAverage;
        int flagAzimuth;
        int NAzimuth;
index 047848b..9ee2d89 100755 (executable)
@@ -1,16 +1 @@
 WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
-WORLDNAME=Tools
old mode 100644 (file)
new mode 100755 (executable)
index 6c65159..cca43bd 100755 (executable)
@@ -40,6 +40,9 @@ main(int argc, char* argv[])
        lmrc2pngInfo linfo;
        mrcImage mrc;
        pngFile  png;
+       int z;
+       char s[1024];
+
        init0(&info);
     argCheck(&info, argc, argv);
     init1(&info);
@@ -47,8 +50,18 @@ main(int argc, char* argv[])
        DEBUGPRINT("Program Start\n");
 
        mrcFileRead(&mrc, info.In, "in main", 0);
-       lmrc2png(&png, &mrc, &linfo, info.mode); 
-       pngFileWrite(&png, info.Out, 0); 
+
+       if(mrc->HeaderN.z<=1) { 
+               lmrc2png(&png, &mrc, &linfo, info.mode); 
+               pngFileWrite(&png, info.Out, 0); 
+       } else {
+               for(z=0; z<mrc->HeaderN.z; z++) {
+                       sprintf(s, info.Format, z); 
+                       linfo.z = z;
+                       lmrc2png(&png, &mrc, &linfo, info.mode); 
+                       pngFileWrite(&png, s, 0); 
+               }
+       }
        exit(EXIT_SUCCESS);
 }
 
index d0e887b..e0e864f 100755 (executable)
@@ -4,6 +4,7 @@
 "-o","-o[utput]","Output: ASCII","Optional","1","1","Out","outFile","stdout"
 "-O","-O[utputMRC]","Output: MRC","Optional","1","1","Out2","outFile","NULL"
 "-centre","-centre","[pixel]","Optional","2","1","Cx","Real","0.0","2","Cy","Real","0.0"
+"-Cs","-Cs[phere]","[pixel]","Optional","3","1","Csx","Real","0.0","2","Csy","Real","0.0","3","Csz","Real","0.0"
 "-Avg","-Avg","flagAvg: Averaged Intensity","Optional","0"
 "-Inv","-Inv","flagInv: Inversed Intensity","Optional","0"
 "-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL"
index e39520f..6160233 100755 (executable)
@@ -31,6 +31,15 @@ typedef struct mrcImageRadialDistributionInfo {
     long flagCy;
     float Cy;
     
+    long flagCsx;
+    float Csx;
+    
+    long flagCsy;
+    float Csy;
+    
+    long flagCsz;
+    float Csz;
+    
     long Avg;
 
     long Inv;
index dfc03d5..7bffa8b 100755 (executable)
@@ -75,6 +75,23 @@ argCheck(mrcImageRadialDistributionInfo* info, int argc, char* argv[])
                     }
                     SBREAK;
                 }
+                SCASE("Cs") {
+                    if(i+3<argc) {
+                        info->Csx = stringGetNthRealData(argv[i+1], 1, " ,");
+                        i++;
+                        info->flagCsx++;
+                        info->Csy = stringGetNthRealData(argv[i+1], 1, " ,");
+                        i++;
+                        info->flagCsy++;
+                        info->Csz = stringGetNthRealData(argv[i+1], 1, " ,");
+                        i++;
+                        info->flagCsz++;
+                    } else {
+                        usage(argv[0]);
+                        exit(EXIT_FAILURE);
+                    }
+                    SBREAK;
+                }
                 SCASE("Avg") {
                     if(i+0<argc) {
                         info->Avg++;
index d9c1a68..983d1fb 100755 (executable)
@@ -17,6 +17,9 @@ init0(mrcImageRadialDistributionInfo* info)
     info->fptOut2 = NULL;    info->flagOut2 = 0;
     info->Cx = 0.0;    info->flagCx = 0;
     info->Cy = 0.0;    info->flagCy = 0;
+    info->Csx = 0.0;    info->flagCsx = 0;
+    info->Csy = 0.0;    info->flagCsy = 0;
+    info->Csz = 0.0;    info->flagCsz = 0;
     info->Avg=0;
     info->Inv=0;
     info->fptconfigFile = NULL;    info->flagconfigFile = 0;
@@ -51,6 +54,15 @@ init1(mrcImageRadialDistributionInfo* info)
     if(info->flagCy) {
     }
     
+    if(info->flagCsx) {
+    }
+    
+    if(info->flagCsy) {
+    }
+    
+    if(info->flagCsz) {
+    }
+    
     if(info->flagconfigFile) {
         info->fptconfigFile = fileOpen(info->configFile, "r");
     }
index ad83688..9ecb52b 100755 (executable)
@@ -50,15 +50,32 @@ main(int argc, char* argv[])
        if(info.flagCx) {
                linfo.Cx = info.Cx;
                linfo.Cy = info.Cy;     
+       } else if(info.flagCsx) {
+               linfo.Cx = info.Csx;
+               linfo.Cy = info.Csy;    
+               linfo.Cz = info.Csz;    
        } else {
                centre = lmrcImageDensityInfoCentreOfGravity(&mrc, 0); 
                linfo.Cx = centre.x;    
                linfo.Cy = centre.y;    
+               linfo.Cz = centre.z;    
        }
        linfo.flagAverage = info.Avg;
 
-       lmrcImageRadialDistribution(&dst, &mrc, &linfo);        
-       
+       switch(info.mode) {
+               case 0: {
+                       lmrcImageRadialDistribution(&dst, &mrc, &linfo);        
+                       break;
+               }
+               case 1: {
+                       lmrcImageRadialDistributionSphericalCoordinates(&dst, &mrc, &linfo);    
+                       break;
+               }
+               default: {
+                       fprintf(stderr, "Not supported mode: %d\n", info.mode);
+                       exit(EXIT_FAILURE);
+               }
+       }       
        DEBUGPRINT1("Size: %d\n", dst.size);
        for(i=0; i<dst.size; i++) {
                fprintf(info.fptOut, "%f\n", dst.data[i]);  
@@ -83,5 +100,8 @@ void
 additionalUsage()
 {
        fprintf(stderr, "----- Additional Usage -----\n");
+       fprintf(stderr, ">> Mode \n");
+       fprintf(stderr, " 0: 2D or 3D(Cylindrical Coordinates)\n");
+       fprintf(stderr, " 1: 2D or 3D(Spherical Coordinates)\n");
 }
 
index 71af78f..e80e244 100755 (executable)
@@ -13,11 +13,17 @@ Options:
     [-O[utputMRC]        Out2                (NULL      ).as(outFile             ) ] :Optional  :Output: MRC
     [-centre             Cx                  (0.0       ).as(Real                ) 
                          Cy                  (0.0       ).as(Real                ) ] :Optional  :[pixel]
+    [-Cs[phere]          Csx                 (0.0       ).as(Real                ) 
+                         Csy                 (0.0       ).as(Real                ) 
+                         Csz                 (0.0       ).as(Real                ) ] :Optional  :[pixel]
     [-Avg                                                                          ] :Optional  :flagAvg: Averaged Intensity
     [-Inv                                                                          ] :Optional  :flagInv: Inversed Intensity
     [-c[onfig]           configFile          (NULL      ).as(inFile              ) ] :Optional  :ConfigurationFile
     [-m[ode]             mode                (0         ).as(Integer             ) ] :Optional  :Mode
 ----- Additional Usage -----
+>> Mode 
+ 0: 2D or 3D(Cylindrical Coordinates)
+ 1: 2D or 3D(Spherical Coordinates)
 </PRE>
 </BODY>
 </HTML>
index b1beb54..9fa598c 100755 (executable)
         -O 1 0 1 0 0 1 -1x1+1+3.000000 ' ' 'Out' 'Output: ASCII' o
         -O 1 0 1 0 0 1 -1x1+1+4.500000 ' ' 'Out2' 'Output: MRC' O
         -I  1 0 0 1 0 1 -1x1+1+6 ' ' '0.0' 'Cx' [pixel]
-        -t 1 0 1 0 0 6x1+1+7 'Avg' 'flagAvg: Averaged Intensity' Avg
-        -t 1 0 1 0 0 6x1+1+9 'Inv' 'flagInv: Inversed Intensity' Inv
-        -I 1 0 1 0 0 1 -1x1+1+10.500000 ' ' 'configFile' 'ConfigurationFile' c
-        -i 1 0 1 0 0 -1x1+1+12.000000 0 0 0 0 0 'mode' 'Mode' m
+        -I  1 0 0 1 0 1 -1x1+1+7 ' ' '0.0' 'Csx' [pixel]
+        -t 1 0 1 0 0 6x1+1+9 'Avg' 'flagAvg: Averaged Intensity' Avg
+        -t 1 0 1 0 0 6x1+1+10 'Inv' 'flagInv: Inversed Intensity' Inv
+        -I 1 0 1 0 0 1 -1x1+1+12.000000 ' ' 'configFile' 'ConfigurationFile' c
+        -i 1 0 1 0 0 -1x1+1+13.500000 0 0 0 0 0 'mode' 'Mode' m
     -E
   -E
 -E
diff --git a/src/Tools/mrcImage/mrcImageRadialDistribution/src/test/Makefile b/src/Tools/mrcImage/mrcImageRadialDistribution/src/test/Makefile
new file mode 100644 (file)
index 0000000..3d31dbe
--- /dev/null
@@ -0,0 +1,18 @@
+include ../../Config/Define.inc
+include ../../../Config/Define.inc
+include ../../../../Config/Define.inc
+include ../../../../../Config/Define.inc
+
+all: help exec
+
+help:
+       @echo "----- Help Message Check -----"
+       @../$(OSTYPE)/$(OBJECTNAME)      -h
+
+exec:
+       @echo "----- Execution Check -----"
+       ../$(OSTYPE)/$(OBJECTNAME) -i data/121p-centre.mrc -o data/121p-centre.radial.Cyl -centre 49 49 -m 0 -Avg
+       ../$(OSTYPE)/$(OBJECTNAME) -i data/121p-centre.mrc -o data/121p-centre.radial.Sph -Cs 49 49 49 -m 1 -Avg
+       @echo "----- Calc check -----"          
+
+clean:
diff --git a/src/Tools/mrcImage/mrcImageRadialDistribution/src/test/data b/src/Tools/mrcImage/mrcImageRadialDistribution/src/test/data
new file mode 120000 (symlink)
index 0000000..28eb0d9
--- /dev/null
@@ -0,0 +1 @@
+../../../../../..//data/mrcImageRadialDistribution
\ No newline at end of file
index ae5a8cd..0914e27 100755 (executable)
@@ -11,6 +11,7 @@ usage(char* thisProgram)
     fprintf(stderr, "    [-o[utput]           Out                 (stdout    ).as(outFile             ) ] :Optional  :Output: ASCII\n");
     fprintf(stderr, "    [-O[utputMRC]        Out2                (NULL      ).as(outFile             ) ] :Optional  :Output: MRC\n");
     fprintf(stderr, "    [-centre             Cx                  (0.0       ).as(Real                ) \n                         Cy                  (0.0       ).as(Real                ) ] :Optional  :[pixel]\n");
+    fprintf(stderr, "    [-Cs[phere]          Csx                 (0.0       ).as(Real                ) \n                         Csy                 (0.0       ).as(Real                ) \n                         Csz                 (0.0       ).as(Real                ) ] :Optional  :[pixel]\n");
     fprintf(stderr, "    [-Avg                                                                          ] :Optional  :flagAvg: Averaged Intensity\n");
     fprintf(stderr, "    [-Inv                                                                          ] :Optional  :flagInv: Inversed Intensity\n");
     fprintf(stderr, "    [-c[onfig]           configFile          (NULL      ).as(inFile              ) ] :Optional  :ConfigurationFile\n");