This repository is a base of Eos.
Revisión | 597865655549f92b7269d17e83561b0c5ebeca15 (tree) |
---|---|
Tiempo | 2015-11-10 11:20:23 |
Autor | Takuo Yasunaga <yasunaga@bio....> |
Commiter | Takuo Yasunaga |
modified: include/lmrcImageSymmetryFind.h
modified: src/Objects/DataManip/mrcImage/src/lmrcImageSymmetryFind.c
modified: src/Objects/DataManip/mrcImage/src/lmrcImageSymmetryFind.h
modified: src/Objects/DataManip/mrcImage/src/lmrcImageTransformDescartesIntoPolar.c
modified: src/Tools/Config/Define.inc
modified: src/Tools/mrcImage/mrcImageSymmetryAverage/src/mrcImageSymmetryAverage.c
modified: src/Tools/mrcImage/mrcImageSymmetryAverage/src/mrcImageSymmetryAverage.html
new file: src/Tools/mrcImage/mrcImageSymmetryAverage/src/test/Makefile
new file: src/Tools/mrcImage/mrcImageSymmetryAverage/src/test/data
modified: src/Tools/mrcImage/mrcImageSymmetryCentreFind/src/mrcImageSymmetryCentreFind.c
modified: src/Tools/mrcImage/mrcImageSymmetryCentreFind/src/mrcImageSymmetryCentreFind.html
new file: src/Tools/mrcImage/mrcImageSymmetryCentreFind/src/test/Makefile
new file: src/Tools/mrcImage/mrcImageSymmetryCentreFind/src/test/data
modified: src/Tools/mrcImage/mrcImageSymmetryFind/Config/OptionControlFile
modified: src/Tools/mrcImage/mrcImageSymmetryFind/inc/mrcImageSymmetryFind.h
modified: src/Tools/mrcImage/mrcImageSymmetryFind/src/argCheck.c
modified: src/Tools/mrcImage/mrcImageSymmetryFind/src/init.c
modified: src/Tools/mrcImage/mrcImageSymmetryFind/src/mrcImageSymmetryFind.c
modified: src/Tools/mrcImage/mrcImageSymmetryFind/src/mrcImageSymmetryFind.html
modified: src/Tools/mrcImage/mrcImageSymmetryFind/src/mrcImageSymmetryFind.pane
modified: src/Tools/mrcImage/mrcImageSymmetryFind/src/test/Makefile
modified: src/Tools/mrcImage/mrcImageSymmetryFind/src/usage.c
@@ -122,7 +122,17 @@ extern void | ||
122 | 122 | lmrcImageSymmetryFindModePrint(FILE* fpt); |
123 | 123 | |
124 | 124 | extern void |
125 | +lmrcImageSymmetryFindAlgorythmPrint(FILE* fpt); | |
126 | + | |
127 | +extern void | |
125 | 128 | lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode); |
129 | + | |
130 | +extern void | |
131 | +lmrcImageSymmetryCentreFindGC(mrcImage* in, DescartesCoord* centre, int mode); | |
132 | + | |
133 | +extern void | |
134 | +lmrcImageSymmetryCentreFindSymmetry(mrcImage* in, DescartesCoord* centre, int mode); | |
135 | + | |
126 | 136 | /* prototype end */ |
127 | 137 | |
128 | 138 | #endif |
@@ -18,7 +18,7 @@ static char __sccs_id[] = "%Z%lmrcImageSymmetryFind ver%I%; Date:%D% %Z%"; | ||
18 | 18 | #include <math.h> |
19 | 19 | #define GLOBAL_DECLARATION |
20 | 20 | |
21 | -#define DEBUG | |
21 | +#undef DEBUG | |
22 | 22 | #include "genUtil.h" |
23 | 23 | #include "Memory.h" |
24 | 24 | #include "mrcImage.h" |
@@ -30,7 +30,22 @@ static char __sccs_id[] = "%Z%lmrcImageSymmetryFind ver%I%; Date:%D% %Z%"; | ||
30 | 30 | #include "lmrcImagesStatDataGet.h" |
31 | 31 | #include "lmrcFFTExpression.h" |
32 | 32 | |
33 | -extern void | |
33 | +void | |
34 | +lmrcImageSymmetryFindAlgorythmPrint(FILE* fpt) | |
35 | +{ | |
36 | + fprintf(fpt, ">> Add\n"); | |
37 | + fprintf(fpt, " Image: Descartes coordinates (2D) -> Polar coordinates (2D) : PolarImage \n"); | |
38 | + fprintf(fpt, " Shift: Polar coordinates (2D) + Shift(360/n) -> Polar coordinates (2D) : ShiftImage \n"); | |
39 | + fprintf(fpt, " Add: AddImage(data2) := PolarImage(data1) + ShiftImage(data1_1)\n"); | |
40 | + fprintf(fpt, " Count: If 0<data1 && 0<data2 && data1*threshold1 <= data2 <= 2*data1 \n"); | |
41 | + fprintf(fpt, " (threshodl1 - 1)*data1_1 <= data1 <= data1_1 \n"); | |
42 | + fprintf(fpt, ">> Correalation\n"); | |
43 | + fprintf(fpt, " Image: Descartes coordinates (2D) -> Polar coordinates (2D) : PolarImage \n"); | |
44 | + fprintf(fpt, " Correlation: Polar coordinates (2D) -> Polar coordinates (2D) : Correlation\n"); | |
45 | + fprintf(fpt, " Average: each 360/n\n"); | |
46 | +} | |
47 | + | |
48 | +void | |
34 | 49 | lmrcImageSymmetryFindModePrint(FILE* fpt) |
35 | 50 | { |
36 | 51 | fprintf(fpt, ">>>> check type mode\n"); |
@@ -53,9 +68,47 @@ lmrcImageSymmetryFindModePrint(FILE* fpt) | ||
53 | 68 | fprintf(fpt, " %d : Min Subtraction\n", lmrcImageSymmetryFindCheckTypeMinSubtraction); |
54 | 69 | } |
55 | 70 | |
56 | -extern void | |
71 | +void | |
57 | 72 | lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode) |
58 | 73 | { |
74 | + switch(mode) { | |
75 | + case lmrcImageSymmetryFindCheckTypeCentreGC: { | |
76 | + lmrcImageSymmetryCentreFindGC(in, centre, mode); | |
77 | + break; | |
78 | + } | |
79 | + case lmrcImageSymmetryFindCheckTypeCentreSymmetry: { | |
80 | + lmrcImageSymmetryCentreFindSymmetry(in, centre, mode); | |
81 | + break; | |
82 | + } | |
83 | + case lmrcImageSymmetryFindCheckTypeCentreCentre: { | |
84 | + centre->x = in->HeaderN.x/2+1; | |
85 | + centre->y = in->HeaderN.y/2+1; | |
86 | + centre->z = in->HeaderN.z/2+1; | |
87 | + break; | |
88 | + } | |
89 | + case lmrcImageSymmetryFindCheckTypeCentreOrigin: { | |
90 | + centre->x = 0; | |
91 | + centre->y = 0; | |
92 | + centre->z = 0; | |
93 | + break; | |
94 | + } | |
95 | + default: { | |
96 | + fprintf(stderr, "Not supported mode in lmrcImageSymmetryCentreFind: %d\n", mode); | |
97 | + exit(EXIT_FAILURE); | |
98 | + } | |
99 | + } | |
100 | +} | |
101 | + | |
102 | +void | |
103 | + | |
104 | +lmrcImageSymmetryCentreFindSymmetry(mrcImage* in, DescartesCoord* centre, int mode) | |
105 | +{ | |
106 | + fprintf(stderr, "Not supported: pre\n"); | |
107 | +} | |
108 | + | |
109 | +void | |
110 | +lmrcImageSymmetryCentreFindGC(mrcImage* in, DescartesCoord* centre, int mode) | |
111 | +{ | |
59 | 112 | DescartesCoord d, c, cMin, cMax, optimum; |
60 | 113 | double est, tmp; |
61 | 114 | mrcImageParaTypeReal x, y, z; |
@@ -170,6 +223,8 @@ lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode) | ||
170 | 223 | void |
171 | 224 | lmrcImageSymmetryFind(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode) |
172 | 225 | { |
226 | + //lmrcImageSymmetryCentreFind(in, &linfo->centre, linfo->centreMode); | |
227 | + | |
173 | 228 | floatVectorInit(&(linfo->Value), linfo->maxNfold+1); |
174 | 229 | floatVectorInit(&(linfo->Point), linfo->maxNfold+1); |
175 | 230 |
@@ -217,8 +272,10 @@ lmrcImageSymmetryFindResultOut(FILE* fpt, mrcImage* in, lmrcImageSymmetryFindInf | ||
217 | 272 | } |
218 | 273 | } |
219 | 274 | |
220 | - if(max<=min) { | |
275 | + | |
276 | + if(max<min) { | |
221 | 277 | fprintf(stderr, "Something wrong in lmrcImageSymmetryFindCheckResultOut: max <= min\n"); |
278 | + exit(EXIT_FAILURE); | |
222 | 279 | } |
223 | 280 | |
224 | 281 | for(i=linfo->minNfold; i<=linfo->maxNfold; i++) { |
@@ -250,6 +307,7 @@ lmrcImageSymmetryFindResultOut(FILE* fpt, mrcImage* in, lmrcImageSymmetryFindInf | ||
250 | 307 | } |
251 | 308 | } |
252 | 309 | fprintf(fpt, ")\n"); |
310 | + fprintf(fpt, "Centre: %f %f %f\n", linfo->centre.x, linfo->centre.y, linfo->centre.z); | |
253 | 311 | if(linfo->flagAvg) { |
254 | 312 | lmrcImageSymmetryAverage(&(linfo->avg), in, symn, linfo->centre, 0); |
255 | 313 | mrcFileWrite(&(linfo->avg), linfo->avgName, "in lmrcImageSymmetryFindResultOut", 0); |
@@ -530,10 +588,39 @@ lmrcImageSymmetryFindCheckByFourier(mrcImage* in, lmrcImageSymmetryFindInfo* inf | ||
530 | 588 | /* Transform Descartes Coordinates Into Polar Coordinates */ |
531 | 589 | linfo.dr = info->dr; |
532 | 590 | linfo.dphi = info->dtheta; |
533 | - linfo.flagDescartesIntoPolarInfo = 0; | |
534 | 591 | linfo.flagrWeight = 0; |
535 | 592 | linfo.axisInfo = info->centreInfo; |
536 | 593 | |
594 | + linfo.flagRotationalSymmetry = 0; | |
595 | + linfo.flagImageCentreIsGravityCentre = 0; | |
596 | + linfo.flagCentre = 0; | |
597 | + | |
598 | + switch(info->centreMode) { | |
599 | + case lmrcImageSymmetryFindCheckTypeCentreGC: { | |
600 | + lmrcImageSymmetryCentreFind(in, &info->centre, info->centreMode); | |
601 | + linfo.flagCentre = 1; | |
602 | + linfo.Centre.x = info->centre.x; | |
603 | + linfo.Centre.y = info->centre.y; | |
604 | + linfo.Centre.z = info->centre.z; | |
605 | + break; | |
606 | + } | |
607 | + case lmrcImageSymmetryFindCheckTypeCentreSymmetry: { | |
608 | + linfo.flagRotationalSymmetry = 1; | |
609 | + break; | |
610 | + } | |
611 | + default: { | |
612 | + lmrcImageSymmetryCentreFind(in, &info->centre, info->centreMode); | |
613 | + linfo.flagCentre = 1; | |
614 | + linfo.Centre.x = info->centre.x; | |
615 | + linfo.Centre.y = info->centre.y; | |
616 | + linfo.Centre.z = info->centre.z; | |
617 | + break; | |
618 | + } | |
619 | + } | |
620 | + linfo.flagDescartesIntoPolarInfo = 0; | |
621 | + linfo.flagrWeight = 1; | |
622 | + | |
623 | + | |
537 | 624 | /* Fourier Component */ |
538 | 625 | for(i=info->minNfold; i<=info->maxNfold; i++) { |
539 | 626 | DEBUGPRINT1("%d-fold Start\n", i) |
@@ -542,10 +629,6 @@ lmrcImageSymmetryFindCheckByFourier(mrcImage* in, lmrcImageSymmetryFindInfo* inf | ||
542 | 629 | linfo.flagImageCentreIsGravityCentre = 0; |
543 | 630 | linfo.flagRotationalSymmetry = 1; |
544 | 631 | linfo.flagCentre = 0; |
545 | - } else { | |
546 | - linfo.flagImageCentreIsGravityCentre = 1; | |
547 | - linfo.flagRotationalSymmetry = 0; | |
548 | - linfo.flagCentre = 0; | |
549 | 632 | } |
550 | 633 | lmrcImageTransformDescartesIntoPolar(&polarout, &subout, &linfo, &linfo2, 0); |
551 | 634 | DEBUGPRINT3("%d %d %d\n", polarout.HeaderN.x, polarout.HeaderN.y, polarout.HeaderN.z); |
@@ -570,7 +653,7 @@ lmrcImageSymmetryFindCheckByAdd(mrcImage* in, lmrcImageSymmetryFindInfo* info, i | ||
570 | 653 | mrcImageParaTypeRealCoord shift; |
571 | 654 | int x,y; |
572 | 655 | int i; |
573 | - double data1,data2; | |
656 | + double data1,data2, ave; | |
574 | 657 | lmrcImageTransformDescartesIntoPolarInfo linfo; |
575 | 658 | lDescartesIntoPolarInfo linfo2; |
576 | 659 |
@@ -579,21 +662,45 @@ lmrcImageSymmetryFindCheckByAdd(mrcImage* in, lmrcImageSymmetryFindInfo* info, i | ||
579 | 662 | |
580 | 663 | /* Subtraction */ |
581 | 664 | lmrcImageSymmetryFindSubtraction(&subout, in, info, mode); |
582 | - | |
583 | 665 | shift.y=0; |
584 | 666 | shift.z=0; |
585 | 667 | linfo.dr = info->dr; |
586 | 668 | linfo.dphi = info->dtheta; |
587 | - linfo.flagImageCentreIsGravityCentre = 1; | |
669 | + | |
670 | + linfo.flagRotationalSymmetry = 0; | |
671 | + linfo.flagImageCentreIsGravityCentre = 0; | |
672 | + linfo.flagCentre = 0; | |
673 | + | |
674 | + switch(info->centreMode) { | |
675 | + case lmrcImageSymmetryFindCheckTypeCentreGC: { | |
676 | + lmrcImageSymmetryCentreFind(in, &info->centre, info->centreMode); | |
677 | + linfo.flagCentre = 1; | |
678 | + linfo.Centre.x = info->centre.x; | |
679 | + linfo.Centre.y = info->centre.y; | |
680 | + linfo.Centre.z = info->centre.z; | |
681 | + break; | |
682 | + } | |
683 | + case lmrcImageSymmetryFindCheckTypeCentreSymmetry: { | |
684 | + linfo.flagRotationalSymmetry = 1; | |
685 | + break; | |
686 | + } | |
687 | + default: { | |
688 | + lmrcImageSymmetryCentreFind(in, &info->centre, info->centreMode); | |
689 | + linfo.flagCentre = 1; | |
690 | + linfo.Centre.x = info->centre.x; | |
691 | + linfo.Centre.y = info->centre.y; | |
692 | + linfo.Centre.z = info->centre.z; | |
693 | + break; | |
694 | + } | |
695 | + } | |
588 | 696 | linfo.flagDescartesIntoPolarInfo = 0; |
589 | 697 | linfo.flagrWeight = 1; |
590 | - linfo.flagRotationalSymmetry = 0; | |
591 | 698 | |
592 | 699 | lmrcImageTransformDescartesIntoPolar(&polarout, &subout, &linfo, &linfo2, 0); |
593 | 700 | |
594 | 701 | for(i=info->minNfold; i<=info->maxNfold; i++) { |
595 | 702 | info->Value.data[i]=0; |
596 | - shift.x=360/i; | |
703 | + shift.x=360.0/info->dtheta/i+0.5; | |
597 | 704 | shift.y=0; |
598 | 705 | shift.z=0; |
599 | 706 | lmrcImageShift(&shiftout,&polarout,shift,mrcPixelHowLinear); |
@@ -601,15 +708,19 @@ lmrcImageSymmetryFindCheckByAdd(mrcImage* in, lmrcImageSymmetryFindInfo* info, i | ||
601 | 708 | |
602 | 709 | for(x=0;x<=subout.HeaderN.x;x++){ |
603 | 710 | for(y=0;y<=subout.HeaderN.y;y++){ |
604 | - mrcPixelDataGet(&polarout, x,y,0,&data1,mrcPixelRePart,mrcPixelHowNearest); | |
605 | - mrcPixelDataGet(&shiftout,x,y,0,&data2,mrcPixelRePart,mrcPixelHowNearest); | |
606 | - if(data1>0 && data2>0 && data1*info->threshold1<=data2 && data2<=data1*2) { | |
711 | + mrcPixelDataGet(&polarout, x,y,0,&data1,mrcPixelRePart,mrcPixelHowNearest); | |
712 | + mrcPixelDataGet(&shiftout, x,y,0,&data2,mrcPixelRePart,mrcPixelHowNearest); | |
713 | + ave = data2/2.0; | |
714 | + if(0<data1 && 0<data2 && data1*info->threshold1 <= data2 && data2<= data1*2) { | |
607 | 715 | info->Value.data[i]++; |
608 | 716 | } |
609 | 717 | } |
610 | 718 | } |
611 | 719 | DEBUGPRINT1("Finish until %2d.\n",i); |
612 | 720 | } |
721 | + info->centre.x = linfo.Centre.x; | |
722 | + info->centre.y = linfo.Centre.y; | |
723 | + info->centre.z = linfo.Centre.z; | |
613 | 724 | } |
614 | 725 | |
615 | 726 |
@@ -633,13 +744,49 @@ lmrcImageSymmetryFindCheckByCorrelation(mrcImage* in, lmrcImageSymmetryFindInfo* | ||
633 | 744 | /* Transform Descartes coordinates into Polar coordinates */ |
634 | 745 | linfo.dr = info->dr; |
635 | 746 | linfo.dphi = info->dtheta; |
636 | - linfo.flagImageCentreIsGravityCentre = 1; | |
747 | + | |
748 | + linfo.flagRotationalSymmetry = 0; | |
749 | + linfo.flagImageCentreIsGravityCentre = 0; | |
750 | + linfo.flagCentre = 0; | |
751 | + | |
752 | + switch(info->centreMode) { | |
753 | + case lmrcImageSymmetryFindCheckTypeCentreGC: { | |
754 | + lmrcImageSymmetryCentreFind(in, &info->centre, info->centreMode); | |
755 | + linfo.flagCentre = 1; | |
756 | + linfo.Centre.x = info->centre.x; | |
757 | + linfo.Centre.y = info->centre.y; | |
758 | + linfo.Centre.z = info->centre.z; | |
759 | + break; | |
760 | + } | |
761 | + case lmrcImageSymmetryFindCheckTypeCentreSymmetry: { | |
762 | + fprintf(stderr, "Not supported for this algorythm.\n"); | |
763 | + exit(EXIT_FAILURE); | |
764 | + break; | |
765 | + } | |
766 | + default: { | |
767 | + lmrcImageSymmetryCentreFind(in, &info->centre, info->centreMode); | |
768 | + linfo.flagCentre = 1; | |
769 | + linfo.Centre.x = info->centre.x; | |
770 | + linfo.Centre.y = info->centre.y; | |
771 | + linfo.Centre.z = info->centre.z; | |
772 | + break; | |
773 | + } | |
774 | + } | |
637 | 775 | linfo.flagDescartesIntoPolarInfo = 0; |
638 | 776 | linfo.flagrWeight = 1; |
639 | - linfo.flagRotationalSymmetry = 0; | |
640 | 777 | |
641 | 778 | lmrcImageTransformDescartesIntoPolar(&polarout, &subout, &linfo, &linfo2, 0); |
642 | 779 | |
780 | + switch(info->centreMode) { | |
781 | + case lmrcImageSymmetryFindCheckTypeCentreSymmetry: { | |
782 | + linfo.Centre.x = linfo2.centre.x; | |
783 | + linfo.Centre.y = linfo2.centre.y; | |
784 | + linfo.Centre.z = linfo2.centre.z; | |
785 | + break; | |
786 | + } | |
787 | + default: | |
788 | + break; | |
789 | + } | |
643 | 790 | /* Projection along radial axis */ |
644 | 791 | onedimout.Header=polarout.Header; |
645 | 792 | onedimout.HeaderN.y=1; |
@@ -670,7 +817,7 @@ lmrcImageSymmetryFindCheckByCorrelation(mrcImage* in, lmrcImageSymmetryFindInfo* | ||
670 | 817 | |
671 | 818 | for(i=info->minNfold;i<=info->maxNfold;i++) { |
672 | 819 | sum.data[i]=0; |
673 | - delta=360/i; | |
820 | + delta=(int)(360.0/info->dtheta/i+0.5); | |
674 | 821 | for(j=1;j<i;j++){ |
675 | 822 | mrcPixelDataGet(&(info->correlation),delta*j,0,0,&data1,mrcPixelRePart,mrcPixelHowNearest); |
676 | 823 | sum.data[i]+=data1; |
@@ -697,7 +844,8 @@ lmrcImageSymmetryAverage(mrcImage* out, mrcImage* in, int num, DescartesCoord ce | ||
697 | 844 | for(z=0; z<out->HeaderN.z; z++) { |
698 | 845 | for(y=0; y<out->HeaderN.y; y++) { |
699 | 846 | for(x=0; x<out->HeaderN.x; x++) { |
700 | - r = sqrt(SQR(x - centre.x) + SQR(y - centre.y)); | |
847 | + r = sqrt(SQR(MIN(fabs(x - centre.x), fabs(x - out->HeaderN.x - centre.x))) | |
848 | + + SQR(MIN(fabs(y - centre.y), fabs(y - out->HeaderN.y - centre.y)))); | |
701 | 849 | angle = atan2(y-centre.y, x-centre.x); |
702 | 850 | for(i=0; i<num; i++) { |
703 | 851 | sx = centre.x + r*cos(angle+i*2*M_PI/num); |
@@ -122,7 +122,17 @@ extern void | ||
122 | 122 | lmrcImageSymmetryFindModePrint(FILE* fpt); |
123 | 123 | |
124 | 124 | extern void |
125 | +lmrcImageSymmetryFindAlgorythmPrint(FILE* fpt); | |
126 | + | |
127 | +extern void | |
125 | 128 | lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode); |
129 | + | |
130 | +extern void | |
131 | +lmrcImageSymmetryCentreFindGC(mrcImage* in, DescartesCoord* centre, int mode); | |
132 | + | |
133 | +extern void | |
134 | +lmrcImageSymmetryCentreFindSymmetry(mrcImage* in, DescartesCoord* centre, int mode); | |
135 | + | |
126 | 136 | /* prototype end */ |
127 | 137 | |
128 | 138 | #endif |
@@ -17,7 +17,7 @@ static char __sccs_id[] = "%Z%lmrcImageSymmetryFind ver%I%; Date:%D% %Z%"; | ||
17 | 17 | #include <math.h> |
18 | 18 | #define GLOBAL_DECLARATION |
19 | 19 | |
20 | -#undef DEBUG | |
20 | +#define DEBUG | |
21 | 21 | #undef DEBUG2 |
22 | 22 | #include "genUtil.h" |
23 | 23 | #include "../inc/mrcImage.h" |
@@ -690,3 +690,6 @@ WORLDNAME=Tools | ||
690 | 690 | WORLDNAME=Tools |
691 | 691 | WORLDNAME=Tools |
692 | 692 | WORLDNAME=Tools |
693 | +WORLDNAME=Tools | |
694 | +WORLDNAME=Tools | |
695 | +WORLDNAME=Tools |
@@ -61,4 +61,7 @@ void | ||
61 | 61 | additionalUsage() |
62 | 62 | { |
63 | 63 | fprintf(stderr, "----- Additional Usage -----\n"); |
64 | + fprintf(stderr, "-centre : Set a defined centre\n"); | |
65 | + fprintf(stderr, " otherwise CentreOfGravity \n"); | |
66 | + | |
64 | 67 | } |
@@ -17,6 +17,8 @@ Options: | ||
17 | 17 | [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile |
18 | 18 | [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode |
19 | 19 | ----- Additional Usage ----- |
20 | +-centre : Set a defined centre | |
21 | + otherwise CentreOfGravity | |
20 | 22 | </PRE> |
21 | 23 | </BODY> |
22 | 24 | </HTML> |
@@ -0,0 +1,27 @@ | ||
1 | +include ../../Config/Define.inc | |
2 | +include ../../../Config/Define.inc | |
3 | +include ../../../../Config/Define.inc | |
4 | +include ../../../../../Config/Define.inc | |
5 | + | |
6 | +DATA=data/FlagellaSection-0001 | |
7 | + | |
8 | +all: help exec | |
9 | + | |
10 | +help: | |
11 | + @echo "----- Help Message Check -----" | |
12 | + @../$(OSTYPE)/$(OBJECTNAME) -h | |
13 | + | |
14 | +exec: | |
15 | + @echo "----- Execution Check -----" | |
16 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).cen -o $(DATA).rot12 -n 12 -centre 128 128 0 | |
17 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).cen -o $(DATA).rot13 -n 13 -centre 128 128 0 | |
18 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).cen -o $(DATA).rot14 -n 14 -centre 128 128 0 | |
19 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).cen -o $(DATA).0.rot12 -n 12 -centre 0 0 0 | |
20 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).cen -o $(DATA).0.rot13 -n 13 -centre 0 0 0 | |
21 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).cen -o $(DATA).0.rot14 -n 14 -centre 0 0 0 | |
22 | + @echo "----- Calc check -----" | |
23 | + | |
24 | +clean: | |
25 | + | |
26 | +init: | |
27 | + mrcImageSymmetryCentreFind -i $(DATA).roi -o $(DATA).cen -O $(DATA).info -m 0 |
@@ -0,0 +1 @@ | ||
1 | +../../../../../..//data/mrcImageSymmetryAverage | |
\ No newline at end of file |
@@ -55,4 +55,5 @@ void | ||
55 | 55 | additionalUsage() |
56 | 56 | { |
57 | 57 | fprintf(stderr, "----- Additional Usage -----\n"); |
58 | + lmrcImageSymmetryFindModePrint(stderr); | |
58 | 59 | } |
@@ -14,6 +14,21 @@ Options: | ||
14 | 14 | [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile |
15 | 15 | [-m[ode] mode (0 ).as(Integer ) ] :Optional :Mode |
16 | 16 | ----- Additional Usage ----- |
17 | +>>>> check type mode | |
18 | + 1 : Check by Add | |
19 | + 2 : Check by Correlation | |
20 | + 4 : Check by Fourier | |
21 | + 8 : Check by TTest | |
22 | + 16 : Check by SRP | |
23 | +>>>> centre type mode | |
24 | + 0 : Centre is GC (gravity of centre) | |
25 | + 1 : Centre is Rotational Symmetry | |
26 | + 2 : Centre is at Image Centre | |
27 | + 3 : Centre is at Image Origin | |
28 | +>>>> subtrcation type mode | |
29 | + 0 : No Subtraction | |
30 | + 1 : Mean Subtraction | |
31 | + 2 : Min Subtraction | |
17 | 32 | </PRE> |
18 | 33 | </BODY> |
19 | 34 | </HTML> |
@@ -0,0 +1,20 @@ | ||
1 | +include ../../Config/Define.inc | |
2 | +include ../../../Config/Define.inc | |
3 | +include ../../../../Config/Define.inc | |
4 | +include ../../../../../Config/Define.inc | |
5 | + | |
6 | +DATA=data/FlagellaSection-0001 | |
7 | + | |
8 | +all: help exec | |
9 | + | |
10 | +help: | |
11 | + @echo "----- Help Message Check -----" | |
12 | + @../$(OSTYPE)/$(OBJECTNAME) -h | |
13 | + | |
14 | +exec: | |
15 | + @echo "----- Execution Check -----" | |
16 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).roi -o $(DATA).out0 -O $(DATA).info0 -m 0 | |
17 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA).roi -o $(DATA).out1 -O $(DATA).info1 -m 1 | |
18 | + @echo "----- Calc check -----" | |
19 | + | |
20 | +clean: |
@@ -0,0 +1 @@ | ||
1 | +../../../../../..//data/mrcImageSymmetryCentreFind | |
\ No newline at end of file |
@@ -17,4 +17,5 @@ | ||
17 | 17 | "-rangex","-rangex","Input: ","Optional","3","1","minx","Real","-3","2","maxx","Real","3","3","delx","Real","1" |
18 | 18 | "-rangey","-rangey","Input: ","Optional","3","1","miny","Real","-3","2","maxy","Real","3","3","dely","Real","1" |
19 | 19 | "-rangez","-rangez","Input: ","Optional","3","1","minz","Real","0","2","maxz","Real","0","3","delz","Real","1" |
20 | +"-Algorythm","-Algorythm","Algorythm","Optional","0" | |
20 | 21 | "-c","-c[onfig]","ConfigurationFile","Optional","1","1","configFile","inFile","NULL" |
@@ -98,6 +98,8 @@ typedef struct mrcImageSymmetryFindInfo { | ||
98 | 98 | long flagdelz; |
99 | 99 | float delz; |
100 | 100 | |
101 | + long Algorythm; | |
102 | + | |
101 | 103 | long flagconfigFile; |
102 | 104 | char* configFile; |
103 | 105 | FILE* fptconfigFile; |
@@ -239,6 +239,15 @@ argCheck(mrcImageSymmetryFindInfo* info, int argc, char* argv[]) | ||
239 | 239 | } |
240 | 240 | SBREAK; |
241 | 241 | } |
242 | + SCASE("Algorythm") { | |
243 | + if(i+0<argc) { | |
244 | + info->Algorythm++; | |
245 | + } else { | |
246 | + usage(argv[0]); | |
247 | + exit(EXIT_FAILURE); | |
248 | + } | |
249 | + SBREAK; | |
250 | + } | |
242 | 251 | SCASE("c") { |
243 | 252 | if(i+1<argc) { |
244 | 253 | info->configFile = stringGetNthWord(argv[i+1], 1, " ,"); |
@@ -37,6 +37,7 @@ init0(mrcImageSymmetryFindInfo* info) | ||
37 | 37 | info->minz = 0; info->flagminz = 0; |
38 | 38 | info->maxz = 0; info->flagmaxz = 0; |
39 | 39 | info->delz = 1; info->flagdelz = 0; |
40 | + info->Algorythm=0; | |
40 | 41 | info->fptconfigFile = NULL; info->flagconfigFile = 0; |
41 | 42 | } |
42 | 43 |
@@ -35,6 +35,11 @@ main(int argc, char* argv[]) | ||
35 | 35 | init0(&info); |
36 | 36 | argCheck(&info, argc, argv); |
37 | 37 | init1(&info); |
38 | + if(info.Algorythm) { | |
39 | + lmrcImageSymmetryFindAlgorythmPrint(stderr); | |
40 | + exit(EXIT_FAILURE); | |
41 | + } | |
42 | + | |
38 | 43 | |
39 | 44 | DEBUGPRINT("#### Program Started\n"); |
40 | 45 | mrcFileRead(&in, info.In, "in main", 0); |
@@ -81,7 +86,7 @@ main(int argc, char* argv[]) | ||
81 | 86 | linfo.centreInfo.minz = info.minz; |
82 | 87 | linfo.centreInfo.maxz = info.maxz; |
83 | 88 | linfo.centreInfo.delz = info.delz; |
84 | - linfo.centreInfo.delPHI = linfo.dtheta; | |
89 | + linfo.centreInfo.delPHI = linfo.dtheta*RADIAN; | |
85 | 90 | |
86 | 91 | lmrcImageSymmetryFind(&in, &linfo, info.mode1); |
87 | 92 |
@@ -44,6 +44,8 @@ Options: | ||
44 | 44 | >>>> centre type mode |
45 | 45 | 0 : Centre is GC (gravity of centre) |
46 | 46 | 1 : Centre is Rotational Symmetry |
47 | + 2 : Centre is at Image Centre | |
48 | + 3 : Centre is at Image Origin | |
47 | 49 | >>>> subtrcation type mode |
48 | 50 | 0 : No Subtraction |
49 | 51 | 1 : Mean Subtraction |
@@ -24,7 +24,8 @@ | ||
24 | 24 | -I 1 0 0 1 0 1 -1x1+1+22 ' ' '-3' 'minx' Input: |
25 | 25 | -I 1 0 0 1 0 1 -1x1+1+24 ' ' '-3' 'miny' Input: |
26 | 26 | -I 1 0 0 1 0 1 -1x1+1+25 ' ' '0' 'minz' Input: |
27 | - -I 1 0 1 0 0 1 -1x1+1+27.000000 ' ' 'configFile' 'ConfigurationFile' c | |
27 | + -t 1 0 1 0 0 6x1+1+27 'Algorythm' 'Algorythm' Algorythm | |
28 | + -I 1 0 1 0 0 1 -1x1+1+28.500000 ' ' 'configFile' 'ConfigurationFile' c | |
28 | 29 | -E |
29 | 30 | -E |
30 | 31 | -E |
@@ -13,8 +13,18 @@ help: | ||
13 | 13 | |
14 | 14 | exec: |
15 | 15 | @echo "----- Execution Check -----" |
16 | - ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA)-0001.neg -O $(DATA)-0001.info -nRange 10 15 -A $(DATA)-0001.avg -centreMode 1 -m1 1 -m2 2 | |
17 | - @echo "----- Calc check -----" | |
16 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA)-0001.roi -O $(DATA)-0001.info1 -nRange 10 16 -A $(DATA)-0001.avg1 -centreMode 0 -m1 1 -m2 1 -t1 1.5 | |
17 | + | |
18 | +exec2: | |
19 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA)-0001.roi -O $(DATA)-0001.info2 -nRange 10 16 -A $(DATA)-0001.avg2 -centreMode 0 -m1 2 -m2 0 | |
20 | + | |
21 | +exec4: | |
22 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA)-0001.roi -O $(DATA)-0001.info4 -nRange 10 16 -A $(DATA)-0001.avg4 -centreMode 0 -m1 4 -m2 0 | |
23 | + | |
24 | +exec4_1: | |
25 | + ../$(OSTYPE)/$(OBJECTNAME) -i $(DATA)-0001.roi -O $(DATA)-0001.info4_1 -nRange 10 16 -A $(DATA)-0001.avg4_1 -centreMode 1 -m1 4 -m2 0 | |
26 | + | |
27 | + | |
18 | 28 | |
19 | 29 | clean: |
20 | 30 |
@@ -24,6 +24,7 @@ usage(char* thisProgram) | ||
24 | 24 | fprintf(stderr, " [-rangex minx (-3 ).as(Real ) \n maxx (3 ).as(Real ) \n delx (1 ).as(Real ) ] :Optional :Input: \n"); |
25 | 25 | fprintf(stderr, " [-rangey miny (-3 ).as(Real ) \n maxy (3 ).as(Real ) \n dely (1 ).as(Real ) ] :Optional :Input: \n"); |
26 | 26 | fprintf(stderr, " [-rangez minz (0 ).as(Real ) \n maxz (0 ).as(Real ) \n delz (1 ).as(Real ) ] :Optional :Input: \n"); |
27 | + fprintf(stderr, " [-Algorythm ] :Optional :Algorythm\n"); | |
27 | 28 | fprintf(stderr, " [-c[onfig] configFile (NULL ).as(inFile ) ] :Optional :ConfigurationFile\n"); |
28 | 29 | additionalUsage(); |
29 | 30 | } |