Ejemplo n.º 1
0
def compute_average(mlist, radius, CTF):
	from sp_morphology   import cosinemask
	from sp_fundamentals import fft
	from sp_statistics   import fsc, sum_oe
	if CTF:
		avge, avgo, ctf_2_sume, ctf_2_sumo, params_list = \
		     sum_oe(mlist, "a", CTF, None, True, True)
		avge = cosinemask(fft(avge), radius)
		avgo = cosinemask(fft(avgo), radius)
		sumavge  = Util.divn_img(fft(avge), ctf_2_sume)
		sumavgo  = Util.divn_img(fft(avgo), ctf_2_sumo)
		frc = fsc(fft(sumavgo), fft(sumavge))
		frc[1][0] = 1.0
		for ifreq in range(1, len(frc[0])):
			frc[1][ifreq] = max(0.0, frc[1][ifreq])
			frc[1][ifreq] = 2.*frc[1][ifreq]/(1.+frc[1][ifreq])
		sumavg  =  Util.addn_img(fft(avgo), fft(avge))
		sumctf2 =  Util.addn_img(ctf_2_sume, ctf_2_sumo)	
		Util.div_img(sumavg, sumctf2)
		return fft(sumavg), frc, params_list
	else:
		avge, avgo, params_list = sum_oe(mlist, "a", False,  None, False, True)
		avge = cosinemask(avge, radius)
		avgo = cosinemask(avgo, radius)
		frc = fsc(avgo, avge)
		frc[1][0] = 1.0
		for ifreq in range(1, len(frc[0])):
			frc[1][ifreq] = max(0.0, frc[1][ifreq])
			frc[1][ifreq] = 2.*frc[1][ifreq]/(1.+frc[1][ifreq])
		return avge+avgo, frc, params_list
Ejemplo n.º 2
0
def compute_average(mlist, radius, CTF):
    if CTF:
        avge, avgo, ctf_2_sume, ctf_2_sumo, params_list = sp_statistics.sum_oe(
            mlist, "a", CTF, None, True, True)
        avge = sp_morphology.cosinemask(sp_fundamentals.fft(avge), radius)
        avgo = sp_morphology.cosinemask(sp_fundamentals.fft(avgo), radius)
        sumavge = EMAN2_cppwrap.Util.divn_img(sp_fundamentals.fft(avge),
                                              ctf_2_sume)
        sumavgo = EMAN2_cppwrap.Util.divn_img(sp_fundamentals.fft(avgo),
                                              ctf_2_sumo)
        frc = sp_statistics.fsc(sp_fundamentals.fft(sumavgo),
                                sp_fundamentals.fft(sumavge))
        frc[1][0] = 1.0
        for ifreq in range(1, len(frc[0])):
            frc[1][ifreq] = max(0.0, frc[1][ifreq])
            frc[1][ifreq] = old_div(2.0 * frc[1][ifreq], (1.0 + frc[1][ifreq]))
        sumavg = EMAN2_cppwrap.Util.addn_img(sp_fundamentals.fft(avgo),
                                             sp_fundamentals.fft(avge))
        sumctf2 = EMAN2_cppwrap.Util.addn_img(ctf_2_sume, ctf_2_sumo)
        EMAN2_cppwrap.Util.div_img(sumavg, sumctf2)
        return sp_fundamentals.fft(sumavg), frc, params_list
    else:
        avge, avgo, params_list = sp_statistics.sum_oe(mlist, "a", False, None,
                                                       False, True)
        avge = sp_morphology.cosinemask(avge, radius)
        avgo = sp_morphology.cosinemask(avgo, radius)
        frc = sp_statistics.fsc(avgo, avge)
        frc[1][0] = 1.0
        for ifreq in range(1, len(frc[0])):
            frc[1][ifreq] = max(0.0, frc[1][ifreq])
            frc[1][ifreq] = old_div(2.0 * frc[1][ifreq], (1.0 + frc[1][ifreq]))
        return avge + avgo, frc, params_list
Ejemplo n.º 3
0
def do_volume_mask(ref_data):
    """
		1. - volume
		2. - Tracker, see meridien
		3. - current iteration number
	"""

    # Retrieve the function specific input arguments from ref_data
    vol = ref_data[0]
    Tracker = ref_data[1]
    mainiteration = ref_data[2]

    if Tracker["constants"]["mask3D"] is None:
        vol = sp_morphology.cosinemask(vol,
                                       radius=Tracker["constants"]["radius"])
    else:
        EMAN2_cppwrap.Util.mul_img(
            vol, sp_utilities.get_im(Tracker["constants"]["mask3D"]))

    return vol