示例#1
0
def decimate(input_files,output_file,bin_factor):

    input_files = glob.glob(input_files)
    print "processing %d files"%len(input_files)
    img = ndimage_file.read_image(input_files[0])
    nsize = img.shape[0]/2

    for input_file in input_files:
        print 'processing ', input_file
        output_file = spider_utility.spider_filename(output_file, input_file)
        for i, img in enumerate(ndimage_file.iter_images(input_file)):
            img = ndimage_interpolate.downsample(img, bin_factor)
            #img = ndimage_interpolate.interpolate_ft(img, (nsize,nsize))
            ndimage_file.write_image(output_file, img, i)
示例#2
0
'''
import sys
#sys.path.append('/home/robertl/tmp/arachnid-0.0.1/')

from arachnid.core.app import tracing
from arachnid.core.metadata import format
from arachnid.core.image import ndimage_file
from arachnid.core.image import reconstruct
import numpy,logging

if __name__ == "__main__":
    image_file = sys.argv[1]
    align_file = sys.argv[2]
    output = sys.argv[3]
    thread_count=16
    
    tracing.configure_logging()
    #Note: this code assuming you are reconstructing a dala stack or a translated stack
    
    # Read an alignment file
    
    align,header = format.read_alignment(align_file, ndarray=True)
    logging.error("Reconstructing %d particles"%len(align))
    assert(header[0]=='id')
    index = align[:, 0].astype(numpy.int)
    align[:, 1] = numpy.rad2deg(align[:, 1])
    iter_single_images = ndimage_file.iter_images(image_file, index)
    image_size = ndimage_file.read_image(image_file).shape[0]
    vol = reconstruct.reconstruct_bp3f_mp(iter_single_images, image_size, align, thread_count=thread_count)
    ndimage_file.write_image(output, vol)
示例#3
0
.. literalinclude:: ../../arachnid/snippets/image/shift.py
   :language: python
   :lines: 17-
   :linenos:
'''
import sys
from arachnid.core.metadata import format
from arachnid.core.metadata import spider_utility
from arachnid.core.metadata import relion_utility
from arachnid.core.image import ndimage_file
from arachnid.core.image import ndimage_utility

if __name__ == '__main__':

    # Parameters
    
    input_file = sys.argv[1]
    output_file = sys.argv[2]
    mult=1.0
    
    
    # Read an alignment file
    align = format.read(input_file, numeric=True)
    
    for i in xrange(len(align)):
        filename, id = relion_utility.relion_file(align[i].rlnImageName)
        img = ndimage_file.read_image(filename, id-1)
        img = ndimage_utility.fourier_shift(img, align[i].rlnOriginX, align[i].rlnOriginY)
        ndimage_file.write_image(spider_utility.spider_filename(output_file, filename), img, id-1)
    
示例#4
0
Download to edit and run: :download:`reproject_test.py <../../arachnid/snippets/image/reproject_test.py>`

To run:

.. sourcecode:: sh
    
    $ python reproject_test.py vol.spi ref_stack.spi 2

.. literalinclude:: ../../arachnid/snippets/image/reproject_test.py
   :language: python
   :lines: 22-
   :linenos:
'''
import sys
from arachnid.core.image import ndimage_file
from arachnid.core.image import reproject
from arachnid.core.orient import healpix

if __name__ == '__main__':

    # Parameters
    image_file = sys.argv[1]
    output = sys.argv[2]
    healpix_order = int(sys.argv[3])

    vol = ndimage_file.read_image(image_file)
    rad = vol.shape[0] / 2
    ang = healpix.angles(healpix_order)
    imgs = reproject.reproject_3q(vol, rad, ang)
    ndimage_file.write_stack(output, imgs)
示例#5
0
if __name__ == "__main__":

    tracing.configure_logging()

    image_file = sys.argv[1]  # phase_flip_dala_stack.spi
    align_file = sys.argv[2]  # align.spi
    param_file = sys.argv[3]
    output = sys.argv[4]  # raw_vol.spi
    bin_factor = float(
        sys.argv[5]) if len(sys.argv) > 5 else 1.0  # raw_vol.spi
    thread_count = 32

    extra = spider_params.read(param_file)
    extra.update(spider_params.update_params(bin_factor, **extra))
    print "Loaded param file"
    extra.update(thread_count=thread_count)

    align, header = format.read_alignment(align_file, ndarray=True)
    logging.error("Reconstructing %d particles" % len(align))
    selection = align[:, 15:17]
    align[:, 6:8] /= extra['apix']
    iter_single_images = ndimage_file.iter_images(image_file, selection)
    image_size = ndimage_file.read_image(image_file).shape[0]
    vol = reconstruct.reconstruct_bp3f_mp(iter_single_images,
                                          image_size,
                                          align,
                                          process_image=process_image,
                                          **extra)
    if vol is not None:
        ndimage_file.write_image(output, vol)
示例#6
0
''' Interporate a volume

Download to edit and run: :download:`interpolate_volume.py <../../arachnid/snippets/image/interpolate_volume.py>`

To run:

.. sourcecode:: sh
    
    $ python interpolate_volume.py

.. literalinclude:: ../../arachnid/snippets/image/interpolate_volume.py
   :language: python
   :lines: 16-
   :linenos:
'''
import sys
from arachnid.core.image import ndimage_file
from arachnid.core.image import ndimage_interpolate

if __name__ == '__main__':

    # Parameters
    
    input_file = sys.argv[1]
    bin_factor = float(sys.argv[2])
    output_file = sys.argv[3]
    
    img=ndimage_file.read_image(input_file)
    img=ndimage_interpolate.interpolate_bilinear(img, bin_factor)
    ndimage_file.write_image(output_file, img)
示例#7
0
from arachnid.core.image import ndimage_utility
import glob

if __name__ == '__main__':

    # Parameters
    
    input_files = sys.argv[1]
    output_file = sys.argv[2]
    params_file = sys.argv[3]
    bin_factor = int(sys.argv[4])
    
    input_files = glob.glob(input_files)
    print "processing %d files"%len(input_files)
    radius = spider_params.read(params_file)['pixel_diameter']/2
    img = ndimage_file.read_image(input_files[0])
    mask = ndimage_utility.model_disk(radius, img.shape)*-1+1
    mask = ndimage_interpolate.downsample(mask, bin_factor)
    
    for input_file in input_files:
        print 'processing ', input_file
        output_file = spider_utility.spider_filename(output_file, input_file)
        for i, img in enumerate(ndimage_file.iter_images(input_file)):
            img = ndimage_interpolate.downsample(img, bin_factor)
            img=ndimage_utility.normalize_standard(img, mask)
            ndimage_file.write_image(output_file, img, i)