.SUFFIXES: .tif .mrc .cen .nor .fft .ctfinfoauto \
           .ctfinfo .ctf .ctfps

-include TIFS
-include MRCS
-include CENS
-include NORS
-include FFTS
-include CTFAutoList
-include CTFInfoList
-include CTFS

#
# Setting Parameter
# [A/pixel]
RESOLUTION=3.80

# JOB Number
JN=-j 4

#####################
Help::
	@echo "----- How To Use -----"
	@echo "1. Prepare files(xxxx.tif) to be analyzed."
	@echo "2. make TIF2CTF"
	@echo ""
	@echo "--- Special Target ---"
	@echo "make DispCEN"
	@echo "make DispCTF"
	@echo "make PrintCTF"
	@echo ""
	@echo "--- Current Parameter ---"
	@echo "RESOLUTION: $(RESOLUTION) [A/pixel]"
	@echo "Job number for make: $(JN)" 

mrc:          $(TIFS:.tif=.mrc)
cen:          $(MRCS:.mrc=.cen)
nor:          $(CENS:.cen=.nor)
fft:          $(NORS:.nor=.fft)
ctfinfoauto:  $(FFTS:.fft=.ctfinfoauto)
ctfinfo:      $(CTFAutoList:.ctfinfoauto=.ctfinfo)
ctf:          $(CTFInfoList:.ctfinfo=.ctf)
ctfps:        $(CTFInfoList:.ctfinfo=.ctfps)

TIF2CTF::
	make TIFS; make $(JN) mrc;
	make MRCS; make $(JN) cen;
	make CENS; make $(JN) nor;
	make NORS; make $(JN) fft;
	make FFTS; make $(JN) ctfinfoauto;
	make CTFAutoList; make ctfinfo;
	make CTFInfoList; make $(JN) ctf;
	make CTFS

TIFS::
	echo "TIFS=\\" > TIFS
	ls -1 *.tif | sed s/tif/tif\\\\/ >> TIFS
	echo "" >> TIFS

MRCS::
	echo "MRCS=\\" > MRCS
	ls -1 *.mrc | sed s/mrc/mrc\\\\/ >> MRCS
	echo "" >> MRCS

CENS::
	echo "CENS=\\" > CENS
	ls -1 *.cen | sed s/cen/cen\\\\/ >> CENS
	echo "" >> CENS 

NORS::
	echo "NORS=\\" > NORS
	ls -1 *.nor | sed s/nor/nor\\\\/ >> NORS
	echo "" >> NORS

FFTS::
	echo "FFTS=\\" > FFTS
	ls -1 *.fft | sed s/fft/fft\\\\/ >> FFTS
	echo "" >> FFTS

CTFAutoList::
	echo "CTFAutoList=\\" > CTFAutoList
	ls -1 *.ctfinfoauto | sed s/ctfinfoauto/ctfinfoauto\\\\/ >> CTFAutoList
	echo "" >> CTFAutoList

CTFInfoList::
	echo "CTFInfoList=\\" > CTFInfoList
	ls -1 *.ctfinfo | sed s/ctfinfo/ctfinfo\\\\/ >> CTFInfoList
	echo "" >> CTFInfoList

CTFS::
	echo "CTFS=\\" > CTFS
	ls -1 *.ctf | sed s/ctf/ctf\\\\/ >> CTFS
	echo "" >> CTFS

.tif.mrc:
	tiff2mrc -i $*.tif -o $*.mrc -r $(RESOLUTION) -m 0

.mrc.cen:
	mrcInfo -i $*.mrc -o INFO;
	NX=$$(head -1 INFO | awk '{printf("%d\n", $$4);}'); \
	NY=$$(head -1 INFO | awk '{printf("%d\n", $$5);}'); \
	mrcImageCenterGet -i $*.mrc -o $*.cen -Nx $$NX -Ny $$NY

DispCEN:
	for i in $(CENS) ;\
	do \
		echo $$i;\
		Display2 -i $$i;\
	done

.cen.nor:
	mrcImageAbnormalValueRemove -i $*.cen -o $*.nor -u 65535 16384 -m 1

.nor.fft:
	mrcImageFFT -i $*.nor -o $*.fft

.fft.ctfinfoauto:
	ctfDetermine -i $*.fft -o $*.ctfinfoauto -D 50000 -m 128 \
				 -CutLow 0.025 -CutHigh 0.15 -d 3 -Cc 0.7 -Cs 2.1

.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 > $@
	awk '!/.ctfinfo/ {print $$0}' $@ > default.ctfinfo

.ctfinfo.ctf:
	mv $*.ctfinfo $*.ctfinfo.tmp2
	grep .: $*.ctfinfo.tmp2 > $*.ctfinfo
	mrcImageCTFCompensation -i $*.fft -info2 $*.ctfinfo -o $*.ctf -m 1

.ctf.ctfps:
	mrcImagePrint -i $*.ctf -o $*.ctfps  -I -A  -m 17 -S 0.08

DispCTF:
	for i in $(CTFS) ;\
	do \
		echo $$i;\
		Display2 -i $$i -Inverse;\
	done

PrintCTF:
	for i in $(CTFS) ;\
	do \
		echo $$i;\
		if [ -f $$i ] ; then \
			make `basename $$i .ctf`.ctfps; \
		fi \
	done