+++ /dev/null
-.SUFFIXES: .tif .dat .prectf .fft .ctf .ctfinfoauto .ctfinfo .mrc .divideroi .divideroiinfo \
- .box .roi \
- .roiinfo-coarse .roiall-coarse .roiinforef-coarse .roiallref-coarse .roiinfoprev-coarse \
- .roiinfo .roiall .roiinforef .roiallref .roiinfoprev \
- .box2roiinfo .roiinfo2box .corinfo .divideroiinfo \
- .roilst0 .roilst .mrc3d .ds6 .mrc3dcentremed .mrc3dcentre .mrc3dcentremedpad .orimrccentre .oricorinfo .coarroi .coarroiinfo .roi2 .pad .mul
-
-
-#comment#Forall
-TILTAXISNUMBER=2
-ORIFILE1=a
-ORIFILE2=b
-ZEROTILTNUM=60
-MINTILTNUM=0
-MAXTILTNUM=120
-STEPTILTNUM=4
-T=43
-
-#comment#Fordata2mrc
-RESOLUTION=1.7
-
-#comment#For2ndAxisRotate
-ROTATIONANGLE=-90
-
-#comment#ForCOARCreate
-ORISIZEX=2048
-ORISIZEY=2048
-CORMODE=16
-ORINX=1024
-ORINY=1024
-ORINZ=1
-
-#comment#Forroiinfo
-ORIBASE=$(ORIFILE1)0$(ZEROTILTNUM)
-
-#comment#ForPadAndMul
-TILTAXISANGLE=0
-IMAGEPADm=15
-IMAGEPADV=0
-IMAGEMULTIPLYINGv=-1
-
-#comment#ForroilstCreate
-EULARANGLE=ZENS
-MINTILTANGLE=-60
-STEPTILTANGLE=4
-
-#comment#Fords6Create
-MRC2MAPmul=1
-SMOOTHr=5
-SMOOTHm=1
-SMOOTHM=1
-CENTERNX=200
-CENTERNY=200
-CENTERNZ=200
-
-all: data2mrc Smoothing 2ndAxisRotate COARCreate $(ORIBASE).roiinfo BoxCreate PadAndMul roilstCreate ds6Create
-data2mrc::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- else \
- orifile=$(ORIFILE2); \
- fi ; \
- for (( i=0 ; $$i <= $(MAXTILTNUM) ; i=$$(($$i + $(STEPTILTNUM))))) \
- do \
- ori=`printf "%s%03d" $$orifile $$i`; \
- make $$ori.prectf; \
- make $$ori.divideroiinfo; \
- awk '{ printf("%s\n", $$1); }' $$ori.divideroiinfo >> dvdroilst ; \
- for divideroivaliable in `ls -1 $$ori*.divideroi` ; do \
- dividefilename=`basename $$divideroivaliable .divideroi`; \
- make $$dividefilename.fft; \
- make $$dividefilename.ctfinfo; \
- make $$dividefilename.ctf; \
- done ; \
- make $$ori.mrc ; \
- done ; \
- done
-
-.dat.prectf:
- emData2mrc -i $*.dat -o $*.prectf
-
-.tif.prectf:
- tiff2mrc -i $*.tif -o $*.prectf -m 1 -r $(RESOLUTION)
-
-.prectf.divideroiinfo:
- mrcImageDivideInfoForTomography -i $*.prectf -o $*.divideroiinfo -m 1 -d 4
- sed 's/roi/divideroi/' $*.divideroiinfo >> $*.tmproiinfo
- mv $*.tmproiinfo $*.divideroiinfo
- mrcImageROIs -i $*.prectf -o $*.mon -I $*.divideroiinfo -S 1
-
-.divideroi.fft:
- mrcImagePad -i $*.divideroi -o $*.dividepad -W 1024 -H 1024 -m 3 ; \
- mrcImageAbnormalValueRemove -i $*.dividepad -o $*.prectfab -m 1 ; \
- mrcImageFFT -i $*.prectfab -o $*.fft ; \
-
-.fft.ctfinfo:
- ctfDetermine -i $*.fft -o $*.ctfinfo -D 10000 -m 128 -CutLow 0.05 -CutHigh 0.2 -Ac 200 -d 3 -Cc 0.7 -Cs 1.7 -ratio 0.2 | grep defocus > CTFD ; \
- awk -v BASE=$* '{ printf("%s %s\n", BASE, $$2); }' CTFD >> $*.defocuslst ; \
-
-.fft.ctf:
- mrcImageCTFCompensation -i $*.fft -o $*.ctf -info2 $*.ctfinfo -m 1 ; \
- mrcImageCenterGet -i $*.ctf -o $*.ctfcentre -Nx 512 -Ny 512 ; \
-
-.prectf.mrc:
- cat $*.divideroiinfo | sed s/divideroi/ctfcentre/g > $*.divideroiinfo2
- mrcImageCTFCompensationForTiltImage -i $*.prectf -I $*.divideroiinfo2 -o $*.mrc
-
-#.fft.ctfinfoauto:
-# ctfDetermine -i $*.fft -o $*.ctfinfoauto -D 50000 -m 163 -CutLow 0.04 -CutHigh 0.15 -Ac 200 -d 3 -Cc 0.7 -Cs 2.1
-## awk '/^[^:]/ {print $$0};' $*.ctfinfoauto > $*.ctfinfo
-## Display2 -i $*.fft -H 1e7
-
-#.ctfinfoauto.ctfinfo:
-# if [ ! -f $*.ctfinfo ] ; then \
- if [ -f default.ctfinfo ] ; then \
- cat default.ctfinfo >> $*.ctfinfo ; \
- else \
- cat $*.ctfinfoauto >> $*.ctfinfo ; \
- fi \
- fi
-# ctfDisplay -i $*.fft
-# mv $@ $@.tmp
-# grep .: $@.tmp > $@
-# cp $@ default.ctfinfo
-
-#.ctfinfo.mrc:
-# mv $*.ctfinfo $*.ctfinfotmp
-# awk '/^[^:]/ {print $$0};' $*.ctfinfotmp > $*.ctfinfo
-# mrcImageCTFCompensation -i $*.fft -o $*.mrc -info2 $*.ctfinfo -m 1
-# Display2 -i $*.mrc -geometry 1024x1024+0+0 -Zoom 0.5 &
-
-mrcImageSmoothing::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- else \
- orifile=$(ORIFILE2); \
- fi ; \
- for (( i=0 ; $$i <= $(MAXTILTNUM) ; i=$$(($$i + $(STEPTILTNUM))))) \
- do \
- ori=`printf "%s%03d" $$orifile $$i`; \
- mrcImageSmoothing -i $$ori.mrc -o $$ori.smth -sx 5 -sy 5 -m 1 ; \
- mv $$ori.smth $$ori.mrc ; \
- done ; \
- done
-
-mrcImageWindowing::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- else \
- orifile=$(ORIFILE2); \
- fi ; \
- for (( i=0 ; $$i <= $(MAXTILTNUM) ; i=$$(($$i + $(STEPTILTNUM))))) \
- do \
- ori=`printf "%s%03d" $$orifile $$i`; \
- mrcImageWindowing -i $$ori.mrc -o $$ori.wnd ; \
- mv $$ori.wnd $$ori.mrc ; \
- done ; \
- done
-
-2ndAxisRotate::
- for (( i=0 ; $$i <= $(MAXTILTNUM) ; i=$$(( $$i + $(STEPTILTNUM) )) )) \
- do \
- ori=`printf "%s%03d" $(ORIFILE2) $$i`; \
- mrcImageRotation -i $$ori.mrc -o $$ori.mrc2 -a $(ROTATIONANGLE) ; \
- mv $$ori.mrc2 $$ori.mrc ; \
- done
-
-##sep
-
-COARCreate::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- else \
- orifile=$(ORIFILE2); \
- fi ; \
- ORIZEROFILE=$$oribase.mrc; \
- previous=$$oribase ; \
- echo "Create the zero-tilt Image ROI (same as mrc, just copy)"; \
- make $$oribase.roiinfo-coarse; echo "$$oribase.roi will be created."; \
- make $$oribase.roiall-coarse ; echo "$$oribase.roi was created." ; \
- make $$oribase.orimrccentre ; echo "The centre of $$oribase.roi was created." ; \
- for delta in +$(STEPTILTNUM) -$(STEPTILTNUM) ; do \
- echo "$$delta"; \
- previous=$$oribase; \
- TOTALX=0 ; \
- TOTALY=0 ; \
- echo "Total: $$TOTALX $$TOTALY" > $$previous.oricorinfo; \
- for (( i=$$(($(ZEROTILTNUM) + $$delta )) ; (( $(MINTILTNUM) <= $$i && $$i <= $(MAXTILTNUM) )) ; i=$$(($$i + $$delta)) )) \
- do \
- ori=`printf "%s%03d" $$orifile $$i`; \
- echo $$i, $(MAXTILTNUM), $(MINTILTNUM); \
- echo $$previous > $$ori.prevname ; \
- ln -sf $$previous.roiinfo-coarse $$ori.roiinfoprev-coarse ; make $$ori.roiinforef-coarse ; \
- make $$ori.roiallref-coarse ; \
- make $$ori.orimrccentre ; \
- TOTALX=`awk '/Total:/ { print $$2 }' $$previous.oricorinfo`; \
- TOTALY=`awk '/Total:/ { print $$3 }' $$previous.oricorinfo`; \
- ln -sf $$previous.orimrccentre $$ori.oriref ; make $$ori.oricorinfo ; \
- echo "TotalPrev: $$TOTALX $$TOTALY" >> $$ori.oricorinfo; \
- make $$ori.roiinfo-coarse; \
- make $$ori.roiall-coarse; \
- make $$ori.orimrccentre ; sleep 1; \
- touch $$ori.oricorinfo ; sleep 1; \
- touch $$ori.roiinfo-coarse; sleep 1; \
- touch $$ori.roiall-coarse; sleep 1; \
- previous=$$ori; \
- done ; \
- echo $$i; \
- done ; \
- done
-
-CleanCOARCreate::
- rm *.roiinfo-coarse
-
-$(ORIFILE1)0$(ZEROTILTNUM).roiinfo-coarse:
- printf "%s%03d.roi Rect2 %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n" $(ORIFILE1) $(ZEROTILTNUM) $$(($(ORISIZEX)/2)) $$(($(ORISIZEY)/2)) $(ORISIZEX) $(ORISIZEY) > $(ORIFILE1)0$(ZEROTILTNUM).roiinfo-coarse
-
-$(ORIFILE2)0$(ZEROTILTNUM).roiinfo-coarse:
- printf "%s%03d.roi Rect2 %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n" $(ORIFILE2) $(ZEROTILTNUM) $$(($(ORISIZEX)/2)) $$(($(ORISIZEY)/2)) $(ORISIZEX) $(ORISIZEY) > $(ORIFILE2)0$(ZEROTILTNUM).roiinfo-coarse
-
-.orimrccentre.oricorinfo:
- echo "orimrccentre -> oricorinfo: SHIFT:= current.orimrccentre for prev.oirmrccentre"
- mrcImageCorrelation -i $*.orimrccentre -r $*.oriref -c $*.oricorinfo -o $*.oricormap -m $(CORMODE) -s $*.orishift
-
-.oricorinfo.roiinfo-coarse:
- TOTALX=`awk '/TotalPrev:/ { print $$2 }' $*.oricorinfo`; \
- TOTALY=`awk '/TotalPrev:/ { print $$3 }' $*.oricorinfo`; \
- SHIFTX=`awk '/Shift:/ { print $$2 }' $*.oricorinfo`; \
- SHIFTY=`awk '/Shift:/ { print $$3 }' $*.oricorinfo`; \
- echo "$$SHIFTX,$$SHIFTY"; \
- if [ $$(($(ORINX)/2)) -lt $$SHIFTX ]; then \
- SHIFTX=$$(($$SHIFTX - $(ORINX))) ; \
- fi ; \
- if [ $$(($(ORINY)/2)) -lt $$SHIFTY ]; then \
- SHIFTY=$$(($$SHIFTY - $(ORINY))) ; \
- fi ; \
- TOTALX=$$(($$TOTALX + $$SHIFTX)) ; \
- TOTALY=$$(($$TOTALY + $$SHIFTY)) ; \
- echo "Total: $$TOTALX $$TOTALY" >> $*.oricorinfo; \
- printf "%s.roi Rect2 %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n" $* $$(($(ORISIZEX)/2+$$TOTALX)) $$(($(ORISIZEY)/2+$$TOTALY)) $(ORISIZEX) $(ORISIZEY) $$TOTALX $$TOTALY > $*.roiinfo-coarse ;
-
-.roiinfo-coarse.roiall-coarse:
- make $*.mrc
- mrcImageROIs -i $*.mrc -I $*.roiinfo-coarse
- touch $*.roiall-coarse
-
-.roiinforef-coarse.roiallref-coarse:
- mrcImageROIs -i $*.mrc -I $*.roiinforef-coarse
- touch $*.roiallref-coarse
-
-.roiinfoprev-coarse.roiinforef-coarse:
- previous=`cat $*.prevname`; \
- sed -s s/$$previous/$*/ $*.roiinfoprev-coarse > $*.roiinforef-coarse
-
-.roi.orimrccentre:
- echo "roi -> orimrccentre"
- mrcImageCenterGet -i $*.roi -o $*.orimrccentre -Nx $(ORINX) -Ny $(ORINY) -Nz $(ORINZ)
- mrcImageWindowing -i $*.orimrccentre -o $*.wnd -m 16
- mv $*.wnd $*.orimrccentre
-
-$(ORIBASE).roiinfo:
- Display2 -i $*.mrc ;
-# if [ $(TILTAXISNUMBER) -eq 2 ]; then \
-# Display2 -i $(ORIFILE2)0$(ZEROTILTNUM).mrc ;\
-# fi; \
-
-##sep
-
-BoxCreate::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- else \
- orifile=$(ORIFILE2); \
- fi ; \
- BASE=$$oribase; \
- make $$BASE.roiall ; \
- for delta in +$(STEPTILTNUM) -$(STEPTILTNUM) ; \
- do \
- echo $$delta,$$BASE ; \
- previous=$$BASE ; \
- for (( i=$$(($(ZEROTILTNUM)+$$delta)) ; (( $(MINTILTNUM) <= $$i && $$i <= $(MAXTILTNUM) )) ; i=$$(($$i + $$delta)) )) \
- do \
- name=`printf "%s%03d" $$orifile $$i`; \
- echo ">>>> $$name $$i start: $(ZEROTILTNUM) $$(($(ZEROTILTNUM)+$$delta))"; \
- echo $$previous > $$name.prevname; \
- ln -sf $$previous.roiinfo $$name.roiinfoprev ; make $$name.roiinforef ; \
- make $$name.roiinfo ; \
- make $$name.roiall ; \
- previous=$$name ; \
- done ; \
- done ; \
- done
-
-CleanBoxCreate::
- rm *.roiall *.roiinfoprev *.roiinforef
-
-.roiinfo.roiall:
- make $*.roi
- mrcImageROIs -i $*.roi -I $*.roiinfo
- touch $*.roiall
-
-.roiinforef.roiallref:
- mrcImageROIs -i $*.roi -I $*.roiinforef
- touch $*.roiallref
-
-.roi.corinfo:
- mrcImageCorrelation -i $*.roi -r $*.ref -c $*.corinfo
-
-.roiinforef.roiinfo:
- # Extract ROIs using roiinfo of previous image (roiinforef)
- previous=`cat $*.prevname`; \
- echo $$previous; \
- echo "start initial ROI"; \
- make $*.roiallref ; \
- ROINUM=`wc -l $*.roiinforef | awk '{print $$1}'` ; \
- echo $$ROINUM ; \
- rm -f $*.roiinfo ; \
- for (( j=0 ; $$j < $$ROINUM ; j=$$(($$j+1)))) \
- do \
- input=`printf "%s-%04d" $* $$j`; \
- refer=`printf "%s-%04d" $$previous $$j`; \
- echo $$input, $$refer ; \
- ln -sf $$refer.roi $$input.ref ; make $$input.corinfo ; \
- SHIFTX=`awk '/Shift:/ { print $$2 }' $$input.corinfo`; \
- SHIFTY=`awk '/Shift:/ { print $$3 }' $$input.corinfo`; \
- echo "$$SHIFTX,$$SHIFTY,$$input"; \
- awk -v SHIFTXAWK0=$$SHIFTX -v SHIFTYAWK0=$$SHIFTY -v NAMEAWK=$$input -v BASEAWK=$* \
- ' /'"$$input"'/ { \
- SizeX = int(sqrt(($$5-$$3)*($$5-$$3)+( $$6-$$4)*( $$6-$$4))+0.5)+1; \
- SizeY = int(sqrt(($$9-$$3)*($$9-$$3)+($$10-$$4)*($$10-$$4))+0.5)+1; \
- if(SizeX/2<SHIFTXAWK0) { \
- SHIFTXAWK0 -= SizeX ; \
- } \
- if(SizeY/2<SHIFTYAWK0) { \
- SHIFTYAWK0 -= SizeY ; \
- } \
- Angle = atan2($$6-$$4, $$5-$$3) ; \
- SHIFTXAWK = +1*( SHIFTXAWK0*cos(Angle) - SHIFTYAWK0*sin(Angle)); \
- SHIFTYAWK = +1*( SHIFTXAWK0*sin(Angle) + SHIFTYAWK0*cos(Angle)); \
- printf("%s-%04d.roi Rect %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n", BASEAWK, FNR-1, $$3+SHIFTXAWK, $$4+SHIFTYAWK, $$5+SHIFTXAWK, $$6+SHIFTYAWK, $$7+SHIFTXAWK, $$8+SHIFTYAWK, $$9+SHIFTXAWK, $$10+SHIFTYAWK, SHIFTXAWK, SHIFTYAWK, Angle*180/3.141592653589793238, SizeX, SizeY);}' \
- $*.roiinforef | tee -a $*.roiinfo ; \
- done ;
-
-.roiinfoprev.roiinforef:
- previous=`cat $*.prevname`; \
- sed -s s/$$previous/$*/ $*.roiinfoprev > $*.roiinforef
-
-##sep
-
-PadAndMul::
- for (( k=1 ; $$k <= $(TILTAXISNUMBER) ; k=$$(($$k + 1 )))) \
- do \
- if [ $$k -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- else \
- orifile=$(ORIFILE2); \
- oribase=$(ORIFILE2)0$(ZEROTILTNUM); \
- fi ; \
- roiNum=`wc -l $$oribase.roiinfo | awk '{print $$1}' `; \
- for ((i=$(MINTILTNUM);i<=$(MAXTILTNUM);i=$$(($$i+$(STEPTILTNUM))) )) \
- do \
- for((j=0 ; j < $$roiNum ; j = $$(($$j+1)))) \
- do \
- name=`printf "%s%03d-%04d" $$orifile $$i $$j` ; \
- echo $$(($$i-$(ZEROTILTNUM))) > $$name.tilt ; \
- ln -sf $$name.roi $$name.roi2 ; make $$name.pad ; \
- make $$name.mul ; \
- done ; \
- done ; \
- done
-
-CleanPadAndMul::
- rm *.pad
-
-.roi2.pad:
- tilt=`cat $*.tilt` ; \
- echo $$tilt ; \
- mrcImagePad -i $*.roi2 -o $*.pad -Tilt $(TILTAXISANGLE) $$tilt -m $(IMAGEPADm) -V $(IMAGEPADV)
-
-.pad.mul:
- mrcImageMultiplying -i $*.pad -o $*.mul -v $(IMAGEMULTIPLYINGv)
-
-roilstCreate::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- echo "$(ORIFILE1)" > roilstorifile.txt; \
- else \
- orifile=$(ORIFILE2); \
- oribase=$(ORIFILE2)0$(ZEROTILTNUM); \
- echo "$(ORIFILE2)" > roilstorifile.txt; \
- fi ; \
- roiNum=`wc -l $$oribase.roiinfo | awk '{print $$1}' `;\
- echo $$roiNum; \
- for (( i=0 ; $$i < $$roiNum ; i=$$(($$i + 1)))) \
- do \
- tiltnum=`printf "%s%04d" $$orifile $$i`; \
- echo "$$i" > $$tiltnum.roilst0; \
- make $$tiltnum.roilst ; \
- done ; \
- done ; \
- roiNum=`wc -l $$oribase.roiinfo | awk '{print $$1}' `;\
- echo $$roiNum; \
- for (( i=0 ; $$i < $$roiNum ; i=$$(($$i + 1)))) \
- do \
- tiltnum=`printf "%04d" $$i`; \
- echo "$$i" > $$tiltnum.roilst0; \
- cat $(ORIFILE1)$$tiltnum.roilst >> $$tiltnum-d.roilst ; \
- cat $(ORIFILE2)$$tiltnum.roilst >> $$tiltnum-d.roilst ; \
- done
-
-Cleanroilst::
- rm *.roilst
-
-.roilst0.roilst:
- i=`cat $*.roilst0`; \
- orifile=`cat roilstorifile.txt`; \
- oribase=`printf "%s%03d" $$orifile $(ZEROTILTNUM)`; \
- num=`printf "%04d" $$i`; \
- roiname=`printf "%s-%04d" $$oribase $$i`; \
- echo "$$roiname in $$oribase.roiinfo"; \
- if [ $$orifile = a ]; then \
- echo "$*.roilst creating" ; \
- ls -1 $$orifile*-$$num.mul | awk -v eularangle=$(EULARANGLE) ' BEGIN {angle=$(MINTILTANGLE)} {printf("%s %s %f %f %f\n",$$1, eularangle, 0, angle, 0); angle+=$(STEPTILTANGLE); if (angle == 0 ) { angle+=$(STEPTILTANGLE)} }' > $*.roilst ; \
- else \
- echo "$*.roilst creating" ; \
- ls -1 $$orifile*-$$num.mul | awk -v eularangle=$(EULARANGLE) ' BEGIN {angle=$(MINTILTANGLE)} {printf("%s %s %f %f %f\n",$$1, eularangle, angle, 0, 0); angle+=$(STEPTILTANGLE); if (angle == 0 ){ angle+=$(STEPTILTANGLE)} }' > $*.roilst ; \
- fi
-##sep
-
-ds6Create::
- roiNum=`ls -1 *-d.roilst | wc -l `; \
- echo $$roiNum; \
- for (( i=0 ; $$i < $$roiNum ; i=$$(($$i + 1)) )) \
- do \
- tiltnum=`printf "%04d-d" $$i`; \
- make $$tiltnum.mrc3d ; \
- make $$tiltnum.mrc3dcentre ; \
- make $$tiltnum.mrc3dcentremed ; \
- make $$tiltnum.mrc3dcentremedpad ; \
- make $$tiltnum.ds6 ; \
- done ;
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- else \
- orifile=$(ORIFILE2); \
- fi ; \
- roiNum=`ls -1 $$orifile*.roilst | wc -l `; \
- echo $$roiNum; \
- for (( i=0 ; $$i < $$roiNum ; i=$$(($$i + 1)) )) \
- do \
- tiltnum=`printf "%s%04d" $$orifile $$i`; \
- make $$tiltnum.mrc3d ; \
- make $$tiltnum.mrc3dcentre ; \
- make $$tiltnum.mrc3dcentremed ; \
- make $$tiltnum.mrc3dcentremedpad ; \
- make $$tiltnum.ds6 ; \
- done ; \
- done
-
-Cleands6::
- rm *.mrc3d
-
-.roilst.mrc3d:
- mrc2Dto3D -I $*.roilst -o $*.mrc3d -single 0 -InterpolationMode 2 -m 1
-
-.mrc3dcentremedpad.ds6:
- mrc2map -i $*.mrc3d -o $*.ds6 -mul $(MRC2MAPmul)
- mrc2map -i $*.mrc3dcentre -o $*.centre.ds6 -mul $(MRC2MAPmul)
- mrc2map -i $*.mrc3dcentremed -o $*.centremed.ds6 -mul $(MRC2MAPmul)
- mrc2map -i $*.mrc3dcentremedpad -o $*.centremedpad.ds6 -mul $(MRC2MAPmul)
-
-.mrc3dcentre.mrc3dcentremed:
- mrcImageSmoothing -i $*.mrc3dcentre -o $*.mrc3dcentremed -r $(SMOOTHr) -m $(SMOOTHm) -M $(SMOOTHM)
-
-.mrc3d.mrc3dcentre:
- mrcImageCenterGet -i $*.mrc3d -o $*.mrc3dcentre -Nx $(CENTERNX) -Ny $(CENTERNY) -Nz $(CENTERNZ)
-
-.mrc3dcentremed.mrc3dcentremedpad:
- mrcImage3DPad -i $*.mrc3dcentremed -o $*.mrc3dcentremedpad -r 90 -m 1 -M 1 -v 0
-
+++ /dev/null
-.SUFFIXES: .tif .dat .prectf .fft .ctfinfo .mrc \
- .box .roi \
- .roiinfo-coarse .roiall-coarse .roiinforef-coarse .roiallref-coarse .roiinfoprev-coarse \
- .roiinfo .roiall .roiinforef .roiallref .roiinfoprev \
- .box2roiinfo .roiinfo2box .corinfo \
- .roilst0 .roilst .mrc3d .ds6 .mrc3dmed .mrc3dmedcentre .orimrccentre .oricorinfo .coarroi .coarroiinfo .roi2 .pad .mul
-
-RESOLUTION=2.0
-ORIFILE1=a
-ORIFILE2=b
-EULARANGLE1=XOYS
-EULARANGLE2=YOYS
-ZEROTILTNUM=60
-ORIBASE=$(ORIFILE1)0$(ZEROTILTNUM)
-MINTILTNUM=0
-MAXTILTNUM=121
-STEPTILTNUM=4
-MINTILTANGLE=-60
-STEPTILTANGLE=4
-TILTAXISNUMBER=2
-
-SMOOTHr=5
-SMOOTHm=1
-SMOOTHM=1
-CENTERNX=100
-CENTERNY=100
-CENTERNZ=100
-
-ORINX=1024
-ORINY=1024
-
-ORINZ=1
-ORISIZEX=2048
-ORISIZEY=2048
-TILTAXISANGLE=0
-IMAGEPADm=15
-IMAGEPADV=0
-IMAGEMULTIPLYINGv=-1
-MRC2MAPmul=1
-
-all: data2mrc COARCreate $(ORIBASE).roiinfo BoxCreate PadAndMul roilstCreate ds6Create
-
-data2mrc::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- else \
- orifile=$(ORIFILE2); \
- fi ; \
- for (( i=0 ; $$i <= $(MAXTILTNUM) ; i=$$(($$i + $(STEPTILTNUM))))) \
- do \
- ori=`printf "%s%03d" $$orifile $$i`; \
- make $$ori.prectf; \
- make $$ori.fft; \
- make $$ori.ctfinfo; \
- make $$ori.mrc ; \
- done ; \
- done
-
-.dat.prectf:
- emData2mrc -i $*.dat -o $*.prectf
-
-.tif.prectf:
- tiff2mrc -i $*.tif -o $*.prectf -m 1 -r $(RESOLUTION)
-
-.prectf.fft:
- mrcImageFFT -i $*.prectf -o $*.fft
-
-.fft.ctfinfo:
- ctfDetermine -i $*.fft -o $*.ctfinfoauto -D 50000 -m 163 -CutLow 0.07 -CutHigh 0.15 -Ac 200 -d 3 -Cc 0.7 -Cs 2.1
- awk '/^[^:]/ {print $$0};' $*.ctfinfoauto > $*.ctfinfo
- Display2 -i $*.fft -H 1e7
-
-.ctfinfo.mrc:
- mv $*.ctfinfo $*.ctfinfotmp
- awk '/^[^:]/ {print $$0};' $*.ctfinfotmp > $*.ctfinfo
- mrcImageCTFCompensation -i $*.fft -o $*.mrc -info2 $*.ctfinfo -m 1
- Display2 -i $*.mrc -geometry 1024x1024+0+0 -Zoom 0.5 &
-
-##sep
-
-COARCreate::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- else \
- orifile=$(ORIFILE2); \
- oribase=$(ORIFILE2)0$(ZEROTILTNUM); \
- fi ; \
- ORIZEROFILE=$$oribase.mrc; \
- previous=$$oribase ; \
- echo "Create the zero-tilt Image ROI (same as mrc, just copy)"; \
- make $$oribase.roiinfo-coarse; echo "$$oribase.roi will be created."; \
- make $$oribase.roiall-coarse ; echo "$$oribase.roi was created." ; \
- make $$oribase.orimrccentre ; echo "The centre of $$oribase.roi was created." ; \
- for delta in -$(STEPTILTNUM) +$(STEPTILTNUM) ; do \
- echo "$$delta"; \
- previous=$$oribase; \
- TOTALX=0 ; \
- TOTALY=0 ; \
- echo "Total: $$TOTALX $$TOTALY" > $$previous.oricorinfo; \
- for (( i=$$(($(ZEROTILTNUM) + $$delta )) ; (( $(MINTILTNUM) <= $$i && $$i <= $(MAXTILTNUM) )) ; i=$$(($$i + $$delta)) )) \
- do \
- ori=`printf "%s%03d" $$orifile $$i`; \
- echo $$i, $(MAXTILTNUM), $(MINTILTNUM); \
- echo $$previous > $$ori.prevname ; \
- ln -sf $$previous.roiinfo-coarse $$ori.roiinfoprev-coarse ; make $$ori.roiinforef-coarse ; \
- make $$ori.roiallref-coarse ; \
- make $$ori.orimrccentre ; \
- TOTALX=`awk '/Total:/ { print $$2 }' $$previous.oricorinfo`; \
- TOTALY=`awk '/Total:/ { print $$3 }' $$previous.oricorinfo`; \
- ln -sf $$previous.orimrccentre $$ori.oriref ; make $$ori.oricorinfo ; \
- echo "TotalPrev: $$TOTALX $$TOTALY" >> $$ori.oricorinfo; \
- make $$ori.roiinfo-coarse; \
- make $$ori.roiall-coarse; \
- touch $$ori.orimrccentre ; sleep 1; \
- touch $$ori.oricorinfo ; sleep 1; \
- touch $$ori.roiinfo-coarse; sleep 1; \
- touch $$ori.roiall-coarse; sleep 1; \
- previous=$$ori; \
- done ; \
- echo $$i; \
- done ; \
- done
-
-CleanCOARCreate::
- rm *.roiinfo-coarse
-
-$(ORIFILE1)0$(ZEROTILTNUM).roiinfo-coarse:
- printf "%s%03d.roi Rect2 %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n" $(ORIFILE1) $(ZEROTILTNUM) $$(($(ORISIZEX)/2)) $$(($(ORISIZEY)/2)) $(ORISIZEX) $(ORISIZEY) > $(ORIFILE1)0$(ZEROTILTNUM).roiinfo-coarse
-
-$(ORIFILE2)0$(ZEROTILTNUM).roiinfo-coarse:
- printf "%s%03d.roi Rect2 %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n" $(ORIFILE2) $(ZEROTILTNUM) $$(($(ORISIZEX)/2)) $$(($(ORISIZEY)/2)) $(ORISIZEX) $(ORISIZEY) > $(ORIFILE2)0$(ZEROTILTNUM).roiinfo-coarse
-
-.orimrccentre.oricorinfo:
- echo "orimrccentre -> oricorinfo: SHIFT:= current.orimrccentre for prev.oirmrccentre"
- mrcImageCorrelation -i $*.orimrccentre -r $*.oriref -c $*.oricorinfo
-
-.oricorinfo.roiinfo-coarse:
- TOTALX=`awk '/TotalPrev:/ { print $$2 }' $*.oricorinfo`; \
- TOTALY=`awk '/TotalPrev:/ { print $$3 }' $*.oricorinfo`; \
- SHIFTX=`awk '/Shift:/ { print $$2 }' $*.oricorinfo`; \
- SHIFTY=`awk '/Shift:/ { print $$3 }' $*.oricorinfo`; \
- echo "$$SHIFTX,$$SHIFTY"; \
- if [ $$(($(ORINX)/2)) -lt $$SHIFTX ]; then \
- SHIFTX=$$(($$SHIFTX - $(ORINX))) ; \
- fi ; \
- if [ $$(($(ORINY)/2)) -lt $$SHIFTY ]; then \
- SHIFTY=$$(($$SHIFTY - $(ORINY))) ; \
- fi ; \
- TOTALX=$$(($$TOTALX + $$SHIFTX)) ; \
- TOTALY=$$(($$TOTALY + $$SHIFTY)) ; \
- echo "Total: $$TOTALX $$TOTALY" >> $*.oricorinfo; \
- printf "%s.roi Rect2 %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n" $* $$(($(ORISIZEX)/2+$$TOTALX)) $$(($(ORISIZEY)/2+$$TOTALY)) $(ORISIZEX) $(ORISIZEY) $$TOTALX $$TOTALY > $*.roiinfo-coarse ;
-
-.roiinfo-coarse.roiall-coarse:
- make $*.mrc
- mrcImageROIs -i $*.mrc -I $*.roiinfo-coarse
- touch $*.roiall-coarse
-
-.roiinforef-coarse.roiallref-coarse:
- mrcImageROIs -i $*.mrc -I $*.roiinforef-coarse
- touch $*.roiallref-coarse
-
-.roiinfoprev-coarse.roiinforef-coarse:
- previous=`cat $*.prevname`; \
- sed -s s/$$previous/$*/ $*.roiinfoprev-coarse > $*.roiinforef-coarse
-
-.roi.orimrccentre:
- echo "roi -> orimrccentre"
- mrcImageCenterGet -i $*.roi -o $*.orimrccentre -Nx $(ORINX) -Ny $(ORINY) -Nz $(ORINZ)
-
-
-$(ORIBASE).roiinfo:
- Display2 -i $*.mrc ; \
- if [ $(TILTAXISNUMBER) -eq 2 ]; then \
- Display2 -i $(ORIFILE2)0$(ZEROTILTNUM).mrc ;\
- fi; \
-
-##sep
-
-BoxCreate::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- else \
- orifile=$(ORIFILE2); \
- oribase=$(ORIFILE2)0$(ZEROTILTNUM); \
- fi ; \
- BASE=$$oribase; \
- make $$BASE.roiall ; \
- for delta in +$(STEPTILTNUM) -$(STEPTILTNUM) ; \
- do \
- echo $$delta,$$BASE ; \
- previous=$$BASE ; \
- for (( i=$$(($(ZEROTILTNUM)+$$delta)) ; (( $(MINTILTNUM) <= $$i && $$i <= $(MAXTILTNUM) )) ; i=$$(($$i + $$delta)) )) \
- do \
- name=`printf "%s%03d" $$orifile $$i`; \
- echo ">>>> $$name $$i start: $(ZEROTILTNUM) $$(($(ZEROTILTNUM)+$$delta))"; \
- echo $$previous > $$name.prevname; \
- ln -sf $$previous.roiinfo $$name.roiinfoprev ; make $$name.roiinforef ; \
- make $$name.roiinfo ; \
- make $$name.roiall ; \
- previous=$$name ; \
- done ; \
- done ; \
- done
-
-CleanBoxCreate::
- rm *.roiall *.roiinfoprev *.roiinforef
-
-.roiinfo.roiall:
- make $*.roi
- mrcImageROIs -i $*.roi -I $*.roiinfo
- touch $*.roiall
-
-.roiinforef.roiallref:
- mrcImageROIs -i $*.roi -I $*.roiinforef
- touch $*.roiallref
-
-.roi.corinfo:
- mrcImageCorrelation -i $*.roi -r $*.ref -c $*.corinfo
-
-.roiinforef.roiinfo:
- # Extract ROIs using roiinfo of previous image (roiinforef)
- previous=`cat $*.prevname`; \
- echo $$previous; \
- echo "start initial ROI"; \
- make $*.roiallref ; \
- ROINUM=`wc -l $*.roiinforef | awk '{print $$1}'` ; \
- echo $$ROINUM ; \
- rm -f $*.roiinfo ; \
- for (( j=0 ; $$j < $$ROINUM ; j=$$(($$j+1)))) \
- do \
- input=`printf "%s-%04d" $* $$j`; \
- refer=`printf "%s-%04d" $$previous $$j`; \
- echo $$input, $$refer ; \
- ln -sf $$refer.roi $$input.ref ; make $$input.corinfo ; \
- SHIFTX=`awk '/Shift:/ { print $$2 }' $$input.corinfo`; \
- SHIFTY=`awk '/Shift:/ { print $$3 }' $$input.corinfo`; \
- echo "$$SHIFTX,$$SHIFTY,$$input"; \
- awk -v SHIFTXAWK0=$$SHIFTX -v SHIFTYAWK0=$$SHIFTY -v NAMEAWK=$$input -v BASEAWK=$* \
- ' /'"$$input"'/ { \
- SizeX = int(sqrt(($$5-$$3)*($$5-$$3)+( $$6-$$4)*( $$6-$$4))+0.5)+1; \
- SizeY = int(sqrt(($$9-$$3)*($$9-$$3)+($$10-$$4)*($$10-$$4))+0.5)+1; \
- if(SizeX/2<SHIFTXAWK0) { \
- SHIFTXAWK0 -= SizeX ; \
- } \
- if(SizeY/2<SHIFTYAWK0) { \
- SHIFTYAWK0 -= SizeY ; \
- } \
- Angle = atan2($$6-$$4, $$5-$$3) ; \
- SHIFTXAWK = +1*( SHIFTXAWK0*cos(Angle) - SHIFTYAWK0*sin(Angle)); \
- SHIFTYAWK = +1*( SHIFTXAWK0*sin(Angle) + SHIFTYAWK0*cos(Angle)); \
- printf("%s-%04d.roi Rect %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f %15.6f\n", BASEAWK, FNR-1, $$3+SHIFTXAWK, $$4+SHIFTYAWK, $$5+SHIFTXAWK, $$6+SHIFTYAWK, $$7+SHIFTXAWK, $$8+SHIFTYAWK, $$9+SHIFTXAWK, $$10+SHIFTYAWK, SHIFTXAWK, SHIFTYAWK, Angle*180/3.141592653589793238, SizeX, SizeY);}' \
- $*.roiinforef | tee -a $*.roiinfo ; \
- done ;
-
-.roiinfoprev.roiinforef:
- previous=`cat $*.prevname`; \
- sed -s s/$$previous/$*/ $*.roiinfoprev > $*.roiinforef
-
-PadAndMul::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- else \
- orifile=$(ORIFILE2); \
- oribase=$(ORIFILE2)0$(ZEROTILTNUM); \
- fi ; \
- roiNum=`wc -l $$oribase.roiinfo | awk '{print $$1}' `; \
- for ((i=$(MINTILTNUM);i<=$(MAXTILTNUM);i=$$(($$i+$(STEPTILTNUM))) )) \
- do \
- for((j=0;j<$$roiNum;j=$$(($$j+1)))) \
- do \
- name=`printf "%s%03d-%04d" $$orifile $$i $$j` ; \
- echo $$(($$i-$(ZEROTILTNUM))) > $$name.tilt ; \
- ln -sf $$name.roi $$name.roi2 ; make $$name.pad ; \
- make $$name.mul ; \
- done ; \
- done ; \
- done
-
-CleanPadAndMul::
- rm *.pad
-
-.roi2.pad:
- tilt=`cat $*.tilt` ; \
- echo $$tilt ; \
- mrcImagePad -i $*.roi2 -o $*.pad -Tilt $(TILTAXISANGLE) $$tilt -m $(IMAGEPADm) -V $(IMAGEPADV)
-
-.pad.mul:
- mrcImageMultiplying -i $*.pad -o $*.mul -v $(IMAGEMULTIPLYINGv)
-
-roilstCreate::
- for (( j=1 ; $$j <= $(TILTAXISNUMBER) ; j=$$(($$j + 1 )))) \
- do \
- if [ $$j -eq 1 ]; then \
- orifile=$(ORIFILE1); \
- oribase=$(ORIFILE1)0$(ZEROTILTNUM); \
- echo "$(ORIFILE1)" > roilstorifile.txt; \
- else \
- orifile=$(ORIFILE2); \
- oribase=$(ORIFILE2)0$(ZEROTILTNUM); \
- echo "$(ORIFILE2)" > roilstorifile.txt; \
- fi ; \
- roiNum=`wc -l $$oribase.roiinfo | awk '{print $$1}' `; \
- echo $$roiNum; \
- for (( i=0 ; $$i < $$roiNum ; i=$$(($$i + 1)))) \
- do \
- tiltnum=`printf "%s%04d" $$orifile $$i`; \
- echo "$$i" > $$tiltnum.roilst0; \
- make $$tiltnum.roilst ; \
- done ; \
- done
-
-Cleanroilst::
- rm *.roilst
-
-.roilst0.roilst:
- i=`cat $*.roilst0`; \
- orifile=`cat roilstorifile.txt`; \
- oribase=`printf "%s%03d" $$orifile $(ZEROTILTNUM)`; \
- num=`printf "%04d" $$i`; \
- roiname=`printf "%s-%04d" $$oribase $$i`; \
- echo "$$roiname in $$oribase.roiinfo"; \
- tiltangle=`awk -v ORIBASE=$$oribase '/'"$$roiname"'/ { printf("%15.6f", atan2($$6-$$4, $$5-$$3)*180/3.141592653589793238); }' ORIBASE.roiinfo`; \
- if [ $orifile = a ]; then \
- eularangle=$(EULARANGLE1); \
- else \
- eularangle=$(EULARANGLE2); \
- fi ; \
- echo "$*.roilst creating" ; \
- ls -1 *-$$num.mul | awk ' BEGIN {angle=$(MINTILTANGLE)} {printf("%s %s %f %f %f\n",$$1, '"$$eularangle"', -1*angle, -1*'"$$tiltangle"', 0); angle+=$(STEPTILTANGLE)}' > $*.roilst ; \
-
-##sep
-
-##noshow
-ds6Create::
- roiNum=`ls -1 *.roilst | wc -l `; \
- echo $$roiNum; \
- for (( i=0 ; $$i < $$roiNum ; i=$$(($$i + 1)) )) \
- do \
- tiltnum=`printf "%s-%04d" $(ORIFILE) $$i`; \
- make $$tiltnum.mrc3d ; \
- make $$tiltnum.mrc3dmed ; \
- make $$tiltnum.mrc3dmedcentre ; \
- make $$tiltnum.ds6 ; \
- done ;
-
-##noshow
-
-Cleands6::
- rm *.mrc3d
-
-.roilst.mrc3d:
- mrc2Dto3D -I $*.roilst -o $*.mrc3d -single 0 -InterpolationMode 2 -m 1
-
-.mrc3dmedcentre.ds6:
- mrc2map -i $*.mrc3d -o $*.ds6 -mul $(MRC2MAPmul)
- mrc2map -i $*.mrc3dmed -o $*.med.ds6 -mul $(MRC2MAPmul)
- mrc2map -i $*.mrc3dmedcentre -o $*.medcentre.ds6 -mul $(MRC2MAPmul)
-
-.mrc3d.mrc3dmed:
- mrcImageSmoothing -i $*.mrc3d -o $*.mrc3dmed -r $(SMOOTHr) -m $(SMOOTHm) -M $(SMOOTHM)
-
-.mrc3dmed.mrc3dmedcentre:
- mrcImageCenterGet -i $*.mrc3dmed -o $*.mrc3dmedcentre -Nx $(CENTERNX) -Ny $(CENTERNY) -Nz $(CENTERNZ)
-
-