diff --git a/notebooks/correlation/post_acquisition_correlation.ipynb b/notebooks/correlation/post_acquisition_correlation.ipynb index a5ee7ce25369d3d1cad1a2f9e5f3f25fe13e18c8..5ed09581115b13c86cb5e048552a74058f6c383a 100644 --- a/notebooks/correlation/post_acquisition_correlation.ipynb +++ b/notebooks/correlation/post_acquisition_correlation.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -92,7 +92,7 @@ "filename_fluo = os.path.join(fluo_dir, '20240209_Lsw_060_B36G3.lif')\n", "filename_nav = os.path.join(serialem_dir, 'navi.nav')\n", "\n", - "output_dir = os.path.join('/Volumes/ImageAnalysisHub/malbert/correlative_cryo_em/test2',\n", + "output_dir = os.path.join('/Volumes/ImageAnalysisHub/malbert/correlative_cryo_em/test3',\n", " os.path.basename(exp_dir))\n", "os.makedirs(output_dir, exist_ok=True)\n", "\n", @@ -179,7 +179,7 @@ "tomo_files = os.listdir(serialem_dir)\n", "tomo_files = sorted([f for f in tomo_files if 'TS' in f and f.endswith('mrc.mdoc')])[:]\n", "\n", - "tomo_files = tomo_files[:1] # for test run\n", + "tomo_files = tomo_files[:] # for test run\n", "tomo_files" ] }, @@ -437,7 +437,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -449,11 +449,13 @@ "viewer = napari.Viewer()\n", "\n", "lds = [viewer_utils.create_image_layer_tuples_from_msim(\n", - " msim, transform_key='corr',\n", + " msim,\n", + " transform_key='corr4',\n", + " # transform_key='to_correlate',\n", " ch_name=sorted_nodes[il],\n", - " colormap='grey' if not il else (\"red\" if 'MMM' in sorted_nodes[il] else (\"green\" if 'Anchor' in sorted_nodes[il] else 'blue')),\n", + " colormap='gray' if not il else (\"red\" if 'MMM' in sorted_nodes[il] else (\"green\" if 'Anchor' in sorted_nodes[il] else 'blue')),\n", " )[0]\n", - " for il, msim in enumerate(msims_corr[:2])]\n", + " for il, msim in enumerate(msims_corr[:])]\n", "viewer_utils.add_image_layer_tuples_to_viewer(viewer, lds, manage_viewer_transformations=False)\n", "viewer.reset_view()" ] @@ -505,7 +507,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -551,7 +553,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -560,7 +562,7 @@ "\n", "# align centers\n", "centers = [si_utils.get_center_of_sim(msi_utils.get_sim_from_msim(msim), transform_key=transform_key)\n", - " for msim, transform_key in zip([msim_LMM, mxim_fluo], ['corr', 'metadata'])]\n", + " for msim, transform_key in zip([msim_LMM, mxim_fluo], ['corr4', 'metadata'])]\n", "\n", "centering_affine = param_utils.affine_from_translation(centers[0] - centers[1])\n", "\n", @@ -570,7 +572,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -598,7 +600,7 @@ "import napari\n", "viewer_affinder = napari.Viewer()\n", "ld_c = viewer_utils.create_image_layer_tuples_from_msim(msim_LMM,\n", - " transform_key='corr', colormap='gray', contrast_limits=[0,2000], ch_name='LMM', data_as_array=True)\n", + " transform_key='corr4', colormap='gray', contrast_limits=[0,2000], ch_name='LMM', data_as_array=True)\n", "ld_f = viewer_utils.create_image_layer_tuples_from_msim(mxim_fluo_reg,\n", " transform_key='metadata_centered', colormap='viridis', contrast_limits=[0,30000], ch_name='fluo', data_as_array=True)\n", "\n", @@ -621,7 +623,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -629,10 +631,17 @@ "fluo_new_affine = viewer_affinder.layers[[l.name for l in viewer_affinder.layers].index('fluo')].affine.affine_matrix\n", "\n", "# or use previously obtained affine\n", + "\n", + "# corr\n", "# fluo_new_affine = np.array([[ 1.05403374e+00, 1.56244380e-01, -1.26217326e+03],\n", "# [-1.43810518e-01, 1.08022110e+00, -1.02384343e+03],\n", "# [ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]])\n", "\n", + "# corr4\n", + "fluo_new_affine = np.array([[ 9.63959861e-01, 1.28591366e-01, -1.14593774e+03],\n", + " [-1.23220019e-01, 9.70173034e-01, -9.29093874e+02],\n", + " [ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]])\n", + "\n", "affine_fluo_to_LMM = np.dot(fluo_new_affine,\n", " np.linalg.inv(msi_utils.get_transform_from_msim(mxim_fluo_reg, transform_key='metadata_centered')[0]))\n" ] @@ -661,7 +670,7 @@ "import napari\n", "viewer = napari.Viewer()\n", "ld_c = viewer_utils.create_image_layer_tuples_from_msim(msim_LMM,\n", - " transform_key='corr', colormap='gray', contrast_limits=[0,2000], ch_name='LMM')\n", + " transform_key='corr4', colormap='gray', contrast_limits=[0,2000], ch_name='LMM')\n", "ld_f = viewer_utils.create_image_layer_tuples_from_msim(mxim_fluo,\n", " transform_key='preregistered', colormap='viridis', contrast_limits=[0,30000], ch_name='fluo')\n", "\n", @@ -696,7 +705,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -728,19 +737,23 @@ "source": [ "# visualize in napari\n", "\n", - "# import napari\n", - "# viewer = napari.Viewer()\n", - "# ld_c = []\n", - "# for msim in [msim_LMM]:\n", - "# ld_c += viewer_utils.create_image_layer_tuples_from_msim(msim,\n", - "# transform_key='corr', colormap='gray', ch_name='LMM')\n", - " \n", - "# ld_f = []\n", - "# for msim in mxims_fluo_max[:4]:\n", - "# ld_f += viewer_utils.create_image_layer_tuples_from_msim(msim,\n", - "# transform_key='preregistered', colormap='gray', ch_name='FM')\n", + "import napari\n", + "viewer = napari.Viewer()\n", "\n", - "# viewer_utils.add_image_layer_tuples_to_viewer(viewer, ld_c + ld_f)" + "ld_c = []\n", + "for msim in [msim_LMM]:\n", + " ld_c += viewer_utils.create_image_layer_tuples_from_msim(msim,\n", + " transform_key='corr4', colormap='gray', ch_name='LMM')\n", + "\n", + "ld_f = []\n", + "for msim in mxims_fluo_max[:3]:\n", + " ld_f += viewer_utils.create_image_layer_tuples_from_msim(msim,\n", + " transform_key='preregistered',\n", + " # colormap='gray',\n", + " # ch_name='FM',\n", + " )\n", + "\n", + "viewer_utils.add_image_layer_tuples_to_viewer(viewer, ld_c + ld_f)" ] }, { @@ -789,15 +802,17 @@ " \n", " # fluo scenes\n", " pt_dict['fluo_scenes'] = []\n", + " pt_dict['fluo_msims'] = []\n", " for imxim, mxim in tqdm(enumerate(mxims_fluo_max[:])):\n", " is_inside = clem_utils.pt_in_mxim(pt,\n", " msi_utils.multiscale_sel_coords(mxim, {'t': 0}), transform_key='preregistered')#, world_affine=M)\n", " if not is_inside: continue\n", " scene = fluo_scenes[imxim]\n", " pt_dict['fluo_scenes'].append(scene)\n", + " # pt_dict['fluo_msims'].append(mxim)\n", "\n", " pt_dict['serialem_files'] = []\n", - "\n", + " pt_dict['serialem_msims'] = []\n", " n = fn\n", " while len(list(g.out_edges(n))) > 0:\n", " print(n)\n", @@ -811,7 +826,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -825,6 +840,98 @@ " pickle.dump(g, f, pickle.HIGHEST_PROTOCOL)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## View all modalities in napari" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "# visualize in napari\n", + "\n", + "import napari\n", + "viewer = napari.Viewer()\n", + "\n", + "serialem_transform_key = 'corr4'\n", + "\n", + "lds = [viewer_utils.create_image_layer_tuples_from_msim(\n", + " msims_corr[0],\n", + " transform_key=serialem_transform_key,\n", + " ch_name='LMM',\n", + " colormap='gray'\n", + " )[0]]\n", + "ls = viewer_utils.add_image_layer_tuples_to_viewer(viewer, lds, manage_viewer_transformations=False)\n", + "\n", + "# ld_f = [viewer_utils.create_image_layer_tuples_from_msim(msim,\n", + "# transform_key='preregistered',\n", + "# name_prefix='Fluo_grid',\n", + "# )[0] for msim, scene in zip(mxims_fluo_max, fluo_scenes) if 'Merged' in scene]\n", + "# ls = viewer_utils.add_image_layer_tuples_to_viewer(viewer, ld_f, manage_viewer_transformations=False)\n", + "\n", + "for k, pt_dict in pt_dicts.items():\n", + "\n", + " # if not k == 'TS_01': continue\n", + "\n", + " serialem_msims = [msims_corr[sorted_nodes.index(sem_file)]\n", + " for sem_file in pt_dict['serialem_files'] if not 'LMM' in sem_file]\n", + "\n", + " fluo_msims = [mxim for imxim, mxim in enumerate(mxims_fluo_max)\n", + " if fluo_scenes[imxim] in pt_dict['fluo_scenes'] if not 'Merged' in fluo_scenes[imxim]]\n", + "\n", + " lds = [viewer_utils.create_image_layer_tuples_from_msim(\n", + " msim,\n", + " transform_key=serialem_transform_key,\n", + " # transform_key='to_correlate',\n", + " ch_name=k + ' - SEM - ' + pt_dict['serialem_files'][il],\n", + " colormap='gray' if 'LMM' in pt_dict['serialem_files'][il]\n", + " else (\"red\" if 'MMM' in pt_dict['serialem_files'][il]\n", + " else (\"green\" if 'Anchor' in pt_dict['serialem_files'][il]\n", + " else 'blue')),\n", + " )[0]\n", + " for il, msim in enumerate(serialem_msims[:])]\n", + "\n", + " ls = viewer_utils.add_image_layer_tuples_to_viewer(viewer, lds, manage_viewer_transformations=False)\n", + " link_layers(ls, attributes=['visible'])\n", + " \n", + " ld_f = []\n", + " for imsim, msim in enumerate(fluo_msims[:]):\n", + " ld_f += viewer_utils.create_image_layer_tuples_from_msim(msim,\n", + " transform_key='preregistered',\n", + " name_prefix = k + ' - Fluo - ' + pt_dict['fluo_scenes'][imsim],\n", + " )\n", + "\n", + " ls = viewer_utils.add_image_layer_tuples_to_viewer(viewer, ld_f, manage_viewer_transformations=False)\n", + " link_layers(ls)\n", + "\n", + " text = {\n", + " 'string': '{string}',\n", + " 'size': 8,\n", + " 'color': 'white',\n", + " 'translation': np.array([-30, 0]),\n", + " }\n", + "\n", + " features = {\n", + " 'string': [k],\n", + " }\n", + "\n", + " # show point\n", + " viewer.add_points(\n", + " [pt_dict['pt']],\n", + " features=features,\n", + " text=text,\n", + " size=20,\n", + " face_color='red', edge_color='black', name=k,\n", + " )\n", + "\n", + "viewer.reset_view()" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -972,7 +1079,7 @@ ], "metadata": { "kernelspec": { - "display_name": "lswistak_paper_correlation", + "display_name": "correlation", "language": "python", "name": "python3" }, @@ -986,7 +1093,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.14" + "version": "3.10.16" } }, "nbformat": 4,