; Creates gnuplot file of angular changes
;
; SOURCE: spider/docs/techs/recon/newprogs/plotangch.spi 
;
; PURPOSE: Plots average angular change curves from refinement by iteration.
;
; I/O PARAMETERS AND FILES ARE SET HERE:
;
;  ------------ Parameters ----------------------------------------

[i1] = 2                                    ; Starting iteration
[i2] = 11                                   ; Ending iteration

; ------------ Input files --------------------------------------------

[defocus_group_sel] = 'input/sel_group_sort'               ; Defocus group selection file

[align]             = 'final/align_{**[iter]}_{***[grp]}'  ; Alignment parameters

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

[iter_avg]          = 'final/jnk_alignchng_{**[iter]}'     ; Average Alignment parameter file

[gnuplot_file]      = 'jnkplot_angchng.$DATEXT'

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

; Get number of defocus groups used here
UD N [ngrp]                              ; Number of defocus groups
[defocus_group_sel]
   
DO [iter]=[i1],[i2]                      ; Loop over iterations
   DE
   [iter_avg]                            ; Average Alignment parameter file

   DO [ig]=1,[ngrp]                      ; Loop over all defocus groups

      ; Get current group number 
      UD IC [ig],[grp]                   ; Current defocus group number = [grp]
      [defocus_group_sel]                ; Defocus group selection file
 
      ; Get number of particles in this group
      UD N [npart]                       ; Number of particles
      [align]

      [sum]=0                            ; Defocus group average

      DO  [part]=1,[npart]               ; Loop over all particles
         ;PHI,THE,PSI, MIR-REF#, EXP#, INPLANE, SX, SY, NPROJ, DIFF, CCROT, INPLANE, SX, SY
         UD IC [part],[v1],[v2],[v3],[v4],[v5],[v6],[v7],[v8],[v9],[v0]
         [align]                         ; Alignment parameter file

         [sum]=[sum]+[v0]                 ; angular change for this group
      ENDDO
      UD ICE
      [align]                            ; Alignment parameter file

      [favg] = [sum] / [npart]           ; Calculate average
      SD [grp],[favg]
      [iter_avg]                         ; Average Alignment parameter file

   ENDDO                                   : Loop over all defocus groups

   UD ICE
   [defocus_group_sel]                   ; Defocus group selection file
 
ENDDO                                    ; Loop over iterations
      
SD E
[iter_avg]                               ; Average Alignment parameter file

VM
\rm -f [gnuplot_file]
 
VM                                       ; Gnuplot header
echo #!/bin/sh > [gnuplot_file]

VM                                       ; Y axis label
echo set ylabel \"Avg. Angular change\" >> [gnuplot_file]

VM                                       ; X axis label
echo set xlabel \"Defocus group\" >> [gnuplot_file]

VM                                       ; Title
echo set title \"Change in Proj. Angle by Iteration \" >> [gnuplot_file]

VM                                       ; Plot command
echo plot \\ >> [gnuplot_file]

DO  [iter]=[i1],[i2]                      ; Loop over iterations
   IF ([iter].lt.[i2]) THEN
      VM                                 ; Plot definition
      echo \"[iter_avg].$DATEXT\" using 1:3 title \"{**[iter]}\" with lines, \\ >> [gnuplot_file]
   ELSE
      VM                                 ; Plot definition
      echo \"[iter_avg].$DATEXT\" using 1:3 title \"{**[iter]}\" with lines >> [gnuplot_file]
   ENDIF
ENDDO

      VM                                 ; Plot to display
gnuplot -persist [gnuplot_file] &

UD ICE                                   ; Finished with this doc file
[defocus_group_sel]                      ; Defocus group selection file

EN
 
;