• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisiónff6fdb5a14ba55f0f39a5dc55011e233339a6cac (tree)
Tiempo2015-03-07 18:32:20
AutorTakuo Yasunaga <yasunaga@bio....>
CommiterTakuo Yasunaga

Log Message

ticket: #34963 mrcImageMeanFreePath : pixel -> Angstrom : -m +16
ticket: #34814 mrcImageShapeSearch : Cylinder

Cambiar Resumen

Diferencia incremental

--- a/bin/wish/Display2/tclIndex
+++ b/bin/wish/Display2/tclIndex
@@ -6,38 +6,41 @@
66 # element name is the name of a command and the value is
77 # a script that loads the command.
88
9-set auto_index(roiAreaRotateStart) [list source [file join $dir RoiAreaRotate.wish]]
10-set auto_index(roiAreaRotateMotion) [list source [file join $dir RoiAreaRotate.wish]]
11-set auto_index(roiAreaRotateEnd) [list source [file join $dir RoiAreaRotate.wish]]
12-set auto_index(rectangleRotate) [list source [file join $dir RoiAreaRotate.wish]]
13-set auto_index(rectangleRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
14-set auto_index(lineRotate) [list source [file join $dir RoiAreaRotate.wish]]
15-set auto_index(lineRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
16-set auto_index(splineRotate) [list source [file join $dir RoiAreaRotate.wish]]
17-set auto_index(splineRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
18-set auto_index(roiAreaSelectStart) [list source [file join $dir RoiAreaSelect.wish]]
19-set auto_index(roiAreaSelectMotion) [list source [file join $dir RoiAreaSelect.wish]]
20-set auto_index(roiAreaSelectEnd) [list source [file join $dir RoiAreaSelect.wish]]
21-set auto_index(roiAreaSelectOK) [list source [file join $dir RoiAreaSelect.wish]]
9+set auto_index(display2BindingSet) [list source [file join $dir Display2Binding.wish]]
2210 set auto_index(colormapChange) [list source [file join $dir Display2Colormap.wish]]
11+set auto_index(display2DesktopSet) [list source [file join $dir Display2Desktop.wish]]
12+set auto_index(display2ETCSet) [list source [file join $dir Display2ETCSet.wish]]
13+set auto_index(fileOpenWinCreate) [list source [file join $dir Display2File.wish]]
14+set auto_index(fileNewWinCreate) [list source [file join $dir Display2File.wish]]
15+set auto_index(seqFileOpenWinCreate) [list source [file join $dir Display2File.wish]]
16+set auto_index(seqFileNewWinCreate) [list source [file join $dir Display2File.wish]]
17+set auto_index(fileOpen) [list source [file join $dir Display2Image.wish]]
18+set auto_index(mainImagePut) [list source [file join $dir Display2Image.wish]]
19+set auto_index(overviewImagePut) [list source [file join $dir Display2Image.wish]]
20+set auto_index(histgramGraphCreate) [list source [file join $dir Display2Info.wish]]
21+set auto_index(display2InformationWinCreate) [list source [file join $dir Display2Info.wish]]
22+set auto_index(fileReopen) [list source [file join $dir Display2Info.wish]]
23+set auto_index(mrcImageInformationWinCreate) [list source [file join $dir Display2Info.wish]]
24+set auto_index(imageInformationWinCreate) [list source [file join $dir Display2Info.wish]]
25+set auto_index(layerLineInformationWinCreate) [list source [file join $dir Display2Info.wish]]
26+set auto_index(projectionInformationWinCreate) [list source [file join $dir Display2Info.wish]]
27+set auto_index(sectionInformationWinCreate) [list source [file join $dir Display2Info.wish]]
28+set auto_index(ctfInformationWinCreate) [list source [file join $dir Display2Info.wish]]
29+set auto_index(unitCellInformationWinCreate) [list source [file join $dir Display2Info.wish]]
30+set auto_index(scaleInfoWinCreate) [list source [file join $dir Display2Info.wish]]
31+set auto_index(roiInformationWinCreate) [list source [file join $dir Display2InfoROI.wish]]
32+set auto_index(roiLineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
33+set auto_index(roiSplineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
34+set auto_index(roiRectangleInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
35+set auto_index(roiAnalysisFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
36+set auto_index(display2Init) [list source [file join $dir Display2Init.wish]]
37+set auto_index(display2MenuSet) [list source [file join $dir Display2Menu.wish]]
38+set auto_index(menuFileCreate) [list source [file join $dir Display2Menu.wish]]
39+set auto_index(menuSeqFileCreate) [list source [file join $dir Display2Menu.wish]]
40+set auto_index(menuWindowCreate) [list source [file join $dir Display2Menu.wish]]
41+set auto_index(menuInfoCreate) [list source [file join $dir Display2Menu.wish]]
42+set auto_index(menuHelpCreate) [list source [file join $dir Display2Menu.wish]]
2343 set auto_index(display2MenuSet2) [list source [file join $dir Display2Menu2.wish]]
24-set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
25-set auto_index(display2BindingSet) [list source [file join $dir Display2Binding.wish]]
26-set auto_index(roiMultiAreaInfoSave) [list source [file join $dir RoiAreaFile.wish]]
27-set auto_index(roiMultiAreaInfoLoad) [list source [file join $dir RoiAreaFile.wish]]
28-set auto_index(roiAreaFileSave) [list source [file join $dir RoiAreaFile.wish]]
29-set auto_index(roiAreaFFT) [list source [file join $dir RoiAreaUtil.wish]]
30-set auto_index(splineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
31-set auto_index(rectangleNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
32-set auto_index(lineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
33-set auto_index(pointDistance) [list source [file join $dir RoiAreaUtil.wish]]
34-set auto_index(pointDistance2) [list source [file join $dir RoiAreaUtil.wish]]
35-set auto_index(vectorAngle) [list source [file join $dir RoiAreaUtil.wish]]
36-set auto_index(coordGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
37-set auto_index(coordGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
38-set auto_index(dataGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
39-set auto_index(dataGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
40-set auto_index(pointSet) [list source [file join $dir RoiAreaUtil.wish]]
4144 set auto_index(roiRelatedObjectRecreate) [list source [file join $dir Display2MenuROI.wish]]
4245 set auto_index(menuRoiCreate) [list source [file join $dir Display2MenuROI.wish]]
4346 set auto_index(menuRoiCancelCommand) [list source [file join $dir Display2MenuROI.wish]]
@@ -46,38 +49,15 @@ set auto_index(menuMultiRoiOKCommand) [list source [file join $dir Display2MenuR
4649 set auto_index(menuMultiRoiAllDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
4750 set auto_index(menuMultiRoiDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
4851 set auto_index(menuEditCreate) [list source [file join $dir Display2MenuROI.wish]]
49-set auto_index(display2Init) [list source [file join $dir Display2Init.wish]]
50-set auto_index(display2MenuSet) [list source [file join $dir Display2Menu.wish]]
51-set auto_index(menuFileCreate) [list source [file join $dir Display2Menu.wish]]
52-set auto_index(menuSeqFileCreate) [list source [file join $dir Display2Menu.wish]]
53-set auto_index(menuWindowCreate) [list source [file join $dir Display2Menu.wish]]
54-set auto_index(menuInfoCreate) [list source [file join $dir Display2Menu.wish]]
55-set auto_index(menuHelpCreate) [list source [file join $dir Display2Menu.wish]]
56-set auto_index(roiAreaResizeStart) [list source [file join $dir RoiAreaResize.wish]]
57-set auto_index(roiAreaResizeMotion) [list source [file join $dir RoiAreaResize.wish]]
58-set auto_index(roiAreaResizeEnd) [list source [file join $dir RoiAreaResize.wish]]
59-set auto_index(rectangleResize) [list source [file join $dir RoiAreaResize.wish]]
60-set auto_index(rectangleResizeCalc) [list source [file join $dir RoiAreaResize.wish]]
61-set auto_index(lineResize) [list source [file join $dir RoiAreaResize.wish]]
62-set auto_index(splineResize) [list source [file join $dir RoiAreaResize.wish]]
52+set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
6353 set auto_index(layerLineRecreate) [list source [file join $dir LayerLineUtil.wish]]
6454 set auto_index(layerLineCreate) [list source [file join $dir LayerLineUtil.wish]]
6555 set auto_index(layerLineClear) [list source [file join $dir LayerLineUtil.wish]]
6656 set auto_index(layerLineChange) [list source [file join $dir LayerLineUtil.wish]]
67-set auto_index(histgramGraphCreate) [list source [file join $dir Display2Info.wish]]
68-set auto_index(display2InformationWinCreate) [list source [file join $dir Display2Info.wish]]
69-set auto_index(fileReopen) [list source [file join $dir Display2Info.wish]]
70-set auto_index(mrcImageInformationWinCreate) [list source [file join $dir Display2Info.wish]]
71-set auto_index(imageInformationWinCreate) [list source [file join $dir Display2Info.wish]]
72-set auto_index(layerLineInformationWinCreate) [list source [file join $dir Display2Info.wish]]
73-set auto_index(projectionInformationWinCreate) [list source [file join $dir Display2Info.wish]]
74-set auto_index(sectionInformationWinCreate) [list source [file join $dir Display2Info.wish]]
75-set auto_index(ctfInformationWinCreate) [list source [file join $dir Display2Info.wish]]
76-set auto_index(unitCellInformationWinCreate) [list source [file join $dir Display2Info.wish]]
77-set auto_index(scaleInfoWinCreate) [list source [file join $dir Display2Info.wish]]
78-set auto_index(roiAreaZoomIn) [list source [file join $dir RoiAreaZoom.wish]]
79-set auto_index(roiAreaZoomOut) [list source [file join $dir RoiAreaZoom.wish]]
80-set auto_index(roiAreaZoom) [list source [file join $dir RoiAreaZoom.wish]]
57+set auto_index(projectionRecreate) [list source [file join $dir ProjectionUtil.wish]]
58+set auto_index(projectionCreate) [list source [file join $dir ProjectionUtil.wish]]
59+set auto_index(projectionClear) [list source [file join $dir ProjectionUtil.wish]]
60+set auto_index(projectionChange) [list source [file join $dir ProjectionUtil.wish]]
8161 set auto_index(roiAreaCreateStart) [list source [file join $dir RoiAreaCreate.wish]]
8262 set auto_index(roiAreaCreateMotion) [list source [file join $dir RoiAreaCreate.wish]]
8363 set auto_index(roiAreaCreateEnd) [list source [file join $dir RoiAreaCreate.wish]]
@@ -95,29 +75,54 @@ set auto_index(roiSplineEnd) [list source [file join $dir RoiAreaCreate.wish]]
9575 set auto_index(splineCreate) [list source [file join $dir RoiAreaCreate.wish]]
9676 set auto_index(knobShow) [list source [file join $dir RoiAreaCreate.wish]]
9777 set auto_index(knobHide) [list source [file join $dir RoiAreaCreate.wish]]
98-set auto_index(fileOpenWinCreate) [list source [file join $dir Display2File.wish]]
99-set auto_index(fileNewWinCreate) [list source [file join $dir Display2File.wish]]
100-set auto_index(seqFileOpenWinCreate) [list source [file join $dir Display2File.wish]]
101-set auto_index(seqFileNewWinCreate) [list source [file join $dir Display2File.wish]]
102-set auto_index(ScaleRecreate) [list source [file join $dir ScaleUtil.wish]]
103-set auto_index(ScaleCreate) [list source [file join $dir ScaleUtil.wish]]
104-set auto_index(ScaleClear) [list source [file join $dir ScaleUtil.wish]]
105-set auto_index(ScaleChange) [list source [file join $dir ScaleUtil.wish]]
106-set auto_index(unitCellRecreate) [list source [file join $dir UnitCell.wish]]
107-set auto_index(fileOpen) [list source [file join $dir Display2Image.wish]]
108-set auto_index(mainImagePut) [list source [file join $dir Display2Image.wish]]
109-set auto_index(overviewImagePut) [list source [file join $dir Display2Image.wish]]
78+set auto_index(roiMultiAreaInfoSave) [list source [file join $dir RoiAreaFile.wish]]
79+set auto_index(roiMultiAreaInfoLoad) [list source [file join $dir RoiAreaFile.wish]]
80+set auto_index(roiAreaFileSave) [list source [file join $dir RoiAreaFile.wish]]
11081 set auto_index(roiAreaMoveStart) [list source [file join $dir RoiAreaMove.wish]]
11182 set auto_index(roiAreaMoveMotion) [list source [file join $dir RoiAreaMove.wish]]
11283 set auto_index(roiAreaMoveEnd) [list source [file join $dir RoiAreaMove.wish]]
11384 set auto_index(rectangleMove) [list source [file join $dir RoiAreaMove.wish]]
11485 set auto_index(lineMove) [list source [file join $dir RoiAreaMove.wish]]
11586 set auto_index(splineMove) [list source [file join $dir RoiAreaMove.wish]]
116-set auto_index(roiInformationWinCreate) [list source [file join $dir Display2InfoROI.wish]]
117-set auto_index(roiLineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
118-set auto_index(roiSplineInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
119-set auto_index(roiRectangleInfoFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
120-set auto_index(roiAnalysisFrameCreate) [list source [file join $dir Display2InfoROI.wish]]
87+set auto_index(roiAreaResizeStart) [list source [file join $dir RoiAreaResize.wish]]
88+set auto_index(roiAreaResizeMotion) [list source [file join $dir RoiAreaResize.wish]]
89+set auto_index(roiAreaResizeEnd) [list source [file join $dir RoiAreaResize.wish]]
90+set auto_index(rectangleResize) [list source [file join $dir RoiAreaResize.wish]]
91+set auto_index(rectangleResizeCalc) [list source [file join $dir RoiAreaResize.wish]]
92+set auto_index(lineResize) [list source [file join $dir RoiAreaResize.wish]]
93+set auto_index(splineResize) [list source [file join $dir RoiAreaResize.wish]]
94+set auto_index(roiAreaRotateStart) [list source [file join $dir RoiAreaRotate.wish]]
95+set auto_index(roiAreaRotateMotion) [list source [file join $dir RoiAreaRotate.wish]]
96+set auto_index(roiAreaRotateEnd) [list source [file join $dir RoiAreaRotate.wish]]
97+set auto_index(rectangleRotate) [list source [file join $dir RoiAreaRotate.wish]]
98+set auto_index(rectangleRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
99+set auto_index(lineRotate) [list source [file join $dir RoiAreaRotate.wish]]
100+set auto_index(lineRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
101+set auto_index(splineRotate) [list source [file join $dir RoiAreaRotate.wish]]
102+set auto_index(splineRotateCalc) [list source [file join $dir RoiAreaRotate.wish]]
103+set auto_index(roiAreaSelectStart) [list source [file join $dir RoiAreaSelect.wish]]
104+set auto_index(roiAreaSelectMotion) [list source [file join $dir RoiAreaSelect.wish]]
105+set auto_index(roiAreaSelectEnd) [list source [file join $dir RoiAreaSelect.wish]]
106+set auto_index(roiAreaSelectOK) [list source [file join $dir RoiAreaSelect.wish]]
107+set auto_index(roiAreaFFT) [list source [file join $dir RoiAreaUtil.wish]]
108+set auto_index(splineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
109+set auto_index(rectangleNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
110+set auto_index(lineNearPoint) [list source [file join $dir RoiAreaUtil.wish]]
111+set auto_index(pointDistance) [list source [file join $dir RoiAreaUtil.wish]]
112+set auto_index(pointDistance2) [list source [file join $dir RoiAreaUtil.wish]]
113+set auto_index(vectorAngle) [list source [file join $dir RoiAreaUtil.wish]]
114+set auto_index(coordGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
115+set auto_index(coordGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
116+set auto_index(dataGetInMainImageToReal) [list source [file join $dir RoiAreaUtil.wish]]
117+set auto_index(dataGetInMainImageToCanvas) [list source [file join $dir RoiAreaUtil.wish]]
118+set auto_index(pointSet) [list source [file join $dir RoiAreaUtil.wish]]
119+set auto_index(roiAreaZoomIn) [list source [file join $dir RoiAreaZoom.wish]]
120+set auto_index(roiAreaZoomOut) [list source [file join $dir RoiAreaZoom.wish]]
121+set auto_index(roiAreaZoom) [list source [file join $dir RoiAreaZoom.wish]]
122+set auto_index(ScaleRecreate) [list source [file join $dir ScaleUtil.wish]]
123+set auto_index(ScaleCreate) [list source [file join $dir ScaleUtil.wish]]
124+set auto_index(ScaleClear) [list source [file join $dir ScaleUtil.wish]]
125+set auto_index(ScaleChange) [list source [file join $dir ScaleUtil.wish]]
121126 set auto_index(sectionInit) [list source [file join $dir SectionUtil.wish]]
122127 set auto_index(sectionRecreateAll) [list source [file join $dir SectionUtil.wish]]
123128 set auto_index(sectionRecreate) [list source [file join $dir SectionUtil.wish]]
@@ -126,9 +131,4 @@ set auto_index(sectionCreate) [list source [file join $dir SectionUtil.wish]]
126131 set auto_index(sectionClearAll) [list source [file join $dir SectionUtil.wish]]
127132 set auto_index(sectionClear) [list source [file join $dir SectionUtil.wish]]
128133 set auto_index(sectionChange) [list source [file join $dir SectionUtil.wish]]
129-set auto_index(display2DesktopSet) [list source [file join $dir Display2Desktop.wish]]
130-set auto_index(display2ETCSet) [list source [file join $dir Display2ETCSet.wish]]
131-set auto_index(projectionRecreate) [list source [file join $dir ProjectionUtil.wish]]
132-set auto_index(projectionCreate) [list source [file join $dir ProjectionUtil.wish]]
133-set auto_index(projectionClear) [list source [file join $dir ProjectionUtil.wish]]
134-set auto_index(projectionChange) [list source [file join $dir ProjectionUtil.wish]]
134+set auto_index(unitCellRecreate) [list source [file join $dir UnitCell.wish]]
--- a/src/Tools/Config/Define.inc
+++ b/src/Tools/Config/Define.inc
@@ -555,3 +555,13 @@ WORLDNAME=Tools
555555 WORLDNAME=Tools
556556 WORLDNAME=Tools
557557 WORLDNAME=Tools
558+WORLDNAME=Tools
559+WORLDNAME=Tools
560+WORLDNAME=Tools
561+WORLDNAME=Tools
562+WORLDNAME=Tools
563+WORLDNAME=Tools
564+WORLDNAME=Tools
565+WORLDNAME=Tools
566+WORLDNAME=Tools
567+WORLDNAME=Tools
--- a/src/Tools/mrcImage/mrcImageMeanFreePathCalc/src/mrcImageMeanFreePathCalc.c
+++ b/src/Tools/mrcImage/mrcImageMeanFreePathCalc/src/mrcImageMeanFreePathCalc.c
@@ -15,10 +15,11 @@
1515 #define GLOBAL_DECLARATION
1616 #include "../inc/config.h"
1717
18-#define DEBUG
18+#undef DEBUG
1919 #include "genUtil.h"
20-#include "mrcImage.h"
2120 #include "Memory.h"
21+#include "mrcImage.h"
22+#include "lmrcImageMultiplying.h"
2223
2324 typedef struct lmrcImageMeanFreePathCalcInfo {
2425 int N;
@@ -48,6 +49,8 @@ typedef struct lmrcImageMeanFreePathCalcInfo {
4849
4950 typedef enum lmrcImageMeanFreePathCalcMode {
5051 MeanFreePathCalcModeAlongZaxis=0,
52+ MeanFreePathCalcModeCalcMode=0x0f,
53+ MeanFreePathCalcModeRealLength=0x10
5154 } lmrcImageMeanFreePathCalcMode;
5255
5356 extern void lmrcImageMeanFreePathCalcPrint(FILE* fpt, lmrcImageMeanFreePathCalcInfo* linfo, lmrcImageMeanFreePathCalcMode mode);
@@ -89,7 +92,7 @@ main(int argc, char* argv[])
8992 if(info.flagOutBlackEdge) {
9093 mrcFileWrite(&linfo.blackEdge, info.OutBlackEdge, "in main", 0);
9194 }
92- exit(EXIT_SUCCESS);
95+ return EXIT_SUCCESS;
9396 }
9497
9598 void
@@ -109,14 +112,18 @@ lmrcImageMeanFreePathCalcModePrint(FILE* fpt)
109112 void
110113 lmrcImageMeanFreePathCalc(mrcImage* in, lmrcImageMeanFreePathCalcInfo* linfo, lmrcImageMeanFreePathCalcMode mode)
111114 {
112- switch(mode) {
115+ DEBUGPRINT1("mode: %d in Calc 1st \n", mode);
116+ switch(MeanFreePathCalcModeCalcMode&mode) {
113117 case MeanFreePathCalcModeAlongZaxis: {
118+ DEBUGPRINT1("mode: %d in AlongZaxis\n", mode);
114119 lmrcImageMeanFreePathCalcAlongZaxis(in, linfo, mode);
115120 break;
116121 }
117122 default: {
123+ DEBUGPRINT1("mode: %d in default\n", mode);
118124 fprintf(stderr, "Not supported mode: %d\n", mode);
119- exit(EXIT_FAILURE);
125+ fprintf(stderr, "Thus, process as -m %d \n", MeanFreePathCalcModeAlongZaxis);
126+ lmrcImageMeanFreePathCalcAlongZaxis(in, linfo, mode);
120127 break;
121128 }
122129 }
@@ -142,14 +149,18 @@ lmrcImageMeanFreePathCalcPrint(FILE* fpt, lmrcImageMeanFreePathCalcInfo* linfo,
142149 for(i=1; i<=linfo->N; i++) {
143150 fprintf(fpt, "%6d %10d %10d %10d %10d %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n",
144151 i,
145- linfo->countWhite[i], linfo->countBlack[i],
146- linfo->countWhiteEdge[i], linfo->countBlackEdge[i],
147- linfo->countWhite[i]/(double)linfo->countWhite[0]*100, linfo->countBlack[i]/(double)linfo->countBlack[0]*100,
148- linfo->countWhiteEdge[i]/(double)linfo->countWhiteEdge[0]*100, linfo->countBlackEdge[i]/(double)linfo->countBlackEdge[0]*100,
149- linfo->countWhite[i]/(double)linfo->sumWhite*100,
150- linfo->countBlack[i]/(double)linfo->sumBlack*100,
151- linfo->countWhiteEdge[i]/(double)linfo->sumWhiteEdge*100,
152- linfo->countBlackEdge[i]/(double)linfo->sumBlackEdge*100,
152+ linfo->countWhite[i],
153+ linfo->countBlack[i],
154+ linfo->countWhiteEdge[i],
155+ linfo->countBlackEdge[i],
156+ (linfo->countWhite[0]?linfo->countWhite[i]/(double)linfo->countWhite[0]*100:0),
157+ (linfo->countBlack[0]?linfo->countBlack[i]/(double)linfo->countBlack[0]*100:0),
158+ (linfo->countWhiteEdge[0]?linfo->countWhiteEdge[i]/(double)linfo->countWhiteEdge[0]*100:0),
159+ (linfo->countBlackEdge[0]?linfo->countBlackEdge[i]/(double)linfo->countBlackEdge[0]*100:0),
160+ (linfo->sumWhite?linfo->countWhite[i]/(double)linfo->sumWhite*100:0),
161+ (linfo->sumBlack?linfo->countBlack[i]/(double)linfo->sumBlack*100:0),
162+ (linfo->sumWhiteEdge?linfo->countWhiteEdge[i]/(double)linfo->sumWhiteEdge*100:0),
163+ (linfo->sumBlackEdge?linfo->countBlackEdge[i]/(double)linfo->sumBlackEdge*100:0),
153164 i*linfo->Length.z);
154165 }
155166 }
@@ -336,8 +347,33 @@ lmrcImageMeanFreePathCalcAlongZaxis(mrcImage* in, lmrcImageMeanFreePathCalcInfo*
336347 linfo->sumBlackEdge += linfo->countBlackEdge[i];
337348 }
338349
339- linfo->averageWhite /= linfo->countWhite[0];
340- linfo->averageBlack /= linfo->countBlack[0];
341- linfo->averageWhiteEdge /= linfo->countWhiteEdge[0];
342- linfo->averageBlackEdge /= linfo->countBlackEdge[0];
350+ if(0<linfo->countWhite[0]) {
351+ linfo->averageWhite /= linfo->countWhite[0];
352+ } else {
353+ linfo->averageWhite = 0;
354+ }
355+ if(0<linfo->countBlack[0]) {
356+ linfo->averageBlack /= linfo->countBlack[0];
357+ } else {
358+ linfo->averageBlack = 0;
359+ }
360+ if(0<linfo->countWhiteEdge[0]) {
361+ linfo->averageWhiteEdge /= linfo->countWhiteEdge[0];
362+ } else {
363+ linfo->averageWhiteEdge = 0;
364+ }
365+ if(0<linfo->countBlackEdge[0]) {
366+ linfo->averageBlackEdge /= linfo->countBlackEdge[0];
367+ } else {
368+ linfo->averageBlackEdge = 0;
369+ }
370+
371+ if(MeanFreePathCalcModeRealLength&mode) {
372+ DEBUGPRINT1("mode: %d in Calc: RealLength Start\n", mode);
373+ lmrcImageMultiplying2(&linfo->white, linfo->white.HeaderLength.z, linfo->white.HeaderMode);
374+ lmrcImageMultiplying2(&linfo->whiteEdge, linfo->whiteEdge.HeaderLength.z, linfo->whiteEdge.HeaderMode);
375+ lmrcImageMultiplying2(&linfo->black, linfo->black.HeaderLength.z, linfo->black.HeaderMode);
376+ lmrcImageMultiplying2(&linfo->blackEdge, linfo->blackEdge.HeaderLength.z, linfo->blackEdge.HeaderMode);
377+ DEBUGPRINT1("mode: %d in Calc: RealLength End\n", mode);
378+ }
343379 }
--- a/src/Tools/mrcImage/mrcImageMeanFreePathCalc/src/test/Makefile
+++ b/src/Tools/mrcImage/mrcImageMeanFreePathCalc/src/test/Makefile
@@ -11,7 +11,11 @@ help:
1111
1212 exec:
1313 @echo "----- Execution Check -----"
14- ../$(OSTYPE)/$(OBJECTNAME)
14+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test.bin -o data/test.mfp -m 0 -Ow data/test.white -Owe data/test.whiteEdge -Ob data/test.black -Obe data/test.blackEdge
15+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test.bin -o data/test.mfp16 -m 16 -Ow data/test.white16 -Owe data/test.whiteEdge16 -Ob data/test.black16 -Obe data/test.blackEdge16
1516 @echo "----- Calc check -----"
1617
18+init:
19+ pdb2mrc -i data/121p.pdb2 -o data/test.mrc -nx 32 -ny 32 -nz 32 -dx 2 -dy 2 -dz 2 -Sx -32 -Sy -32 -Sz -32 -sig 1.6 -w 1.0
20+ mrcImageBinalization -i data/test.mrc -o data/test.bin -m 32
1721 clean:
--- a/src/Tools/mrcImage/mrcImageShapeSearch/Config/OptionControlFile
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/Config/OptionControlFile
@@ -2,11 +2,13 @@
22 # FileFormat
33 "-i","-i[nput]","Input","Essential","1","1","In","inFile::mrcImage","NULL"
44 "-o","-o[utput]","Output","Essential","1","1","Out","outFile::mrcImage","NULL"
5-"-Shape","-Shape","Output","Essential","1","1","Shape","outFile::mrcImage","NULL"
6-"-r","-r[adius]","Radius[pixel]","Optional","2","1","minR","Integer","3","2","maxR","Integer","5"
7-"-l","-l[ength]","Length[pixel]","Optional","2","1","minL","Integer","3","2","maxL","Integer","5"
5+"-Shape","-Shape","Output","Optional","1","1","Shape","outFile::mrcImage","NULL"
6+"-r","-r[adius]","Radius[pixel]","Optional","3","1","minR","Integer","3","2","maxR","Integer","5","3","delR","Integer","1"
7+"-l","-l[ength]","Length[pixel]","Optional","3","1","minL","Integer","3","2","maxL","Integer","5","3","delL","Integer","1"
88 "-Phi","-Phi","around z-axis[degree]","Optional","3","1","minPhi","Real","0.0","2","maxPhi","Real","359.0","3","delPhi","Real","1.0"
99 "-Theta","-Theta","around x-axis[degree]","Optional","3","1","minTheta","Real","0.0","2","maxTheta","Real","359.0","3","delTheta","Real","1.0"
10-"-Psi","-Psi","around x-axis[degree]","Optional","3","1","minPsi","Real","0.0","2","maxPsi","Real","359.0","3","delPsi","Real","1.0"
10+"-Psi","-Psi","around x-axis[degree]","Optional","3","1","minPsi","Real","0.0","2","maxPsi","Real","0.0","3","delPsi","Real","90.0"
11+"-thres","-thres[Zscore]","Zscore","Optional","1","1","thresZscore","Real","1.0"
12+"-interp","-interp[olationMode]","interpMode","Optional","1","1","interpMode","Integer","0"
1113 "-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL"
1214 "-m","-m[ode]","Mode","Optional","1","1","mode","Integer","0"
--- a/src/Tools/mrcImage/mrcImageShapeSearch/inc/mrcImageShapeSearch.h
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/inc/mrcImageShapeSearch.h
@@ -31,12 +31,18 @@ typedef struct mrcImageShapeSearchInfo {
3131 long flagmaxR;
3232 long maxR;
3333
34+ long flagdelR;
35+ long delR;
36+
3437 long flagminL;
3538 long minL;
3639
3740 long flagmaxL;
3841 long maxL;
3942
43+ long flagdelL;
44+ long delL;
45+
4046 long flagminPhi;
4147 float minPhi;
4248
@@ -55,6 +61,21 @@ typedef struct mrcImageShapeSearchInfo {
5561 long flagdelTheta;
5662 float delTheta;
5763
64+ long flagminPsi;
65+ float minPsi;
66+
67+ long flagmaxPsi;
68+ float maxPsi;
69+
70+ long flagdelPsi;
71+ float delPsi;
72+
73+ long flagthresZscore;
74+ float thresZscore;
75+
76+ long flaginterpMode;
77+ long interpMode;
78+
5879 long flagconfigFile;
5980 char* configFile;
6081 FILE* fptconfigFile;
--- a/src/Tools/mrcImage/mrcImageShapeSearch/src/argCheck.c
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/argCheck.c
@@ -62,13 +62,16 @@ argCheck(mrcImageShapeSearchInfo* info, int argc, char* argv[])
6262 SBREAK;
6363 }
6464 SCASE("r") {
65- if(i+2<argc) {
65+ if(i+3<argc) {
6666 info->minR = stringGetNthIntegerData(argv[i+1], 1, " ,");
6767 i++;
6868 info->flagminR++;
6969 info->maxR = stringGetNthIntegerData(argv[i+1], 1, " ,");
7070 i++;
7171 info->flagmaxR++;
72+ info->delR = stringGetNthIntegerData(argv[i+1], 1, " ,");
73+ i++;
74+ info->flagdelR++;
7275 } else {
7376 usage(argv[0]);
7477 exit(EXIT_FAILURE);
@@ -76,13 +79,16 @@ argCheck(mrcImageShapeSearchInfo* info, int argc, char* argv[])
7679 SBREAK;
7780 }
7881 SCASE("l") {
79- if(i+2<argc) {
82+ if(i+3<argc) {
8083 info->minL = stringGetNthIntegerData(argv[i+1], 1, " ,");
8184 i++;
8285 info->flagminL++;
8386 info->maxL = stringGetNthIntegerData(argv[i+1], 1, " ,");
8487 i++;
8588 info->flagmaxL++;
89+ info->delL = stringGetNthIntegerData(argv[i+1], 1, " ,");
90+ i++;
91+ info->flagdelL++;
8692 } else {
8793 usage(argv[0]);
8894 exit(EXIT_FAILURE);
@@ -123,6 +129,45 @@ argCheck(mrcImageShapeSearchInfo* info, int argc, char* argv[])
123129 }
124130 SBREAK;
125131 }
132+ SCASE("Psi") {
133+ if(i+3<argc) {
134+ info->minPsi = stringGetNthRealData(argv[i+1], 1, " ,");
135+ i++;
136+ info->flagminPsi++;
137+ info->maxPsi = stringGetNthRealData(argv[i+1], 1, " ,");
138+ i++;
139+ info->flagmaxPsi++;
140+ info->delPsi = stringGetNthRealData(argv[i+1], 1, " ,");
141+ i++;
142+ info->flagdelPsi++;
143+ } else {
144+ usage(argv[0]);
145+ exit(EXIT_FAILURE);
146+ }
147+ SBREAK;
148+ }
149+ SCASE("thres") {
150+ if(i+1<argc) {
151+ info->thresZscore = stringGetNthRealData(argv[i+1], 1, " ,");
152+ i++;
153+ info->flagthresZscore++;
154+ } else {
155+ usage(argv[0]);
156+ exit(EXIT_FAILURE);
157+ }
158+ SBREAK;
159+ }
160+ SCASE("interp") {
161+ if(i+1<argc) {
162+ info->interpMode = stringGetNthIntegerData(argv[i+1], 1, " ,");
163+ i++;
164+ info->flaginterpMode++;
165+ } else {
166+ usage(argv[0]);
167+ exit(EXIT_FAILURE);
168+ }
169+ SBREAK;
170+ }
126171 SCASE("c") {
127172 if(i+1<argc) {
128173 info->configFile = stringGetNthWord(argv[i+1], 1, " ,");
--- a/src/Tools/mrcImage/mrcImageShapeSearch/src/init.c
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/init.c
@@ -17,14 +17,21 @@ init0(mrcImageShapeSearchInfo* info)
1717 info->fptShape = NULL; info->flagShape = 0;
1818 info->minR = 3; info->flagminR = 0;
1919 info->maxR = 5; info->flagmaxR = 0;
20+ info->delR = 1; info->flagdelR = 0;
2021 info->minL = 3; info->flagminL = 0;
2122 info->maxL = 5; info->flagmaxL = 0;
23+ info->delL = 1; info->flagdelL = 0;
2224 info->minPhi = 0.0; info->flagminPhi = 0;
2325 info->maxPhi = 359.0; info->flagmaxPhi = 0;
2426 info->delPhi = 1.0; info->flagdelPhi = 0;
2527 info->minTheta = 0.0; info->flagminTheta = 0;
2628 info->maxTheta = 359.0; info->flagmaxTheta = 0;
2729 info->delTheta = 1.0; info->flagdelTheta = 0;
30+ info->minPsi = 0.0; info->flagminPsi = 0;
31+ info->maxPsi = 0.0; info->flagmaxPsi = 0;
32+ info->delPsi = 90.0; info->flagdelPsi = 0;
33+ info->thresZscore = 1.0; info->flagthresZscore = 0;
34+ info->interpMode = 0; info->flaginterpMode = 0;
2835 info->fptconfigFile = NULL; info->flagconfigFile = 0;
2936 info->mode = 0; info->flagmode = 0;
3037 }
@@ -52,11 +59,6 @@ init1(mrcImageShapeSearchInfo* info)
5259 info->fptOut = fileOpen(info->Out, "w");
5360 }
5461
55- if(!info->flagShape) {
56- stringGetFromFile(s, "Shape", stdin, stdout, 0);
57- info->Shape = stringGetNthWord(s, 1, " ,\t");
58- info->flagShape++;
59- }
6062 if(info->flagShape) {
6163 info->fptShape = fileOpen(info->Shape, "w");
6264 }
@@ -67,12 +69,18 @@ init1(mrcImageShapeSearchInfo* info)
6769 if(info->flagmaxR) {
6870 }
6971
72+ if(info->flagdelR) {
73+ }
74+
7075 if(info->flagminL) {
7176 }
7277
7378 if(info->flagmaxL) {
7479 }
7580
81+ if(info->flagdelL) {
82+ }
83+
7684 if(info->flagminPhi) {
7785 }
7886
@@ -91,6 +99,21 @@ init1(mrcImageShapeSearchInfo* info)
9199 if(info->flagdelTheta) {
92100 }
93101
102+ if(info->flagminPsi) {
103+ }
104+
105+ if(info->flagmaxPsi) {
106+ }
107+
108+ if(info->flagdelPsi) {
109+ }
110+
111+ if(info->flagthresZscore) {
112+ }
113+
114+ if(info->flaginterpMode) {
115+ }
116+
94117 if(info->flagconfigFile) {
95118 info->fptconfigFile = fileOpen(info->configFile, "r");
96119 }
--- a/src/Tools/mrcImage/mrcImageShapeSearch/src/mrcImageShapeSearch.c
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/mrcImageShapeSearch.c
@@ -51,13 +51,17 @@ typedef struct lmrcImageShapeSearchInfo {
5151 float delPsi;
5252
5353 int interpMode;
54+ int thresZscore;
55+
5456 mrcImage shape; // Template Structure
5557
5658 // Output
5759 mrcImage average; // Average for all orientations
5860 mrcImage SD; // SD for all
61+ mrcImage Max; // Max for all
5962 mrcImage Zscore; // Z-score;
60- mrcImage shapeInfo; // Shape, Orientation, ...
63+ int nShapeInfo;
64+ mrcImage* shapeInfo; // Shape, Orientation, ...
6165 } lmrcImageShapeSearchInfo;
6266
6367 typedef enum lmrcImageShapeSearchMode {
@@ -67,6 +71,7 @@ typedef enum lmrcImageShapeSearchMode {
6771
6872 extern void lmrcImageShapeSearch(mrcImage* out, mrcImage* in, lmrcImageShapeSearchInfo* linfo, int mode);
6973 extern void lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchInfo* linfo, int mode);
74+extern void lmrcImageShapeSearchPlane(mrcImage* out, mrcImage* in, lmrcImageShapeSearchInfo* linfo, int mode);
7075 extern void lmrcImageShapeSearchModePrint(FILE* fpt);
7176
7277 int
@@ -76,6 +81,8 @@ main(int argc, char* argv[])
7681 lmrcImageShapeSearchInfo linfo;
7782 mrcImage in;
7883 mrcImage out;
84+ char filename[1024];
85+ int i;
7986
8087 init0(&info);
8188 argCheck(&info, argc, argv);
@@ -84,22 +91,45 @@ main(int argc, char* argv[])
8491 DEBUGPRINT("Program Start\n");
8592 linfo.minRadius = info.minR;
8693 linfo.maxRadius = info.maxR;
94+ linfo.delRadius = info.delR;
95+ //
8796 linfo.minLength = info.minL;
8897 linfo.maxLength = info.maxL;
89-
98+ linfo.delLength = info.delL;
99+ //
90100 linfo.minPhi = info.minPhi*RADIAN;
91101 linfo.maxPhi = info.maxPhi*RADIAN;
92102 linfo.delPhi = info.delPhi*RADIAN;
103+ //
93104 linfo.minTheta = info.minTheta*RADIAN;
94105 linfo.maxTheta = info.maxTheta*RADIAN;
95106 linfo.delTheta = info.delTheta*RADIAN;
107+ //
108+ linfo.minPsi = info.minPsi*RADIAN;
109+ linfo.maxPsi = info.maxPsi*RADIAN;
110+ linfo.delPsi = info.delPsi*RADIAN;
111+ //
112+ linfo.thresZscore = info.thresZscore;
113+ linfo.interpMode = info.interpMode;
96114
97115 mrcFileRead(&in, info.In, "in main", 0);
98116
99117 lmrcImageShapeSearch(&out, &in, &linfo, info.mode);
100118
101119 mrcFileWrite(&out, info.Out, "in main", 0);
102- mrcFileWrite(&linfo.shape, info.Shape, "in main", 0);
120+ sprintf(filename, "%s.average", info.Out);
121+ mrcFileWrite(&linfo.average, filename, "in main", 0);
122+ sprintf(filename, "%s.sd", info.Out);
123+ mrcFileWrite(&linfo.SD, filename, "in main", 0);
124+ sprintf(filename, "%s.zscore", info.Out);
125+ mrcFileWrite(&linfo.Zscore, filename, "in main", 0);
126+ sprintf(filename, "%s.max", info.Out);
127+ mrcFileWrite(&linfo.Max, filename, "in main", 0);
128+ for(i=0; i<linfo.nShapeInfo; i++) {
129+ sprintf(filename, "%s.shapeinfo-%02d", info.Out, i);
130+ mrcFileWrite(&linfo.shapeInfo[i], filename, "in main", 0);
131+ }
132+ //mrcFileWrite(&linfo.shape, info.Shape, "in main", 0);
103133
104134 exit(EXIT_SUCCESS);
105135 }
@@ -148,7 +178,7 @@ lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchIn
148178 float theta, phi, psi, radius, length;
149179 int iPhi, iTheta, iPsi, iRadius, iLength;
150180 int nPhi, nTheta, nPsi, nRadius, nLength;
151- float max;
181+ float max, ave, sum, sd, zscore;
152182 double* data;
153183 double d, cp, sp;
154184 double score;
@@ -156,6 +186,8 @@ lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchIn
156186 float r, l, p;
157187 Matrix3D mat;
158188 floatVector v;
189+ int i, imax;
190+ int k, k0;
159191
160192 nPhi = (int)((linfo->maxPhi - linfo->minPhi) /linfo->delPhi) +1;
161193 nTheta = (int)((linfo->maxTheta - linfo->minTheta)/linfo->delTheta)+1;
@@ -169,22 +201,44 @@ lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchIn
169201 floatVectorInit(&v, 4);
170202 v.data[3] = 1;
171203
204+ out->Header = in->Header;
205+ mrcInit(out, NULL);
206+ linfo->average.Header = in->Header;
207+ mrcInit(&linfo->average, NULL);
208+ linfo->SD.Header = in->Header;
209+ mrcInit(&linfo->SD, NULL);
210+ linfo->Zscore.Header = in->Header;
211+ mrcInit(&linfo->Zscore, NULL);
212+ linfo->Max.Header = in->Header;
213+ mrcInit(&linfo->Max, NULL);
214+ linfo->nShapeInfo = 5;
215+ linfo->shapeInfo = (mrcImage*)memoryAllocate(sizeof(mrcImage)*linfo->nShapeInfo, "in MFPCalc");
216+ for(i=0; i<linfo->nShapeInfo; i++) {
217+ linfo->shapeInfo[i].Header = in->Header;
218+ mrcInit(&linfo->shapeInfo[i], NULL);
219+ }
220+
172221 for(z=0; z<in->HeaderN.z; z++) {
222+ DEBUGPRINT1("z: %f\n", z);
173223 for(y=0; y<in->HeaderN.y; y++) {
174- for(x=0; x<in->HeaderN.x; x++) {
175- for(iPhi=0; iPhi<nPhi; iPhi++) {
224+ //DEBUGPRINT1("y: %f\n", y);
225+ for(x=0; x<in->HeaderN.x; x++) { // Each voxel
226+ k0 = (int)(x + y*in->HeaderN.x + z*in->HeaderN.x*in->HeaderN.y);
227+ for(iPhi=0; iPhi<nPhi; iPhi++) { // Three Rotation
176228 phi = linfo->minPhi + iPhi*linfo->delPhi;
177229 for(iTheta=0; iTheta<nTheta; iTheta++) {
178230 theta = linfo->minTheta + iTheta*linfo->delTheta;
179- for(iPsi=0; iPsi<nPsi; iPsi++) {
231+ for(iPsi=0; iPsi<nPsi; iPsi++) {
180232 psi= linfo->minPsi+ iPhi*linfo->delPsi;
181-
182- matrix3DRotationSetFollowingEulerAngle(mat, "ZENS", phi, theta, psi, MATRIX_3D_MODE_INITIALIZE);
233+
234+ //DEBUGPRINT3("%f %f %f\n", phi*DEGREE, theta*DEGREE, psi*DEGREE);
235+ matrix3DRotationSetFollowingEulerAngle(mat,
236+ "ZENS", phi, theta, psi, MATRIX_3D_MODE_INITIALIZE); // Rotation angle set
183237
184- for(iRadius=linfo->minRadius; iRadius<=linfo->maxRadius; iRadius++) {
185- radius = linfo->minRadius + iRadius*linfo->delRadius;
186- for(iLength=linfo->minLength; iLength<=linfo->maxLength; iLength++) {
187- length = linfo->minLength + iLength*linfo->delLength;
238+ for(iRadius=0; iRadius<nRadius; iRadius++) {
239+ radius = linfo->minRadius + iRadius*linfo->delRadius;
240+ for(iLength=0; iLength<nLength; iLength++) {
241+ length = linfo->minLength + iLength*linfo->delLength;
188242
189243 index = iPhi
190244 +iTheta *nPhi
@@ -193,22 +247,37 @@ lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchIn
193247 +iLength*nPhi*nTheta*nPsi*nRadius;
194248
195249 score = 0;
196- for(p=0; r<2*M_PI; l+=linfo->delPsi) {
250+ for(p=0; p<2*M_PI; p+=linfo->delPsi) {
197251 cp = cos(p);
198252 sp = sin(p);
199- for(l=0; r<=length; l+=linfo->delLength) {
253+ for(l=0; l<=length; l+=linfo->delLength) {
200254 v.data[2] = l-length/2;
201255 for(r=0; r<=radius; r+=linfo->delRadius) {
202256 v.data[0] = r*cp;
203257 v.data[1] = r*sp;
204258
205- matrix3DMultiplyVector(&v, mat);
206- dstx = x + v.data[0];
207- dsty = y + v.data[1];
208- dstz = z + v.data[2];
209- mrcPixelDataGet(in, dstx, dsty, dstz, &d, mrcPixelRePart, linfo->interpMode);
259+ //matrix3DMultiplyVector(&v, mat);
260+ srcx = mat[0][0]*v.data[0] + mat[1][0]*v.data[1] + mat[2][0]*v.data[2];
261+ srcy = mat[0][1]*v.data[0] + mat[1][1]*v.data[1] + mat[2][1]*v.data[2];
262+ srcz = mat[0][2]*v.data[0] + mat[1][2]*v.data[1] + mat[2][2]*v.data[2];
263+
264+ dstx = x + srcx;
265+ dsty = y + srcy;
266+ dstz = z + srcz;
267+ //DEBUGPRINT3("dst: %f %f %f\n", dstx, dsty, dstz);
268+ //mrcPixelDataGet(in, dstx, dsty, dstz, &d, mrcPixelRePart, linfo->interpMode);
269+ if(-0.5<dstx && dstx < in->HeaderN.x-0.5
270+ &&-0.5<dsty && dsty < in->HeaderN.y-0.5
271+ &&-0.5<dstz && dstz < in->HeaderN.z-0.5) {
272+ k = (int)(dstx+0.5) + (int)(dsty+0.5)*in->HeaderN.x + (int)(dstz+0.5)*in->HeaderN.x*in->HeaderN.y;
273+ d = in->ImageFloatImage[k];
274+ } else {
275+ d = 0;
276+ }
210277 score += d;
211278 }
279+
280+ // Edge Check
212281 v.data[0] = r*cos(p);
213282 v.data[1] = r*sin(p);
214283 matrix3DMultiplyVector(&v, mat);
@@ -220,14 +289,31 @@ lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchIn
220289 }
221290 }
222291 data[index] = score;
292+#ifdef DEBUG2
293+ if(0<score) {
294+ DEBUGPRINT2("data: %d %f\n", index, score);
295+ }
296+#endif
223297 }
224298 }
225299 }
226300 }
227301 }
228- sum = 0;
229- for(i=0; i<nData; i++) {
302+ //DEBUGPRINT1("nData: %d\n", nData);
303+ imax = 0;
304+ max = data[0];
305+ sum = data[0];
306+ for(i=1; i<nData; i++) {
307+#ifdef DEBUG2
308+ if(0<data[i]) {
309+ DEBUGPRINT2("data: %d %f\n", i, data[i]);
310+ }
311+#endif
230312 sum += data[i];
313+ if(max<data[i]) {
314+ imax = i;
315+ max = data[i];
316+ }
231317 }
232318 ave = sum/nData;
233319 sum = 0;
@@ -235,6 +321,48 @@ lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchIn
235321 sum += SQR(data[i]-ave);
236322 }
237323 sd = sqrt(sum/nData);
324+#ifdef DEBUG2
325+ if(0<max) {
326+ DEBUGPRINT3("%f %f %f ", x, y, z);
327+ DEBUGPRINT3("%f %f %f \n", max, ave, sd);
328+ }
329+#endif
330+ //mrcPixelDataSet(&linfo->average, x, y, z, ave, mrcPixelRePart);
331+ linfo->average.ImageFloatImage[k0] = ave;
332+
333+ //mrcPixelDataSet(&linfo->SD, x, y, z, sd, mrcPixelRePart);
334+ linfo->SD.ImageFloatImage[k0] = sd;
335+
336+ //mrcPixelDataSet(&linfo->Max, x, y, z, max, mrcPixelRePart);
337+ linfo->Max.ImageFloatImage[k0] = max;
338+
339+ zscore = ((sd>0)?(max-ave)/sd:0);
340+ //mrcPixelDataSet(&linfo->Zscore, x, y, z, zscore, mrcPixelRePart);
341+ linfo->Zscore.ImageFloatImage[k0] = zscore;
342+
343+ d = ((zscore>linfo->thresZscore)?1:0);
344+ //mrcPixelDataSet(out, x, y, z, d, mrcPixelRePart);
345+ out->ImageFloatImage[k0] = d;
346+
347+ i = imax%nPhi;
348+ //mrcPixelDataSet(&linfo->shapeInfo[0], x, y, z, (i*linfo->delPhi + linfo->minPhi)*DEGREE, mrcPixelRePart);
349+ linfo->shapeInfo[0].ImageFloatImage[k0] = (i*linfo->delPhi + linfo->minPhi)*DEGREE;
350+
351+ i = (imax%(nPhi*nTheta))/nPhi;
352+ //mrcPixelDataSet(&linfo->shapeInfo[1], x, y, z, (i*linfo->delTheta + linfo->minTheta)*DEGREE, mrcPixelRePart);
353+ linfo->shapeInfo[1].ImageFloatImage[k0] = (i*linfo->delTheta + linfo->minTheta)*DEGREE;
354+
355+ i = (imax%(nPhi*nTheta*nPsi))/(nPhi*nTheta);
356+ //mrcPixelDataSet(&linfo->shapeInfo[2], x, y, z, (i*linfo->delPsi+ linfo->minPsi)*DEGREE, mrcPixelRePart);
357+ linfo->shapeInfo[2].ImageFloatImage[k0] = (i*linfo->delPsi+ linfo->minPsi)*DEGREE;
358+
359+ i = (imax%(nPhi*nTheta*nPsi*nRadius))/(nPhi*nTheta*nPsi);
360+ //mrcPixelDataSet(&linfo->shapeInfo[3], x, y, z, i*linfo->delRadius + linfo->minRadius, mrcPixelRePart);
361+ linfo->shapeInfo[3].ImageFloatImage[k0] = i*linfo->delRadius + linfo->minRadius;
362+
363+ i = imax/(nPhi*nTheta*nPsi*nRadius);
364+ mrcPixelDataSet(&linfo->shapeInfo[4], x, y, z, i*linfo->delLength + linfo->minLength, mrcPixelRePart);
365+ linfo->shapeInfo[4].ImageFloatImage[k0] = i*linfo->delLength + linfo->minLength;
238366 }
239367 }
240368 }
@@ -243,5 +371,6 @@ lmrcImageShapeSearchSylinder(mrcImage* out, mrcImage* in, lmrcImageShapeSearchIn
243371 void
244372 lmrcImageShapeSearchPlane(mrcImage* out, mrcImage* in, lmrcImageShapeSearchInfo* linfo, int mode)
245373 {
374+ DEBUGPRINT("Not yet supported\n");
246375 }
247376
--- a/src/Tools/mrcImage/mrcImageShapeSearch/src/mrcImageShapeSearch.html
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/mrcImageShapeSearch.html
@@ -10,21 +10,29 @@ Usage: mrcImageShapeSearch
1010 Options:
1111 [-i[nput] In (NULL ).as(inFile::mrcImage ) ] :Essential :Input
1212 [-o[utput] Out (NULL ).as(outFile::mrcImage ) ] :Essential :Output
13- [-Shape Shape (NULL ).as(outFile::mrcImage ) ] :Essential :Output
13+ [-Shape Shape (NULL ).as(outFile::mrcImage ) ] :Optional :Output
1414 [-r[adius] minR (3 ).as(Integer )
15- maxR (5 ).as(Integer ) ] :Optional :Radius[pixel]
15+ maxR (5 ).as(Integer )
16+ delR (1 ).as(Integer ) ] :Optional :Radius[pixel]
1617 [-l[ength] minL (3 ).as(Integer )
17- maxL (5 ).as(Integer ) ] :Optional :Length[pixel]
18+ maxL (5 ).as(Integer )
19+ delL (1 ).as(Integer ) ] :Optional :Length[pixel]
1820 [-Phi minPhi (0.0 ).as(Real )
1921 maxPhi (359.0 ).as(Real )
2022 delPhi (1.0 ).as(Real ) ] :Optional :around z-axis[degree]
2123 [-Theta minTheta (0.0 ).as(Real )
2224 maxTheta (359.0 ).as(Real )
2325 delTheta (1.0 ).as(Real ) ] :Optional :around x-axis[degree]
26+ [-Psi minPsi (0.0 ).as(Real )
27+ maxPsi (0.0 ).as(Real )
28+ delPsi (90.0 ).as(Real ) ] :Optional :around x-axis[degree]
29+ [-thres[Zscore] thresZscore (1.0 ).as(Real ) ] :Optional :Zscore
30+ [-interp[olationMode]interpMode (0 ).as(Integer ) ] :Optional :interpMode
2431 [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile
2532 [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode
2633 ----- Additional Usage -----
2734 0: Cylinder with radius and length
35+1: Plane with radius and thickness
2836 </PRE>
2937 </BODY>
3038 </HTML>
--- a/src/Tools/mrcImage/mrcImageShapeSearch/src/mrcImageShapeSearch.pane
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/mrcImageShapeSearch.pane
@@ -9,13 +9,16 @@
99 -Q 1 0 5.25x1+47+0 'Close'
1010 -I 1 0 1 1 0 1 -1x1+1+1.500000 ' ' 'In' 'Input' i
1111 -O 1 0 1 1 0 1 -1x1+1+3.000000 ' ' 'Out' 'Output' o
12- -O 1 0 1 1 0 1 -1x1+1+4.500000 ' ' 'Shape' 'Output' Shape
12+ -O 1 0 1 0 0 1 -1x1+1+4.500000 ' ' 'Shape' 'Output' Shape
1313 -I 1 0 0 1 0 1 -1x1+1+6 ' ' '3' 'minR' Radius[pixel]
1414 -I 1 0 0 1 0 1 -1x1+1+7 ' ' '3' 'minL' Length[pixel]
1515 -I 1 0 0 1 0 1 -1x1+1+9 ' ' '0.0' 'minPhi' around z-axis[degree]
1616 -I 1 0 0 1 0 1 -1x1+1+10 ' ' '0.0' 'minTheta' around x-axis[degree]
17- -I 1 0 1 0 0 1 -1x1+1+12.000000 ' ' 'configFile' 'ConfigurationFile' c
18- -i 1 0 1 0 0 -1x1+1+13.500000 0 0 0 0 0 'mode' 'Mode' m
17+ -I 1 0 0 1 0 1 -1x1+1+12 ' ' '0.0' 'minPsi' around x-axis[degree]
18+ -f 1 0 1 0 0 -1x1+1+13.500000 0 0 1.000000 0 0 0 'thresZscore' 'Zscore' thres
19+ -i 1 0 1 0 0 -1x1+1+15.000000 0 0 0 0 0 'interpMode' 'interpMode' interp
20+ -I 1 0 1 0 0 1 -1x1+1+16.500000 ' ' 'configFile' 'ConfigurationFile' c
21+ -i 1 0 1 0 0 -1x1+1+18.000000 0 0 0 0 0 'mode' 'Mode' m
1922 -E
2023 -E
2124 -E
--- /dev/null
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/test/Makefile
@@ -0,0 +1,21 @@
1+include ../../Config/Define.inc
2+include ../../../Config/Define.inc
3+include ../../../../Config/Define.inc
4+include ../../../../../Config/Define.inc
5+
6+all: help exec
7+
8+help:
9+ @echo "----- Help Message Check -----"
10+ @../$(OSTYPE)/$(OBJECTNAME) -h
11+
12+exec:
13+ @echo "----- Execution Check -----"
14+ ../$(OSTYPE)/$(OBJECTNAME) -i data/test-sylinder.bin -o data/test-sylinder.syl -r 3 5 1 -l 5 5 1 -Phi 0 359 30 -Theta - 0 189 30 -Psi 0 0 90 -m 0 -thres 2.5
15+ @echo "----- Calc check -----"
16+
17+init:
18+ mrcImageModelCreate -o data/test-sylinder.mrc -nx 32 -ny 32 -nz 32 -r 3 -l 20 -m 8
19+ mrcImageBinalization -i data/test-sylinder.mrc -o data/test-sylinder.bin -m 32
20+
21+clean:
--- /dev/null
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/test/data
@@ -0,0 +1 @@
1+../../../../../..//data/mrcImageShapeSearch
\ No newline at end of file
--- a/src/Tools/mrcImage/mrcImageShapeSearch/src/usage.c
+++ b/src/Tools/mrcImage/mrcImageShapeSearch/src/usage.c
@@ -9,11 +9,14 @@ usage(char* thisProgram)
99 fprintf(stderr, "Options:\n");
1010 fprintf(stderr, " [-i[nput] In (NULL ).as(inFile::mrcImage ) ] :Essential :Input\n");
1111 fprintf(stderr, " [-o[utput] Out (NULL ).as(outFile::mrcImage ) ] :Essential :Output\n");
12- fprintf(stderr, " [-Shape Shape (NULL ).as(outFile::mrcImage ) ] :Essential :Output\n");
13- fprintf(stderr, " [-r[adius] minR (3 ).as(Integer ) \n maxR (5 ).as(Integer ) ] :Optional :Radius[pixel]\n");
14- fprintf(stderr, " [-l[ength] minL (3 ).as(Integer ) \n maxL (5 ).as(Integer ) ] :Optional :Length[pixel]\n");
12+ fprintf(stderr, " [-Shape Shape (NULL ).as(outFile::mrcImage ) ] :Optional :Output\n");
13+ fprintf(stderr, " [-r[adius] minR (3 ).as(Integer ) \n maxR (5 ).as(Integer ) \n delR (1 ).as(Integer ) ] :Optional :Radius[pixel]\n");
14+ fprintf(stderr, " [-l[ength] minL (3 ).as(Integer ) \n maxL (5 ).as(Integer ) \n delL (1 ).as(Integer ) ] :Optional :Length[pixel]\n");
1515 fprintf(stderr, " [-Phi minPhi (0.0 ).as(Real ) \n maxPhi (359.0 ).as(Real ) \n delPhi (1.0 ).as(Real ) ] :Optional :around z-axis[degree]\n");
1616 fprintf(stderr, " [-Theta minTheta (0.0 ).as(Real ) \n maxTheta (359.0 ).as(Real ) \n delTheta (1.0 ).as(Real ) ] :Optional :around x-axis[degree]\n");
17+ fprintf(stderr, " [-Psi minPsi (0.0 ).as(Real ) \n maxPsi (0.0 ).as(Real ) \n delPsi (90.0 ).as(Real ) ] :Optional :around x-axis[degree]\n");
18+ fprintf(stderr, " [-thres[Zscore] thresZscore (1.0 ).as(Real ) ] :Optional :Zscore\n");
19+ fprintf(stderr, " [-interp[olationMode]interpMode (0 ).as(Integer ) ] :Optional :interpMode\n");
1720 fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n");
1821 fprintf(stderr, " [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode\n");
1922 additionalUsage();
--- a/util/src/Graphics/Makefile
+++ b/util/src/Graphics/Makefile
@@ -9,9 +9,13 @@ JPEGVERSION=9a
99 #GIFVERSION=4.1.6
1010 GIFVERSION=5.1.1
1111 MESAVERSION=4.0.3
12+
1213 #TIFFVERSION=v3.4beta037
1314 #TIFFVERSION=3.8.2
1415 TIFFVERSION=4.0.3
16+TIFFNAME=tiff-$(TIFFVERSION)
17+TIFFWHERE=http://download.osgeo.org/libtiff/$(TIFFNAME).tar.gz
18+
1519
1620 PNGVERSION=1.6.16
1721 PNGNAME=libpng-$(PNGVERSION)
@@ -20,11 +24,11 @@ PNGWHERE=http://prdownloads.sourceforge.net/libpng/libpng-1.6.16.tar.gz?download
2024 help:
2125 echo "JPEG/GIF/TIFF/MESA"
2226
23-check: JPEGInit GIFInit TIFFInit MESAInit PNGInit
27+check: JPEGInit GIFInit TIFFInit MESAInit PNGCheck
2428
2529 config: JPEGConfig GIFConfig MESAConfig TIFFConfig PNGConfig
2630
27-all: JPEG GIF MESA TIFF PNG
31+all: JPEG GIF MESA TIFF PNGAll
2832
2933 clean: JPEGClean GIFClean MESAClean TIFFClean PNGClean
3034
@@ -126,9 +130,8 @@ MESACleanAll::
126130 #
127131
128132 TIFFInit::
129- #ln -sf ../..//src/Graphics/tiff-$(TIFFVERSION).tar.gz .
130- curl -O http://download.osgeo.org/libtiff/tiff-$(TIFFVERSION).tar.gz
131- gzip -dc tiff-$(TIFFVERSION).tar.gz | tar xvf -
133+ curl -O $(TIFFWHERE)
134+ gzip -dc $(TIFFNAME).tar.gz | tar xvf -
132135
133136 TIFFConfig::
134137 cd tiff-$(TIFFVERSION) ; \
@@ -140,30 +143,30 @@ TIFFConfig::
140143 fi
141144
142145 TIFF::
143- cd tiff-$(TIFFVERSION); \
146+ cd $(TIFFNAME); \
144147 $(MAKE) install
145148
146149 TIFFClean::
147- cd tiff-$(TIFFVERSION); \
150+ cd $(TIFFNAME); \
148151 $(MAKE) -i clean
149152
150153 TIFFCleanAll::
151- rm -rf tiff-$(TIFFVERSION)
152- rm -rf tiff-$(TIFFVERSION).tar.gz
154+ rm -rf $(TIFFNAME).tar.gz
155+ rm -rf $(TIFFNAME)
153156
154157
155158 #
156159 # PNG
157160 #
158161
159-PNGInit::
162+PNGCheck::
160163 curl -L $(PNGWHERE) > $(PNGNAME).tar.gz
161164 gzip -dc libpng-$(PNGVERSION).tar.gz | tar xvf -
162165
163166 PNGConfig::
164167 cd $(PNGNAME) ; ./configure --prefix=${EOS_HOME}/util/$(OSTYPE)
165168
166-PNG::
169+PNGAll::
167170 cd $(PNGNAME); $(MAKE) ; $(MAKE) check; $(MAKE) install
168171
169172 PNGClean::
@@ -174,4 +177,3 @@ PNGCleanAll::
174177 rm -rf $(PNGNAME).tar.gz
175178 rm -rf $(PNGNAME)
176179
177-