; Estimates defocus values from power spectra
;
; PURPOSE: Estimates defocus from 2D power spectra.
;          Uses SPIDER operation 'TF ED'
;
; SOURCE:  defocus.spi  
;
; CALLS:   calcparms
;
; ----------- Input files --------------

FR G
[pow]power/pw_avg{****[mic]} ; 2D power spectra 

FR G
[sel_mic]../sel_micrograph   ; Micrograph file numbers

FR G
[params]../params            ; Reconstruction parameter file

; ----------- Output files --------------

FR G
[ctf]power/ctf{***[mic]}     ; Doc files with spectrum, envelope, noise

FR G
[out]defocus                 ; Doc file of defocus values for micrographs

; -------------- END BATCH HEADER --------------------------

MD                     ; Skip unnecessary output 
VB OFF
MD                     ; Skip unnecessary output 
TR OFF

DE                     ; Delete output doc file
[out]

SD /    Micrograph   Defocus     Astig.Ang   Astig.Mag  Cutoff.Freq
[out]

; Make sure all parameters are calculated
@calcparms
[params]

UD 5,[pxsiz]           ; Pixel size
[params]
UD 7,[spa]             ; Spherical aberration
[params]
UD 12,[acr]            ; Amplitude contrast ratio
[params]
UD 14,[lambda]         ; Lambda
[params]

VM
echo ' 'Computing defocus values for selected micrographs

DO                     ; Loop over all micrographs -------------------
   UD NEXT [key],[mic] ; Get micrograph number
   [sel_mic]           ; Doc file          (input) 
   IF([key].LE.0) EXIT

   DE                  ; Delete output doc file
   [ctf]

   ; Transfer Function -- Estimation of CTF parameters
   TF ED [v12],[v13],[v14],[v15],[v16] 
   [pow]               ; 2D spectrum         (input)
   ([pxsiz], [spa])    ; Pixel size (A), Spherical aberration (mm)
   ([lambda])          ; Lambda
   ([acr])             ; Ampl. contrast ratio
   [ctf]               ; Doc file           (output)

   ; Save parameters for each group in doc file
   SD [key], [mic],[v14],[v12],[v13],[v16]
   [out]               ; Doc file           (output)

   ;VM
   ;echo ' '{%f8.2%[mic]},{%f8.2%[v14]},{%f8.2%[v12]},{%f8.2%[v13]},{%f8.2%[v16]}
ENDDO

UD NEXT E             ; Finished
[sel_mic]             ; Doc file         

VM
echo ' ' 

EN