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
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
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