Exemple #1
0
def random_rotate(v):
    angle = GAL.random_rotation_angle_zyz()
    vr = GR.rotate(v, angle=angle, default_val=0.0)  # loc_r is none
    # print('angle:', angle)
    # print('loc_max:', loc_max)
    # print('loc_r:',type(loc_r),loc_r)
    return vr, angle
        'pix_size': 1.0,
        'Dz': -5.0,
        'voltage': 300,
        'Cs': 2.0,
        'sigma': 0.4
    }
}

# generate a density map v that contains a toy structure
v = MU.generate_toy_model(dim_siz=64)  # generate a pseudo density map
print(v.shape)

# randomly rotate and translate v
loc_proportion = 0.1
loc_max = N.array(v.shape, dtype=float) * loc_proportion
angle = GAL.random_rotation_angle_zyz()
loc_r = (N.random.random(3) - 0.5) * loc_max
vr = GR.rotate(v, angle=angle, loc_r=loc_r, default_val=0.0)

# generate simulated subtomogram vb from v
vb = TSRSC.do_reconstruction(vr, op, verbose=True)
print('vb', 'mean', vb.mean(), 'std', vb.std(), 'var', vb.var())

# save v and vb as 3D grey scale images
TIF.put_mrc(vb, '/tmp/vb.mrc', overwrite=True)
TIF.put_mrc(v, '/tmp/v.mrc', overwrite=True)

# save images of the slices of the corresponding 3D iamges for visual inspection
import aitom.image.io as IIO
import aitom.tomominer.image.vol.util as TIVU
IIO.save_png(TIVU.cub_img(vb)['im'], "/tmp/vb.png")