; Controls serial alignment
 ;
 ; SOURCE:  spider/docs/techs/recon1/Procs/align.spi   
 ;
 ; PURPOSE: Multi-reference alignment of an image series. 
 ;          Experimental images are aligned with reference projections via
 ;          shifts (translations) and rotations.  
 ;
 ; USAGE:   clean ; ./spider spi/dat @align 0
 ;
 ; I/O Registers & files are set in: recon-settings.spi
 ;
 ; VARIABLE REGISTERS:
 ;   [r2]                  Alignment radius of object 
 ;   [alignsh]             Translation shift allowed is +-[alignsh]
 ;   [incore-yn]           Incore images used
 ;
 ; INPUT FILES: ([init_dir] denotes input/output directory, '***' denotes group,  '%' denotes subset)
 ;   [init_sel_grp]        [init_dir]/sel_group        Group selection file           (one)
 ;   [init_sel_part]       [init_dir]/sel_part_***     Group particle selection files (one/group)
 ;   [init_unaligned]      [init_dir]/data_***         CTF corrected, unaligned image stacks  (one/group)        (one/group)
 ;   [ref_projs]           [init_dir]/projs_00         Reference projections          (one)
 ;
 ; OUTPUT FILES: ([init_dir] denotes output directory and '%' denotes subset)
 ;   [out_align_doc]       [init_dir]/align_01_***_s%  Alignment parameter doc files        (one/group)
 ;   [out_aligned]         [init_dir]/dala_***@        Rotationally aligned particle stacks (one/group)
 ;
 ; PROCEDURES CALLED:
 ;    recon-settings        recon-settings.spi
 ;
 ; -------------------------------- END BATCH HEADER ----------------------------

 MD
   TR OFF                 ; Loop info turned off
 MD
   VB OFF                 ; File info turned off

 ; Get reconstruction parameters & file names
 @recon-settings([pixsiz],[ang-step],[r2],[alignsh],[prj-radius],[winsiz],[incore-yn],[bp-type],[qsub],[masterCPUs],[groupCPUs])

 SYS
   echo -e "  Alignment shift:   {%I0%[alignsh]}   Alignment radius: {%I0%[r2]}"
 SYS
   echo    "  Projection radius: {%I0%[prj-radius]}" ; echo

 [iter]      = 0
 [next-iter] = 1

 GLO [r2]        = [r2]
 GLO [alignsh]   = [alignsh]
 GLO [incore-yn] = 1

 ; Processes experimental images in series by groups of images.
 ; Find alignment parameters ('AP SHC') which best align experimental images with 
 ; optimal projection image. 
 ; Rotate ('RT SF') original particle images using these rotational alignment parameters.

 UD N [num-grps]
   [init_sel_grp]
 
; ; Create directories for output and scratch files
; SYS                          
;   mkdir -p  [init_dir]
   
 DO [grp] = 1,[num-grps]  ; Loop over all  groups -----------------

   @align-loop
     [grp]

 ENDDO                    ; End of: Loop over all  groups --------

 SYS
   echo -en '  Alignment completed' ; date '+ TIME: %x %X' ; echo

 EN

 ; Modified 2017-08-03
 
;