/motioncorr

motion correction for movies recorded using direct electron detectors

Primary LanguageC++

This Git repository of MotionCorr is based on the MotionCorr 2.0 release with the following extensions:
	1. Add a new option -nrw to use running average of neighbor frames for correlation analysis to detect relative shifts among frame pairs. It can make the final motion trajectory smoother and presumably more reliable
	2. Add a new option -flp to flip the frames along Y-axis (i.e. vertical direction) before correlation analysis
	3. Read any image format (DM4, mrcs, and essentially all formats used in cryo-EM fields by using EMAN2 IO functions)
	4. Automatically convert to native endianness of current computer regardless of starting endianness (i.e. from big-endian used by DM4 images to little-endian used by Intel CPUs)
	5. Compile on all major computer systems (Linux, Mac, and Windows) using the cross-platform CMake build system

********************************************************************
The content below is the original content included in MotionCorr 2.0
********************************************************************

Motion Correction for Dose-Fractionation Stack
Version 1.0, April 11, 2013


Requirement:
    GPU hardware version: >2.0
    GPU memory: >1.5Gb
    CUDA 5.0 or higher
    g++ 4.6 or lower


Compile:
    Run "make" in src folder

Features:
GPU enabled. The computations are accelerated by GPU. Processing a stack with
20~30frames only takes ~20s, and usually less than 1 minute for more frames,
hence is suit for on-the-fly processing.


Run program:
    1) Run gpuinfo in bin folder to get a list of availabe GPU. If device 0 isn't the GPU you want to use, you need to specify its ID. See the following example.
    2) Run dosefgpu_driftcorr without fowllowing any parameters to get a help.
    3) To process your K2 image, see the following example:

       Example 1:   dosefgpu_driftcorr yourstack.mrc
       Example 2:   dosefgpu_driftcorr yourstack.mrc -bin 2 -bft 150 -scc 1

    4) You can run dosef_logviewer in the folder you run the program to check the result.

    The program has a set of default output filename, so you don't need to set filename. But you need put all stack file into the same folder you run the program. Or you can specify the output filename in paramereters.
    The binning uses Fourier cropping, so no worry to the binning effects.

Note:
    1) A bfactor 150 or 200pix^2 is good for most cryoEM image with 2x binned super-resolution image. For unbined image, a larger bfactor is needed.
    2) Suggest to use more than 20 frames.
    3) -fod defines the minmum distance of frame comparision, which counts from the middle frame. Suggest to set -fod to TotalNumFrame/4

The Motion Correction program was written by Xueming Li at Yifan Cheng
Laboratory at UCSF. For more details, source code and future updates, please visit the
lab website at http://cryoem.ucsf.edu , or contact the author directly.

The Motion Correction program are licensed under the terms of the GNU Public
License version 3 (GPLv3).


***************************************
Update:
07.01.2013  Fix a bug of "align to middle"

08.26.2013  Fix bugs and add new functions:
				1) support rectangular image, replace -crd with -cdx and -cdy
				2) fix bug of "align to middle", and now can align to any specified frame
            3) calculate overall FSC
            4) measure drift direction by equal drift angle weighting for FSC
            5) output un-corrected stack
            6) remove -sub option
            7) adjust output function to make the program more stable
            8) the min,max,mean value of output MRC stacks are set to the values of last frame

08.31.2013  Add new functions:
            1) Gain and dark normalization
            2) Add non-standard MRC format: mode 5(unsigned 8-bit integer) and mode 6(unsigned 16-bit integer)

11.22.2013  Some important changes:
            1) Define and support new MRC mode 5 to reduce size of K2 super-resolution stack.
            2) Improve input parameter list in the beginning of log file.
            3) Update dosef_logviewer to accept signal from UCSFImage4 for online pocessing and display.


***************************************