OSDN Git Service

Add 1 tutorial file.
[eos/tutorial.git] / Tomography / Tomography0 / Makefile
diff --git a/Tomography/Tomography0/Makefile b/Tomography/Tomography0/Makefile
new file mode 100755 (executable)
index 0000000..97ba2d8
--- /dev/null
@@ -0,0 +1,248 @@
+#
+#      This is a sample Makefile for electron tomography.
+#
+
+#### Input extention and listname ####
+# For mrcImageCorrelation
+IN_CORR_EXT=mask
+IN_CORR_LIST=MASKs
+
+# For mrc2tiff
+IN_TIFF_EXT=fit
+IN_TIFF_LIST=FITs
+
+# For mrcImageNoiseAdd
+IN_NOISE_EXT=roi
+IN_NOISE_LIST=ROIs
+
+# For mrcImageWindowing
+IN_MASK_EXT=nroi
+IN_MASK_LIST=NROIs
+
+#### INCLUDE ####
+.SUFFIXES: .roi .nroi .mask .tiff .3dlst .3d .fit .$(IN_TIFF_EXT) .$(IN_CORR_EXT) .$(IN_NOISE_EXT) .$(IN_MASK_EXT)
+
+SHELL=/bin/bash
+
+-include $(IN_TIFF_LIST)
+-include $(IN_CORR_LIST)_plus
+-include $(IN_CORR_LIST)_minus
+-include $(IN_NOISE_LIST)
+-include $(IN_MASK_LIST)
+
+#### Definition ####
+
+# Initial Reference Model 
+#INITIAL=Initial
+INITIAL=1WDC-shift1
+# Target structure name 
+TARGET=Input
+
+### For mrc3Dto2D
+# RotMode
+ROTMODE=YOYS
+# Rot1
+ROT1MIN=-60
+ROT1MAX=60
+ROT1D=2
+ROT1N=`expr \( $(ROT1MAX) - $(ROT1MIN) \) / $(ROT1D) + 1`
+# Rot2
+ROT2MIN=0
+ROT2MAX=0
+ROT2D=10
+ROT2N=`expr \( $(ROT2MAX) - $(ROT2MIN) \) / $(ROT2D) + 1`
+# Rot3
+ROT3MIN=0
+ROT3MAX=0
+ROT3D=30
+ROT3N=`expr \( $(ROT3MAX) - $(ROT3MIN) \) / $(ROT3D) + 1`
+# Expansion mode
+# 0:Mercator 1:Mollweide
+EX_MODE=1
+# Interpolation mode : Common with mrc2Dto3D
+IN_MODE=2
+
+# For mrcImageWindowing
+MASK_X=0.2
+MASK_X_MAX=0.2
+MASK_Y=0.1
+MASK_Y_MAX=0.1
+MASK_MODE=18
+
+### For mrcImageCorrelation
+# mode
+COR_MODE=18
+# Reference angle: Usually 0
+ROT1REF=0
+ROT2REF=0
+ROT3REF=0
+
+### For mrcImageNoiseAdd
+SNRATIO=3
+
+### For mrc2Dto3D
+# mode
+# 0:Simple Back Projection 1:Filter Back Projection
+PRJ_MODE=1
+
+### For mrcImageMove
+SHIFT1MAX=10
+SHIFT2MAX=0
+SHIFT3MAX=0
+
+#### For Works ####
+JOP_NUM=-j 3
+
+mask:$($(IN_MASK_LIST):.$(IN_MASK_EXT)=.mask)
+tiff:$($(IN_TIFF_LIST):.$(IN_TIFF_EXT)=.tiff)
+fit_plus:$($(IN_CORR_LIST)_plus:.$(IN_CORR_EXT)=.fit)
+fit_minus:$($(IN_CORR_LIST)_minus:.$(IN_CORR_EXT)=.fit)
+nroi:$($(IN_NOISE_LIST):.$(IN_NOISE_EXT)=.nroi)
+       
+$(IN_TIFF_LIST)::
+       touch $(IN_TIFF_LIST)
+       echo "$(IN_TIFF_LIST)=\\" > $(IN_TIFF_LIST)
+       ls -1 *.$(IN_TIFF_EXT) |  sed s/$(IN_TIFF_EXT)/$(IN_TIFF_EXT)\\\\/ >> $(IN_TIFF_LIST)
+       echo "" >> $(IN_TIFF_LIST)
+       
+$(IN_NOISE_LIST)::
+       touch $(IN_NOISE_LIST)
+       echo "$(IN_NOISE_LIST)=\\" > $(IN_NOISE_LIST)
+       ls -1 *.$(IN_NOISE_EXT) |  sed s/$(IN_NOISE_EXT)/$(IN_NOISE_EXT)\\\\/ >> $(IN_NOISE_LIST)
+       echo "" >> $(IN_NOISE_LIST)
+       
+$(IN_MASK_LIST)::
+       touch $(IN_MASK_LIST)
+       echo "$(IN_MASK_LIST)=\\" > $(IN_MASK_LIST)
+       ls -1 *.$(IN_MASK_EXT) |  sed s/$(IN_MASK_EXT)/$(IN_MASK_EXT)\\\\/ >> $(IN_MASK_LIST)
+       echo "" >> $(IN_MASK_LIST)
+
+#### Commands ####
+Help::
+       @echo "This is a sample Makefile for electron tomography."
+
+All::
+       make Windowing;
+       make CorFit1
+       make 3DList
+       make $(TARGET).3d;
+
+Windowing::
+       make $(IN_MASK_LIST);
+       make $(JOP_NUM) mask;
+       
+CorFit1::
+       make $(IN_CORR_LIST);
+       cp $(TARGET)-$(ROT1REF)-$(ROT2REF)-$(ROT3REF).$(IN_CORR_EXT) $(TARGET)-$(ROT1REF)-$(ROT2REF)-$(ROT3REF).fit
+       cp $(TARGET)-$(ROT1REF)-$(ROT2REF)-$(ROT3REF).$(IN_CORR_EXT) $(TARGET).tmp;
+       make fit_plus;
+       make fit_minus;
+       rm $(TARGET).tmp;
+
+TestData::
+       @for (( rot1 = $(ROT1MIN), shift1 = -$(SHIFT1MAX); rot1 <= $(ROT1MAX); rot1 += $(ROT1D), shift1 = ( ( $$rot1 + $(ROT1D) ) * $(SHIFT1MAX) ) / ( $(ROT1MAX) + 1 ) )) \
+       do \
+       for (( rot2 = $(ROT2MIN), shift2 = -$(SHIFT2MAX); rot2 <= $(ROT2MAX); rot2 += $(ROT2D), shift2 = ( ( $$rot2 + $(ROT1D) ) * $(SHIFT2MAX) ) / ( $(ROT2MAX) + 1 ) )) \
+       do \
+       for (( rot3 = $(ROT3MIN), shift3 = -$(SHIFT3MAX); rot3 <= $(ROT3MAX); rot3 += $(ROT3D), shift3 = ( ( $$rot3 + $(ROT1D) ) * $(SHIFT3MAX) ) / ( $(ROT3MAX) + 1 ) )) \
+       do \
+               echo $$rot1, $$rot2, $$rot3, $$shift1, $$shift2, $$shift3; \
+               mrc3Dto2D -i $(INITIAL).3d -o $(TARGET)-$$rot1-$$rot2-$$rot3.roitmp \
+                                 -InterpolationMode $(IN_MODE) -EulerMode $(ROTMODE) \
+                                 -Rot1 $$rot1 $$rot1 1 \
+                                 -Rot2 $$rot2 $$rot2 1 \
+                                 -Rot3 $$rot3 $$rot3 1 ; \
+               mrcImageMove    -i $(TARGET)-$$rot1-$$rot2-$$rot3.roitmp -o  $(TARGET)-$$rot1-$$rot2-$$rot3.roi \
+                                               -x $$shift1 \
+                                               -y $$shift2 \
+                                               -z $$shift3; \
+               rm $(TARGET)-$$rot1-$$rot2-$$rot3.roitmp; \
+       done \
+       done \
+       done
+       
+$(IN_CORR_LIST)::
+       make $(IN_CORR_LIST)_plus;
+       make $(IN_CORR_LIST)_minus;
+       
+$(IN_CORR_LIST)_plus::
+       touch $(IN_CORR_LIST)_plus;
+       echo "$(IN_CORR_LIST)_plus=\\" > $(IN_CORR_LIST)_plus;
+       @for (( rot1 = $(ROT1REF) + $(ROT1D) ; rot1 <= $(ROT1MAX); rot1 += $(ROT1D) )) \
+       do \
+       for (( rot2 = $(ROT2MIN); rot2 <= $(ROT2MAX); rot2 += $(ROT2D) )) \
+       do \
+       for (( rot3 = $(ROT3MIN); rot3 <= $(ROT3MAX); rot3 += $(ROT3D) )) \
+       do \
+               echo $(TARGET)-$$rot1-$$rot2-$$rot3.$(IN_CORR_EXT) | sed s/$(IN_CORR_EXT)/$(IN_CORR_EXT)\\\\/ >> $(IN_CORR_LIST)_plus; \
+       done \
+       done \
+       done
+       echo "" >> $(IN_CORR_LIST)_plus
+       
+$(IN_CORR_LIST)_minus::
+       touch $(IN_CORR_LIST)_minus;
+       echo "$(IN_CORR_LIST)_minus=\\" > $(IN_CORR_LIST)_minus;
+       @for (( rot1 = $(ROT1REF) - $(ROT1D) ; rot1 >= $(ROT1MIN); rot1 -= $(ROT1D) )) \
+       do \
+       for (( rot2 = $(ROT2MIN); rot2 <= $(ROT2MAX); rot2 += $(ROT2D) )) \
+       do \
+       for (( rot3 = $(ROT3MIN); rot3 <= $(ROT3MAX); rot3 += $(ROT3D) )) \
+       do \
+               echo $(TARGET)-$$rot1-$$rot2-$$rot3.$(IN_CORR_EXT) | sed s/$(IN_CORR_EXT)/$(IN_CORR_EXT)\\\\/ >> $(IN_CORR_LIST)_minus; \
+       done \
+       done \
+       done
+       echo "" >> $(IN_CORR_LIST)_minus
+       
+3DList::
+       @for (( rot1 = $(ROT1MIN), shift1 = -$(SHIFT1MAX); rot1 <= $(ROT1MAX); rot1 += $(ROT1D), shift1 = ( ( $$rot1 + $(ROT1D) ) * $(SHIFT1MAX) ) / ( $(ROT1MAX) + 1 ) )) \
+       do \
+       for (( rot2 = $(ROT2MIN), shift2 = -$(SHIFT2MAX); rot2 <= $(ROT2MAX); rot2 += $(ROT2D), shift2 = ( ( $$rot2 + $(ROT1D) ) * $(SHIFT2MAX) ) / ( $(ROT2MAX) + 1 ) )) \
+       do \
+       for (( rot3 = $(ROT3MIN), shift3 = -$(SHIFT3MAX); rot3 <= $(ROT3MAX); rot3 += $(ROT3D), shift3 = ( ( $$rot3 + $(ROT1D) ) * $(SHIFT3MAX) ) / ( $(ROT3MAX) + 1 ) )) \
+       do \
+               echo $(TARGET)-$$rot1-$$rot2-$$rot3.fit $(ROTMODE) $$rot1 $$rot2 $$rot3 >> $(TARGET).3dlst; \
+       done \
+       done \
+       done
+       
+NoiseAdd::
+       make $(IN_NOISE_LIST);
+       make $(JOP_NUM) nroi;
+       
+Tiff::
+       make $(IN_TIFF_LIST);
+       make $(JOP_NUM) tiff;
+
+3DTiff::
+       make $(TARGET).tiff
+
+Test::
+       @echo $(ROT3N)  \
+       $(ROT1N);
+
+##### Commands(Input to Output) #####
+.$(IN_MASK_EXT).mask:
+       mrcImageWindowing -i $*.$(IN_MASK_EXT) -o $*.mask -m $(MASK_MODE) -W $(MASK_X) $(MASK_X_MAX) $(MASK_Y) $(MASK_Y_MAX) 2> /dev/null;
+
+.$(IN_TIFF_EXT).tiff:
+       mrc2tiff -i $*.$(IN_TIFF_EXT) -o $*.tiff 2> /dev/null;
+
+.$(IN_CORR_EXT).fit:
+       mrcImageCorrelation     -i $*.$(IN_CORR_EXT) -r $(TARGET).tmp -s $*.fit 2> /dev/null;
+       cp $*.fit $(TARGET).tmp
+
+.$(IN_NOISE_EXT).nroi:
+       mrcImageNoiseAdd -i $*.$(IN_NOISE_EXT) -o $*.nroi -SN $(SNRATIO);
+
+.3dlst.3d:
+       mrc2Dto3D -I $*.3dlst -o $*.3d -InterpolationMode $(IN_MODE) -m $(PRJ_MODE);
+
+.3d.tiff:
+       @for (( loop_num = 0; loop_num <= 2; loop_num += 1 ))   \
+       do \
+               mrcImageProjection -i $(TARGET).3d -o $(TARGET).tmp -m $$loop_num;      \
+               mrc2tiff -i $(TARGET).tmp -o $(TARGET)-$$loop_num.tiff; \
+       done;
+       rm $(TARGET).tmp;