;
; ; PURPOSE: Calculates average power spectra for a set of micrographs, ; estimates defocus from the power spectra, and places defocus ; value in a doc. file. ; PURPOSE: First converts a scanned micrograph file to SPIDER format. ; Computes 2D power spectrum and places in: power/roo**** ; Estimates defocus from 2D power spectra and places in: defocus ; Creates 1D CTF correction image and CTF document file. ; Inputs: Window size, Percentage of the overlap distance ; of the window from the micrograph border, ; Uses SPIDER operation 'CTF ED' ; ; REQUIRES: load-mic.spi ; ; SOURCE: spider/docs/techs/recon1/Procs/powdefocus.spi ; RO SD May 2012 ArDean Leith ; CTF Apr 2013 ArDean Leith ; ; Edit following parameters and filenames as needed. ; [numProcs] = 0 ; number of CPUs to use (0 = All) [keepspi] = 1 ; Keep on-disk temp spider file (0 = discard) [deci] = 0 ; Decimation factor (0 = Get value from params file) ; ; 1 = Full sized image ; ; 2 = 1/2 size ; ; 4 = 1/4 size [maskRadius] = 100 ; Inner mask radius for power spectrum, Angstroms [tilesiz] = 500 ; Size of tiles (square) [xover] = 50 ; X tile overlap % [yover] = 50 ; Y tile overlap % [xd] = 500 ; X tile dist. from the edge [yd] = 500 ; Y tile dist. from the edge [want-defocus-yn] = 1 ; Find defocus values using 'CTF ED' ; ----------- Input files -------------- [params] = '../params' ; Parameter doc file (one) [sel_mic] = '../sel_micrograph' ; Micrograph selection doc file (one) [micgr] = '../Micrographs/raw****' ; Micrograph images (one/micrograph) GLO [xic] = '/home/tapu/local/xmipp/bin/xmipp_image_convert' ; Path for XMIPP's image conversion program (if MRC format) ; ----------- Output files -------------- [spi_disk] = '../Micrographs/mic****' ; Micrograph in SPIDER format (can optionally be either saved or deleted) [outdir] = 'power' ; Power spectra directory (one) [pow] = '[outdir]/pw_avg_****' ; Power spectrum images (one/micrograph) [ctf] = '[outdir]/ctf_****' ; CTF noise doc files (one/micrograph) [roo] = '[outdir]/roo_****' ; Rotational average file (one/micrograph) [rod] = '[outdir]/roo_doc_****' ; Rotational average doc file (one/micrograph) [out] = 'defocus' ; Defocus values doc file (one) ; -------------- END BATCH HEADER -------------------------- ; ----------- Temp files -------------- [temp_spi] = '_1' ; Temp spider file [temp_masked_pws] = '_20' ; Masked power spectrum MD TR OFF ; Loop info turned off MD VB OFF ; File info turned off MD SET MP ; Use all available OMP processors [numProcs] SYS ; Make sure output dir. present mkdir -p [outdir] ; ----- Get zip & format flags (can params vary??) UD 1,[sp_zflag] ; Get zip flag [params] ; Params file (input) UD 2,[sp_fflag] ; Get tif flag [params] ; Params file (input) UD 3,[sp_nx] ; X dimension [params] ; Params file (input) UD 4,[sp_ny] ; Y dimension [params] ; Params file (input) UD 5,[sp_pixsiz] ; Get pixel size [params] ; Params file (input) ;; UD 14,[lambda] ; Wavelength ;; [params] ; Params file (input) IF ( [deci] < 1 ) THEN UD 16,[sp_deci] ; Get decimation factor [params] ; Params file (input) [deci] = [sp_deci] IF ( [deci] < 1 ) [deci] = 1.0 ; Should not be zero ELSE ; (Don't need this multiplcation factor if decimation supplied by PARAMS) [sp_pixsiz]=[sp_pixsiz]*[deci] ; Adjust pixel size for decimation ENDIF IF ( [want-defocus-yn] > 0 ) THEN ; Want to determine defocus parameters UD 6,[sp_kev] ; Electron voltage (kev) [params] ; Params file (input) UD 7,[sp_sph_abb] ; Spherical aberration (mm) [params] ; Params file (input) UD 12,[sp_acr] ; Amplitude contrast ratio [params] ; Params file (input) DE [out] ; Defocus file (removed) SD / MIC_NUM DEFOCUS CUTOFF [out] ; Defocus file (removed) SD E [out] ENDIF UD N [nummics] ; Get number of micrographs [sel_mic] DO [key]=1,[nummics] ; Loop over all micrographs ------------------- UD [key], [mic] ; Get micrograph number [sel_mic] ; Micrograph select doc file (input) ;SYS ; echo ' 'Loading Micrograph: {*****[mic]} ; Convert micrographs and load into incore file @load-mic([mic],[sp_zflag],[sp_fflag],[deci],[sp_nx],[sp_ny],[keepspi]) [micgr][mic] ; Micrograph template (input) [temp_spi] ; SPIDER file (output) _4 ; Hiscan & Nikon scratch (output) IF ( [want-defocus-yn] > 0 ) THEN ; ----------- Get defocus value ------------------- ; Save defocus parameters in doc file DE ; Delete ctf noise doc file [ctf][mic] ; (removed) DE [rod][mic] ; PS rotational average doc file (removed) ; Estimate CTF defocus parameters & save in defocus summary doc file CTF ED [def],[cutoff],[ntiles] [temp_spi] ; Micrograph image (input) [tilesiz],[xover],[yover] ; Tile size, x & y tile % overlap: [xd],[yd] ; X & Y tiling border [sp_pixsiz],[sp_sph_abb] ; Pixel size, Spherical aberration [sp_kev] ; Electron voltage [kev] [sp_acr] ; Ampl. contrast ratio [ctf][mic] ; CTF noise doc file (output) [out] ; Defocus doc file, appendded (output) [mic] ; Key/image number for doc file [pow][mic] ; 2D power spectrum (output) IF ([key] .EQ. 1) THEN ; Calculate radius [maskRadius] = 2*[sp_pixsiz]*[tilesiz]/[maskRadius] [maskRadius] ; diagnostic ENDIF ; Mask power spectrum MA [pow][mic] [temp_masked_pws] 0,[maskRadius] ; inner, outer radii D ; _D_isk C ; set background to _C_ircumference average ; mask center (CR = image center) ; ; Estimate defocus using TF ED ; TF ED [angAstig],[astigMag],x13,[defocusTFED],[cutoffFreq] ; [temp_masked_pws] ; [sp_pixsiz],[sp_sph_abb] ; [lambda] ; [sp_acr] ; [ctf][mic] ; OUTPUT ; ; ([angAstig],[astigMag] are passed for legacy purposes and should be zero.) ; ; SD [mic], [mic],[defocusTFED],[astigMag],[angAstig],[cutoffFreq] ; [out] SYS echo ' 'Micrograph: {%I5%[mic]}' ' Tiles: {%i4%[ntiles]}' ' Defocus: {%f8.2%[def]} ; echo RO SD ; Rotational average [pow][mic] ; 2D CTF file (input) [roo][mic] ; 1D rotational average (output) [rod][mic] ; PS rotational average doc file (output) ENDIF IF ([keepspi] .GT. 1) THEN SYS mv -vn [temp_spi].$DATEXT [spi_disk][mic].$DATEXT ELSE DE [temp_spi] ENDIF ENDDO SD E [out] ; Doc file (closed) SYS cat [out].$DATEXT ; echo ' ' EN ; Modified 2016-05-24 ; 2016-01-27 (trs) -- added option to save SPIDER-format micrograph ; 2016-01-22 (trs) -- masking power spectra ;