Ejemplo n.º 1
0
def preWhitenCube(**kwargs):
    '''
	Pre-whitenening using noise estimates from a cube taken from the difference map.
	Returns a the pre-whitened volume and various spectra. (Alp Kucukelbir, 2013)

	'''
    print '\n= Pre-whitening the Cubes'
    tStart = time()

    n = kwargs.get('n', 0)
    vxSize = kwargs.get('vxSize', 0)
    elbowAngstrom = kwargs.get('elbowAngstrom', 0)
    rampWeight = kwargs.get('rampWeight', 1.0)
    dataF = kwargs.get('dataF', 0)
    dataBGF = kwargs.get('dataBGF', 0)
    dataBGSpect = kwargs.get('dataBGSpect', 0)

    epsilon = 1e-10

    pWfilter = createPreWhiteningFilter(n=n,
                                        spectrum=dataBGSpect,
                                        elbowAngstrom=elbowAngstrom,
                                        rampWeight=rampWeight,
                                        vxSize=vxSize)

    # Apply the pre-whitening filter to the inside cube
    dataF = np.multiply(pWfilter['pWfilter'], dataF)

    dataPWFabs = np.abs(dataF)
    dataPWFabs = dataPWFabs - np.min(dataPWFabs)
    dataPWFabs = dataPWFabs / np.max(dataPWFabs)
    dataPWSpect = sphericalAverage(dataPWFabs**2) + epsilon

    dataPW = np.real(fftpack.ifftn(fftpack.ifftshift(dataF)))
    del dataF

    # Apply the pre-whitening filter to the outside cube
    dataBGF = np.multiply(pWfilter['pWfilter'], dataBGF)

    dataPWBGFabs = np.abs(dataBGF)
    dataPWBGFabs = dataPWBGFabs - np.min(dataPWBGFabs)
    dataPWBGFabs = dataPWBGFabs / np.max(dataPWBGFabs)
    dataPWBGSpect = sphericalAverage(dataPWBGFabs**2) + epsilon

    dataBGPW = np.real(fftpack.ifftn(fftpack.ifftshift(dataBGF)))
    del dataBGF

    m, s = divmod(time() - tStart, 60)
    print "  :: Time elapsed: %d minutes and %.2f seconds" % (m, s)

    return {
        'dataPW': dataPW,
        'dataBGPW': dataBGPW,
        'dataPWSpect': dataPWSpect,
        'dataPWBGSpect': dataPWBGSpect,
        'peval': pWfilter['peval'],
        'pcoef': pWfilter['pcoef']
    }
Ejemplo n.º 2
0
def preWhitenVolumeSoftBG(**kwargs):
    '''
	Pre-whitenening using noise estimates from a soft mask of the background.
	Returns a the pre-whitened volume and various spectra. (Alp Kucukelbir, 2013)

	'''
    print '\n= Pre-whitening'
    tStart = time()

    n = kwargs.get('n', 0)
    elbowAngstrom = kwargs.get('elbowAngstrom', 0)
    dataBGSpect = kwargs.get('dataBGSpect', 0)
    dataF = kwargs.get('dataF', 0)
    softBGmask = kwargs.get('softBGmask', 0)
    vxSize = kwargs.get('vxSize', 0)
    rampWeight = kwargs.get('rampWeight', 1.0)

    epsilon = 1e-10

    pWfilter = createPreWhiteningFilter(n=n,
                                        spectrum=dataBGSpect,
                                        elbowAngstrom=elbowAngstrom,
                                        rampWeight=rampWeight,
                                        vxSize=vxSize)

    # Apply the pre-whitening filter
    dataF = np.multiply(pWfilter['pWfilter'], dataF)

    dataPWFabs = np.abs(dataF)
    dataPWFabs = dataPWFabs - np.min(dataPWFabs)
    dataPWFabs = dataPWFabs / np.max(dataPWFabs)
    dataPWSpect = sphericalAverage(dataPWFabs**2) + epsilon

    dataPW = np.real(fftpack.ifftn(fftpack.ifftshift(dataF)))
    del dataF

    dataPWBG = np.multiply(dataPW, softBGmask)
    dataPWBG = np.array(fftpack.fftshift(
        fftpack.fftn(dataPWBG, overwrite_x=True)),
                        dtype='complex64')
    dataPWBGFabs = np.abs(dataPWBG)
    del dataPWBG

    dataPWBGFabs = dataPWBGFabs - np.min(dataPWBGFabs)
    dataPWBGFabs = dataPWBGFabs / np.max(dataPWBGFabs)
    dataPWBGSpect = sphericalAverage(dataPWBGFabs**2) + epsilon

    m, s = divmod(time() - tStart, 60)
    print "  :: Time elapsed: %d minutes and %.2f seconds" % (m, s)

    return {
        'dataPW': dataPW,
        'dataPWSpect': dataPWSpect,
        'dataPWBGSpect': dataPWBGSpect,
        'peval': pWfilter['peval']
    }
Ejemplo n.º 3
0
def preWhitenCube(**kwargs):
	'''
	Pre-whitenening using noise estimates from a cube taken from the difference map.
	Returns a the pre-whitened volume and various spectra. (Alp Kucukelbir, 2013)

	'''
	print '\n= Pre-whitening the Cubes'
	tStart = time()

	n             = kwargs.get('n', 0)
	vxSize        = kwargs.get('vxSize', 0)
	elbowAngstrom = kwargs.get('elbowAngstrom', 0)
	rampWeight    = kwargs.get('rampWeight',1.0)
	dataF         = kwargs.get('dataF', 0)
	dataBGF       = kwargs.get('dataBGF', 0)
	dataBGSpect   = kwargs.get('dataBGSpect', 0)

	epsilon = 1e-10

	pWfilter = createPreWhiteningFilter(n             = n,
										spectrum      = dataBGSpect,
										elbowAngstrom = elbowAngstrom,
										rampWeight    = rampWeight,
										vxSize        = vxSize)

	# Apply the pre-whitening filter to the inside cube
	dataF       = np.multiply(pWfilter['pWfilter'],dataF)

	dataPWFabs  = np.abs(dataF)
	dataPWFabs  = dataPWFabs-np.min(dataPWFabs)
	dataPWFabs  = dataPWFabs/np.max(dataPWFabs)
	dataPWSpect = sphericalAverage(dataPWFabs**2) + epsilon

	dataPW = np.real(fftpack.ifftn(fftpack.ifftshift(dataF)))
	del dataF

	# Apply the pre-whitening filter to the outside cube
	dataBGF       = np.multiply(pWfilter['pWfilter'],dataBGF)

	dataPWBGFabs  = np.abs(dataBGF)
	dataPWBGFabs  = dataPWBGFabs-np.min(dataPWBGFabs)
	dataPWBGFabs  = dataPWBGFabs/np.max(dataPWBGFabs)
	dataPWBGSpect = sphericalAverage(dataPWBGFabs**2) + epsilon

	dataBGPW = np.real(fftpack.ifftn(fftpack.ifftshift(dataBGF)))
	del dataBGF

	m, s = divmod(time() - tStart, 60)
	print "  :: Time elapsed: %d minutes and %.2f seconds" % (m, s)

	return {'dataPW':dataPW, 'dataBGPW':dataBGPW, 'dataPWSpect': dataPWSpect, 'dataPWBGSpect': dataPWBGSpect, 'peval': pWfilter['peval'], 'pcoef': pWfilter['pcoef'] }
Ejemplo n.º 4
0
def preWhitenVolumeSoftBG(**kwargs):
	'''
	Pre-whitenening using noise estimates from a soft mask of the background.
	Returns a the pre-whitened volume and various spectra. (Alp Kucukelbir, 2013)

	'''
	print '\n= Pre-whitening'
	tStart = time()

	n             = kwargs.get('n', 0)
	elbowAngstrom = kwargs.get('elbowAngstrom', 0)
	dataBGSpect   = kwargs.get('dataBGSpect', 0)
	dataF         = kwargs.get('dataF', 0)
	softBGmask    = kwargs.get('softBGmask', 0)
	vxSize        = kwargs.get('vxSize', 0)
	rampWeight    = kwargs.get('rampWeight',1.0)

	epsilon = 1e-10

	pWfilter = createPreWhiteningFilter(n             = n,
										spectrum      = dataBGSpect,
										elbowAngstrom = elbowAngstrom,
										rampWeight    = rampWeight,
										vxSize        = vxSize)

	# Apply the pre-whitening filter
	dataF       = np.multiply(pWfilter['pWfilter'],dataF)

	dataPWFabs  = np.abs(dataF)
	dataPWFabs  = dataPWFabs-np.min(dataPWFabs)
	dataPWFabs  = dataPWFabs/np.max(dataPWFabs)
	dataPWSpect = sphericalAverage(dataPWFabs**2) + epsilon

	dataPW = np.real(fftpack.ifftn(fftpack.ifftshift(dataF)))
	del dataF

	dataPWBG     = np.multiply(dataPW,softBGmask)
	dataPWBG     = np.array(fftpack.fftshift(fftpack.fftn(dataPWBG,overwrite_x=True)), dtype='complex64')
	dataPWBGFabs = np.abs(dataPWBG)
	del dataPWBG

	dataPWBGFabs  = dataPWBGFabs-np.min(dataPWBGFabs)
	dataPWBGFabs  = dataPWBGFabs/np.max(dataPWBGFabs)
	dataPWBGSpect = sphericalAverage(dataPWBGFabs**2) + epsilon

	m, s = divmod(time() - tStart, 60)
	print "  :: Time elapsed: %d minutes and %.2f seconds" % (m, s)

	return {'dataPW':dataPW, 'dataPWSpect': dataPWSpect, 'dataPWBGSpect': dataPWBGSpect, 'peval': pWfilter['peval'] }
Ejemplo n.º 5
0
def calculatePowerSpectrum(data):

    epsilon = 1e-10

    dataF = np.array(fftpack.fftshift(fftpack.fftn(data)), dtype='complex64')
    dataFabs = np.abs(dataF)
    dataFabs = dataFabs - np.min(dataFabs)
    dataFabs = dataFabs / np.max(dataFabs)

    dataPowerSpectrum = sphericalAverage(dataFabs**2) + epsilon
    del dataFabs

    return (dataF, dataPowerSpectrum)
Ejemplo n.º 6
0
def calculatePowerSpectrum(data):

	epsilon = 1e-10

	dataF     = np.array(fftpack.fftshift(fftpack.fftn(data)), dtype='complex64')
	dataFabs  = np.abs(dataF)
	dataFabs  = dataFabs-np.min(dataFabs)
	dataFabs  = dataFabs/np.max(dataFabs)

	dataPowerSpectrum = sphericalAverage(dataFabs**2) + epsilon
	del dataFabs

	return (dataF, dataPowerSpectrum)