; Estimates defocus values from power spectra ; ; SOURCE: spider/docs/techs/recon/newprogs/mrcctf.spi ; New Bill Baxter ; Pixel size bug and total rewrite Sept 2010 ArDean Leith ; ; PURPOSE: Get defocus using MRC program CTFFIND3 ; ; REQUIRES: ctffind3.exe CTFFIND3 executable ; readmrc.py Python script that extracts info from report ; loadmic.spi SPIDER procedure to load micrographs ; ; INPUTS: Micrographs (in SPIDER format) ; SPIDER Parameter doc file ; Selection doc file containing micrograph numbers ; Boundary for windowing edges of micrographs ; Parameters for ctffind, including ; - CS (mm) : Spherical aberration of objective ; - HT (kv) : Electron beam voltage ; - AmpCnst : Amplitude contrast ratio ; - XMAG : Magnification or original image ; - DStep (microns): Pixel size on scanner (microns) ; - Box (pixels) : Tile size in ctffind (must be even) ; - ResMin (A) : Low resolution end of data to be fitted ; - ResMax (A) : High resolution end of data to be fitted ; - dFMin (A) : Starting defocus value for grid search ; - dFMax (A) : End defocus value for grid search ; - FStep (A) : Step width for grid search ; ; OUTPUTS: Doc file of defocus and astigmatism information. ; Power spectrum from ctffind3 (in SPIDER format). ; Text report from ctffind3. ; ; DETAILS: defmrc.html ; ; CS[mm], HT[kV], AmpCnst, XMAG, DStep[um] ; 2.6, 200.0, 0.07, 60000.0, 28.0 From source ; 2.00 200. 0.10 41899. 14.0 From Albany ; Box, ResMin[A], ResMax[A], dFMin[A], dFMax[A], FStep ; 512, 35.0, 7.5, 10000.0, 40000.0, 5000.0 From Albany ; 128, 100.0, 15.0, 30000.0, 90000.0, 5000.0 from source ; ; --------------------- Albany Standard Parameters --------------------------------- ; Exclude edges of the micrograph [xb] = 500 ; X distance from border [yb] = 500 ; Y distance from border [box] = 500 ; Box size for CTFFIND3 (must be even) [ResMin] = 35 ; ResMin (A) [ResMax] = 7.5 ; ResMax (A) [dFMin] = 10000 ; dFMin (A) [dFMax] = 40000 ; dFMax (A) [FStep] = 5000 ; FStep (A) ; ----------- Input files --------------- [params] = '../params' ; Reconstruction parameters file [raw] = '../Micrographs/mic{****[num]}' ; Micrographs [sel_mic] = '../sel_micrograph' ; Micrograph selection doc file [exec] = '/usr8/repository/ctffind3/ctffind3.exe' ; CTFFIND3 executable location ; ----------- Output files -------------- [output_dir] = 'power' ; Dir. for output files [ps-spi] = '[output_dir]/powchk{****[num]}' ; Power spectrum files [report] = '[output_dir]/report{****[num]}' ; Report files, created by CTFFIND3 [defocus] = 'defocus-mrc' ; Summary defocus doc file ; Temporary files [spi] = '_1' ; SPIDER temp files from conversion [temp] = '_2' ; SPIDER temp file from Nikon & Hiscan [win-spi] = 'jnk-win-spi' ; Windowed SPIDER temp files [commands] = './jnk-commands.sh' ; CTFFIND3 command files ; -------------------- END BATCH HEADER ----------------------- MD ; Skip unnecessary output VB OFF MD ; Skip unnecessary output TR OFF MD SET MP ; Use single processor 1 VM ; Create output directory mkdir -p [output_dir] ; Parameters for loading UD 1,[zflag] ; Get zip flag [params] ; Params file (input) UD 2,[fflag] ; Get tif flag [params] ; Params file (input) UD 3,[nx] ; HiScan X parameters [params] ; Params file (input) UD 4,[ny] ; HiScan Y dimension [params] ; Params file (input) ; Parameters for CTFFIND3 UD 6,[sp_kev] ; Electron beam voltage (kV) [params] ; Params file (input) UD 7,[sp_sph_abb] ; Spherical aberration [params] ; Params file (input) UD 12,[sp_acr] ; Amplitude contrast ratio [params] ; Params file (input) UD 19,[sp_mag] ; Magnification of original image (final mag on F30) [params] ; Params file (input) UD 20,[sp_scanres] ; Scanning resolution (microns) = Pixel size on scanner [params] ; Params file (input) DE ; Delete output summary doc file [defocus] ; Doc file (removed) [deci] = 1 ; No decimation [keepspi] = 0 ; Do not keep temp Spider file [sp_sph_abb] [sp_kev] [sp_acr] [sp_mag] [sp_scanres] DO ; Loop over all files ------------------------- UD NEXT [key],[num] ; Get micrograph number from sel. file [sel_mic] ; [num] is now the micrograph file number IF ([key] .LE. 0) EXIT ; End of images in selection doc file ; Convert micrograph to SPIDER format (if necessary) @loadmic([num],[zflag],[fflag],[deci],[nsam],[nrow],[keepspi]) [raw] ; Micrograph (input) [spi] ; SPIDER file (output) _2 ; Scratch file (output) FI H [nsam],[nrow] ; Get NSAM & NROW [spi] ; SPIDER file (input) NSAM,NROW [x] = [nsam] - (2*[xb]) ; Dimensions without border [y] = [nrow] - (2*[yb]) VM echo " Micrograph: {*****[num]} : {*****[nsam]} x {*****[nrow]} -- {*****[x]} x {*****[y]}" ; Window the micrograph, removing borders WI ; Window [spi] ; Micrograph (input) [win-spi] ; Windowed micrograph (output) ([x],[y]) ; Dimensions ([xb],[yb]) ; Start coords FS ; CTFFIND3 needs min & max [win-spi] ; Windowed micrograph (output) ; Create a CTFFIND3 command script VM \rm -f [report] [commands] VM ; CTFFIND3 command script echo '#!/bin/csh -x ' >> [commands] VM echo '[exec] << eof' >> [commands] VM echo [win-spi].$DATEXT >> [commands] VM echo [ps-spi].$DATEXT >> [commands] VM echo ' ' {%f5.2%[sp_sph_abb]} {%f6.0%[sp_kev]} {%f5.2%[sp_acr]} {%f7.0%[sp_mag]} {%f7.2%[sp_scanres]} >> [commands] VM echo ' ' {****[box]} {%f5.1%[ResMin]} {%f5.1%[ResMax]} {*****[dFMin]} {*****[dFMax]} {*****[FStep]} >> [commands] VM echo 'eof' >> [commands] IF ([key] .LE. 1) THEN VM echo ' ' ; echo ' 'First CTFFIND3 command script: ; cat [commands] ; echo ' ' ENDIF ; Execute the CTFFIND3 command script VM chmod +x [commands] ; [commands] >> [report] ; Collect defocus values from report VM readmrc.py [report] {****[num]} >> [defocus].$DATEXT ENDDO VM ; Type the defocus doc file echo ' ' ; cat [defocus].$DATEXT ; echo ' ' DE [spi] ; Temp SPIDER file (deleted) DE [win-spi] ; Windowed SPIDER micrograph (deleted) VM \rm -f [win-mic] [commands] EN