{ "cells": [ { "cell_type": "markdown", "id": "65da9095", "metadata": {}, "source": [ "# Tutorial 7: Quantifying subcellular protein localization in very large datasets (dCellAligner-OT)" ] }, { "cell_type": "markdown", "id": "1b6d513c", "metadata": {}, "source": [ "The Fused Gromov-Wasserstein mapping between two cells with 1000 points takes around 3 s to compute, and the optimal transport (OT) distance between the two mapped distributions takes aroud 18 ms. While number of Fused Gromov-Wasserstein mapping computations scales linearly with the number of cells, the number of Wasserstein computations of mapped distributions scales quadratically, which can result in very long runtimes in datasets with 100s of thousands of cells. For these large datasets, we've provided a deep learning framework, deep CellAligner Optimal Transport (dCellAligner-OT) to reduce the necessary computation. This approach enables users to compute the CellAligner mappings and OT distances for only a subset of cells, and train a deep learning model to predict the mappings and distances for the remaining cells. \n", "\n", "We will demonstrate this approach on a dataset of 16,787 neurons with simulated subcellular protein distributions. For this analysis, we assume that the image data has already been processed into CellAligner cell objects, which can be downloaded from this [link](https://www.dropbox.com/scl/fi/mb1wx32lfqiqpu3mkhni9/sim_neuron_cell_objects.zip?rlkey=113rcvxp1qgpp0wbih63phu5t&dl=0)." ] }, { "cell_type": "markdown", "id": "dd0b2ff4", "metadata": {}, "source": [ "First, we must convert the cell objects, as well as the mapped subcellular protein distributions, into cell-specific images that the dGW-OT model can take as input. The `make_NN_training_data` function creates two directories (`cell_images` and `mapped_cell_images`) to store the cell and mapped cell images. The function also generates a config file (`cell_image_processing.json`) storing information about how the cell images are processed (alignment, centering, resizing, etc.). This config file must be referenced when applying dCellAligner-OT model to new CellAligner objects to keep the cell image processing consistent." ] }, { "cell_type": "code", "execution_count": null, "id": "4ca74919", "metadata": {}, "outputs": [], "source": [ "data_path = '/path/to/saved/cell/objects'\n", "cell_object_paths = [os.path.join(data_path, fname) for fname in os.listdir(data_path)]\n", "anchor_ind = 658 # index of anchor cell (which other cells are mapped to)\n", "anchor_cell_obj_path = cell_object_paths[anchor_ind]" ] }, { "cell_type": "code", "execution_count": null, "id": "6ddb8254", "metadata": {}, "outputs": [], "source": [ "cell_image_path = '/path/to/saved/cell/images'\n", "make_NN_training_data(save_path=cell_image_path, # path to saved cell images\n", " cell_objects=cell_object_paths,\n", " reference_cell_object=anchor_cell_obj_path,\n", " mapped_channel_distributions=mapped_distbs[0], # using the mapped protein distribution\n", " channel='protein', # this should match the mapped distributions used\n", " center='nucleus', # center='cell' when using Fused GW mappings, center='nucleus' when using Unbalanced Fused GW mappings\n", " shape=(256,256), # shape of the output cell images\n", " rescale=False) # rescale=True when using Fused GW mappings, rescale=False when using Unbalanced Fused GW mappings" ] }, { "cell_type": "markdown", "id": "1b03bd80", "metadata": {}, "source": [ "To avoid the model overfitting to the training dataset, we split our data into a training, validation, and test set. Since, the dCellAligner model does not need to trained on every pair of training cells, the OT distances between the mapped protein distributions are only computed for a subset of pairs. In practice, we've observed good model performance when training on around 10,000 cells and 30,000 cell pairs. " ] }, { "cell_type": "code", "execution_count": null, "id": "b18b026f", "metadata": {}, "outputs": [], "source": [ "# Generate train/val/test dataset cell pairs\n", "train_pairs, val_pairs, test_pairs = generate_dataset_split_pairs(indices=list(range(len(cell_object_paths))), \n", " n_pairs=[35000, 10000, 5000], # number of cell pairs in train/val/test sets\n", " proportions=[0.7, 0.2, 0.1]) # proportion of cells in train/val/test sets\n", "\n", "# Store unique indices in each set\n", "train_inds = np.unique(train_pairs)\n", "val_inds = np.unique(val_pairs)\n", "test_inds = np.unique(test_pairs)\n", "\n", "# Compute GW-mapped OT distances for all pairs in train/val/test sets\n", "train_ot_dists = gw_mapped_ot_pairwise_parallel(cell_object_paths[anchor_ind], mapped_distbs, \n", " num_processes=12, chunksize=20, index_pairs=train_pairs)[0]\n", "val_ot_dists = gw_mapped_ot_pairwise_parallel(cell_object_paths[anchor_ind], mapped_distbs, \n", " num_processes=12, chunksize=20, index_pairs=val_pairs)[0]\n", "test_ot_dists = gw_mapped_ot_pairwise_parallel(cell_object_paths[anchor_ind], mapped_distbs, \n", " num_processes=12, chunksize=20, index_pairs=test_pairs)[0]" ] }, { "cell_type": "code", "execution_count": null, "id": "9ccd1918", "metadata": {}, "outputs": [], "source": [ "# Create PairedDataset objects for train/val/test sets for training dGW-OT model\n", "train_data = PairedDataset(\n", " image_dir = cell_image_path, \n", " mapped_image_dir = mapped_cell_image_path,\n", " distances = train_ot_dists.astype('float32'), \n", " image_pairs = train_pairs,\n", " transform = transforms.Compose([transforms.ToImage(),\n", " transforms.ToDtype(torch.float32)]),\n", ")\n", "\n", "val_data = PairedDataset(\n", " image_dir = cell_image_path, \n", " mapped_image_dir = mapped_cell_image_path,\n", " distances = val_ot_dists.astype('float32'), \n", " image_pairs = val_pairs,\n", " transform = transforms.Compose([transforms.ToImage(),\n", " transforms.ToDtype(torch.float32)]),\n", ")\n", "\n", "test_data = PairedDataset(\n", " image_dir = cell_image_path, \n", " mapped_image_dir = mapped_cell_image_path,\n", " distances = test_ot_dists.astype('float32'), \n", " image_pairs = test_pairs,\n", " transform = transforms.Compose([transforms.ToImage(),\n", " transforms.ToDtype(torch.float32)]),\n", ")" ] }, { "cell_type": "markdown", "id": "112f9ac4", "metadata": {}, "source": [ "We initialize the dCellAligner-OT model and begin the two-stage training process. First, during pretraining, the model learns the Fused (Unbalanced) Gromov-Wasserstein mapping operation. More specifically, for each cell, the model learns to predict the subcellular protein distribution after mapping to the anchor cell.\n", "\n", "The dCellAligner-OT model pretraining took around 24 hours running on a Nvidia RTX 4500 Ada." ] }, { "cell_type": "code", "execution_count": null, "id": "e95eaaf0", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", " warnings.warn(\n", "/opt/conda/lib/python3.10/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=EfficientNet_B4_Weights.IMAGENET1K_V1`. You can also use `weights=EfficientNet_B4_Weights.DEFAULT` to get the most up-to-date weights.\n", " warnings.warn(msg)\n", "Epoch 1/50: 100%|██████████| 2099/2099 [31:43<00:00, 1.10it/s, loss=0.319]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/50, Loss: 0.395456\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 2/50: 100%|██████████| 2099/2099 [32:10<00:00, 1.09it/s, loss=0.21] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2/50, Loss: 0.321780\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 3/50: 100%|██████████| 2099/2099 [26:44<00:00, 1.31it/s, loss=0.203] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3/50, Loss: 0.287171\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 4/50: 100%|██████████| 2099/2099 [26:33<00:00, 1.32it/s, loss=0.0909]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4/50, Loss: 0.214656\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 5/50: 100%|██████████| 2099/2099 [25:30<00:00, 1.37it/s, loss=0.111] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5/50, Loss: 0.186027\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 6/50: 100%|██████████| 2099/2099 [25:34<00:00, 1.37it/s, loss=0.814] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 6/50, Loss: 0.162329\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 7/50: 100%|██████████| 2099/2099 [25:44<00:00, 1.36it/s, loss=0.133] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 7/50, Loss: 0.147380\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 8/50: 100%|██████████| 2099/2099 [25:36<00:00, 1.37it/s, loss=0.166] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 8/50, Loss: 0.132804\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 9/50: 100%|██████████| 2099/2099 [25:40<00:00, 1.36it/s, loss=0.112] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 9/50, Loss: 0.125499\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 10/50: 100%|██████████| 2099/2099 [25:41<00:00, 1.36it/s, loss=0.201] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 10/50, Loss: 0.116555\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 11/50: 100%|██████████| 2099/2099 [25:15<00:00, 1.39it/s, loss=0.14] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 11/50, Loss: 0.114798\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 12/50: 100%|██████████| 2099/2099 [25:30<00:00, 1.37it/s, loss=0.0448]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 12/50, Loss: 0.107108\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 13/50: 100%|██████████| 2099/2099 [25:31<00:00, 1.37it/s, loss=0.0551]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 13/50, Loss: 0.103031\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 14/50: 100%|██████████| 2099/2099 [25:38<00:00, 1.36it/s, loss=0.252] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 14/50, Loss: 0.098223\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 15/50: 100%|██████████| 2099/2099 [26:35<00:00, 1.32it/s, loss=0.0921]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 15/50, Loss: 0.094357\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 16/50: 100%|██████████| 2099/2099 [25:32<00:00, 1.37it/s, loss=0.134] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 16/50, Loss: 0.093203\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 17/50: 100%|██████████| 2099/2099 [25:32<00:00, 1.37it/s, loss=0.0605]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 17/50, Loss: 0.090122\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 18/50: 100%|██████████| 2099/2099 [25:29<00:00, 1.37it/s, loss=0.0553]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 18/50, Loss: 0.086902\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 19/50: 100%|██████████| 2099/2099 [25:34<00:00, 1.37it/s, loss=0.0733]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 19/50, Loss: 0.083662\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 20/50: 100%|██████████| 2099/2099 [25:40<00:00, 1.36it/s, loss=0.0487]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 20/50, Loss: 0.082714\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 21/50: 100%|██████████| 2099/2099 [25:36<00:00, 1.37it/s, loss=0.104] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 21/50, Loss: 0.081393\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 22/50: 100%|██████████| 2099/2099 [25:43<00:00, 1.36it/s, loss=0.0671]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 22/50, Loss: 0.078136\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 23/50: 100%|██████████| 2099/2099 [25:38<00:00, 1.36it/s, loss=0.115] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 23/50, Loss: 0.077529\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 24/50: 100%|██████████| 2099/2099 [25:29<00:00, 1.37it/s, loss=0.0573]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 24/50, Loss: 0.077468\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 25/50: 100%|██████████| 2099/2099 [25:39<00:00, 1.36it/s, loss=0.0407]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 25/50, Loss: 0.074328\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 26/50: 100%|██████████| 2099/2099 [25:49<00:00, 1.35it/s, loss=0.0787]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 26/50, Loss: 0.071749\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 27/50: 100%|██████████| 2099/2099 [25:39<00:00, 1.36it/s, loss=0.0695]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 27/50, Loss: 0.070086\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 28/50: 100%|██████████| 2099/2099 [31:35<00:00, 1.11it/s, loss=0.0704]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 28/50, Loss: 0.068668\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 29/50: 100%|██████████| 2099/2099 [32:49<00:00, 1.07it/s, loss=0.0388]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 29/50, Loss: 0.064706\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 30/50: 100%|██████████| 2099/2099 [32:25<00:00, 1.08it/s, loss=0.0637]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 30/50, Loss: 0.063919\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 31/50: 100%|██████████| 2099/2099 [32:08<00:00, 1.09it/s, loss=0.0571]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 31/50, Loss: 0.061969\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 32/50: 100%|██████████| 2099/2099 [32:03<00:00, 1.09it/s, loss=0.0344]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 32/50, Loss: 0.062507\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 33/50: 100%|██████████| 2099/2099 [31:52<00:00, 1.10it/s, loss=0.0394]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 33/50, Loss: 0.059359\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 34/50: 100%|██████████| 2099/2099 [32:10<00:00, 1.09it/s, loss=0.0489]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 34/50, Loss: 0.058132\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 35/50: 100%|██████████| 2099/2099 [31:55<00:00, 1.10it/s, loss=0.0799]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 35/50, Loss: 0.057911\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 36/50: 100%|██████████| 2099/2099 [32:38<00:00, 1.07it/s, loss=0.0397]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 36/50, Loss: 0.056321\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 37/50: 100%|██████████| 2099/2099 [32:11<00:00, 1.09it/s, loss=0.0427]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 37/50, Loss: 0.054310\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 38/50: 100%|██████████| 2099/2099 [28:48<00:00, 1.21it/s, loss=0.0631]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 38/50, Loss: 0.056188\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 39/50: 100%|██████████| 2099/2099 [30:51<00:00, 1.13it/s, loss=0.0767] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 39/50, Loss: 0.052495\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 40/50: 100%|██████████| 2099/2099 [30:20<00:00, 1.15it/s, loss=0.0486] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 40/50, Loss: 0.050635\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 41/50: 100%|██████████| 2099/2099 [30:57<00:00, 1.13it/s, loss=0.0269]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 41/50, Loss: 0.049588\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 42/50: 100%|██████████| 2099/2099 [27:57<00:00, 1.25it/s, loss=0.0557] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 42/50, Loss: 0.050044\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 43/50: 100%|██████████| 2099/2099 [28:45<00:00, 1.22it/s, loss=0.0321]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 43/50, Loss: 0.047658\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 44/50: 100%|██████████| 2099/2099 [32:27<00:00, 1.08it/s, loss=0.0464]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 44/50, Loss: 0.047649\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 45/50: 100%|██████████| 2099/2099 [32:20<00:00, 1.08it/s, loss=0.0456]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 45/50, Loss: 0.046697\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 46/50: 100%|██████████| 2099/2099 [33:05<00:00, 1.06it/s, loss=0.0484]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 46/50, Loss: 0.045813\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 47/50: 100%|██████████| 2099/2099 [32:50<00:00, 1.06it/s, loss=0.06] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 47/50, Loss: 0.046260\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 48/50: 100%|██████████| 2099/2099 [31:56<00:00, 1.10it/s, loss=0.031] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 48/50, Loss: 0.044359\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 49/50: 100%|██████████| 2099/2099 [33:13<00:00, 1.05it/s, loss=0.06] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 49/50, Loss: 0.043685\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 50/50: 100%|██████████| 2099/2099 [44:40<00:00, 1.28s/it, loss=0.0741]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 50/50, Loss: 0.044747\n" ] } ], "source": [ "model = dCellAlignerNetwork(embedding_size=50, image_size=image_shape[0])\n", "model = pretrain_model(train_data, model, dataset_name='sim_neuron', batch_size=8, epochs=50, lr=1e-3, \n", " device='cuda', save_path='/path/to/save/pretrained/model/', return_model=True)" ] }, { "cell_type": "markdown", "id": "bd50f6b6", "metadata": {}, "source": [ "Next, during training, the model learns to extract features that preserve the CellAligner-OT distances between cells in the feature space, in addition to predicting the mapped protein distributions.\n", "\n", "The model is optimized with respect to two main loss components. The distance loss measures how well the the CellAligner-OT distances are preserved in the model's latent feature space, while the reconstruction loss measures accurately the model predicts the mapped protein distributions. The `dist_weight` parameter controls the relative weighting of these loss components during training. Ideally, the relatively contribution of both losses, which can be viewed by setting `show_loss_components = True`, should be around the same order of magnitude.\n", "\n", "To avoid overfitting, we apply L1 regularization (adjusted by `weight_decay`) and L2 regularization (adjusted by `sparsity_weight`, and `sparsity_target`). If the dGW-OT model is overfitting, you could experiment with increasing the `weight_decay` and `sparsity_weight`, or decreasing `sparsity_target`, to further regularize the model to resolve the issue.\n", "\n", "The dCellAligner-OT model training took around 48 hours running on a Nvidia RTX 4500 Ada." ] }, { "cell_type": "code", "execution_count": null, "id": "6704bb14", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training on device: cuda\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Loading pretrained weights from /home/jovyan/e/rkhu/Projects/CAJAL_spatial/data/package_dev/dgwote/models/pretrained_sim_neuron.pth\n", "Starting training for 25 epochs...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/25: Train Loss: 141.416748, Val Loss: 1.089571\n", " → New best model saved (val_loss: 1.089571)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2/25: Train Loss: 0.840245, Val Loss: 0.695685\n", " → New best model saved (val_loss: 0.695685)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3/25: Train Loss: 0.717471, Val Loss: 0.754261\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4/25: Train Loss: 0.792152, Val Loss: 0.692320\n", " → New best model saved (val_loss: 0.692320)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5/25: Train Loss: 0.745411, Val Loss: 0.646097\n", " → New best model saved (val_loss: 0.646097)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 6/25: Train Loss: 0.722791, Val Loss: 0.721418\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 7/25: Train Loss: 0.638340, Val Loss: 0.677450\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 8/25: Train Loss: 0.588748, Val Loss: 0.703082\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 9/25: Train Loss: 0.543514, Val Loss: 0.692757\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 10/25: Train Loss: 0.513111, Val Loss: 0.669878\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 11/25: Train Loss: 0.472981, Val Loss: 0.640772\n", " → New best model saved (val_loss: 0.640772)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 12/25: Train Loss: 0.449233, Val Loss: 0.549593\n", " → New best model saved (val_loss: 0.549593)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 13/25: Train Loss: 0.430085, Val Loss: 0.570916\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 14/25: Train Loss: 0.401759, Val Loss: 0.550535\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 15/25: Train Loss: 0.391115, Val Loss: 0.569693\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 16/25: Train Loss: 0.377396, Val Loss: 0.542184\n", " → New best model saved (val_loss: 0.542184)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 17/25: Train Loss: 0.361147, Val Loss: 0.554994\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 18/25: Train Loss: 0.347979, Val Loss: 0.631908\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 19/25: Train Loss: 0.335832, Val Loss: 0.513285\n", " → New best model saved (val_loss: 0.513285)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 20/25: Train Loss: 0.316852, Val Loss: 0.553770\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 21/25: Train Loss: 0.311076, Val Loss: 0.506876\n", " → New best model saved (val_loss: 0.506876)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 22/25: Train Loss: 0.297790, Val Loss: 0.498590\n", " → New best model saved (val_loss: 0.498590)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 23/25: Train Loss: 0.293798, Val Loss: 0.523204\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 24/25: Train Loss: 0.282792, Val Loss: 0.474511\n", " → New best model saved (val_loss: 0.474511)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 25/25: Train Loss: 0.274882, Val Loss: 0.466883\n", " → New best model saved (val_loss: 0.466883)\n", "\n", "Evaluating on test set...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/cajal/subcellular_dl.py:1128: UserWarning: Using a target size (torch.Size([8])) that is different to the input size (torch.Size([8, 1])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size.\n", " with torch.no_grad():\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Final Test Loss: 10.465317\n", "\n", "Saving model...\n", "Saved DWE model to /home/jovyan/e/rkhu/Projects/CAJAL_spatial/data/package_dev/dgwote/models//sim_neuron_final.pth\n" ] } ], "source": [ "# Train the DGWOTE model with the prepared datasets\n", "models, train_losses, val_losses = train_dCellAligner(\n", " train_data, val_data, test_data,\n", " save_path='/path/to/save/fully/trained/model/',\n", " dataset_name='sim_neuron',\n", " embedding_size=50, # 50-dimensional embeddings\n", " image_shape=(256, 256), # Input image shape\n", " device='cuda', # Use GPU if available\n", " batch_size=8, # Batch size for training\n", " epochs=25, # Number of epochs\n", " learning_rate=0.001, # Adam learning rate\n", " dist_weight=0.1, # Distance weight (vs reconstruction loss)\n", " early_stopping=False, # Disable early stopping\n", " weight_decay=1e-4, # L2 regularization weight\n", " lr_gamma=0.95, # Learning rate decay factor\n", " sparsity_weight=1e-3, # Sparsity weight for the embedding loss\n", " sparsity_target=0.1, # Target sparsity for the embedding loss\n", " pretrained_path=\"/path/to/save/pretrained/model/sim_neuron_pretrained_best.pth\"\n", ")" ] }, { "cell_type": "markdown", "id": "5a5a11d0", "metadata": {}, "source": [ "The `train_dCellAligner` function saves two versions of the model, the best performing model based on performance on validation dataset (`_best.pth`), and the final model after all training epochs (`_final.pth`). Here, we load the best model based on validation loss." ] }, { "cell_type": "code", "execution_count": null, "id": "cff2c062", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", " warnings.warn(\n", "/opt/conda/lib/python3.10/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=EfficientNet_B4_Weights.IMAGENET1K_V1`. You can also use `weights=EfficientNet_B4_Weights.DEFAULT` to get the most up-to-date weights.\n", " warnings.warn(msg)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Loaded dGWOT model from /home/jovyan/e/rkhu/Projects/CAJAL_spatial/data/package_dev/dgwote/models/sim_neuron_best.pth\n", "Config: {'input_channels': 3, 'embedding_size': 50, 'image_size': 256}\n" ] } ], "source": [ "# load best model\n", "model = load_dCellAligner_model('/path/to/save/fully/trained/model/sim_neuron_best.pth')" ] }, { "cell_type": "markdown", "id": "fefc2421", "metadata": {}, "source": [ "To evaluate model performance, we can look at how well the true CellAligner-OT distances are preserved in the dCellAligner-OT feature space. We can also look at how well the model predicted the mapped protein distribution." ] }, { "cell_type": "code", "execution_count": null, "id": "f7cf85e3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Extracting embeddings for 1670 unique images...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Extracting embeddings: 0%| | 0/27 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_distance_predictions(model, test_data)" ] }, { "cell_type": "code", "execution_count": null, "id": "c8fcfd80", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABb4AAAJSCAYAAAAMOtMPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAA0b9JREFUeJzs3XmcHHW1///3p5ZeZstuEpZAgLBFFgHDYrgBLoKyiCigIEsEQRYX+IHKVRBFQVHky/2qoNzrjX4R7mURAa+iBkRB2TdFQNmXkH2ZfXqpqvP7o7o7M5mZZBKSTGfyej4eA5nq6u7qYXKoOnU+5zgzMwEAAAAAAAAAMEJ4w30AAAAAAAAAAACsTyS+AQAAAAAAAAAjColvAAAAAAAAAMCIQuIbAAAAAAAAADCikPgGAAAAAAAAAIwoJL4BAAAAAAAAACMKiW8AAAAAAAAAwIhC4hsAAAAAAAAAMKKQ+AYAAAAAAAAAjCgkvtejr33ta3LOrdNzf/rTn8o5p9dff339HlQvr7/+upxz+ulPf7rB3mN1Bvr5bLvttpo9e/awHA8A4taaELeA4UWMWj1iFDC8iFGrR4wCNh7i0eoRjzZfJL4lPffcczr55JO15ZZbKpvNaostttAnPvEJPffcc8N9aMNq0aJFuuiii7TzzjuroaFBjY2N2nvvvfXNb35Tra2tG/VYbrnlFp188smaNm2anHM66KCDBt23WCzqS1/6krbYYgvl83ntu+++mjt3br/9yuWyvv71r2u77bZTNpvVdtttp29+85uKoqjPfo8//rg+85nPaPr06WpsbNSUKVN0wgkn6MUXX+z3mo899pjOPfdc7b333grDcJ3/xwOsCXFrYPUUtySpo6NDX/ziFzV16lRls1ltueWWOu6449Td3V3bZ8GCBbr44ot18MEHq7m5Wc45/fGPfxz0NR966CHNnDlTDQ0NmjRpkj73uc+ps7Oz335DjYXAhkCMGlg9xajOzk6df/752mqrrZTNZrXLLrvo+uuv77ffQQcdJOfcgF9hGPbZ94ILLtBee+2lsWPHqqGhQbvssou+9rWvDRijnnzySX3gAx9QS0uLmpubddhhh+mZZ57ZUB8X6IMYNbB6ilG9vfLKK8rlcnLO6Yknnuj3eGtrq8466yxNmDBBjY2NOvjgg/XUU0/1269QKOhb3/qWdt11VzU0NGjLLbfU8ccf3++/ezUJONDXwoULN9jnxOaJeDSweopHa5OP6u2KK66Qc07vfve7B3y8VCrpyiuv1M4776xcLqeJEyfqyCOP1Lx582r7dHZ26rLLLtMHPvABjR07do03D5Ik0fXXX68999xT+Xxe48aN0yGHHKK//vWva/ORR5RguA9guN1xxx068cQTNXbsWJ1xxhmaOnWqXn/9df3kJz/R7bffrv/5n//RscceO6TXuuSSS3TxxRev03Gccsop+vjHP65sNrtOz1/fHn/8cR1xxBHq7OzUySefrL333luS9MQTT+jb3/62HnjgAf3+97/faMdz/fXX68knn9R73/teLVu2bLX7zp49W7fffrvOP/98TZs2TT/96U91xBFH6P7779fMmTNr+5188sm67bbbdPrpp2ufffbRI488oksvvVRvvvmmbrjhhtp+V111lf7yl7/o+OOP1+67766FCxfqBz/4gfbaay898sgjfYLYb37zG/3nf/6ndt99d2233XYDJseBd4q4NbB6i1ttbW2aNWuW5s2bp7POOks77LCDlixZogcffFDFYlENDQ2SpH/+85+66qqrNG3aNO222256+OGHB33NZ555Rv/6r/+qXXbZRddcc43mzZunq6++Wi+99JLuueeePvsONRYC6xsxamD1FKPiONbhhx+uJ554Quedd56mTZum3/3udzr33HO1YsUKffnLX67t+5WvfEWf+tSn+jy/q6tLZ599tg477LA+2x9//HEdeOCB+uQnP6lcLqenn35a3/72t3XvvffqgQcekOelNTdPPfWUZs6cqa233lqXXXaZkiTRddddp1mzZumxxx7TTjvttOF/CNhsEaMGVk8xalUXXHCBgiBQsVjs91iSJDryyCP117/+VV/4whc0fvx4XXfddTrooIP05JNPatq0abV9P/GJT+juu+/WmWeeqb322kvz58/XD3/4Q+2///569tlntc022/R57csvv1xTp07ts2306NEb5DNi80Q8Gli9xaO1yUdVzZs3T1deeaUaGxsHfLxcLuvII4/UQw89pDPPPFO77767VqxYoUcffVRtbW3aaqutJElLly7V5ZdfrilTpmiPPfZYbYGUJJ1++um66aabdOqpp+ozn/mMurq69PTTT2vx4sVr9ZlHFNuMvfzyy9bQ0GA777yzLV68uM9jS5YssZ133tkaGxvtlVdeWe3rdHZ2bsjDXG9ee+01k2Rz5sxZ7X4rVqywLbfc0iZOnGgvvPBCv8cXLlxo3/jGN9b6/S+77DJb9Vdum222sdNOO22Nz33zzTctjmMzM5s+fbrNmjVrwP0effRRk2Tf/e53a9t6enps++23t/3337+27bHHHjNJdumll/Z5/oUXXmjOOfvrX/9a2/aXv/zFisVin/1efPFFy2az9olPfKLP9oULF1p3d7eZmZ133nn9Pi/wThG3BlaPceucc86x0aNH26uvvrra/drb223ZsmVmZnbbbbeZJLv//vsH3PeDH/ygTZ482dra2mrb/uM//sMk2e9+97vatqHGQmB9I0YNrN5i1K233mqS7Cc/+Umf7R/96Ectl8vZokWLVvv8G2+80STZTTfdtMZjvPrqq02SPfzww7VtRxxxhI0ZM8aWLl1a2zZ//nxramqyj3zkI2t8TWBdEaMGVm8xqrff/va3lslk7JJLLjFJ9vjjj/d5/JZbbjFJdtttt9W2LV682EaPHm0nnnhibdu8efNMkl100UV9nv+HP/zBJNk111xT2zZnzpwB3wtYn4hHA6vHeDTUfFRvH/vYx+yQQw6xWbNm2fTp0/s9ftVVV1kYhvboo4+u9nUKhYItWLDAzMwef/zx1f4Mq/HwjjvuWOPxbU4261Yn3/3ud9Xd3a0bbrhBEyZM6PPY+PHj9eMf/1hdXV36zne+U9te7Qv0/PPP66STTtKYMWNqlXMD9Qzq6enR5z73OY0fP17Nzc360Ic+pLffflvOOX3ta1+r7TdQT6Vtt91WRx11lP785z9rxowZyuVy2m677fT//t//6/Mey5cv10UXXaTddttNTU1Namlp0Qc/+MF1Xsrw4x//WG+//bauueYa7bzzzv0enzhxoi655JI+2+655x4deOCBamxsVHNzs4488sj1ujRn6623rlUJrc7tt98u3/d11lln1bblcjmdccYZevjhh/XWW29Jkh588EFJ0sc//vE+z//4xz8uM9Mtt9xS23bAAQcok8n02W/atGmaPn26XnjhhT7bJ06cqHw+v3YfDlgLxK2B1Vvcam1t1Zw5c3TWWWdp6tSpKpVKA1YpSVJzc7PGjh27xtdsb2/X3LlzdfLJJ6ulpaW2/dRTT1VTU5NuvfXW2rahxkJgfSNGDazeYtTqzoMKhYLuuuuu1T7/5ptvVmNjo4455pg1vte2224rSX2WJT/44IM69NBDNW7cuNq2yZMna9asWfrf//3fAVujAOsDMWpg9Rajqsrlsj7/+c/r85//vLbffvsB97n99ts1ceJEfeQjH6ltmzBhgk444QTdddddtfOvjo6O2mfpbfLkyZI06DVcR0eH4jh+x58FWBXxaGD1GI+Gmo+qeuCBB3T77bfr2muvHfDxJEn07//+7zr22GM1Y8YMRVHUpxVmb9lsVpMmTRrS+15zzTWaMWOGjj32WCVJoq6uriEf80i2WSe+f/WrX2nbbbfVgQceOODj//Iv/6Jtt91Wv/71r/s9dvzxx6u7u1tXXnmlzjzzzEHfY/bs2fr+97+vI444QldddZXy+byOPPLIIR/jyy+/rOOOO07vf//79b3vfU9jxozR7Nmz+/wlfvXVV3XnnXfqqKOO0jXXXKMvfOELevbZZzVr1izNnz9/yO9Vdffddyufz+u4444b0v433nijjjzySDU1Nemqq67SpZdequeff14zZ87coMMRBvL0009rxx137JMUkqQZM2ZIUq13ZPUEaNUTnGrrgSeffHK172NmWrRokcaPH78+DhsYMuLWwOotbv35z39WoVDQDjvsoOOOO04NDQ3K5/N63/vet849bJ999llFUaR99tmnz/ZMJqM999xTTz/9dG3bUGMhsL4RowZWbzGqWCzK9/1+N/aHch60ZMkSzZ07Vx/+8IcHXL4bRZGWLl2q+fPn6/e//70uueQSNTc31+JP9f0HSjI1NDSoVCrp73//+7p+NGC1iFEDq7cYVXXttddqxYoV/ZJcvT399NPaa6+9+iWlZsyYoe7u7lrrye23315bbbWVvve97+lXv/qV5s2bp8cee0xnn322pk6d2u9GoCQdfPDBamlpUUNDgz70oQ/ppZdeWm+fDSAeDaxe49FQxXGsz372s/rUpz6l3XbbbcB9nn/+ec2fP1+77767zjrrLDU2NqqxsVG777677r///nV63/b2dj322GN673vfqy9/+csaNWqUmpqatN122/UpkNosDXfJ+XBpbW01SXbMMcesdr8PfehDJsna29vNbOXyiN7LpqpWXTrx5JNPmiQ7//zz++w3e/Zsk2SXXXZZbVt1OdVrr71W27bNNtuYJHvggQdq2xYvXmzZbNYuvPDC2rZCoVBbdlH12muvWTabtcsvv7zPNg1hacmYMWNsjz32WO0+VR0dHTZ69Gg788wz+2xfuHChjRo1qs/29bHUzWz1S0umT59uhxxySL/tzz33nEmyH/3oR2Zm9otf/MIk2Y033thnvx/96Ecmyd797nev9hiqS3xXXSLcG61OsL4RtwZXb3HrmmuuMUk2btw4mzFjht1000123XXX2cSJE23MmDE2f/78AZ+3ulYn1cd6/2yrjj/+eJs0aVLt+6HGQmB9IkYNrt5i1Pe+9z2TZA8++GCf7RdffLFJsqOOOmrQ537/+983Sfab3/xmwMcffvhhk1T72mmnnfrFtN1228123HFHi6Kotq1YLNqUKVNMkt1+++2rPX5gXRCjBldvMcrMbMGCBdbc3Gw//vGPzWzw9iONjY12+umn93v+r3/9a5Nkv/3tb2vbHn30Udt+++37xKi999671kag6pZbbrHZs2fbz372M/vlL39pl1xyiTU0NNj48ePtzTffXOOxA2tCPBpcPcaj3tbU6uQHP/iBjRo1qta+ZqBWJ3fccUftWnHatGk2Z84cmzNnjk2bNs0ymUyf1ru9ra7VyVNPPVV7zYkTJ9p1111nN910k82YMcOcc3bPPfes1eccSTbbiu/qUqfm5ubV7ld9vL29vc/2s88+e43v8dvf/laSdO655/bZ/tnPfnbIx7nrrrv2uQM4YcIE7bTTTnr11Vdr27LZbO0OdxzHWrZsmZqamrTTTjsNOM16Tdrb29f4c6maO3euWltbdeKJJ2rp0qW1L9/3te+++67z3ap11dPTM+BAhlwuV3tcko444ghts802uuiii3THHXfojTfe0K233qqvfOUrCoKgtt9A/vGPf+i8887T/vvvr9NOO23DfBBgAMStwdVb3Kou03fO6b777tNJJ52kc845R3feeadWrFihH/7wh2v9mtW4NFiM6x23hhoLgfWJGDW4eotRJ510kkaNGqXTTz9dc+fO1euvv64bbrhB1113naTVx4ibb75ZEyZM0Pvf//4BH9911101d+5c3XnnnfriF7+oxsbGfq1Lzj33XL344os644wz9Pzzz+vvf/+7Tj31VC1YsGCN7w+sK2LU4OotRknSl770JW233Xb9huuuam3OecaMGaM999xTF198se68805dffXVev3113X88cerUCjU9jvhhBM0Z84cnXrqqfrwhz+sb3zjG/rd736nZcuW6Yorrlgvnw+bN+LR4OoxHg3VsmXL9NWvflWXXnppv/Y1vVXPizo6OnTfffdp9uzZmj17tu69916ZWZ/2NkNVfc1ly5bprrvu0jnnnKOTTjpJ9913n8aNG6dvfvOb6/ahRoBguA9guFT/IlUDzmAGC0irTnceyBtvvCHP8/rtu8MOOwz5OKdMmdJv25gxY7RixYra99X+QNddd51ee+21Pj3IevdOHKqWlpY1/lyqqsu9DjnkkEFfa2PK5/MD9tGtnshUl9Xmcjn9+te/1gknnKCPfvSjktKA/Z3vfEdXXHGFmpqaBnz9hQsX6sgjj9SoUaNqPXSBjYW4Nbh6i1vVWHP00Uf3iSf77befpk6dqoceemidX3OwGNe7bcBQYyGwPhGjBldvMWrSpEm6++67dcopp+iwww6rve73v/99nXbaaYOeB7366qt6+OGH9ZnPfEZBMPBlREtLiw499FBJ0jHHHKObb75ZxxxzjJ566intsccektIL9rfeekvf/e539bOf/UyStM8+++iLX/zias/DgHeCGDW4eotRjzzyiG688Ubdd999a+yrO9Rznra2Nh144IH6whe+oAsvvLC23z777KODDjpIc+bM0TnnnDPo+8ycOVP77ruv7r333nX5SEAfxKPB1Vs8WhuXXHKJxo4du8abC9W49L73vU9bb711bfuUKVM0c+bMd3StOHXqVO2777617U1NTTr66KP185//XFEUDXr+NpJtfp+4YtSoUZo8ebL+9re/rXa/v/3tb9pyyy37/YXZWEmDwRKrZlb785VXXqlLL71Up59+ur7xjW9o7Nix8jxP559/vpIkWev33HnnnfXMM8+oVCr16/24qurr33jjjQM23N/Yf6kmT56st99+u9/2agXRFltsUds2ffp0/f3vf9fzzz+vFStWaNddd1U+n9cFF1ygWbNm9XuNtrY2ffCDH1Rra6sefPDBPq8FbAzErcHVW9yqxodVByhJ0rve9a4+J4tDVR2+VI1nvS1YsKBPTFqbWAisL8SowdVbjJLS3qGvvvqqnn32WXV1dWmPPfao9eLccccdB3zOzTffLEn6xCc+MeT3+chHPqJTTjlF//M//1NLfEvSFVdcoYsuukjPPfecRo0apd12201f/vKXV/v+wDtBjBpcvcWoL37xizrwwAM1derUWo/epUuXSkrPZd58881aQm7y5MmDnhtJK895fvGLX2jRokX60Ic+1Ge/WbNmqaWlRX/5y19Wm/iW0gF3//znP9/RZwMk4tHq1Fs8GqqXXnpJN9xwg6699to+vc0LhYLK5bJef/11tbS0aOzYsWu8Vuw9u2mo1vSa5XJZXV1dGjVq1Fq/9qZus018S9JRRx2l//iP/9Cf//zn2iTc3h588EG9/vrr+vSnP71Or7/NNtsoSRK99tprmjZtWm37yy+/vM7HPJDbb79dBx98sH7yk5/02d7a2rpOwxePPvpoPfzww/rFL36hE088cbX7Vqdrv+td76pV9wynPffcU/fff7/a29v7/M/h0UcfrT3em3NO06dPr33/m9/8RkmS9PsshUJBRx99tF588UXde++92nXXXTfchwBWg7g1sHqLW3vvvbckDZh8nj9//oATytfk3e9+t4Ig0BNPPKETTjihtr1UKumZZ57ps21tYyGwvhCjBlZvMarK9/0+8aBayTjY+958883afvvttd9++w35PYrFopIkUVtbW7/HxowZ0+f35N5779VWW221TjESGApi1MDqLUa9+eabeuONNwasav3Qhz6kUaNGqbW1VVJ6TvPggw8qSZI+1eGPPvqoGhoaajfSFi1aJEl9qlGlNIEXx7GiKFrjcb366qurbV8ArA3i0cDqLR4N1dtvv60kSfS5z31On/vc5/o9PnXqVH3+85/Xtddeq912201hGA56rbgucWaLLbbQpEmTBn3NXC435BYyI81m2+Nbkr7whS8on8/r05/+tJYtW9bnseXLl+vss89WQ0ODvvCFL6zT6x9++OGSVOuXWPX9739/3Q54EL7v97njJkm33XbbgL/wQ3H22Wdr8uTJuvDCC2tTsHtbvHhxrT/Q4YcfrpaWFl155ZUql8v99l2yZMk6HcO6Ou644xTHsW644YbatmKxqDlz5mjffffts4xkVT09Pbr00ks1efLkPgE2jmN97GMf08MPP6zbbrtN+++//wb9DMDqELcGVm9xa6eddtIee+yhu+66q1ahJEm///3v9dZbbw3aG3d1Ro0apUMPPVQ///nP+yz/u/HGG9XZ2anjjz++tu2dxELgnSBGDazeYtRAlixZoquuukq77777gBePTz/9tF544QWddNJJAz6/tbV1wOP9z//8T0lpO4HVueWWW/T444/r/PPPX2NrA2BdEaMGVm8x6oYbbtAvf/nLPl/V1gFXX321brrpptq+xx13nBYtWqQ77rijtm3p0qW67bbbdPTRR9f6f1cT4P/zP//T573uvvtudXV16T3vec9qP8NvfvMbPfnkk/rABz7wjj8fIBGPBlNv8Wio3v3ud/eLW7/85S81ffp0TZkyRb/85S91xhlnSEpb1xxxxBF66KGH9I9//KP2Gi+88IIeeuihdbpWlKSPfexjeuuttzR37tzatqVLl+quu+7SIYccstmeX23WFd/Tpk3Tz372M33iE5/QbrvtpjPOOKO2nOonP/mJli5dqv/+7/+u3UVaW3vvvbc++tGP6tprr9WyZcu033776U9/+lPtL69zbr18jqOOOkqXX365PvnJT+qAAw7Qs88+q5tuuknbbbfdOr3emDFj9Mtf/lJHHHGE9txzT5188sm16sWnnnpK//3f/11L/ra0tOj666/XKaecor322ksf//jHNWHCBL355pv69a9/rfe97336wQ9+8I4/4wMPPKAHHnhAUhq8urq6asHuX/7lX/Qv//IvkqR9991Xxx9/vP7t3/5Nixcv1g477KCf/exntf+mvZ1wwgnaYosttOuuu6q9vV3/9V//pVdffVW//vWv+9wJu/DCC3X33Xfr6KOP1vLly/Xzn/+8z+ucfPLJtT+/8cYbuvHGGyVJTzzxhCTVjnObbbbRKaec8o5/Fti8EbcGVo9x6//8n/+j97///Zo5c6Y+/elPq62tTddcc4123HHHfktpq3Hiueeek5Qms//85z9LSnvFVV1xxRU64IADNGvWLJ111lmaN2+evve97+mwww7rcyG2NrEQWJ+IUQOrxxg1a9Ys7b///tphhx20cOFC3XDDDers7NT//u//DnhhVE00Ddbm5I9//KM+97nP6bjjjtO0adNUKpX04IMP6o477tA+++zT53zpgQce0OWXX67DDjtM48aN0yOPPKI5c+boAx/4gD7/+c+/488GDIYYNbB6i1HV2QO9VSu8Z82a1edG2nHHHaf99ttPn/zkJ/X8889r/Pjxuu666xTHsb7+9a/X9jv66KM1ffp0XX755XrjjTe033776eWXX9YPfvADTZ48uZaQkqQDDjhA73nPe7TPPvto1KhReuqpp/Rf//Vf2nrrrWstmYB3ing0sHqLR9LQ8lHjx4/Xhz/84X7PvfbaayWp32NXXnml7rvvPh1yyCG1CvH/+3//r8aOHdsvzvzgBz9Qa2trrYXKr371K82bN09SOqy02r7k3/7t33Trrbfqox/9qP6//+//06hRo/SjH/1I5XJZV1555Tv+OWyyDPa3v/3NTjzxRJs8ebKFYWiTJk2yE0880Z599tl++1522WUmyZYsWTLoY711dXXZeeedZ2PHjrWmpib78Ic/bP/85z9Nkn3729+u7TdnzhyTZK+99lpt2zbbbGNHHnlkv/eZNWuWzZo1q/Z9oVCwCy+80CZPnmz5fN7e97732cMPP9xvv9dee80k2Zw5c4b0c5k/f75dcMEFtuOOO1oul7OGhgbbe++97YorrrC2trY++95///12+OGH26hRoyyXy9n2229vs2fPtieeeGK1P59tttnGTjvttDUeS/W5A31ddtllffbt6emxiy66yCZNmmTZbNbe+9732m9/+9t+r3nVVVfZzjvvbLlczsaMGWMf+tCH7Omnn+6336xZswZ971U/z/333z/ofr3/WwDvFHFrYPUUt8zM5s6da/vtt5/lcjkbO3asnXLKKbZgwYJ++w01xpiZPfjgg3bAAQdYLpezCRMm2HnnnWft7e399htqLAQ2BGLUwOopRl1wwQW23XbbWTabtQkTJthJJ51kr7zyyoD7xnFsW265pe21116Dvt7LL79sp556qm233XaWz+ctl8vZ9OnT7bLLLrPOzs5++x522GE2fvx4y2aztvPOO9u3vvUtKxaLazxuYH0gRg2snmLUqqo/r8cff7zfY8uXL7czzjjDxo0bZw0NDTZr1qxB96t+vmw2a+PHj7ePf/zj9uqrr/bZ7ytf+YrtueeeNmrUKAvD0KZMmWLnnHOOLVy4cK2PG1gT4tHA6ikerU0+alWzZs2y6dOnD/jYk08+aYceeqg1NjZac3OzHXPMMfbiiy/222+bbbYZ9P17/zczM3vllVfs2GOPtZaWFsvn83bIIYfYY489tsbPOJI5s1XWJGCDe+aZZ/Se97xHP//5z9dqOBAADBfiFoB6RowCUM+IUQDqBfEIm5vNs8HLRtTT09Nv27XXXivP82rtOQCgnhC3ANQzYhSAekaMAlAviEfAZt7je2P4zne+oyeffFIHH3ywgiDQPffco3vuuUdnnXUWw8UA1CXiFoB6RowCUM+IUQDqBfEIkGh1soHNnTtXX//61/X888+rs7NTU6ZM0Smn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AAAwopD4BgAAAAAAAACMKCS+AQAAAAAAAAAjColvAAAAAAAAAMCIQuIbG8Trr78u55x++tOfDsv7f+1rX5Nzrs+2bbfdVrNnzx6W4wFQ/4hbAOoZMQpAPSNGAagXxCP0VleJ75/+9KdyztW+giDQlltuqdmzZ+vtt98e7sNb76677rph+4tYT8cgSYsWLdJFF12knXfeWQ0NDWpsbNTee++tb37zm2ptbd2ox3LLLbfo5JNP1rRp0+Sc00EHHTTovsViUV/60pe0xRZbKJ/Pa99999XcuXP77Vcul/X1r39d2223nbLZrLbbbjt985vfVBRFffZ7/PHH9ZnPfEbTp09XY2OjpkyZohNOOEEvvvhiv9d87LHHdO6552rvvfdWGIb9Ais2DuLW5nkMUn3FLUnq6OjQF7/4RU2dOlXZbFZbbrmljjvuOHV3d9f2WbBggS6++GIdfPDBam5ulnNOf/zjHwd9zYceekgzZ85UQ0ODJk2apM997nPq7Ozst99QYyE2PmLU5nkMUn3FqM7OTp1//vnaaqutlM1mtcsuu+j666/vt99BBx3U5/e191cYhn32veCCC7TXXntp7Nixamho0C677KKvfe1rA8aoJ598Uh/4wAfU0tKi5uZmHXbYYXrmmWc21MfFWiBGbZ7HINVXjOrtlVdeUS6Xk3NOTzzxRL/HW1tbddZZZ2nChAlqbGzUwQcfrKeeeqrffoVCQd/61re06667qqGhQVtuuaWOP/54Pffcc332W/XvQO+vhQsXbrDPif6IR5vnMUj1FY/WJh/V2xVXXCHnnN797ncP+HipVNKVV16pnXfeWblcThMnTtSRRx6pefPm1fbp7OzUZZddpg984AMaO3bsGm8eJEmi66+/Xnvuuafy+bzGjRunQw45RH/961/X5iNvcMFwH8BALr/8ck2dOlWFQkGPPPKIfvrTn+rPf/6z/v73vyuXyw334a031113ncaPHz+sd33q4Rgef/xxHXHEEers7NTJJ5+svffeW5L0xBNP6Nvf/rYeeOAB/f73v99ox3P99dfrySef1Hvf+14tW7ZstfvOnj1bt99+u84//3xNmzZNP/3pT3XEEUfo/vvv18yZM2v7nXzyybrtttt0+umna5999tEjjzyiSy+9VG+++aZuuOGG2n5XXXWV/vKXv+j444/X7rvvroULF+oHP/iB9tprLz3yyCN9gthvfvMb/ed//qd23313bbfddgMmx7HxELc2r2Oot7jV1tamWbNmad68eTrrrLO0ww47aMmSJXrwwQdVLBbV0NAgSfrnP/+pq666StOmTdNuu+2mhx9+eNDXfOaZZ/Sv//qv2mWXXXTNNddo3rx5uvrqq/XSSy/pnnvu6bPvUGMhhg8xavM6hnqKUXEc6/DDD9cTTzyh8847T9OmTdPvfvc7nXvuuVqxYoW+/OUv1/b9yle+ok996lN9nt/V1aWzzz5bhx12WJ/tjz/+uA488EB98pOfVC6X09NPP61vf/vbuvfee/XAAw/I89L6nqeeekozZ87U1ltvrcsuu0xJkui6667TrFmz9Nhjj2mnnXba8D8ErBExavM6hnqKUau64IILFASBisViv8eSJNGRRx6pv/71r/rCF76g8ePH67rrrtNBBx2kJ598UtOmTavt+4lPfEJ33323zjzzTO21116aP3++fvjDH2r//ffXs88+q2222abPa1f/DvQ2evToDfIZsXrEo83rGOotHq1NPqpq3rx5uvLKK9XY2Djg4+VyWUceeaQeeughnXnmmdp99921YsUKPfroo2pra9NWW20lSVq6dKkuv/xyTZkyRXvsscdqC6Qk6fTTT9dNN92kU089VZ/5zGfU1dWlp59+WosXL16rz7zBWR2ZM2eOSbLHH3+8z/YvfelLJsluueWWYTqyDWP69Ok2a9asIe3b2dk57MewNl577TWTZHPmzFntfitWrLAtt9zSJk6caC+88EK/xxcuXGjf+MY31vr9L7vsMlv113ubbbax0047bY3PffPNNy2OYzNb/c/n0UcfNUn23e9+t7atp6fHtt9+e9t///1r2x577DGTZJdeemmf51944YXmnLO//vWvtW1/+ctfrFgs9tnvxRdftGw2a5/4xCf6bF+4cKF1d3ebmdl5553X7/Ni4yBuDY64tXbeSdw655xzbPTo0fbqq6+udr/29nZbtmyZmZnddtttJsnuv//+Aff94Ac/aJMnT7a2trbatv/4j/8wSfa73/2utm2osRDDgxg1OGLU2lnXGHXrrbeaJPvJT37SZ/tHP/pRy+VytmjRotU+/8YbbzRJdtNNN63xGK+++mqTZA8//HBt2xFHHGFjxoyxpUuX1rbNnz/fmpqa7CMf+cgaXxMbFjFqcMSotfNOzqOqfvvb31omk7FLLrlkwN/LW265xSTZbbfdVtu2ePFiGz16tJ144om1bfPmzTNJdtFFF/V5/h/+8AeTZNdcc01t22B/B7DxEY8GRzxaOxsjH9Xbxz72MTvkkENs1qxZNn369H6PX3XVVRaGoT366KOrfZ1CoWALFiwwM7PHH398tT/Dajy844471nh8w62uWp0M5sADD5SULjvq7R//+IeOO+44jR07VrlcTvvss4/uvvvufs9vbW3VBRdcoG233VbZbFZbbbWVTj31VC1durS2z+LFi3XGGWdo4sSJyuVy2mOPPfSzn/2sz+tU+wRdffXVuuGGG7T99tsrm83qve99rx5//PE++y5cuFCf/OQna0s6J0+erGOOOUavv/66pLS/z3PPPac//elPtaU01SUM1SU2f/rTn3TuuefqXe96V+0OzOzZs7Xtttv2+4wD9RCSpJ///OeaMWOGGhoaNGbMGP3Lv/xL7W7V6o6h+nM7//zztfXWWyubzWqHHXbQVVddpSRJ+v18Z8+erVGjRmn06NE67bTThrwc5Mc//rHefvttXXPNNdp55537PT5x4kRdcsklfbbdc889OvDAA9XY2Kjm5mYdeeSR/ZaMvRNbb711rUpodW6//Xb5vq+zzjqrti2Xy+mMM87Qww8/rLfeekuS9OCDD0qSPv7xj/d5/sc//nGZmW655ZbatgMOOECZTKbPftOmTdP06dP1wgsv9Nk+ceJE5fP5tftw2GiIW8St3jZk3GptbdWcOXN01llnaerUqSqVSgNWKUlSc3Ozxo4du8bXbG9v19y5c3XyySerpaWltv3UU09VU1OTbr311tq2ocZC1BdiFDGqtw0Zo1Z3HlQoFHTXXXet9vk333yzGhsbdcwxx6zxvar/HXv/rB588EEdeuihGjduXG3b5MmTNWvWLP3v//7vgK1RMPyIUcSo3jb09Z+UVkR+/vOf1+c//3ltv/32A+5z++23a+LEifrIRz5S2zZhwgSdcMIJuuuuu2rnXx0dHbXP0tvkyZMladBruI6ODsVx/I4/C9Yv4hHxqLd6yUdVPfDAA7r99tt17bXXDvh4kiT693//dx177LGaMWOGoijq0wqzt2w2q0mTJg3pfa+55hrNmDFDxx57rJIkUVdX15CPeWOry1Ynq6r+5RwzZkxt23PPPaf3ve992nLLLXXxxRersbFRt956qz784Q/rF7/4hY499lhJaY+aAw88UC+88IJOP/107bXXXlq6dKnuvvtuzZs3T+PHj1dPT48OOuggvfzyy/rMZz6jqVOn6rbbbtPs2bPV2tqqz3/+832O5+abb1ZHR4c+/elPyzmn73znO/rIRz6iV199tdZ/8KMf/aiee+45ffazn9W2226rxYsXa+7cuXrzzTe17bbb6tprr9VnP/tZNTU16Stf+Yqk/v9jPPfcczVhwgR99atfXadfoq9//ev62te+pgMOOECXX365MpmMHn30Uf3hD3/QYYcdttpj6O7u1qxZs/T222/r05/+tKZMmaKHHnpI//Zv/6YFCxbU/lKZmY455hj9+c9/1tlnn61ddtlFv/zlL3XaaacN6Rjvvvtu5fN5HXfccUPa/8Ybb9Rpp52mww8/XFdddZW6u7t1/fXXa+bMmXr66acHDMIbytNPP60dd9yxT1JIkmbMmCEpbROw9dZb106AVj3BqbYeePLJJ1f7PmamRYsWafr06evr0LERELeIW1UbOm79+c9/VqFQ0A477KDjjjtOd955p5Ik0f77768f/vCH2nPPPdf6NZ999llFUaR99tmnz/ZMJqM999xTTz/9dG3bUGMh6gsxihhVtaFjVLFYlO/7/W7s9z4POvPMMwd87pIlSzR37lx97GMfG3D5bhRFam1tValU0t///nddcsklam5ursWf6vsPlGRqaGioPW+//fZ7Jx8RGwAxihhVtbGu/6699lqtWLFCl1xyie64444B93n66ae111579UtKzZgxQzfccINefPFF7bbbbtp+++211VZb6Xvf+5522mknvec979H8+fNrs1hWvREoSQcffLA6OzuVyWR0+OGH63vf+16f1ikYPsQj4lFVPeWjpLSd3Gc/+1l96lOf0m677TbgPs8//7zmz5+v3XffXWeddZZ+9rOfqVQqabfddtO///u/6+CDD17r921vb6/NnPvyl7+s73//++rs7NTUqVP17W9/WyeccMI7/Wjr1zBWm/dTXVpy77332pIlS+ytt96y22+/3SZMmGDZbNbeeuut2r7/+q//arvttpsVCoXatiRJ7IADDrBp06bVtn31q18dtPw+SRIzM7v22mtNkv385z+vPVYqlWz//fe3pqYma29vN7OVyyXGjRtny5cvr+171113mST71a9+ZWbpcgmtsux7IIMtW6j+HGbOnGlRFPV57LTTTrNtttmm33NWXUrx0ksvmed5duyxx9aWSaz6uVd3DN/4xjessbHRXnzxxT7bL774YvN93958800zM7vzzjtNkn3nO9+p7RNFkR144IFDWloyZswY22OPPVa7T1VHR4eNHj3azjzzzD7bFy5caKNGjeqzfX0sdTNb/dKS6dOn2yGHHNJv+3PPPWeS7Ec/+pGZmf3iF78wSXbjjTf22e9HP/qRSbJ3v/vdqz2G6hLfVZcI90ark+FD3Or7cyBu9bUx4tY111xT+288Y8YMu+mmm+y6666ziRMn2pgxY2z+/PkDPm91rU6qjz3wwAP9Hjv++ONt0qRJte+HGgsxPIhRfX8OxKi+NkaM+t73vmeS7MEHH+yz/eKLLzZJdtRRRw363O9///smyX7zm98M+PjDDz9skmpfO+20U7+Ytttuu9mOO+7Y5797sVi0KVOmmCS7/fbbV3v82LCIUX1/DsSovjbW9d+CBQusubnZfvzjH5vZ4C0vGhsb7fTTT+/3/F//+tcmyX7729/Wtj366KO2/fbb94lRe++9d62NQNUtt9xis2fPtp/97Gf2y1/+0i655BJraGiw8ePH137m2DiIR31/DsSjvuotH2Vm9oMf/MBGjRplixcvNjMbsNXJHXfcUfu9mTZtms2ZM8fmzJlj06ZNs0wm06f1bm+ra3Xy1FNP1V5z4sSJdt1119lNN91kM2bMMOec3XPPPWv1OTe0umx1cuihh2rChAnaeuutddxxx6mxsVF33313bXnF8uXL9Yc//EEnnHCCOjo6tHTpUi1dulTLli3T4Ycfrpdeeqk2dfcXv/iF9thjj9odt96qSzF+85vfaNKkSTrxxBNrj4VhqM997nPq7OzUn/70pz7P+9jHPtbnbl916curr74qKa3szWQy+uMf/6gVK1as88/hzDPPlO/76/TcasXfV7/61X53pAdagrKq2267TQceeKDGjBlT+/kuXbpUhx56qOI41gMPPCAp/dkFQaBzzjmn9lzf9/XZz352SMfZ3t6u5ubmIe07d+5ctba26sQTT+xzTL7va99999X9998/pNdZX3p6epTNZvttrw686OnpkSQdccQR2mabbXTRRRfpjjvu0BtvvKFbb71VX/nKVxQEQW2/gfzjH//Qeeedp/3333/Idy0xPIhbKeJWXxsjblWX6TvndN999+mkk07SOeecozvvvFMrVqzQD3/4w7V+zWpcGizG9Y5bQ42FGF7EqBQxqq+NEaNOOukkjRo1Sqeffrrmzp2r119/XTfccIOuu+46SauPETfffLMmTJig97///QM+vuuuu2ru3Lm688479cUvflGNjY39Wpece+65evHFF3XGGWfo+eef19///nedeuqpWrBgwRrfHxsPMSpFjOprY13/felLX9J2223Xb7juqtbmnGfMmDHac889dfHFF+vOO+/U1Vdfrddff13HH3+8CoVCbb8TTjhBc+bM0amnnqoPf/jD+sY3vqHf/e53WrZsma644or18vmwdohHKeJRX/WWj1q2bJm++tWv6tJLL9WECRMG3a96XtTR0aH77rtPs2fP1uzZs3XvvffKzPSd73xnrd+7+prLli3TXXfdpXPOOUcnnXSS7rvvPo0bN07f/OY31+1DbSB12erkhz/8oXbccUe1tbXpv/7rv/TAAw/0+R/Myy+/LDPTpZdeqksvvXTA11i8eLG23HJLvfLKK/roRz+62vd74403NG3atH5/IXfZZZfa471NmTKlz/fVoFMNKtlsVldddZUuvPBCTZw4Ufvtt5+OOuoonXrqqUPulyOp31TntfHKK6/I8zztuuuu6/T8l156SX/7298G/QtUndL6xhtvaPLkyWpqaurz+E477TSk92lpaan1QBvKMUnSIYccMuhrbUz5fH7APrrVE5nqstpcLqdf//rXOuGEE2q/i9lsVt/5znd0xRVX9PvZVS1cuFBHHnmkRo0aVeuhi/pF3EoRt/ofk7Rh41Y11hx99NF9PtN+++2nqVOn6qGHHlrn1xwsxvVuGzDUWIjhRYxKEaP6H5O0YWPUpEmTdPfdd+uUU07RYYcdVnvd73//+zrttNMGPQ969dVX9fDDD+szn/mMgmDgS5aWlhYdeuihkqRjjjlGN998s4455hg99dRT2mOPPSRJZ599tt566y1997vfrfVL3WefffTFL35xtedh2LiIUSliVP9jkjZsjHrkkUd044036r777ltjX92hnvO0tbXpwAMP1Be+8AVdeOGFtf322WcfHXTQQZozZ06fRN2qZs6cqX333Vf33nvvunwkvEPEoxTxqP8xSfWTj7rkkks0duzYNSb5q3Hpfe97X5/2k1OmTNHMmTPf0bXi1KlTte+++9a2NzU16eijj9bP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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_reconstruction_comparison(model, test_data)" ] }, { "cell_type": "markdown", "id": "8f88d0ee", "metadata": {}, "source": [ "Finally, we can use the model to extract features that capture variation in subcellular protein localization for datasets of arbitrary size without any additional training or Wasserstein computations. We can perform the same analyses with this feature space as we would with the CellAligner-OT localization space including clustering, visualization, etc." ] }, { "cell_type": "code", "execution_count": null, "id": "edaa7b88", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Extracting embeddings for 1670 unique images from PairedDataset...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Extracting embeddings: 100%|██████████| 27/27 [01:18<00:00, 2.92s/it]\n" ] }, { "data": { "text/plain": [ "(1670, 50)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "embeddings = extract_embeddings(model, test_data)\n", "embeddings.shape" ] }, { "cell_type": "code", "execution_count": null, "id": "827f1b72", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/plotly/express/_core.py:1992: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.\n", " sf: grouped.get_group(s if len(s) > 1 else s[0])\n" ] }, { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "%{hovertext}

color=plasma membrane
x=%{x}
y=%{y}", "hovertext": [ "1893_J14_31_5", "1893_J14_31_9", "1893_J14_33_4", "203_B4_1_1", "203_B4_1_7", "204_B4_1_5", "104_D9_1_8", "121_A8_2_4", "127_C11_1_10", "127_C11_2_2", "128_C11_1_4", "128_C11_1_9", "128_C11_2_4", "128_C11_2_5", "129_C11_2_8", "628_F4_1_14", "628_F4_2_5", "628_F4_2_10", "630_F4_1_12", "609_F2_5_8", "143_H4_2_9", "144_H4_1_11", "145_H4_2_6", "175_G2_2_7", "176_G2_1_6", "808_F1_6_5", "821_D4_1_2", "821_D4_2_7", "821_D4_2_15", "855_F1_1_11", "108_B8_1_11", "643_B2_1_12", "643_B2_3_8", "644_B2_1_6", "644_B2_3_2", "644_B2_3_4", "644_B2_3_5", "645_B2_2_4", "645_B2_2_6", "645_B2_2_7", "645_B2_2_9", "645_B2_2_10", "645_B2_2_11", "87_B8_1_13", "87_B8_2_4", "945_B2_1_2", "945_B2_1_4", "945_B2_1_5", "945_D3_1_3", "945_D3_3_4", "946_B2_2_3", "946_B2_2_6", "946_D3_4_4", "953_A2_4_9", "953_A2_5_9", "953_B2_2_7", "634_C6_1_2", "634_C6_1_6", "634_C6_1_11", "635_C6_4_3", "639_C6_3_4", "639_C6_9_5", "639_C6_9_8", "522_F6_4_4", "527_F6_1_7", "529_F6_1_2", "529_F6_2_7", "33_C8_2_7", "34_C8_1_5", "924_A5_2_7", "924_A5_2_8", "924_A5_2_18", "126_G6_2_9", "761_A9_1_6", "769_A9_1_8", "769_A9_2_5", "769_A9_2_14", "192_F11_1_6", "194_F11_1_7", "403_F9_1_14", "403_F9_1_17", "406_F9_2_9", "408_F9_2_6", "408_F9_2_7", "411_E2_2_6", "411_E2_2_9", "415_E2_1_1", "415_E2_1_6", "416_E2_1_7", "416_E2_2_11", "26_E9_2_3", "26_E9_2_4", "27_E9_2_4", "27_E9_2_5", "27_E9_2_7", "28_E9_1_4", "330_F5_2_3", "331_F5_1_2", "331_F5_1_3", "534_A7_1_2", "616_C6_1_3", "616_C6_2_11", "616_C6_2_13", "619_C6_3_6", "619_C6_3_10", "619_C6_3_12" ], "legendgroup": "plasma membrane", "marker": { "color": "#1F77B4", "symbol": "circle" }, "mode": "markers", "name": "plasma membrane", "showlegend": true, "type": "scattergl", "x": [ 11.437403678894043, 0.9753666520118713, 5.412958145141602, 0.7044373750686646, 0.644619882106781, 3.7471165657043457, 4.061347961425781, 3.6586601734161377, 11.79686450958252, 5.832003116607666, 3.871305227279663, 8.839500427246094, 9.447354316711426, 3.0408411026000977, 11.343116760253906, 5.21724796295166, 1.2729097604751587, 9.691274642944336, -1.1111730337142944, 1.4131866693496704, 6.445054531097412, 1.3725026845932007, -1.776132583618164, -2.4633305072784424, 1.8864562511444092, 5.897722244262695, -2.440277099609375, -2.5847575664520264, 4.721423149108887, 2.2710928916931152, -0.6730172038078308, -1.6783615350723267, -2.481581687927246, 0.4589780867099762, 3.0481154918670654, 5.033864498138428, 9.840714454650879, 1.7739332914352417, -2.128037929534912, 3.1001789569854736, 1.602852702140808, 2.958256721496582, 4.912827014923096, -0.8501579165458679, 8.404081344604492, 3.6023354530334473, 2.0455422401428223, 3.0278706550598145, -2.5447676181793213, 2.9879989624023438, 5.803518295288086, 3.060000419616699, -0.9152354598045349, -1.149532675743103, 2.999992847442627, -0.13651371002197266, 1.4880332946777344, 2.567767858505249, -0.7363086938858032, 0.8363190293312073, 3.3264000415802, 6.880521774291992, 5.91978645324707, 9.405186653137207, -1.8751944303512573, -0.35842785239219666, -1.4501771926879883, -1.1379073858261108, -0.2031283974647522, -1.5081257820129395, -1.6545953750610352, 1.8209785223007202, 1.37326979637146, -1.9959094524383545, -1.641442060470581, 1.2992384433746338, -2.4385926723480225, 7.88951301574707, -0.22781488299369812, 9.566537857055664, 0.32222241163253784, 1.1269505023956299, -0.8502129912376404, 3.35174560546875, 10.244566917419434, 1.8939008712768555, 3.230133533477783, 3.6231608390808105, 8.631754875183105, 0.6324849128723145, 8.0845365524292, 1.249221920967102, 4.006199836730957, 0.2157762497663498, -0.09391152113676071, 10.655365943908691, 1.9586269855499268, 8.84089183807373, -0.8341182470321655, 2.0201961994171143, -2.3033456802368164, 3.3454809188842773, 9.393486022949219, -0.4702509939670563, 4.0983662605285645, 9.199991226196289 ], "xaxis": "x", "y": [ 7.936084270477295, 9.704239845275879, 9.141460418701172, 10.250493049621582, 10.151857376098633, 9.1812744140625, 10.091902732849121, 10.03331184387207, 8.355684280395508, 10.822183609008789, 10.873313903808594, 7.967275619506836, 8.068228721618652, 10.985326766967773, 7.822197914123535, 7.809582233428955, 9.267227172851562, 7.858602046966553, 9.878408432006836, 10.777179718017578, 8.023723602294922, 10.406922340393066, 10.146177291870117, 9.866507530212402, 10.324658393859863, 9.35986614227295, 9.886747360229492, 9.872200012207031, 9.926318168640137, 11.072028160095215, 10.521811485290527, 9.934243202209473, 9.8511962890625, 10.352774620056152, 8.713736534118652, 7.866868495941162, 11.119586944580078, 8.64672565460205, 9.831222534179688, 8.546686172485352, 8.909188270568848, 8.339441299438477, 7.897364139556885, 9.708395004272461, 8.057068824768066, 8.93982219696045, 8.533744812011719, 9.264866828918457, 9.82258129119873, 8.92735481262207, 8.466211318969727, 8.489449501037598, 10.478937149047852, 9.831676483154297, 7.913784027099609, 9.86153507232666, 9.814777374267578, 8.598983764648438, 10.406044960021973, 10.563523292541504, 10.901388168334961, 8.758687019348145, 7.985221862792969, 7.465484142303467, 10.177242279052734, 10.123150825500488, 9.815028190612793, 10.274921417236328, 9.921756744384766, 10.005097389221191, 10.114779472351074, 8.876811981201172, 9.927469253540039, 9.839347839355469, 10.184244155883789, 10.469877243041992, 9.827385902404785, 8.090365409851074, 10.330046653747559, 8.025254249572754, 10.313115119934082, 10.115166664123535, 9.337325096130371, 9.881591796875, 7.873258590698242, 8.86505126953125, 8.711174964904785, 10.431783676147461, 7.816223621368408, 9.694914817810059, 8.116555213928223, 10.471688270568848, 8.965024948120117, 10.340896606445312, 10.102538108825684, 7.805060863494873, 10.220816612243652, 8.126763343811035, 10.019498825073242, 10.809520721435547, 9.81965160369873, 10.378925323486328, 8.554923057556152, 9.500971794128418, 10.193597793579102, 7.524752616882324 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=vesicles
x=%{x}
y=%{y}", "hovertext": [ "1894_C2_2_6", "1894_C2_3_6", "1894_C2_3_8", "1894_C2_3_11", "570_F10_1_4", "570_F10_1_9", "100_F5_1_5", "100_F5_1_14", "101_F5_1_12", "101_F5_2_7", "101_F5_2_18", "658_F1_5_1", "659_F1_4_5", "659_F1_6_10", "59_G12_1_3", "59_G12_2_10", "60_G12_1_4", "61_G12_1_11", "61_G12_2_12", "68_G12_1_4", "68_G12_2_2", "68_G12_2_7", "69_G12_1_3", "69_G12_2_3", "69_G12_2_8", "91_G12_2_11", "548_C9_3_9", "548_C9_4_10", "461_F11_2_6", "461_F11_2_8", "462_F11_1_4", "462_F11_1_8", "464_F11_1_8", "464_F11_1_10", "464_F11_1_11", "464_F11_2_3", "464_F11_2_11", "562_D3_3_7", "568_D3_1_10", "568_D3_2_2", "568_D3_2_5", "575_D3_2_10", "837_D1_1_7", "215_C9_2_1", "217_C9_1_5", "217_C9_1_13", "610_B10_1_11", "610_B10_2_13", "617_B10_1_2", "617_B10_2_4", "617_B10_2_9", "180_H3_2_16", "181_H3_2_9", "189_E8_1_1", "189_E8_1_2", "189_E8_1_4", "611_F6_1_4", "618_F6_1_6", "618_F6_3_7", "57_E8_1_14", "57_E8_2_10", "58_E8_1_6", "58_E8_2_10", "1_H3_1_6", "2_H3_1_12", "2_H3_2_3", "2_H3_2_4", "234_G5_1_8", "234_G5_2_2", "234_G5_2_4", "535_G5_1_5", "62_G12_1_6", "62_G12_1_12", "62_G12_2_2", "62_G12_2_4", "62_G12_2_5", "63_G12_2_3", "93_G12_1_2", "93_G12_1_6", "421_F7_3_7", "421_F7_3_14", "421_F7_3_15", "421_F7_4_14", "427_F7_1_12", "282_B11_2_9", "283_B11_1_7", "215_D12_1_5", "216_D12_1_10", "609_A7_8_12", "615_G5_1_10", "615_G5_1_12", "615_G5_2_11", "449_C6_3_21", "449_C6_5_5", "452_C6_3_5", "452_C6_3_7", "452_C6_3_8", "455_C6_3_7", "455_C6_4_4", "20_A6_1_5", "20_A6_1_7", "20_A6_1_10", "20_A6_2_5", "21_A6_1_6", "21_A6_2_6", "22_A6_1_3", "22_A6_2_8", "20_F2_2_10", "21_F2_2_3", "21_F2_2_4", "154_G9_1_3", "154_G9_1_6", "198_F9_2_6", "105_G9_1_11", "107_G9_1_7", "107_G9_2_9", "480_E5_1_7", "510_E5_1_17", "510_E5_1_22", "510_E5_2_9" ], "legendgroup": "vesicles", "marker": { "color": "#FF7F0E", "symbol": "circle" }, "mode": "markers", "name": "vesicles", "showlegend": true, "type": "scattergl", "x": [ 9.285935401916504, 8.188887596130371, -2.1349825859069824, 1.8502135276794434, 3.700629711151123, 5.424103736877441, 3.513672113418579, 6.7465643882751465, 4.378493785858154, -0.7859390377998352, 10.192152976989746, -1.03993558883667, 10.872058868408203, -0.035113196820020676, 6.049213886260986, 1.3545780181884766, 5.305659770965576, 1.8879388570785522, 5.596472263336182, 1.9471548795700073, 11.907737731933594, 9.179183006286621, -1.1680008172988892, 2.7808775901794434, 3.60530948638916, 10.39724349975586, 7.479644775390625, 10.161272048950195, 7.378576278686523, 4.451239585876465, 5.005497455596924, 3.140004873275757, -0.6802276372909546, 0.11550435423851013, 9.235568046569824, 9.834880828857422, 1.7885063886642456, 6.955780506134033, -0.4366675615310669, 7.296996116638184, 7.347056865692139, 3.147331714630127, 8.8035306930542, 9.553465843200684, 1.432139277458191, 11.767281532287598, 6.615468502044678, 9.383200645446777, 6.807214736938477, 0.9641739130020142, 8.051589012145996, -1.6589112281799316, 4.783672332763672, 3.41520357131958, -1.7560995817184448, -0.16280552744865417, 7.946258068084717, 3.0204873085021973, 5.899518013000488, 6.751859188079834, 1.0665112733840942, 7.366313934326172, 0.9462012052536011, 2.8204233646392822, 2.9834346771240234, -1.9932167530059814, 6.607781887054443, 2.2607932090759277, 10.324588775634766, 11.332099914550781, 2.415109395980835, 2.2832024097442627, 2.387169122695923, 6.7409257888793945, 5.995389461517334, 4.461305618286133, 8.65954875946045, 3.7143654823303223, 3.5918898582458496, 5.593886375427246, 6.837454795837402, 5.100203514099121, 1.936654806137085, 3.2464439868927, 5.79866361618042, 10.950220108032227, -0.8656067848205566, 7.19631290435791, 2.841010093688965, -0.5591171383857727, 6.586352825164795, 2.9887638092041016, -0.14628253877162933, 9.166753768920898, 4.695462703704834, 0.8004719614982605, 9.159929275512695, 4.934075355529785, 4.509697914123535, 10.878599166870117, 5.082061290740967, 7.3030290603637695, -0.2727987766265869, 1.6556165218353271, -1.7240053415298462, 2.7053751945495605, 3.8205296993255615, 4.844299793243408, 2.3640060424804688, 9.004129409790039, 2.428449869155884, 0.309872567653656, 3.7069642543792725, 3.058600902557373, 6.140074253082275, 7.282569885253906, 11.224671363830566, 8.972673416137695, -0.39150699973106384, 0.8405913710594177 ], "xaxis": "x", "y": [ 7.289881706237793, 8.7659912109375, 9.7770357131958, 8.270730972290039, 9.527826309204102, 8.027181625366211, 10.424854278564453, 7.803881645202637, 10.145621299743652, 9.74114990234375, 7.690700054168701, 9.220887184143066, 7.420437335968018, 9.686607360839844, 8.78044319152832, 10.188528060913086, 10.924087524414062, 8.53693675994873, 8.495870590209961, 8.49335765838623, 8.478896141052246, 7.377534866333008, 10.36387825012207, 10.6628999710083, 8.468499183654785, 7.4372758865356445, 7.719824314117432, 7.274416446685791, 7.724620819091797, 8.947203636169434, 7.821033477783203, 8.868184089660645, 9.957353591918945, 9.710670471191406, 7.826048851013184, 7.364233016967773, 10.413451194763184, 9.131030082702637, 9.233217239379883, 7.816628456115723, 10.327174186706543, 9.030776023864746, 10.590176582336426, 8.165312767028809, 10.444474220275879, 8.099729537963867, 8.736586570739746, 8.048969268798828, 8.896136283874512, 10.299905776977539, 8.038553237915039, 9.955303192138672, 8.838457107543945, 9.309002876281738, 9.471121788024902, 9.140958786010742, 9.467670440673828, 9.211688995361328, 9.847558975219727, 7.894697189331055, 10.316429138183594, 7.698606491088867, 9.82711124420166, 9.387619972229004, 9.48202896118164, 9.602668762207031, 9.099685668945312, 9.294034004211426, 7.508839130401611, 7.840555191040039, 9.198125839233398, 8.043542861938477, 8.16727066040039, 7.905535697937012, 9.071355819702148, 8.35134220123291, 10.681903839111328, 10.253159523010254, 9.983001708984375, 9.079646110534668, 8.83973503112793, 8.378059387207031, 10.316120147705078, 9.405381202697754, 9.751474380493164, 8.695728302001953, 9.660832405090332, 8.615999221801758, 8.052789688110352, 10.503029823303223, 11.108725547790527, 9.361307144165039, 10.352855682373047, 7.784286975860596, 8.839875221252441, 10.362573623657227, 8.25741958618164, 8.546942710876465, 8.920453071594238, 8.173662185668945, 7.828895568847656, 7.738155364990234, 10.17492389678955, 9.707717895507812, 10.170764923095703, 8.01125717163086, 9.750064849853516, 8.711328506469727, 9.283551216125488, 7.891744613647461, 8.5425443649292, 10.230094909667969, 10.961301803588867, 8.805376052856445, 9.735586166381836, 10.058271408081055, 7.829433441162109, 7.636054992675781, 9.765263557434082, 10.243302345275879 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=peroxisomes
x=%{x}
y=%{y}", "hovertext": [ "376_A2_1_8", "378_A2_1_7", "378_A2_2_9", "378_A2_2_10", "383_A2_1_2", "383_A2_2_1", "383_A2_2_9", "17_H7_2_4", "17_H7_2_7", "18_H7_2_6", "19_H7_2_8", "537_C1_1_7", "540_C1_1_14", "540_C1_1_16", "319_B8_3_3", "319_B8_3_12", "319_H7_1_5", "319_H7_1_9", "319_H7_2_5", "319_H7_2_6", "320_H7_1_8", "340_B8_1_17", "340_B8_2_5", "340_H7_2_3", "221_C12_1_7", "221_C12_1_19", "221_C12_2_9", "221_C12_2_10", "234_G8_2_3", "234_G8_2_7", "234_G8_2_8", "234_H8_1_6", "234_H8_1_8", "234_H8_2_3", "234_H8_2_6", "235_G8_1_12", "235_G8_1_13", "189_G2_1_3", "189_G2_2_9", "190_G2_1_9", "190_G2_2_6", "191_G2_1_3", "191_G2_2_4", "599_G11_1_12", "601_G11_1_5", "601_G11_2_7", "603_G11_1_7", "603_G11_2_12", "616_F1_3_7", "616_F1_4_8", "619_F1_3_10", "239_G8_1_4", "240_G8_1_4", "240_G8_2_12", "241_G8_1_7", "241_G8_2_5", "241_G8_2_12" ], "legendgroup": "peroxisomes", "marker": { "color": "#2CA02C", "symbol": "circle" }, "mode": "markers", "name": "peroxisomes", "showlegend": true, "type": "scattergl", "x": [ 6.472165584564209, 6.869111061096191, 7.188961029052734, 5.055633068084717, 4.901391983032227, 6.13953971862793, 4.824241638183594, 7.997182846069336, 3.030001640319824, -2.524125099182129, 10.038616180419922, 10.060962677001953, -0.9788990616798401, 7.207653999328613, 4.925546169281006, 7.4718828201293945, -0.09779885411262512, 8.963629722595215, -1.4146732091903687, -0.973852276802063, -0.7711370587348938, 1.4009915590286255, -2.228506088256836, 2.2348575592041016, 0.07671178132295609, 0.11310240626335144, 2.6619460582733154, 4.26826286315918, 3.438533067703247, 2.182927131652832, 4.272791385650635, 4.407793045043945, -2.2373194694519043, 10.332476615905762, -0.2822438180446625, 10.175993919372559, 8.974346160888672, 4.766129493713379, 7.3680548667907715, 9.267241477966309, 9.489072799682617, 1.8968555927276611, 7.168770790100098, -0.1053372323513031, 4.911126136779785, 2.3288686275482178, 6.365429401397705, 3.949941635131836, 4.285129547119141, 7.563950538635254, -2.3498873710632324, 5.872560024261475, 5.297318935394287, 11.096592903137207, 6.80879545211792, 2.5467498302459717, 5.174282073974609 ], "xaxis": "x", "y": [ 8.732595443725586, 7.8702898025512695, 9.99589729309082, 10.012714385986328, 9.741880416870117, 10.489699363708496, 8.776191711425781, 7.933918476104736, 9.450212478637695, 9.738481521606445, 7.9263410568237305, 7.82438325881958, 9.68112850189209, 8.965191841125488, 10.045562744140625, 8.392416000366211, 10.033467292785645, 7.905089855194092, 10.093085289001465, 9.654531478881836, 10.514399528503418, 9.307766914367676, 9.947361946105957, 8.702811241149902, 10.144081115722656, 9.988424301147461, 9.030776977539062, 9.965315818786621, 9.975924491882324, 8.980236053466797, 9.639779090881348, 10.104620933532715, 9.934484481811523, 7.43812894821167, 9.33027458190918, 7.191001892089844, 7.391987323760986, 8.47756290435791, 9.2401123046875, 8.046232223510742, 7.262880802154541, 8.487102508544922, 7.812093257904053, 10.635218620300293, 7.869960784912109, 9.690948486328125, 8.399792671203613, 11.35405445098877, 10.388195991516113, 9.872344017028809, 9.909306526184082, 10.12047004699707, 11.057857513427734, 8.65942668914795, 10.089378356933594, 9.019412994384766, 10.62861156463623 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=mitochondria
x=%{x}
y=%{y}", "hovertext": [ "56_E12_1_11", "57_E12_2_5", "58_E12_1_4", "58_E12_2_9", "71_E5_1_3", "71_E5_2_7", "72_E5_1_6", "72_E5_2_7", "73_E5_1_16", "73_E5_2_14", "73_E5_2_16", "567_E5_1_6", "567_E5_1_7", "567_E5_1_8", "567_E5_1_9", "562_C4_1_2", "575_C4_2_5", "575_C4_2_6", "435_H3_1_8", "435_H3_2_13", "445_H3_1_8", "445_H3_2_2", "445_H3_2_12", "448_H3_2_6", "448_H3_2_15", "636_C10_1_8", "636_C10_1_14", "636_C10_2_13", "636_C10_2_15", "637_C10_1_7", "637_C10_1_9", "778_H9_5_7", "380_G5_1_3", "382_G5_1_9", "397_G5_2_12", "188_C11_1_7", "188_C11_1_10", "188_C11_2_8", "189_G4_1_3", "189_G4_2_7", "190_G4_1_5", "190_G4_1_10", "190_G4_2_5", "191_G4_1_1", "284_F11_1_9", "284_F11_2_2", "284_F11_2_6", "284_F11_2_10", "286_F11_2_10", "286_F11_2_16", "563_F8_1_3", "563_F8_1_4", "563_F8_2_1", "563_F8_2_2", "566_F8_2_11", "17_B2_1_9", "17_B2_2_4", "149_B7_1_5", "150_B7_2_6", "151_B7_1_3", "192_B8_1_2", "192_B8_1_6", "193_B8_1_13", "193_B8_2_7", "430_A3_2_6", "432_A3_1_9", "432_A3_3_2", "441_A3_1_3", "570_H4_3_7", "570_H4_3_11", "108_E5_1_2", "108_E5_1_3", "85_E5_1_4", "85_E5_2_3", "85_E5_2_4", "85_E5_2_5", "87_E5_2_8", "222_F11_1_2", "222_F11_1_5", "222_F11_2_6", "222_F11_2_11", "222_F11_2_15", "248_F11_1_4", "270_D12_1_9", "270_D12_1_14", "271_D12_1_16", "271_D12_2_1", "272_D12_1_12", "1912_B11_17_cr5c8627fbe4f4e_3", "1912_B11_17_cr5c8627fbe4f4e_7", "35_H11_1_2", "36_H11_2_10", "37_H11_1_2", "14_A3_2_3", "16_A3_2_9", "43_A1_2_1", "1199_G11_5_7", "1199_G11_5_8", "1199_G11_5_12", "1199_G11_5_13", "146_E8_1_2", "146_E8_2_9", "147_E8_2_3", "74_G1_1_9", "75_G1_1_4", "75_G1_1_6", "75_G1_2_7", "76_G1_1_4", "76_G1_1_11", "76_G1_2_9", "582_B10_1_8", "582_B10_2_5" ], "legendgroup": "mitochondria", "marker": { "color": "#D62728", "symbol": "circle" }, "mode": "markers", "name": "mitochondria", "showlegend": true, "type": "scattergl", "x": [ 8.876245498657227, 2.592487096786499, 6.91989803314209, 7.123671531677246, 4.439266204833984, 4.445375442504883, -2.008667230606079, 10.68436336517334, 4.824851036071777, 7.1045241355896, 2.5305356979370117, 6.350950717926025, -2.0021302700042725, 4.325897216796875, 10.036189079284668, 4.099804878234863, 6.744747161865234, 7.263899326324463, 3.008392095565796, -2.6602959632873535, 0.8147668838500977, 5.470724582672119, 3.329603433609009, 7.558781147003174, 5.122820854187012, 10.487521171569824, 8.172492980957031, 12.123702049255371, 7.198514938354492, 5.918031215667725, 2.890904188156128, 11.37468433380127, 6.347843647003174, 1.974286675453186, 2.551262617111206, 11.069531440734863, 1.3419978618621826, 2.02968430519104, 2.03627610206604, 4.750566482543945, 10.364418983459473, 4.623544692993164, 11.74278450012207, 8.99223804473877, 8.174579620361328, 4.8072710037231445, -0.2908617854118347, 4.289394378662109, 5.733397960662842, 7.214886665344238, 11.099199295043945, -0.12719126045703888, 2.1853928565979004, 2.9407875537872314, 2.308027744293213, 2.604381561279297, -0.9825682044029236, 7.268889904022217, 2.054063320159912, 6.805116653442383, 9.154326438903809, 10.378458976745605, 3.3709988594055176, 2.823060989379883, -0.07893073558807373, 3.6117122173309326, 5.212403774261475, 4.8054585456848145, 2.685934066772461, 1.4873015880584717, 4.126687049865723, 6.108668327331543, -1.5714633464813232, 10.567143440246582, 9.957620620727539, 6.78408145904541, 7.35112190246582, 3.6057562828063965, 11.41600227355957, 3.4389665126800537, 4.265722751617432, 2.6232917308807373, 2.0049502849578857, -0.8300260901451111, 4.765443801879883, 7.496279716491699, 2.9706203937530518, 3.281561851501465, 7.206207752227783, 10.750850677490234, -1.1239618062973022, 11.153931617736816, 6.692214012145996, 4.238689422607422, 4.4721150398254395, 6.815250873565674, 4.306057929992676, 4.341485023498535, 2.4668378829956055, -2.594738721847534, 4.7967119216918945, 2.793553113937378, 5.6059136390686035, 8.938620567321777, 3.874255895614624, 10.577744483947754, 2.7244932651519775, 1.6260573863983154, 6.062060832977295, 7.27086067199707, 4.487593650817871, 4.668821334838867 ], "xaxis": "x", "y": [ 7.506082534790039, 8.167549133300781, 7.8048577308654785, 7.733267307281494, 8.527247428894043, 10.18327522277832, 9.64476203918457, 7.50034236907959, 8.592729568481445, 9.94688892364502, 8.113268852233887, 9.129034996032715, 9.891816139221191, 9.080912590026855, 7.237348556518555, 8.366143226623535, 9.707283973693848, 9.07557201385498, 8.784873008728027, 9.820612907409668, 9.968594551086426, 8.815163612365723, 10.811614990234375, 9.025642395019531, 8.56679916381836, 7.644589424133301, 9.378528594970703, 9.02999210357666, 11.10313606262207, 8.405207633972168, 9.096006393432617, 8.080013275146484, 9.413065910339355, 8.6026611328125, 8.081436157226562, 7.625970363616943, 9.073594093322754, 9.181245803833008, 9.13595962524414, 11.729829788208008, 10.4729642868042, 9.357112884521484, 8.135985374450684, 7.658276081085205, 9.30790901184082, 8.603901863098145, 10.4024658203125, 10.998247146606445, 10.777832984924316, 9.980413436889648, 7.649085521697998, 9.729503631591797, 8.674214363098145, 8.663740158081055, 9.393211364746094, 8.380891799926758, 9.293384552001953, 9.956907272338867, 9.513540267944336, 9.206315994262695, 7.516440391540527, 7.715972423553467, 9.214858055114746, 9.072473526000977, 10.285920143127441, 8.715740203857422, 8.29838752746582, 8.624533653259277, 8.398615837097168, 10.236687660217285, 9.85976791381836, 8.899551391601562, 9.356600761413574, 7.453137397766113, 7.311354637145996, 9.899303436279297, 9.285529136657715, 9.634527206420898, 7.90163516998291, 10.662906646728516, 9.868156433105469, 9.340903282165527, 9.280007362365723, 9.200821876525879, 9.141107559204102, 9.022119522094727, 8.858643531799316, 9.359962463378906, 9.102997779846191, 7.569579601287842, 9.283219337463379, 8.651147842407227, 11.231049537658691, 8.426332473754883, 11.140820503234863, 8.266864776611328, 8.106871604919434, 9.885316848754883, 8.192584991455078, 9.849528312683105, 11.788207054138184, 8.671976089477539, 8.27782154083252, 7.4269561767578125, 8.388533592224121, 7.609335422515869, 9.161142349243164, 9.5056791305542, 9.179010391235352, 9.918281555175781, 9.848281860351562, 11.748169898986816 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=golgi apparatus
x=%{x}
y=%{y}", "hovertext": [ "125_A11_2_5", "126_A11_1_10", "126_A11_1_14", "126_A11_2_8", "924_F5_2_7", "924_F5_2_12", "932_F5_5_4", "932_F5_5_15", "402_G10_5_8", "366_A6_3_1", "366_A6_3_7", "370_A6_1_9", "370_A6_2_5", "370_A6_2_6", "373_A6_2_6", "373_A6_2_7", "460_F7_1_10", "460_F7_2_4", "465_F7_1_5", "465_F7_2_12", "467_F7_1_14", "467_F7_2_5", "221_C7_1_7", "221_C7_1_12", "221_C7_2_7", "221_C7_2_10", "776_F3_1_9", "899_F3_1_12", "502_C6_2_7", "502_C6_2_9", "557_C6_1_7", "557_C6_2_8", "557_C6_2_10", "557_C6_2_12", "183_F8_1_8", "183_F8_2_2", "242_F8_3_8", "242_F8_4_4", "301_G12_2_12", "342_G12_1_5", "342_G12_1_9", "397_D6_3_12", "563_E12_2_4", "563_E12_2_5", "566_E12_4_2", "566_E12_5_2", "566_E12_5_5", "569_E12_1_9", "569_E12_5_2", "563_H2_2_7", "566_H2_2_8", "569_H2_1_5", "569_H2_2_14", "88_C1_1_9", "88_C1_2_6", "88_C1_2_9", "88_C1_2_10", "89_C1_2_7", "89_C1_2_12", "90_C1_1_3", "90_C1_1_9", "1001_F7_1_11", "433_B5_1_2", "433_B5_2_11", "440_B5_1_3", "440_B5_2_9", "973_A8_1_10", "973_A8_2_18", "992_F7_2_19", "295_F7_1_9", "296_F7_2_20", "297_F7_2_5", "377_F10_1_6", "377_F10_2_3", "377_F10_2_12", "379_F10_1_9", "379_F10_2_15", "390_F10_2_5", "551_A9_2_7", "551_A9_2_8", "554_A9_2_3", "560_A9_2_4", "921_A12_1_9", "921_A12_1_12", "931_A12_1_10", "620_A4_1_8", "620_A4_5_5", "620_A4_5_6", "620_A4_5_7", "620_A4_5_9", "623_A4_3_9", "627_A4_1_11", "911_C10_1_7", "912_C10_3_3", "912_C10_3_9", "918_A8_1_10", "918_A8_2_7", "486_F3_1_7", "490_F3_1_3", "490_F3_2_3", "509_F3_1_11", "509_F3_1_22", "509_F3_2_10", "509_F3_2_20", "509_F3_2_22", "509_F3_2_23", "666_E7_1_9", "666_E7_1_15", "666_E7_2_9", "669_E7_1_2", "669_E7_2_7", "671_E7_2_9", "41_G10_1_5", "41_G10_1_7", "41_G10_2_9", "42_G10_1_5", "43_G10_2_4", "43_G10_2_6", "1244_G6_2_7", "1244_G6_3_4", "1244_G6_3_6", "198_H8_1_4", "198_H8_2_11" ], "legendgroup": "golgi apparatus", "marker": { "color": "#9467BD", "symbol": "circle" }, "mode": "markers", "name": "golgi apparatus", "showlegend": true, "type": "scattergl", "x": [ 5.004769325256348, 6.885021209716797, 2.5892746448516846, 4.113199710845947, 1.5546205043792725, 11.063040733337402, 11.625768661499023, 5.366086959838867, -0.6872038245201111, 11.372458457946777, 5.6419572830200195, 9.882997512817383, 10.720466613769531, 6.625646114349365, 6.331587314605713, 0.6520422101020813, 8.500747680664062, 1.4282920360565186, 4.633726596832275, 3.6322455406188965, 0.44843366742134094, 5.692556858062744, 1.8695635795593262, 4.854382514953613, 7.116418838500977, 8.344352722167969, 3.586064338684082, 7.9069743156433105, 4.28118371963501, 7.883293151855469, 6.260671138763428, 7.074736595153809, 6.772404670715332, 11.87542724609375, 9.616998672485352, -0.19140402972698212, 1.8278220891952515, 11.13999080657959, 4.78341817855835, 7.318698883056641, 4.397075176239014, 6.60101842880249, 9.862390518188477, 5.766507148742676, 9.529487609863281, 0.051704928278923035, 1.430942177772522, 9.626619338989258, 4.420607566833496, 7.392518997192383, 6.884763240814209, 2.9589645862579346, -1.6828659772872925, 6.226981163024902, 9.230490684509277, 6.3324151039123535, 4.440446376800537, -0.4694593846797943, 8.809886932373047, 5.745002746582031, 5.855489730834961, 1.5564297437667847, 4.605833053588867, 5.538403034210205, 3.033667802810669, 0.5195502638816833, 1.4377572536468506, 5.498476028442383, 3.7187488079071045, 3.8171751499176025, 9.619446754455566, 4.329771041870117, 4.624619960784912, 7.876868724822998, 11.729756355285645, 6.482407093048096, 4.316767692565918, 5.708987712860107, 11.590185165405273, 7.847529411315918, 3.056454658508301, 10.861926078796387, -0.43476107716560364, 7.443984031677246, 6.187744140625, -2.542734146118164, 5.505887508392334, 12.234068870544434, 9.688319206237793, 4.874911308288574, 6.314250469207764, 4.226566314697266, 1.1826478242874146, 6.0188493728637695, 4.232884883880615, 7.381350517272949, 3.790065050125122, 6.248597621917725, 8.648795127868652, 9.368646621704102, 1.7166513204574585, -1.0323700904846191, 11.690174102783203, 11.734078407287598, 11.297609329223633, 10.098816871643066, 12.624245643615723, 6.4781999588012695, 7.4839186668396, 5.504943370819092, 8.867866516113281, 4.2560505867004395, 6.360586643218994, 2.758881092071533, 9.936935424804688, 9.382822036743164, 2.249675989151001, 10.382281303405762, 6.372960567474365, 5.175435543060303, 6.775574684143066, 8.826420783996582, 5.570595741271973 ], "xaxis": "x", "y": [ 8.863319396972656, 7.86146354675293, 7.949977397918701, 8.081941604614258, 10.633055686950684, 7.616848945617676, 8.072561264038086, 8.551000595092773, 10.400092124938965, 7.775071620941162, 10.486204147338867, 7.589285373687744, 7.468497276306152, 8.710862159729004, 9.796310424804688, 9.28459644317627, 8.510796546936035, 9.847847938537598, 8.648054122924805, 8.568385124206543, 9.685846328735352, 9.293923377990723, 9.446496963500977, 10.384177207946777, 10.308466911315918, 10.655710220336914, 9.149362564086914, 8.168458938598633, 11.16461181640625, 8.206631660461426, 9.159958839416504, 8.489871978759766, 9.709561347961426, 9.708334922790527, 8.345226287841797, 9.957003593444824, 9.456904411315918, 9.155204772949219, 11.763157844543457, 9.850730895996094, 11.077397346496582, 8.231725692749023, 7.4063029289245605, 9.78343391418457, 8.270895004272461, 9.608264923095703, 9.810025215148926, 7.25045919418335, 9.857603073120117, 9.17324161529541, 10.120267868041992, 9.927001953125, 9.926275253295898, 9.27032470703125, 7.254623889923096, 9.363168716430664, 8.60366439819336, 10.406930923461914, 7.659491062164307, 8.587879180908203, 8.58338737487793, 10.284642219543457, 8.81346321105957, 11.273054122924805, 10.824094772338867, 9.56298828125, 9.849698066711426, 9.768850326538086, 11.127902030944824, 11.12601089477539, 8.600180625915527, 10.29735279083252, 9.463370323181152, 8.188559532165527, 8.388129234313965, 8.93686580657959, 9.919442176818848, 9.764117240905762, 8.112099647521973, 8.629714965820312, 9.285490989685059, 8.687845230102539, 10.175190925598145, 7.818667888641357, 9.282398223876953, 9.755931854248047, 9.680213928222656, 9.040457725524902, 8.351082801818848, 11.76307201385498, 9.074119567871094, 8.464370727539062, 9.946414947509766, 9.71793270111084, 10.32390022277832, 8.892991065979004, 10.101558685302734, 10.355133056640625, 9.8796968460083, 7.43780517578125, 9.139591217041016, 10.028444290161133, 8.668807029724121, 8.012223243713379, 8.686506271362305, 7.576552391052246, 8.080733299255371, 8.967719078063965, 9.24197769165039, 9.911789894104004, 7.354523658752441, 10.026108741760254, 9.16253662109375, 7.855747222900391, 7.608037948608398, 7.956940650939941, 8.128968238830566, 10.463541030883789, 10.678622245788574, 8.651168823242188, 10.006348609924316, 7.589323997497559, 8.86194133758545 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=actin filaments
x=%{x}
y=%{y}", "hovertext": [ "624_C6_1_5", "624_C6_1_10", "516_F6_2_3", "516_F6_2_10", "519_F6_7_2", "519_F6_7_5", "519_F6_7_12", "556_F6_1_8", "556_F6_1_9", "556_F6_2_14", "404_E3_5_12", "407_E3_1_3", "407_E3_1_4", "407_E3_1_9", "407_E3_1_10", "410_E3_1_10", "410_E3_4_10", "411_B4_2_4", "411_B4_2_11", "411_B4_2_16", "411_B4_3_5", "415_B4_1_11", "415_B4_2_2", "583_F3_1_2", "583_F3_1_4", "598_F3_2_9", "598_F3_2_12", "598_F3_3_5", "296_E6_2_6", "296_E6_2_7", "32_B6_1_7", "33_B6_1_5", "33_B6_1_9", "33_B6_1_13", "33_B6_2_12", "34_B6_2_5", "34_B6_2_10", "34_B6_2_13", "620_C5_1_11", "620_C5_3_10", "623_C5_4_7", "627_C5_2_8", "627_C5_2_15", "813_B4_3_2", "813_B4_3_3", "475_E2_1_5", "475_E2_1_7", "477_E2_1_5", "477_E2_1_9", "477_E2_2_11", "477_E2_2_13", "479_E2_3_5", "479_E2_3_10", "757_E10_5_12", "757_E10_7_14", "769_E10_2_11", "474_A12_2_8", "474_A12_3_7", "510_A12_2_3", "510_A12_2_7", "510_A12_2_9", "510_A12_2_10", "143_F2_1_3", "143_F2_2_4", "144_F2_1_6", "145_F2_1_6", "145_F2_2_10", "616_F12_1_8", "616_F12_2_7", "616_F12_2_9", "619_F12_1_5", "619_F12_1_10" ], "legendgroup": "actin filaments", "marker": { "color": "#8C564B", "symbol": "circle" }, "mode": "markers", "name": "actin filaments", "showlegend": true, "type": "scattergl", "x": [ -0.051113713532686234, -0.3435332477092743, 5.0222697257995605, 10.331456184387207, 6.394937038421631, 2.817870616912842, 6.886628150939941, 6.957649230957031, 2.257040023803711, -0.20112694799900055, 3.4199514389038086, 9.902653694152832, 10.442671775817871, 11.46597957611084, 10.358049392700195, 0.5125899314880371, 3.6177830696105957, 5.471142768859863, 6.270131587982178, 4.804708480834961, -1.2990058660507202, -1.4311481714248657, 2.7070982456207275, 11.526765823364258, 4.160569667816162, -1.592599868774414, 9.404735565185547, 0.5261075496673584, 10.244186401367188, -0.5476545095443726, 3.653048276901245, 4.7813591957092285, -1.0907959938049316, 3.370614767074585, 0.2707626223564148, 3.567871570587158, 4.9233269691467285, 4.275055885314941, 4.538545608520508, 1.699578881263733, -1.0350489616394043, 2.707329750061035, 3.6574594974517822, 7.553219318389893, 3.2026891708374023, 3.144845724105835, -0.8374470472335815, -1.6496148109436035, 7.4375810623168945, 10.336009979248047, 6.328372001647949, 1.7112127542495728, 2.8879940509796143, 2.018975257873535, 1.6146135330200195, 0.4613816738128662, 2.9811699390411377, 3.550312042236328, 1.972017526626587, 2.6542248725891113, 3.5887928009033203, 3.7342910766601562, 5.1894426345825195, -2.5406365394592285, -2.4606575965881348, 5.385213375091553, 0.23866920173168182, 11.233489990234375, 6.903780460357666, 2.9462454319000244, 9.701461791992188, -2.634294271469116 ], "xaxis": "x", "y": [ 9.81507682800293, 9.916971206665039, 7.769481182098389, 7.403113842010498, 7.979330539703369, 8.073902130126953, 8.694353103637695, 7.574337482452393, 9.50735855102539, 9.38923168182373, 10.940258026123047, 8.17578411102295, 10.377908706665039, 7.956019878387451, 7.511343955993652, 9.587531089782715, 10.204992294311523, 9.024825096130371, 8.610971450805664, 8.763811111450195, 10.375728607177734, 10.2976655960083, 8.055310249328613, 8.047897338867188, 9.942087173461914, 10.263806343078613, 8.48245906829834, 10.113971710205078, 7.828304290771484, 10.216398239135742, 9.249751091003418, 11.78860092163086, 9.16310977935791, 6.163523197174072, 9.789214134216309, 11.069075584411621, 8.012373924255371, 11.216279983520508, 8.99679946899414, 9.368553161621094, 9.406460762023926, 10.845699310302734, 9.456710815429688, 7.714722633361816, 7.865786552429199, 8.907540321350098, 9.552569389343262, 9.521617889404297, 7.75559139251709, 10.441733360290527, 8.429061889648438, 10.12252140045166, 9.314643859863281, 8.633573532104492, 10.829501152038574, 9.371220588684082, 9.279938697814941, 8.476906776428223, 9.33568286895752, 9.337800025939941, 10.44753360748291, 10.901453971862793, 9.791974067687988, 9.830583572387695, 9.857592582702637, 9.046849250793457, 9.854467391967773, 7.663816928863525, 7.989266395568848, 7.98513126373291, 7.636916160583496, 9.900033950805664 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=microtubules
x=%{x}
y=%{y}", "hovertext": [ "795_C9_7_5", "795_C9_8_8", "799_C9_1_5", "394_A7_1_2", "395_A7_2_6", "399_A7_1_8", "399_A7_2_6", "411_G5_1_5", "411_G5_1_7", "415_G5_1_5", "415_G5_2_7", "416_G5_1_6", "416_G5_2_4", "416_G5_2_5", "497_B1_1_12", "497_B1_1_23", "507_B1_1_14", "918_B3_2_6", "966_G6_1_6", "197_B5_1_6", "197_B5_1_11", "197_B5_1_12", "197_B5_2_2", "151_F10_1_1", "151_F10_1_5", "151_F10_2_8", "366_A7_1_5", "366_A7_2_1", "373_A7_2_10", "652_D10_1_4", "187_G7_1_3", "187_G7_2_6", "188_G7_3_5", "563_C12_1_4", "569_C12_2_13", "569_C12_2_15", "413_B2_1_7", "413_B2_1_11", "417_B2_1_9", "481_B4_1_6", "481_B4_1_10", "487_B4_3_6", "487_B4_3_7", "491_B4_2_10", "189_C11_2_6", "191_C11_1_11", "191_C11_2_6", "563_B12_1_4", "563_B12_2_7", "569_B12_1_9", "661_G2_1_3", "661_G2_1_4", "662_G2_1_8", "662_G2_2_1", "662_G2_2_9", "662_G2_2_13", "670_G2_1_7", "670_G2_2_6", "822_B12_1_6", "822_B12_2_6", "831_G9_1_8", "831_G9_1_11", "621_C12_3_6", "673_E1_1_4", "673_E1_2_6", "673_E1_2_8", "218_D9_2_9", "218_D9_2_15", "219_D9_2_6", "220_D9_1_4", "418_A11_2_8", "418_A11_2_19", "424_A11_1_7", "424_A11_2_8", "429_A11_2_6", "263_E5_1_4", "263_E5_2_8", "263_E5_2_9", "263_E5_2_10", "263_E5_2_11", "263_E5_2_15", "263_E5_2_16", "264_E5_2_7", "277_E5_2_6" ], "legendgroup": "microtubules", "marker": { "color": "#E377C2", "symbol": "circle" }, "mode": "markers", "name": "microtubules", "showlegend": true, "type": "scattergl", "x": [ 7.80588960647583, 6.711369037628174, 3.0636415481567383, 8.039419174194336, 10.275031089782715, 1.7174198627471924, -2.495785713195801, 1.2521352767944336, 4.156789302825928, -0.7419219613075256, -1.105910301208496, 3.770939350128174, -2.4856207370758057, -0.1851118505001068, 8.998716354370117, 0.8127406239509583, 7.721927165985107, -0.3615245223045349, 0.8290137648582458, 1.560547113418579, 10.060449600219727, -0.8983007669448853, 6.435068130493164, 1.5114468336105347, 11.305437088012695, 5.688301086425781, 5.018712520599365, 2.4154443740844727, 5.449938774108887, 0.8927267789840698, 1.626383900642395, 5.597720623016357, 10.51032829284668, -2.1094210147857666, 5.577792167663574, 5.256476402282715, -1.804337501525879, 0.6922854781150818, 9.164814949035645, 11.05317211151123, 6.645759105682373, 8.212655067443848, -1.4229531288146973, -1.0687475204467773, -1.5924274921417236, 5.634369373321533, 5.787140369415283, -1.2577248811721802, -1.5316545963287354, 3.5333383083343506, 7.958313941955566, 9.822720527648926, 5.768285751342773, -0.8591622710227966, 0.006367618218064308, 5.70219612121582, -2.6235251426696777, 2.086392641067505, 1.7709888219833374, -0.038378093391656876, 1.3616269826889038, 6.923687934875488, 2.138993501663208, 3.0413897037506104, 7.885809898376465, 2.8308277130126953, 4.6334710121154785, -2.582110643386841, 1.847437858581543, 0.15101473033428192, 3.7457406520843506, 7.389935493469238, 10.797651290893555, 0.9668118953704834, 1.8321282863616943, 9.939204216003418, 8.821638107299805, -0.3046288788318634, 3.349409818649292, 12.05246639251709, 11.354207992553711, 7.225831508636475, -0.5577960014343262, 0.20251964032649994 ], "xaxis": "x", "y": [ 8.039447784423828, 9.260540008544922, 10.784685134887695, 7.981029033660889, 7.587905406951904, 10.654318809509277, 9.903830528259277, 10.032915115356445, 9.05367660522461, 9.401101112365723, 9.454922676086426, 9.183558464050293, 9.836512565612793, 10.353898048400879, 7.515796184539795, 10.0004301071167, 8.174359321594238, 9.273420333862305, 9.66981029510498, 9.865777969360352, 7.302517890930176, 9.935626029968262, 8.056742668151855, 10.334508895874023, 7.783709526062012, 8.334988594055176, 7.997478485107422, 9.292506217956543, 10.96531867980957, 9.964659690856934, 8.976839065551758, 8.707195281982422, 7.954761505126953, 9.555830955505371, 8.694043159484863, 7.832960605621338, 10.227999687194824, 9.879170417785645, 7.394522666931152, 8.289298057556152, 8.9433012008667, 7.913244247436523, 10.034280776977539, 9.14828109741211, 10.332475662231445, 8.790081977844238, 10.717884063720703, 9.540560722351074, 10.03397274017334, 8.463295936584473, 8.097739219665527, 8.479972839355469, 8.200474739074707, 10.313556671142578, 9.981703758239746, 8.435460090637207, 9.853832244873047, 9.411123275756836, 8.847495079040527, 9.300243377685547, 10.532662391662598, 7.772002696990967, 9.324620246887207, 9.270539283752441, 8.119784355163574, 8.910429000854492, 8.99204158782959, 9.860812187194824, 8.855253219604492, 10.294961929321289, 8.594392776489258, 7.754316329956055, 7.370981693267822, 10.115278244018555, 8.85879898071289, 7.734009742736816, 8.173809051513672, 9.424324035644531, 9.195332527160645, 7.453793048858643, 7.80363655090332, 7.695418357849121, 10.511618614196777, 9.5834379196167 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=cytosol
x=%{x}
y=%{y}", "hovertext": [ "104_F7_1_4", "35_G12_2_4", "35_G12_2_6", "36_G12_1_2", "36_G12_1_4", "36_G12_1_6", "37_G12_2_1", "821_B5_1_3", "323_B9_1_2", "323_B9_1_12", "323_B9_1_16", "323_B9_2_2", "326_B9_1_8", "404_A2_1_12", "404_A2_2_9", "404_A2_2_17", "407_A2_2_5", "410_A2_1_5", "410_A2_2_8", "410_A2_2_13", "68_F1_1_5", "68_F1_1_12", "68_F1_2_2", "68_F1_2_8", "69_F1_2_5", "69_F1_2_7", "69_F1_2_9", "505_H6_1_5", "505_H6_2_14", "508_H6_1_7", "508_H6_2_3", "508_H6_2_13", "508_H6_2_20", "754_E6_3_8", "754_E6_3_11", "754_E6_4_14", "813_E6_1_3", "534_B3_1_5", "534_B3_2_4", "552_B3_1_5", "295_E11_2_4", "295_E11_2_6", "295_E11_2_7", "297_E11_1_6", "10_G10_2_6", "10_G10_2_9", "10_G10_2_11", "10_G10_2_15", "10_G10_2_16", "11_G10_1_8", "15_G10_1_7", "79_F2_1_2", "79_F2_1_7", "80_F2_1_6", "80_F2_1_7", "81_F2_2_15", "629_E12_1_5", "629_E12_1_8", "631_E12_1_14", "631_E12_2_11", "181_F10_1_4", "181_F10_2_6", "182_F10_1_8", "573_H11_4_7", "589_H11_3_3", "589_H11_3_4", "589_H11_3_10", "709_H11_1_7", "709_H11_1_8", "709_H11_1_13", "709_H11_2_12", "59_C7_1_9", "59_C7_1_14", "60_C7_1_1", "60_C7_1_4", "60_C7_2_8", "61_C7_1_10", "504_H6_2_5", "555_H6_1_5", "555_H6_2_8", "976_H6_2_3", "976_H6_2_16", "1200_E11_3_9", "1200_E11_4_17", "131_D9_1_5", "131_D9_2_8", "132_D9_1_9", "132_D9_1_11", "132_D9_2_4", "164_D9_1_3", "164_D9_1_9", "164_D9_2_3", "164_D9_2_7", "1773_E11_7_8", "6_A9_1_6", "6_A9_1_7", "6_A9_2_6", "6_A9_2_7", "754_B4_1_13", "758_B4_2_5", "758_B4_3_3", "490_F5_1_5", "490_F5_2_5", "509_F5_2_23", "913_G7_1_8", "914_G7_4_3", "914_G7_4_5", "919_G7_2_8", "319_G1_2_7", "340_G1_2_6", "340_G1_2_21", "340_G1_2_23", "281_C8_1_9", "281_C8_2_7", "281_C8_2_12", "282_C8_2_2", "282_C8_2_3", "282_C8_2_5", "282_C8_2_6", "283_C8_1_11", "283_C8_1_13", "283_C8_2_12", "508_C1_1_11", "508_C1_1_12", "548_C1_2_4", "611_C11_1_17", "611_C11_2_14", "614_C11_2_20", "618_C11_2_5", "94_A12_1_6", "94_A12_2_10", "539_A7_2_3", "539_A7_3_7", "552_A7_1_6", "652_C9_2_2", "652_C9_2_9", "656_C9_3_6", "5_H11_1_4", "6_H11_1_11", "1009_E3_2_9", "1029_E3_2_3", "428_B6_3_1", "428_B6_4_6", "440_B6_1_10", "440_B6_4_6", "860_B7_1_5", "860_B7_1_6", "860_B7_2_7", "995_E3_2_11", "995_E3_2_24", "239_G1_1_8", "239_G1_1_17", "239_G1_2_5", "239_G1_2_13", "239_G1_2_19", "240_G1_1_10", "240_G1_2_7", "240_G1_2_9", "241_G1_2_10" ], "legendgroup": "cytosol", "marker": { "color": "#7F7F7F", "symbol": "circle" }, "mode": "markers", "name": "cytosol", "showlegend": true, "type": "scattergl", "x": [ -1.8024123907089233, 4.451461315155029, 5.554102420806885, 11.124267578125, 2.312922239303589, 9.652252197265625, 8.778571128845215, -1.3600499629974365, -1.335456371307373, 7.443792343139648, 1.9072165489196777, 10.143373489379883, 4.074429988861084, 8.308758735656738, 7.55338191986084, 7.164207935333252, 2.3305938243865967, -0.2691679298877716, 8.665098190307617, 6.522381782531738, 4.726909637451172, 2.7915217876434326, 3.274899482727051, 2.1014389991760254, 4.981446743011475, -2.4730026721954346, 1.7339131832122803, -1.66078519821167, 7.188760280609131, 1.2140663862228394, -2.3221852779388428, -0.1465684473514557, -0.3740013539791107, 7.736973762512207, 2.4519684314727783, 1.2494360208511353, 9.15802001953125, 1.690032720565796, 3.997241973876953, 5.305149078369141, 6.423083305358887, 4.941730976104736, 7.329478740692139, 3.461712598800659, 1.5590189695358276, 7.282429218292236, 1.2699123620986938, 2.5298080444335938, 8.143815040588379, -1.0032477378845215, 7.395720481872559, 9.118342399597168, -0.5033261179924011, -1.0939444303512573, 0.03565198928117752, 5.048367500305176, 2.3554723262786865, 3.184877395629883, 5.083219051361084, -0.01192645262926817, -0.12788037955760956, 7.478898048400879, 7.11168909072876, 9.43112850189209, 11.134060859680176, 1.9467740058898926, 7.546279430389404, -0.7457696795463562, 10.568892478942871, 1.8510558605194092, 2.1384620666503906, 2.517458438873291, -1.1648414134979248, 3.5587780475616455, 0.26146408915519714, 6.409632682800293, 5.85659122467041, 5.66884708404541, 0.31512686610221863, 8.53899097442627, 3.980095148086548, -0.07047638297080994, 5.692490100860596, 4.172157287597656, 2.26041316986084, 4.655416488647461, -2.3866090774536133, 3.265900135040283, -1.5875344276428223, -0.7942299246788025, 2.0432045459747314, 0.011703758500516415, 3.5113565921783447, 6.293914794921875, 4.408410549163818, -0.016115786507725716, 9.830148696899414, 4.0782318115234375, 7.72549295425415, 5.093253135681152, -0.5087053775787354, 10.188730239868164, 1.7562775611877441, -1.635428547859192, -0.6363064646720886, 3.0202219486236572, -1.240703821182251, -0.6934219002723694, 6.327619552612305, 9.955622673034668, 10.300748825073242, 4.115579128265381, 0.18165627121925354, 9.022111892700195, 0.512808084487915, -1.069522500038147, 9.822710037231445, 9.360747337341309, -1.7606308460235596, 9.766042709350586, 5.599393844604492, 3.471282720565796, 4.556669235229492, 7.49871826171875, 1.1108161211013794, -1.0210896730422974, 9.338658332824707, -0.7244977355003357, 2.578871011734009, 6.5443315505981445, 9.93696403503418, 5.633239269256592, -1.6291919946670532, -0.6725142002105713, 3.088209629058838, 1.9178423881530762, 10.648760795593262, 7.567183017730713, 10.699491500854492, 3.3385825157165527, 8.862885475158691, 2.711973190307617, 11.85015869140625, 10.408352851867676, 3.616262197494507, 3.915334463119507, -0.980894923210144, 4.928647994995117, 1.9619731903076172, 1.696612000465393, -0.9016175866127014, 7.414289474487305, -1.8858392238616943, 8.331531524658203, -0.9031376242637634, -2.42097806930542, -0.9828623533248901, -2.3421082496643066, 0.672944188117981 ], "xaxis": "x", "y": [ 9.508915901184082, 7.902645587921143, 10.984152793884277, 7.662893772125244, 9.096430778503418, 7.916247844696045, 7.939950466156006, 10.073538780212402, 10.177257537841797, 8.784046173095703, 8.846030235290527, 7.914827346801758, 11.092183113098145, 9.417011260986328, 9.625894546508789, 9.074568748474121, 9.73112678527832, 9.924982070922852, 7.679642200469971, 10.327933311462402, 8.115706443786621, 9.40397834777832, 9.416913986206055, 9.194377899169922, 11.761091232299805, 9.738021850585938, 8.467219352722168, 9.81246566772461, 8.496408462524414, 9.844138145446777, 9.848121643066406, 10.209026336669922, 9.3840913772583, 9.333038330078125, 9.48116683959961, 10.494721412658691, 7.450821876525879, 9.49586296081543, 8.636772155761719, 7.847829818725586, 10.700910568237305, 8.995564460754395, 9.524800300598145, 9.816413879394531, 10.501399040222168, 9.948592185974121, 9.970736503601074, 8.428391456604004, 7.978897571563721, 9.61203384399414, 9.619368553161621, 7.386185169219971, 9.352662086486816, 9.61865520477295, 9.582316398620605, 9.416678428649902, 9.830875396728516, 8.745105743408203, 7.925664901733398, 10.079793930053711, 9.35986042022705, 7.807250022888184, 8.791913032531738, 7.810709476470947, 7.69212007522583, 8.758685111999512, 8.3303804397583, 9.68980884552002, 7.593451499938965, 8.886625289916992, 8.855127334594727, 10.856640815734863, 10.006922721862793, 10.9592866897583, 10.080716133117676, 8.816914558410645, 10.742476463317871, 8.547178268432617, 9.606854438781738, 7.809178352355957, 10.122838973999023, 9.368858337402344, 9.66519546508789, 10.30241870880127, 9.3541259765625, 8.136218070983887, 9.861291885375977, 9.433431625366211, 9.621241569519043, 9.373429298400879, 8.982512474060059, 10.287497520446777, 8.531920433044434, 8.652302742004395, 8.87519645690918, 10.56347370147705, 8.32929801940918, 9.905038833618164, 10.039565086364746, 8.002765655517578, 10.562239646911621, 7.581142425537109, 10.74317455291748, 9.51015853881836, 10.489933013916016, 9.32044506072998, 10.011491775512695, 9.157191276550293, 8.183904647827148, 7.242562294006348, 7.733373641967773, 8.5224027633667, 10.235504150390625, 7.446998119354248, 10.679693222045898, 9.214256286621094, 7.520055770874023, 7.5556817054748535, 10.068808555603027, 7.999142646789551, 11.597563743591309, 10.469236373901367, 10.057270050048828, 8.30539321899414, 9.91469955444336, 10.271504402160645, 7.880212783813477, 10.508559226989746, 9.366129875183105, 8.63044548034668, 7.803362846374512, 8.87388801574707, 10.04879093170166, 9.552556991577148, 8.902053833007812, 8.737015724182129, 7.309913158416748, 8.248804092407227, 7.430069446563721, 9.314717292785645, 7.793577671051025, 9.476190567016602, 8.18304443359375, 8.63797664642334, 9.045339584350586, 9.562917709350586, 9.277194023132324, 10.182193756103516, 10.856216430664062, 9.054398536682129, 10.06442928314209, 8.481124877929688, 9.903305053710938, 7.830940246582031, 9.743711471557617, 9.894811630249023, 9.841387748718262, 9.921014785766602, 9.168588638305664 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=nuclear speckles
x=%{x}
y=%{y}", "hovertext": [ "605_F9_1_10", "605_F9_2_10", "606_F9_2_14", "490_H3_1_2", "490_H3_1_5", "490_H3_2_4", "509_H3_3_6", "509_H3_3_9", "776_C1_2_3", "776_C1_2_8", "776_C1_2_13", "789_C1_8_14", "899_C1_1_12", "899_C1_3_9", "1245_G5_2_3", "1245_G5_2_6", "620_B1_4_4", "623_B1_1_9", "623_B1_1_15", "440_C6_2_4", "440_C6_2_5", "440_C6_3_12", "975_B10_1_3", "976_B10_1_6", "976_B10_2_11", "980_B10_1_7", "980_B10_1_13", "592_B5_1_1", "592_B5_1_4", "592_B5_2_5", "592_B5_2_10", "791_G11_2_4", "791_G11_2_8", "794_G11_2_8", "798_G11_1_11", "798_G11_2_9", "798_G11_2_12", "1015_E12_1_10", "7_C7_2_2", "8_C7_1_5", "8_C7_1_9", "791_F11_10_13", "791_F11_4_8", "798_F11_1_8", "798_F11_1_12", "798_F11_1_13", "23_E7_2_5", "24_E7_1_3", "24_E7_2_2", "25_E7_1_5", "231_G5_1_7", "231_G5_1_9", "231_G5_1_11", "523_E4_1_3", "523_E4_1_4", "523_E4_1_10", "523_E4_2_6", "371_A2_1_11", "372_A2_1_5", "372_A2_2_1", "374_A2_2_3", "975_D6_1_5", "976_D6_3_5", "976_D6_4_6", "980_D6_1_9", "980_D6_2_1", "980_D6_2_8", "522_C1_1_3", "522_C1_2_7", "529_C1_1_17", "529_C1_2_5", "563_E1_1_3", "563_E1_1_6", "563_E1_2_2", "566_E1_2_9", "569_E1_3_13", "565_F1_1_12", "570_F1_1_3", "570_F1_1_8", "584_F1_1_6", "584_F1_1_11", "7_F4_1_5", "7_F4_2_5", "7_F4_2_11", "8_F4_2_4", "9_F4_2_5", "9_F4_2_9", "1158_G12_2_8", "924_F4_2_9", "924_F4_2_25", "932_F4_2_9", "94_E2_1_4", "94_E2_2_5", "95_E2_1_9", "96_E2_1_8", "971_F4_2_7", "526_E7_1_3", "526_E7_1_5", "526_E7_2_15", "528_E7_1_7", "528_E7_1_8", "528_E7_1_11", "528_E7_2_4", "528_E7_2_8", "545_E7_1_3", "545_E7_2_9", "545_E7_2_19", "564_A9_2_2", "572_A9_1_3", "572_A9_1_7" ], "legendgroup": "nuclear speckles", "marker": { "color": "#BCBD22", "symbol": "circle" }, "mode": "markers", "name": "nuclear speckles", "showlegend": true, "type": "scattergl", "x": [ 12.07348918914795, 12.258650779724121, 5.731505393981934, 11.482514381408691, -0.4047311544418335, 8.722942352294922, 11.792634963989258, 12.00670051574707, 11.891463279724121, 7.324677467346191, -0.26100438833236694, 9.842408180236816, 9.540069580078125, 7.439480781555176, 11.802841186523438, 10.884795188903809, 9.331859588623047, -0.7661015391349792, 9.321563720703125, 10.946555137634277, 9.75358772277832, 7.663273811340332, 10.749035835266113, 11.914824485778809, 9.485074043273926, 7.325840950012207, 7.576280117034912, 1.9041752815246582, 7.144676685333252, 11.047569274902344, 12.152562141418457, 5.284160137176514, 10.854405403137207, 10.60406494140625, 11.122819900512695, 11.83301067352295, 10.956655502319336, 2.8143234252929688, 12.126448631286621, 6.283559322357178, 5.098883152008057, 5.083515644073486, 8.83227252960205, 10.928166389465332, 12.049291610717773, 2.70245099067688, 4.199507236480713, 3.893756866455078, 11.941826820373535, 0.24276675283908844, 11.917436599731445, 9.356618881225586, 11.67520523071289, 1.6802159547805786, 8.932186126708984, 1.6010422706604004, 9.514856338500977, 11.564970016479492, 9.404121398925781, 9.225342750549316, 8.868645668029785, -0.498170405626297, 3.154674768447876, 1.7926476001739502, 10.85551929473877, 6.625469207763672, 7.4571332931518555, 8.604262351989746, 3.74592924118042, 12.127912521362305, 4.903397560119629, 1.3218611478805542, 11.832420349121094, 10.96159839630127, 8.82496452331543, 10.649346351623535, 12.113605499267578, 11.590597152709961, 12.00750732421875, 12.004422187805176, 10.856193542480469, 5.20032262802124, 10.226353645324707, 8.34816837310791, 6.356680393218994, 6.742821216583252, 6.329071044921875, 9.521099090576172, 9.4801025390625, 6.0064616203308105, 10.664175987243652, 9.47519302368164, 10.751021385192871, 10.567959785461426, 10.875974655151367, 7.4667067527771, 9.643583297729492, 9.277566909790039, -1.1593974828720093, 11.534015655517578, 10.973685264587402, 10.952529907226562, 10.227410316467285, 10.63571834564209, 10.072620391845703, 10.689868927001953, 5.539884567260742, 4.346114635467529, 6.169941425323486, 5.638885021209717 ], "xaxis": "x", "y": [ 9.769668579101562, 9.302553176879883, 11.489947319030762, 9.579075813293457, 10.426056861877441, 11.285606384277344, 8.690122604370117, 9.511303901672363, 9.577609062194824, 10.701563835144043, 9.75223445892334, 11.241864204406738, 10.975647926330566, 11.429719924926758, 9.515569686889648, 10.873017311096191, 10.307027816772461, 9.24410629272461, 10.37912368774414, 11.170185089111328, 11.38102912902832, 11.376238822937012, 11.208006858825684, 9.822360038757324, 11.449458122253418, 11.220849990844727, 10.937773704528809, 9.854731559753418, 11.295073509216309, 8.746092796325684, 9.31459903717041, 11.70824909210205, 11.041420936584473, 11.055721282958984, 11.002989768981934, 10.194511413574219, 11.071070671081543, 10.801637649536133, 9.535472869873047, 10.848339080810547, 11.685586929321289, 11.695258140563965, 11.247696876525879, 10.99527645111084, 9.752099990844727, 11.140605926513672, 11.385055541992188, 11.434615135192871, 9.440120697021484, 10.191890716552734, 9.66280746459961, 8.113954544067383, 9.159473419189453, 10.145263671875, 10.391977310180664, 10.403448104858398, 8.612196922302246, 9.016134262084961, 11.216992378234863, 10.394493103027344, 11.307125091552734, 10.34500789642334, 10.802389144897461, 10.751440048217773, 8.679640769958496, 11.542872428894043, 10.87038803100586, 10.691458702087402, 10.96208667755127, 9.47337818145752, 10.784551620483398, 10.255051612854004, 9.84312629699707, 10.83326530456543, 11.327277183532715, 11.2515869140625, 9.943229675292969, 10.346728324890137, 10.032685279846191, 10.061532020568848, 11.170510292053223, 10.332603454589844, 9.043111801147461, 11.377455711364746, 10.69517993927002, 10.952410697937012, 10.835789680480957, 11.396109580993652, 10.942700386047363, 9.125511169433594, 11.207005500793457, 10.477555274963379, 11.116769790649414, 11.082820892333984, 11.20341968536377, 11.516622543334961, 11.361526489257812, 11.3812255859375, 10.499716758728027, 9.898343086242676, 11.00788688659668, 11.18524169921875, 11.371463775634766, 11.24754524230957, 11.343498229980469, 11.220648765563965, 11.60568904876709, 11.475564002990723, 11.500349044799805, 11.641995429992676 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=nucleoplasm
x=%{x}
y=%{y}", "hovertext": [ "608_F9_2_6", "975_H1_1_6", "975_H1_1_8", "975_H1_2_6", "976_H1_1_12", "976_H1_1_18", "976_H1_1_22", "976_H1_4_8", "980_H1_1_18", "980_H1_2_10", "486_H3_1_8", "486_H3_2_6", "542_A5_1_4", "542_A5_2_7", "544_A5_2_23", "571_A5_1_4", "221_H4_1_5", "221_H4_1_7", "221_H4_2_10", "222_H4_1_5", "222_H4_2_6", "222_H4_2_12", "222_H4_2_14", "248_H4_1_3", "248_H4_1_5", "248_H4_1_6", "248_H4_1_10", "554_C2_2_13", "554_C2_2_16", "560_C2_4_5", "2_B4_2_4", "402_E5_1_3", "402_E5_2_4", "402_E5_2_6", "405_E5_3_12", "405_E5_3_18", "409_E5_1_10", "474_C8_1_5", "474_C8_2_7", "510_C8_1_13", "728_H2_1_3", "728_H2_1_13", "319_C6_2_3", "319_C6_2_7", "319_C6_2_9", "319_C6_2_12", "894_B7_1_1", "907_B7_1_8", "907_B7_1_12", "944_D6_1_11", "952_D6_2_6", "177_D8_1_12", "827_A4_1_7", "827_A4_1_8", "827_A4_2_8", "827_A4_2_14", "827_A4_2_17", "829_A4_2_7", "411_D8_1_3", "411_D8_2_4", "415_D8_1_10", "415_D8_2_9", "416_D8_2_3", "416_D8_2_6", "416_D8_2_7", "416_D8_2_9", "416_D8_2_12", "955_E9_1_11", "972_E9_1_8", "972_E9_2_4", "972_E9_2_10", "301_D8_2_9", "342_D8_1_5", "946_A6_3_2", "564_H9_2_11", "572_H9_1_8", "572_H9_2_8", "587_H9_2_7", "587_H9_2_10", "831_C7_2_7", "944_G9_1_11", "626_C5_2_2", "632_C5_3_6", "632_C5_3_15", "633_C5_1_11", "633_C5_2_5", "633_C5_2_9", "920_G8_1_12", "920_G8_1_14", "920_G8_2_14", "920_G8_2_15", "941_G9_1_2", "941_G9_1_10", "620_G12_1_11", "620_G12_2_4", "623_G12_2_3", "623_G12_2_7", "627_G12_1_9", "627_G12_1_11", "627_G12_2_12", "230_G5_2_20", "520_E4_1_8", "255_H11_1_2", "255_H11_2_5", "256_H11_2_6", "256_H11_2_19", "154_F9_1_4", "263_H6_1_4", "263_H6_2_4", "263_H6_2_6", "264_H6_2_10", "264_H6_2_13", "277_H6_2_4", "277_H6_2_5", "911_C9_1_8", "911_C9_2_3", "912_C9_1_4", "912_C9_2_4", "912_C9_2_9", "918_D7_3_11", "918_D7_3_17", "951_A2_1_6", "951_A2_1_11", "951_A2_1_13", "975_D4_1_5", "975_D4_2_8", "976_D4_1_4", "976_D4_1_11", "976_D4_1_13", "976_D4_2_3", "976_D4_2_4", "976_D4_2_9", "976_D4_2_10", "980_D4_1_12", "980_D4_2_21", "809_H5_1_5", "809_H5_1_8", "809_H5_2_11", "819_H5_2_3", "258_D6_1_5", "258_D6_1_10", "259_D6_1_9", "259_D6_2_4", "259_D6_2_7", "259_D6_2_11", "260_D6_1_11", "260_D6_2_10", "507_B9_2_2", "511_B9_1_9", "511_B9_1_11", "511_B9_1_12", "236_C4_1_6", "237_C4_1_3", "237_C4_1_4", "237_C4_2_8", "268_C4_2_9", "62_A1_2_5", "62_A1_2_11", "62_A1_2_13", "62_A1_2_17", "93_A1_2_4" ], "legendgroup": "nucleoplasm", "marker": { "color": "#17BECF", "symbol": "circle" }, "mode": "markers", "name": "nucleoplasm", "showlegend": true, "type": "scattergl", "x": [ 10.984966278076172, 8.073525428771973, 10.601151466369629, 7.441102027893066, 5.127652645111084, 1.7473933696746826, -0.3599754571914673, 2.770860433578491, 10.6112060546875, 7.019987106323242, 4.1411356925964355, 10.363632202148438, 7.926427841186523, 10.362897872924805, 1.7487398386001587, 9.156259536743164, 2.8661158084869385, 10.490422248840332, 9.221872329711914, 7.106359481811523, 6.777750015258789, 10.659823417663574, 8.821587562561035, 8.808148384094238, 10.443461418151855, 10.686222076416016, 9.075057983398438, 4.259021759033203, 3.6375386714935303, 10.493456840515137, 6.2044758796691895, 8.656903266906738, 4.7217116355896, 7.67918062210083, 7.271231651306152, 9.142016410827637, 3.1148581504821777, 5.6097025871276855, 5.91672420501709, 6.149641990661621, 4.915364742279053, 0.4376066327095032, 5.251420021057129, 6.46743106842041, 10.588942527770996, 10.904836654663086, 5.269296646118164, 4.432221412658691, 8.492021560668945, 10.849034309387207, 2.8038315773010254, 4.524566173553467, 11.405352592468262, 9.099053382873535, 11.424493789672852, 12.02547550201416, 12.230738639831543, 9.371925354003906, 2.8917253017425537, 7.417837142944336, 4.254062652587891, 5.941372394561768, 5.88485050201416, 5.095426082611084, 5.703062057495117, 1.451463222503662, 7.356603145599365, 4.550978183746338, 7.418269157409668, 7.437565326690674, 11.752007484436035, 2.5107789039611816, 4.509511470794678, 9.183511734008789, 11.952510833740234, 7.260678768157959, 9.278373718261719, 8.166519165039062, 3.053792953491211, 6.220591068267822, 3.86327862739563, 6.192848205566406, 11.386683464050293, 12.031464576721191, 9.562540054321289, 7.172672271728516, 11.945749282836914, 7.068431854248047, 1.260867953300476, 6.767836093902588, 6.531129837036133, 7.12057638168335, 5.975885391235352, 10.798945426940918, 9.558353424072266, 9.203119277954102, 9.257644653320312, 8.00302791595459, 7.102749824523926, 12.256002426147461, 8.157100677490234, 9.13269329071045, 8.34151840209961, 6.952149391174316, 10.846931457519531, -1.1770893335342407, 3.4477133750915527, 6.76606559753418, 11.070500373840332, 10.420467376708984, 9.36457633972168, 10.93181324005127, 11.962579727172852, 7.544419765472412, 9.255876541137695, 12.120798110961914, 9.071754455566406, 10.264166831970215, 9.964442253112793, 4.145314693450928, 10.944267272949219, 7.7115702629089355, 9.02327823638916, 6.065130710601807, 10.888262748718262, 5.613483428955078, 12.116403579711914, 12.085001945495605, 8.938956260681152, 10.300929069519043, 10.254083633422852, 8.46902084350586, 8.785200119018555, 9.424691200256348, 11.64520263671875, 11.571700096130371, 9.216139793395996, 7.539426803588867, 5.289574146270752, 5.978673934936523, 9.56047248840332, 3.0805141925811768, 9.509605407714844, 10.905204772949219, 8.877875328063965, 3.9541573524475098, 4.212759494781494, 1.6434650421142578, 6.014175891876221, 11.81765079498291, 5.7166290283203125, 10.235824584960938, 9.988836288452148, 12.271153450012207, 9.359338760375977, 10.802840232849121, 5.58129358291626, 5.053167343139648, 11.393550872802734, 10.70861530303955, 5.989745616912842 ], "xaxis": "x", "y": [ 10.656658172607422, 11.18799877166748, 10.856574058532715, 11.44901180267334, 11.629622459411621, 10.141706466674805, 10.326932907104492, 11.163639068603516, 8.577914237976074, 11.202803611755371, 11.431288719177246, 8.897784233093262, 10.777013778686523, 8.757115364074707, 10.037969589233398, 10.378239631652832, 11.159039497375488, 8.996428489685059, 10.407123565673828, 11.209020614624023, 10.958918571472168, 8.058340072631836, 11.037464141845703, 11.1759614944458, 11.124183654785156, 10.990623474121094, 11.050283432006836, 11.445941925048828, 11.252389907836914, 8.858786582946777, 11.310880661010742, 10.045780181884766, 10.47917652130127, 10.691255569458008, 10.799641609191895, 10.416866302490234, 10.8339204788208, 10.151741981506348, 11.161153793334961, 10.8136568069458, 11.20238208770752, 10.2774019241333, 9.544167518615723, 10.656082153320312, 8.673077583312988, 8.642745018005371, 10.137826919555664, 9.065380096435547, 11.219986915588379, 8.91156005859375, 10.705818176269531, 9.090436935424805, 9.463476181030273, 11.382898330688477, 10.480552673339844, 10.009493827819824, 9.64395523071289, 10.823891639709473, 9.20860481262207, 9.860846519470215, 11.427290916442871, 9.020516395568848, 11.223712921142578, 10.761098861694336, 11.18014907836914, 9.849919319152832, 10.834057807922363, 11.583465576171875, 11.404841423034668, 11.484086990356445, 9.392868041992188, 10.26281452178955, 8.97150707244873, 10.296004295349121, 9.24005126953125, 11.328397750854492, 10.45443058013916, 10.914872169494629, 11.203351020812988, 11.531599998474121, 10.612454414367676, 10.716697692871094, 10.481507301330566, 10.04078483581543, 11.038707733154297, 11.00247573852539, 10.200936317443848, 11.360563278198242, 10.730998039245605, 11.422957420349121, 11.127883911132812, 11.43701457977295, 11.410134315490723, 11.13198184967041, 11.285154342651367, 11.345113754272461, 11.341779708862305, 11.284598350524902, 11.175896644592285, 9.614200592041016, 10.498095512390137, 10.6130952835083, 10.969415664672852, 11.455740928649902, 11.138276100158691, 10.079330444335938, 10.939187049865723, 11.090421676635742, 11.015386581420898, 11.12269115447998, 10.387526512145996, 11.13922119140625, 10.118760108947754, 10.968926429748535, 8.20037841796875, 9.487682342529297, 11.161566734313965, 11.150999069213867, 11.20274829864502, 11.388879776000977, 8.734782218933105, 11.375699043273926, 11.217055320739746, 10.880629539489746, 10.830223083496094, 11.652658462524414, 9.245227813720703, 9.567502975463867, 10.921148300170898, 11.088330268859863, 11.289122581481934, 10.845087051391602, 11.407930374145508, 8.506103515625, 9.140424728393555, 9.921130180358887, 11.287715911865234, 11.482010841369629, 11.404109001159668, 10.588408470153809, 8.88369369506836, 11.213618278503418, 8.445860862731934, 10.524004936218262, 8.114008903503418, 11.191266059875488, 11.074394226074219, 10.183130264282227, 10.753056526184082, 8.92208480834961, 10.322144508361816, 11.35918140411377, 11.272193908691406, 9.536117553710938, 11.37548542022705, 11.089654922485352, 10.5033540725708, 11.29785442352295, 8.805676460266113, 8.884170532226562, 11.368857383728027 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=endoplasmic reticulum
x=%{x}
y=%{y}", "hovertext": [ "526_G11_1_6", "526_G11_1_7", "528_G11_1_13", "545_G11_1_6", "545_G11_1_11", "545_G11_2_20", "104_G6_1_9", "104_G6_2_2", "104_G6_2_3", "104_G6_2_5", "69_A5_2_13", "91_A5_2_5", "91_A5_2_7", "1123_D6_2_4", "172_G6_2_2", "634_G1_3_19", "639_G1_1_4", "639_G1_3_7", "1899_F12_31_6", "1899_F12_32_5", "1899_F12_32_14", "1899_F12_32_15", "2108_H7_2_11", "2108_H7_2_13", "703_F3_1_3", "703_F3_1_9", "703_F3_2_12", "708_F3_1_12", "708_F3_2_5", "75_E10_1_7", "758_E6_1_7", "758_E6_2_4", "133_H10_1_7", "133_H10_2_4", "125_F5_1_3", "125_F5_1_5", "165_F5_2_7", "1894_H7_1_6", "1894_H7_1_11", "1894_H7_3_7", "258_F9_1_4", "258_F9_1_14", "258_F9_2_14", "259_F9_1_3", "259_F9_2_9", "260_F9_2_12", "703_G8_1_9", "703_G8_1_14", "708_G8_1_11", "121_G3_2_5", "123_G3_1_7", "123_G3_2_5", "172_G3_1_1", "172_G3_2_4", "172_G3_2_9", "641_A8_2_5", "642_A8_3_12", "105_H9_2_12", "107_H9_2_12", "160_H9_1_6", "160_H9_2_6", "160_H9_2_7", "431_G4_4_12", "437_G4_2_10", "437_G4_2_13", "102_C8_1_7", "103_C8_1_7", "103_C8_1_10", "103_C8_2_7", "48_C4_1_10", "48_C4_2_7", "48_C4_2_9", "49_C4_2_4", "47_H7_1_6", "47_H7_2_4", "48_H7_2_3", "527_C9_1_2", "527_C9_1_9", "527_C9_3_3", "529_C9_1_14", "529_C9_2_4", "529_C9_2_12", "97_B12_1_7", "99_B12_1_6", "99_B12_2_5", "99_B12_2_10", "39_H9_1_5", "40_H9_1_3", "40_H9_1_7", "40_H9_2_3" ], "legendgroup": "endoplasmic reticulum", "marker": { "color": "#1F77B4", "symbol": "circle" }, "mode": "markers", "name": "endoplasmic reticulum", "showlegend": true, "type": "scattergl", "x": [ 3.2447547912597656, 2.9184703826904297, 6.675962924957275, 4.58085298538208, -1.0868974924087524, 6.6522064208984375, 10.166969299316406, 9.1868896484375, 7.177773952484131, 0.07045882940292358, 0.5087297558784485, -1.7863540649414062, 2.561910629272461, 3.6921324729919434, 1.165887713432312, 9.452832221984863, 2.588078022003174, 6.975824356079102, 7.195924282073975, 7.359630584716797, -0.9562220573425293, 10.40177059173584, 7.1021881103515625, 6.9552507400512695, 2.0751757621765137, 6.109659671783447, 2.624572277069092, 9.788066864013672, 4.165965557098389, 6.495021820068359, 5.8981032371521, 7.313299179077148, 3.8879599571228027, 4.181728363037109, 5.148833751678467, 8.433150291442871, 6.64546012878418, 2.234600305557251, 7.133554935455322, 4.738037109375, 6.800375938415527, 1.7412147521972656, -0.16198743879795074, 7.305188179016113, 0.9637420773506165, 6.039333343505859, 2.10451078414917, 5.706045627593994, 7.4676666259765625, 5.7704620361328125, 5.598147392272949, 12.167831420898438, 6.628224849700928, 12.493654251098633, 7.512380123138428, 3.445263385772705, 9.66183090209961, 10.436975479125977, -2.3260107040405273, 7.205696105957031, 5.727794170379639, 4.644102573394775, 6.590414524078369, -1.020456075668335, 3.339718818664551, 4.483584880828857, -0.8045490980148315, 7.671443462371826, 6.833191394805908, -0.8016027808189392, 6.9017791748046875, 1.6875706911087036, 10.606059074401855, 11.119812965393066, 11.000222206115723, 7.025929927825928, 9.090808868408203, 10.315220832824707, 0.1049470603466034, 2.0042178630828857, 4.636541843414307, 6.974136829376221, 5.765756607055664, 6.513875961303711, 5.82921838760376, 5.900471210479736, 3.7823245525360107, 5.430930137634277, -1.0363892316818237, 4.3196845054626465 ], "xaxis": "x", "y": [ 8.442706108093262, 9.027788162231445, 9.651198387145996, 8.531401634216309, 10.120037078857422, 8.819242477416992, 7.826521873474121, 8.08011245727539, 10.299992561340332, 10.53884506225586, 10.197161674499512, 9.77857780456543, 8.988310813903809, 10.414640426635742, 10.470003128051758, 7.272236347198486, 9.087246894836426, 7.9927239418029785, 8.651765823364258, 8.609716415405273, 9.450906753540039, 7.840949058532715, 7.715696334838867, 9.010802268981934, 9.602347373962402, 9.627220153808594, 9.391681671142578, 7.2248215675354, 10.258728981018066, 9.362950325012207, 10.932474136352539, 8.300395011901855, 11.1378173828125, 10.225829124450684, 9.795682907104492, 9.14382266998291, 10.311723709106445, 9.63627815246582, 8.74305534362793, 8.529475212097168, 8.071136474609375, 10.601019859313965, 9.991802215576172, 8.099489212036133, 10.052708625793457, 9.553077697753906, 8.6648530960083, 10.508125305175781, 8.963942527770996, 8.433778762817383, 9.670740127563477, 7.404077529907227, 9.773726463317871, 7.455489635467529, 7.711250305175781, 8.129379272460938, 7.819215297698975, 7.184724807739258, 9.752079963684082, 10.223308563232422, 9.038124084472656, 8.581615447998047, 9.555394172668457, 9.305290222167969, 7.915450096130371, 7.984615325927734, 9.927027702331543, 8.158071517944336, 9.223053932189941, 10.197752952575684, 9.995200157165527, 8.632176399230957, 7.646537780761719, 8.76187515258789, 9.245253562927246, 7.906305313110352, 7.745706558227539, 7.1676530838012695, 10.413887023925781, 8.491966247558594, 8.586467742919922, 8.698546409606934, 9.416695594787598, 10.146071434020996, 8.716909408569336, 8.948263168334961, 11.29104232788086, 9.67658805847168, 10.364914894104004, 9.538354873657227 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=nucleoli
x=%{x}
y=%{y}", "hovertext": [ "505_C9_1_6", "505_C9_1_7", "505_C9_1_8", "505_C9_1_11", "505_C9_1_12", "505_C9_1_17", "611_F2_3_4", "611_F2_3_13", "614_F2_2_8", "618_F2_1_3", "618_F2_2_6", "618_F2_2_10", "618_F2_2_11", "618_F2_2_12", "149_G3_1_8", "193_A10_1_6", "193_A10_1_12", "194_A10_1_7", "194_A10_1_11", "625_D11_2_4", "625_D11_2_10", "631_D11_1_12", "631_D11_2_6", "631_D11_2_7", "631_D11_2_10", "133_C9_1_5", "133_C9_2_5", "135_C9_1_2", "1130_H2_1_7", "1130_H2_2_9", "408_C5_2_5", "418_A1_3_7", "418_A1_3_10", "429_A1_1_4", "429_A1_1_10", "429_A1_2_9", "125_D10_1_7", "139_F7_1_4", "139_F7_1_6", "139_F7_2_4", "166_F7_1_4", "166_F7_2_3", "604_G1_1_7", "404_A11_1_5", "404_A11_1_6", "404_A11_2_14", "407_A11_1_13", "407_A11_2_1", "410_A11_1_12", "566_H6_1_2", "566_H6_1_3", "566_H6_1_9", "566_H6_2_4", "566_H6_2_12", "569_H6_2_4", "760_E2_1_2", "775_E2_2_5", "1238_B6_1_4", "1238_B6_1_5", "1238_B6_4_9", "1244_E3_11_10", "1247_E3_1_12", "1888_H3_4_9", "471_F10_1_4", "471_F10_1_10", "471_F10_1_14", "471_F10_1_15", "471_F10_3_2", "471_F10_3_6", "563_G6_2_7", "566_G6_1_2", "566_G6_1_4", "566_G6_2_3", "569_G6_2_4", "569_G6_2_8", "562_F7_2_5", "568_F7_3_6", "826_H5_2_6", "826_H5_2_12", "826_H5_2_25", "102_G10_1_2", "102_G10_2_5", "103_G10_1_3", "103_G10_2_5", "104_G10_1_3", "104_G10_2_4", "164_F5_2_5", "164_F5_2_8", "271_E9_1_7", "271_E9_1_8", "271_E9_2_5", "271_E9_2_6", "271_E9_2_8", "565_C8_2_13", "584_C8_2_2", "25_A4_2_3", "8_H11_2_4", "8_H11_2_6", "9_H11_1_1" ], "legendgroup": "nucleoli", "marker": { "color": "#FF7F0E", "symbol": "circle" }, "mode": "markers", "name": "nucleoli", "showlegend": true, "type": "scattergl", "x": [ 5.307034015655518, 2.2012832164764404, 3.695546865463257, 3.6101341247558594, 1.461788296699524, 9.236124038696289, 11.36357593536377, 9.595953941345215, 10.810388565063477, 6.967933654785156, 1.1884777545928955, 1.0686877965927124, 10.806251525878906, 11.62773323059082, 5.347238063812256, 10.020282745361328, 6.667942047119141, 2.8861379623413086, 9.220315933227539, 5.212121486663818, 5.4374680519104, 6.713620185852051, 4.980778217315674, 3.549438238143921, 6.610246658325195, 8.573939323425293, 9.877596855163574, 11.522047996520996, 1.5197639465332031, 9.431501388549805, 3.790909767150879, 4.915558815002441, -0.6567122340202332, 7.826632499694824, 1.6202281713485718, 3.883378505706787, 4.524829387664795, 6.727118492126465, 5.17396354675293, 9.509746551513672, 4.345511436462402, 6.862484455108643, 8.076075553894043, 12.017398834228516, 11.5883150100708, 10.452630043029785, 12.184310913085938, 9.42901611328125, -2.6048970222473145, 5.444400787353516, 5.552539825439453, 3.801384210586548, 9.63230037689209, 3.3852038383483887, 6.489726543426514, 9.621232986450195, 8.090157508850098, 4.335958957672119, 4.369500160217285, 1.279406189918518, 11.12339973449707, 7.733190059661865, 1.9515550136566162, 1.2634094953536987, 5.534433364868164, 1.2223244905471802, 0.5669420957565308, 2.8198423385620117, 10.758598327636719, 9.512332916259766, 11.854557991027832, 1.525325894355774, 6.600167751312256, 11.09082317352295, 8.608187675476074, 8.9635591506958, 5.694570064544678, 2.072519540786743, 6.553169250488281, 2.709378719329834, 9.626931190490723, 3.6699540615081787, 2.6494152545928955, 5.812168121337891, 2.505359649658203, 10.378584861755371, 5.8731865882873535, 6.859099388122559, 8.902178764343262, 5.629794120788574, -1.1933177709579468, 6.076942443847656, 4.888103008270264, 8.76037883758545, 10.901312828063965, 10.137368202209473, 9.22635269165039, 9.259835243225098, 11.280158042907715 ], "xaxis": "x", "y": [ 9.244851112365723, 10.878959655761719, 9.761214256286621, 10.530945777893066, 10.286314964294434, 8.066060066223145, 8.247003555297852, 8.3203125, 8.704936981201172, 10.619508743286133, 9.815614700317383, 10.640349388122559, 8.436751365661621, 8.253320693969727, 11.284725189208984, 8.928315162658691, 10.915999412536621, 8.759121894836426, 10.159628868103027, 10.664199829101562, 10.879578590393066, 10.970808029174805, 11.35784912109375, 10.67605972290039, 11.115056037902832, 11.173011779785156, 11.12653636932373, 9.768047332763672, 8.648331642150879, 10.625454902648926, 11.09659481048584, 10.471290588378906, 10.419303894042969, 8.075080871582031, 10.125783920288086, 10.628018379211426, 10.871357917785645, 8.696772575378418, 10.890265464782715, 8.535173416137695, 10.959013938903809, 11.07613468170166, 10.215214729309082, 9.453015327453613, 9.507352828979492, 10.44007682800293, 7.352478504180908, 8.652122497558594, 9.82018756866455, 11.668636322021484, 10.88727855682373, 10.603824615478516, 8.86241340637207, 10.89153003692627, 11.37387752532959, 8.725813865661621, 11.068503379821777, 10.882287979125977, 10.832447052001953, 10.601212501525879, 9.199073791503906, 11.37430477142334, 9.04110336303711, 10.707232475280762, 9.185870170593262, 9.98963737487793, 10.276545524597168, 10.54478931427002, 8.804612159729004, 10.927525520324707, 8.342634201049805, 10.017916679382324, 10.329926490783691, 8.797359466552734, 9.27536678314209, 11.196864128112793, 11.560546875, 10.281991004943848, 10.979039192199707, 10.183389663696289, 11.088523864746094, 10.5687837600708, 11.071355819702148, 9.999702453613281, 11.04114818572998, 11.075127601623535, 10.975343704223633, 11.287925720214844, 9.765018463134766, 11.249611854553223, 10.445730209350586, 10.891724586486816, 10.867637634277344, 8.29462718963623, 8.901382446289062, 8.75167179107666, 10.403427124023438, 10.524951934814453, 10.532386779785156 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=nucleoli fibrillar center
x=%{x}
y=%{y}", "hovertext": [ "508_C9_1_20", "604_G4_1_5", "607_G4_1_2", "609_G4_1_3", "809_D1_7_6", "826_D1_2_3", "412_H6_1_4", "412_H6_1_9", "412_H6_2_4", "419_H6_1_13", "471_H6_2_6", "471_H6_2_9", "471_H6_2_11", "471_H6_2_19", "471_H6_2_20", "651_H1_2_3", "652_H1_1_3", "652_H1_1_6", "656_H1_1_6", "484_E6_1_16", "484_E6_2_3", "484_E6_2_8", "492_E6_2_4", "450_F3_3_18", "719_C10_1_4", "719_C10_1_6", "764_C10_1_9", "1819_H5_18_cr59f6d6c051e08_3", "1819_H5_18_cr59f6d6c051e08_5", "1819_H5_4_cr59f6d6c0517f9_2", "1819_H5_4_cr59f6d6c0517f9_11", "402_D4_1_7", "402_D4_1_11", "402_D4_2_6", "405_D4_2_1", "405_D4_2_10", "409_D4_1_1", "409_D4_1_2", "409_D4_2_6", "575_F7_3_9", "412_G12_2_7", "419_G12_1_10", "419_G12_2_20", "471_G12_1_6", "471_G12_1_9", "471_G12_2_12", "433_G10_2_5", "569_A11_1_8", "569_A11_1_9", "569_A11_1_11", "569_A11_2_7", "569_A11_2_13", "107_A12_1_1", "107_A12_2_7", "160_A12_1_4", "667_C2_2_3", "144_D11_1_8", "144_D11_1_9", "144_D11_2_1", "144_D11_2_4", "144_D11_2_5", "23_A4_1_4", "23_A4_1_6", "24_A4_1_8" ], "legendgroup": "nucleoli fibrillar center", "marker": { "color": "#2CA02C", "symbol": "circle" }, "mode": "markers", "name": "nucleoli fibrillar center", "showlegend": true, "type": "scattergl", "x": [ 9.63404655456543, 10.623029708862305, 11.051946640014648, 5.4707136154174805, 11.429574012756348, 8.150724411010742, 11.569767951965332, 4.19325590133667, 8.06488037109375, 4.503082752227783, 4.740408420562744, 11.424897193908691, 9.302176475524902, 9.996280670166016, 5.498170852661133, -0.436117559671402, 3.343661069869995, 5.027379512786865, 5.042795658111572, 6.086508274078369, 1.870320439338684, 6.934201240539551, 1.764568567276001, 0.3037610948085785, 10.077630996704102, 7.841760635375977, 12.265966415405273, 6.817480087280273, 8.173808097839355, -2.085279703140259, 8.39441967010498, 5.0827317237854, 6.781822681427002, 7.6320929527282715, 7.145431995391846, 10.284096717834473, 9.923644065856934, 9.991412162780762, 4.430325508117676, 3.53239107131958, 5.792045593261719, 6.870211124420166, 10.796614646911621, 4.3686747550964355, 11.795412063598633, 6.2166852951049805, 9.399028778076172, 7.375187397003174, 8.840457916259766, 9.058771133422852, 10.830655097961426, 9.974544525146484, 8.529434204101562, 2.6785807609558105, 8.5991849899292, 6.159163475036621, 8.064249992370605, 8.946314811706543, 10.865194320678711, 9.544049263000488, 6.6627936363220215, 1.579803705215454, 8.143524169921875, 6.509160995483398 ], "xaxis": "x", "y": [ 8.728517532348633, 8.770746231079102, 9.11677074432373, 10.373712539672852, 9.237421035766602, 10.26722240447998, 9.459091186523438, 11.120741844177246, 10.939696311950684, 10.99378776550293, 9.126243591308594, 9.010720252990723, 9.425095558166504, 8.716423988342285, 11.614737510681152, 10.041977882385254, 10.406542778015137, 8.059087753295898, 9.730274200439453, 10.465351104736328, 10.812211036682129, 8.875877380371094, 10.020499229431152, 9.797350883483887, 11.307815551757812, 11.42276668548584, 9.355462074279785, 11.096529006958008, 9.877994537353516, 10.070211410522461, 10.313555717468262, 9.577936172485352, 10.8699369430542, 7.856522083282471, 11.355256080627441, 8.103291511535645, 9.05104923248291, 8.869852066040039, 11.032855033874512, 11.107758522033691, 11.58067798614502, 11.130584716796875, 10.526925086975098, 10.857772827148438, 8.913965225219727, 10.759373664855957, 11.272541999816895, 11.442437171936035, 11.108317375183105, 10.335371017456055, 10.842527389526367, 11.220292091369629, 10.026568412780762, 9.58740520477295, 10.71532917022705, 11.01673698425293, 11.337628364562988, 10.21743106842041, 11.06139087677002, 10.9774169921875, 11.031354904174805, 10.851637840270996, 10.097594261169434, 8.745205879211426 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=centrosome
x=%{x}
y=%{y}", "hovertext": [ "411_C12_3_4", "411_C12_3_13", "415_C12_1_12", "415_C12_2_2", "416_C12_1_5", "416_C12_1_6", "416_C12_2_12", "1894_E3_1_4", "776_B2_1_7", "776_B2_1_8", "776_B2_1_13", "776_B2_5_9", "776_B2_5_14", "899_B2_1_8", "899_B2_1_11", "899_B2_2_2", "2108_C12_5_5", "640_A4_1_10", "640_A4_1_13", "640_A4_2_6", "641_A4_3_9", "641_A4_3_10", "642_A4_1_4", "642_A4_1_7", "642_A4_8_10", "430_H4_2_6", "432_H4_3_4", "432_H4_3_10", "516_D8_3_10", "519_D8_4_12", "556_D8_2_10", "295_G10_1_7", "295_G10_2_7", "295_G10_2_11", "296_G10_1_7", "296_G10_2_6", "297_G10_1_6", "221_F4_1_9", "221_F4_2_5", "793_E4_4_2", "793_E4_4_9", "793_E4_5_11", "845_E4_9_13", "281_B11_2_14", "757_B3_1_10", "757_B3_1_14", "757_B3_1_15", "757_B3_2_7", "757_B3_2_18", "761_B3_3_7", "769_B3_1_13", "769_B3_2_9", "769_B3_2_12", "899_E11_2_5", "112_C8_1_7", "112_C8_2_8", "272_D7_1_3", "272_D7_1_9", "272_D7_2_14" ], "legendgroup": "centrosome", "marker": { "color": "#D62728", "symbol": "circle" }, "mode": "markers", "name": "centrosome", "showlegend": true, "type": "scattergl", "x": [ 2.7901041507720947, 0.874021589756012, 8.516054153442383, 4.91292142868042, 3.4567291736602783, 8.75755500793457, 1.0790436267852783, 2.26839017868042, 4.938488483428955, 4.133512496948242, -1.1102535724639893, 3.5276830196380615, -0.062249138951301575, -1.182023048400879, 0.06675713509321213, 4.64168643951416, 0.20393314957618713, 3.788853645324707, 4.931152820587158, 5.1454691886901855, 8.186762809753418, 10.12415885925293, -0.6874390840530396, 8.80850601196289, 5.936117649078369, 5.048835754394531, 10.392433166503906, 5.0215301513671875, 11.059093475341797, 10.99343204498291, 4.884566783905029, -1.0599615573883057, 0.19211210310459137, -0.5866060853004456, 10.631531715393066, 9.003168106079102, 10.223150253295898, -1.362527847290039, 7.4354023933410645, 7.5122575759887695, 0.648832380771637, 8.46804428100586, -1.2074236869812012, 3.4489316940307617, -0.6104220151901245, 8.035677909851074, 9.761763572692871, -0.7032376527786255, 8.075616836547852, 7.090182304382324, -0.9466643929481506, 1.9249573945999146, 2.074481964111328, 0.16279160976409912, 4.347227573394775, 6.874521732330322, 1.7617931365966797, 3.709890365600586, 5.1867265701293945 ], "xaxis": "x", "y": [ 8.645325660705566, 9.793307304382324, 7.825340747833252, 8.018016815185547, 9.249263763427734, 8.013355255126953, 10.445072174072266, 8.802763938903809, 8.352803230285645, 9.570595741271973, 9.865367889404297, 9.495330810546875, 10.131620407104492, 9.84259033203125, 10.330339431762695, 8.959420204162598, 10.025975227355957, 9.848116874694824, 7.829399585723877, 8.102012634277344, 9.685673713684082, 7.893614292144775, 10.3157377243042, 7.569931983947754, 8.61505126953125, 7.848857402801514, 7.6770501136779785, 9.221097946166992, 8.731588363647461, 8.437544822692871, 10.487589836120605, 10.419699668884277, 10.257688522338867, 10.455410957336426, 8.810300827026367, 7.993426322937012, 7.692299842834473, 10.144434928894043, 7.731456279754639, 7.934937477111816, 9.484111785888672, 7.73773193359375, 9.814582824707031, 10.187749862670898, 9.57421875, 8.025893211364746, 11.124062538146973, 9.917794227600098, 8.237277030944824, 10.387939453125, 9.82646369934082, 8.636519432067871, 8.639321327209473, 9.622383117675781, 10.104522705078125, 8.529229164123535, 10.113980293273926, 11.294637680053711, 8.061869621276855 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=nuclear bodies
x=%{x}
y=%{y}", "hovertext": [ "431_C1_2_4", "431_C1_2_13", "437_C1_3_2", "437_C1_3_6", "342_D6_1_7", "819_E10_2_5", "819_E10_2_10", "826_E10_2_7", "826_E10_2_12", "834_A3_1_11", "834_A3_2_8", "856_F5_1_1", "856_F5_1_7", "271_H4_2_10", "583_A12_2_5", "598_A12_1_5", "598_A12_2_6", "602_A12_1_2", "542_B4_1_9", "542_B4_2_6", "542_B4_2_12", "544_B4_1_17", "544_B4_2_15", "571_B4_1_2", "571_B4_2_8", "523_A9_1_4", "382_C11_2_14", "397_C11_3_4", "62_D3_2_8", "93_D3_1_4", "93_D3_2_6", "303_D8_1_6", "303_D8_5_3", "921_B10_4_8", "923_B10_1_7", "923_B10_2_9", "931_B10_2_5", "931_B10_2_7", "944_G11_1_3", "944_G11_1_9", "947_G11_2_9", "899_H7_1_8", "899_H7_2_6", "183_C1_1_13", "183_C1_2_12", "185_C1_1_5", "185_C1_1_8", "185_C1_2_7", "242_C1_2_9", "793_H11_2_4", "793_H11_2_9", "793_H11_2_15", "800_H11_2_6", "257_H11_2_2", "257_H11_2_6", "257_H11_2_7", "190_A4_1_4", "190_A4_1_16", "43_H10_2_3", "468_F1_2_11", "468_F1_2_24", "468_F1_3_4", "468_F1_3_6", "468_F1_3_13", "473_F1_4_4", "473_F1_4_6", "63_A1_1_12", "59_G9_2_2", "59_G9_2_10", "59_G9_2_11", "61_G9_2_7" ], "legendgroup": "nuclear bodies", "marker": { "color": "#9467BD", "symbol": "circle" }, "mode": "markers", "name": "nuclear bodies", "showlegend": true, "type": "scattergl", "x": [ 6.819511413574219, -1.4979426860809326, 6.714967727661133, 10.15843391418457, 10.982986450195312, 7.552469730377197, 4.405271530151367, 2.126934289932251, 8.636754035949707, 1.006922960281372, 1.1956366300582886, 7.551413059234619, 10.815673828125, 1.11006760597229, 9.769607543945312, 10.736916542053223, 8.468669891357422, 0.8967605233192444, 6.415238380432129, -0.9088709354400635, 11.284372329711914, 2.919825315475464, 2.955153465270996, 8.658828735351562, 5.957705974578857, 11.767608642578125, 3.0754308700561523, 1.5623754262924194, 6.832459449768066, 3.9559390544891357, 0.9555965662002563, 12.151062965393066, 9.497099876403809, 6.656554698944092, 6.161899566650391, 3.4917244911193848, 5.035382270812988, 3.5406405925750732, -0.9288233518600464, 1.7397575378417969, 9.492664337158203, 12.072614669799805, 4.4753594398498535, 3.9321999549865723, -0.5812107920646667, 4.828789710998535, 4.343875885009766, 11.386178970336914, 8.141541481018066, 10.042104721069336, 4.3508195877075195, 4.860072135925293, 8.342652320861816, 11.919004440307617, 9.743101119995117, 9.722825050354004, 10.064361572265625, 7.599611759185791, 10.777355194091797, 1.8635993003845215, 8.719890594482422, 5.87231969833374, 5.513407230377197, 10.214001655578613, 6.5034894943237305, 10.840243339538574, 7.310122013092041, 4.905212879180908, 11.744564056396484, 4.0952301025390625, 8.75599193572998 ], "xaxis": "x", "y": [ 10.629657745361328, 10.146395683288574, 8.651334762573242, 8.756651878356934, 7.739330291748047, 10.792143821716309, 10.731819152832031, 10.688824653625488, 8.159095764160156, 10.685564041137695, 10.630619049072266, 11.45444393157959, 8.790694236755371, 10.140074729919434, 8.752631187438965, 8.812499046325684, 10.804101943969727, 10.397555351257324, 10.586000442504883, 9.837142944335938, 8.470909118652344, 9.103888511657715, 11.081582069396973, 11.222649574279785, 10.667492866516113, 8.563155174255371, 11.150300025939941, 9.27762222290039, 11.046632766723633, 11.409279823303223, 10.576905250549316, 9.23837661743164, 8.175479888916016, 10.968902587890625, 11.544849395751953, 10.460160255432129, 9.973970413208008, 10.823179244995117, 9.820189476013184, 10.238256454467773, 10.967262268066406, 9.555807113647461, 11.607996940612793, 11.208882331848145, 9.512435913085938, 9.685239791870117, 11.44731330871582, 8.822015762329102, 8.301166534423828, 8.850359916687012, 11.318218231201172, 11.320903778076172, 10.360037803649902, 9.096857070922852, 11.328948974609375, 11.357829093933105, 8.985947608947754, 8.007308006286621, 10.893662452697754, 8.737584114074707, 8.287182807922363, 11.084639549255371, 11.536459922790527, 8.904513359069824, 10.56672191619873, 8.668307304382324, 10.88458251953125, 10.676512718200684, 8.298717498779297, 11.429472923278809, 10.341072082519531 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=nuclear membrane
x=%{x}
y=%{y}", "hovertext": [ "467_A7_1_5", "467_A7_1_10", "467_A7_1_13", "415_E12_1_8", "415_E12_2_2", "416_E12_1_13", "416_E12_1_17", "404_B8_1_16", "404_B8_2_9", "407_B8_2_5", "410_B8_1_11", "410_B8_2_6", "667_G6_1_8", "667_G6_1_9", "673_G6_1_7", "673_G6_2_5", "138_D12_1_7", "166_D12_2_7", "1238_C5_4_1", "537_D5_2_10", "553_D5_3_13", "537_G2_1_5", "540_G2_1_9", "553_G2_1_6", "553_G2_1_12", "553_G2_2_12", "553_G2_2_13", "553_G2_2_15", "21_C1_1_9", "21_C1_1_10", "22_C1_1_7", "22_C1_1_11", "21_H8_1_4", "22_H8_2_5", "20_B6_1_6", "20_B6_1_7", "20_B6_1_10", "20_B6_2_4", "20_B6_2_5", "21_B6_1_3", "22_B6_1_7", "921_H7_4_9", "923_H7_1_4", "923_H7_1_10", "923_H7_2_9", "923_H7_2_12", "931_H7_1_9", "931_H7_1_11", "931_H7_2_7", "128_D5_1_16", "128_D5_2_7", "128_D5_2_13", "941_G2_1_19", "941_G2_2_1", "941_G2_2_9", "941_G2_2_11", "221_G2_1_12", "222_G2_1_9", "301_F9_2_3", "301_F9_2_7", "342_F9_1_15", "342_F9_2_12", "394_C4_3_6", "395_C4_1_10", "395_C4_2_10", "399_C4_1_7", "399_C4_2_14" ], "legendgroup": "nuclear membrane", "marker": { "color": "#8C564B", "symbol": "circle" }, "mode": "markers", "name": "nuclear membrane", "showlegend": true, "type": "scattergl", "x": [ 1.0769258737564087, 2.237205743789673, 9.433876991271973, 4.117219924926758, 6.688831329345703, 6.604763507843018, 6.010365009307861, 8.741850852966309, 8.509101867675781, 8.97963809967041, 4.7867841720581055, 6.898395538330078, 7.27094030380249, 7.097294330596924, 9.740988731384277, 10.915390014648438, 11.7156982421875, 9.941634178161621, 8.420010566711426, 10.18942642211914, 9.063899040222168, 10.582364082336426, 11.727190971374512, 8.810046195983887, 7.337896823883057, 8.899704933166504, 11.956937789916992, 12.200250625610352, 6.004112243652344, 9.070633888244629, 11.657057762145996, 9.922208786010742, 3.3051559925079346, 12.087153434753418, 9.383602142333984, 11.964122772216797, 11.915939331054688, 12.08342170715332, 11.990525245666504, 11.016666412353516, 10.979894638061523, 3.7488372325897217, 10.433528900146484, 5.1994476318359375, 10.87480354309082, 9.497450828552246, 11.85411262512207, 10.445111274719238, 9.30124282836914, 10.46670150756836, 2.272946834564209, 1.939941167831421, 4.396029472351074, 9.95264720916748, 6.2784647941589355, 6.419801235198975, 6.8658833503723145, -1.2691106796264648, 10.32048511505127, 9.00498104095459, 11.381840705871582, 8.532036781311035, 5.76626443862915, 11.59349250793457, 8.627525329589844, 5.37863302230835, 8.305771827697754 ], "xaxis": "x", "y": [ 10.102506637573242, 9.855990409851074, 8.112512588500977, 11.296436309814453, 8.993387222290039, 11.139505386352539, 10.17568588256836, 10.103300094604492, 10.111981391906738, 10.214899063110352, 11.716001510620117, 10.318156242370605, 10.286762237548828, 10.416485786437988, 11.013307571411133, 9.198184967041016, 8.997018814086914, 9.319828033447266, 10.56431770324707, 8.994754791259766, 11.292583465576172, 11.166237831115723, 9.97184944152832, 11.34990406036377, 10.774373054504395, 11.232536315917969, 9.70197582244873, 9.620158195495605, 10.159516334533691, 9.69892692565918, 9.243497848510742, 11.13408374786377, 10.926000595092773, 9.092622756958008, 11.390235900878906, 10.05028247833252, 9.937987327575684, 9.58938217163086, 10.022841453552246, 9.076828002929688, 11.074780464172363, 11.146273612976074, 10.97065258026123, 9.496623992919922, 10.808326721191406, 11.136975288391113, 9.320352554321289, 11.125741004943848, 10.522614479064941, 8.793424606323242, 9.51340103149414, 9.735759735107422, 8.818861961364746, 11.051640510559082, 10.781630516052246, 10.206765174865723, 10.483786582946777, 10.358619689941406, 11.162014961242676, 11.259156227111816, 9.488568305969238, 11.417133331298828, 10.57093334197998, 9.118217468261719, 11.465967178344727, 9.97842788696289, 10.458306312561035 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=projection
x=%{x}
y=%{y}", "hovertext": [ "104_F7_2_7", "104_F7_2_9", "104_F7_2_11", "405_E10_1_10", "405_E10_2_15", "35_G12_2_3", "404_A2_1_11", "407_A2_1_5", "407_A2_2_7", "410_A2_2_10", "69_F1_1_10", "508_H6_2_20", "754_E6_4_12", "813_E6_2_4", "534_B3_2_10", "297_E11_1_4", "297_E11_2_14", "15_G10_2_5", "79_F2_1_3", "631_E12_1_8", "631_E12_1_11", "180_F10_1_9", "180_F10_2_10", "180_F10_2_11", "181_F10_2_9", "573_H11_4_4", "589_H11_1_10", "60_C7_1_7", "976_H6_2_15", "1200_E11_3_6", "1200_E11_4_16", "1773_E11_7_8", "5_A9_2_4", "5_A9_2_5", "754_B4_1_11", "486_F5_2_13", "919_G7_2_5", "340_G1_2_12", "281_C8_2_9", "282_C8_2_10", "508_C1_1_7", "548_C1_1_1", "548_C1_2_7", "611_C11_2_11", "539_A7_3_13", "652_C9_1_3", "652_C9_1_11", "4_H11_2_6", "1029_E3_3_8", "440_B6_4_7", "860_B7_2_12", "995_E3_2_21", "241_G1_2_10" ], "legendgroup": "projection", "marker": { "color": "#E377C2", "symbol": "circle" }, "mode": "markers", "name": "projection", "showlegend": true, "type": "scattergl", "x": [ 2.8220162391662598, 2.0947189331054688, 2.3121414184570312, 2.8480238914489746, 2.948303699493408, 2.929265022277832, 3.200376510620117, 2.261394500732422, 3.048814296722412, 2.8830606937408447, 3.2838196754455566, 2.3122212886810303, 2.1796975135803223, 2.859790086746216, 2.1846511363983154, 3.115233898162842, 2.902467966079712, 2.08587646484375, 2.8921871185302734, 3.0978469848632812, 2.852065086364746, 2.884228467941284, 2.811978340148926, 2.277855157852173, 2.2817561626434326, 2.3404386043548584, 3.1054906845092773, 2.3040971755981445, 3.0140440464019775, 2.869255781173706, 2.2352135181427, 2.8557589054107666, 3.077486991882324, 2.17663311958313, 3.104400396347046, 2.2963125705718994, 3.081216812133789, 2.3057804107666016, 2.260838508605957, 2.975579023361206, 2.3348441123962402, 2.8215689659118652, 1.9969513416290283, 2.343165397644043, 2.137347936630249, 2.0755209922790527, 2.8152575492858887, 2.1925032138824463, 2.071396827697754, 3.305856227874756, 3.2211828231811523, 2.200394868850708, 2.300123453140259 ], "xaxis": "x", "y": [ 5.458002090454102, 3.743023157119751, 4.0146098136901855, 5.511794090270996, 5.641158580780029, 5.611515522003174, 5.975940227508545, 3.944054365158081, 5.772857666015625, 5.553534030914307, 6.083166599273682, 3.989496946334839, 3.8444862365722656, 5.520756721496582, 3.8507704734802246, 5.894106864929199, 5.583302021026611, 3.735743522644043, 5.571044445037842, 5.861843109130859, 5.519857406616211, 5.572367191314697, 5.430802822113037, 3.9519436359405518, 3.9599406719207764, 4.0327677726745605, 5.9076056480407715, 4.012452602386475, 5.761802673339844, 5.543085098266602, 3.912943124771118, 5.50507926940918, 5.856686592102051, 3.85214900970459, 5.865994930267334, 3.980992078781128, 5.82665491104126, 3.943847179412842, 3.9366719722747803, 5.698197364807129, 4.017688274383545, 5.4394001960754395, 3.6312921047210693, 4.026690483093262, 3.795874834060669, 3.719465732574463, 5.5655670166015625, 3.856088876724243, 3.7189526557922363, 6.131337642669678, 6.014585971832275, 3.865633010864258, 3.981794595718384 ], "yaxis": "y" }, { "hovertemplate": "%{hovertext}

color=soma
x=%{x}
y=%{y}", "hovertext": [ "104_F7_2_10", "409_E10_1_9", "36_G12_2_3", "821_B5_1_7", "323_B9_2_6", "326_B9_1_1", "404_A2_2_7", "68_F1_2_8", "69_F1_2_13", "69_F1_2_16", "505_H6_1_16", "505_H6_2_16", "508_H6_1_11", "508_H6_2_13", "534_B3_2_4", "534_B3_2_7", "552_B3_1_9", "552_B3_2_3", "295_E11_1_6", "81_F2_1_8", "631_E12_2_14", "180_F10_1_12", "182_F10_1_14", "589_H11_3_3", "589_H11_3_9", "709_H11_1_13", "709_H11_1_14", "60_C7_2_6", "60_C7_2_10", "1200_E11_4_17", "132_D9_2_7", "164_D9_1_9", "1773_E11_7_1", "754_B4_2_2", "754_B4_2_6", "486_F5_1_18", "486_F5_2_7", "490_F5_1_2", "509_F5_1_16", "509_F5_2_14", "281_C8_2_14", "282_C8_1_8", "283_C8_1_9", "283_C8_1_12", "283_C8_1_13", "548_C1_1_12", "611_C11_2_14", "614_C11_2_20", "614_C11_3_3", "552_A7_1_15", "552_A7_2_13", "652_C9_1_6", "652_C9_2_10", "656_C9_1_8", "656_C9_3_5", "4_H11_1_12", "5_H11_1_6", "1029_E3_2_3", "440_B6_4_12", "995_E3_1_9", "995_E3_1_22", "239_G1_2_9", "240_G1_1_6" ], "legendgroup": "soma", "marker": { "color": "#7F7F7F", "symbol": "circle" }, "mode": "markers", "name": "soma", "showlegend": true, "type": "scattergl", "x": [ 12.474445343017578, 12.09831428527832, 12.642560958862305, 10.95546817779541, 12.414810180664062, 12.076699256896973, 11.15566635131836, 10.332839965820312, 12.562597274780273, 12.524617195129395, 12.537501335144043, 12.170047760009766, 12.449235916137695, 12.616276741027832, 12.673643112182617, 12.601920127868652, 12.379720687866211, 12.40365982055664, 12.056737899780273, 10.576614379882812, 12.267507553100586, 12.462041854858398, 11.588532447814941, 12.553101539611816, 12.273642539978027, 12.122650146484375, 12.066981315612793, 10.917231559753418, 12.100083351135254, 12.416119575500488, 10.22594165802002, 12.299478530883789, 12.235836029052734, 10.495287895202637, 12.492718696594238, 12.490102767944336, 10.913877487182617, 12.634825706481934, 12.524006843566895, 10.658376693725586, 12.328232765197754, 12.601805686950684, 12.582365036010742, 12.494547843933105, 9.013721466064453, 12.502442359924316, 12.568574905395508, 12.455399513244629, 11.968633651733398, 12.454617500305176, 12.569085121154785, 12.485071182250977, 12.577160835266113, 12.066126823425293, 12.032176971435547, 12.53004264831543, 11.91303825378418, 11.896278381347656, 12.415629386901855, 12.121464729309082, 11.814303398132324, 11.309557914733887, 12.111992835998535 ], "xaxis": "x", "y": [ 7.992579936981201, 7.627177715301514, 8.075285911560059, 7.644983768463135, 8.492981910705566, 7.4276251792907715, 7.422135829925537, 7.232869625091553, 8.073230743408203, 7.977344036102295, 8.160232543945312, 7.399251937866211, 7.4225687980651855, 8.045621871948242, 8.062952995300293, 8.046911239624023, 7.538491725921631, 8.014336585998535, 7.361385345458984, 7.252135276794434, 7.477945327758789, 7.532444000244141, 7.360785961151123, 7.52120304107666, 7.8504133224487305, 7.319384574890137, 7.388730049133301, 8.645696640014648, 7.906698226928711, 7.625060081481934, 7.162146091461182, 7.628461837768555, 8.372908592224121, 7.679476737976074, 7.441669940948486, 7.609679698944092, 7.43280029296875, 7.8058366775512695, 7.4821977615356445, 7.30881404876709, 7.943845272064209, 8.101383209228516, 7.521078586578369, 7.666330814361572, 8.034710884094238, 8.158194541931152, 7.965065002441406, 8.304408073425293, 8.16307258605957, 7.495872974395752, 7.706000328063965, 8.158994674682617, 7.574252605438232, 7.6840128898620605, 7.537256717681885, 7.680474758148193, 7.614544868469238, 8.027783393859863, 7.516109943389893, 7.409327030181885, 7.805696487426758, 7.7866339683532715, 7.521279811859131 ], "yaxis": "y" } ], "layout": { "legend": { "title": { "text": "color" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "rgb(36,36,36)" }, "error_y": { "color": "rgb(36,36,36)" }, "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "rgb(36,36,36)", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "rgb(36,36,36)" }, "baxis": { "endlinecolor": "rgb(36,36,36)", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "rgb(36,36,36)" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "colorscale": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "colorscale": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "colorscale": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "line": { "color": "white", "width": 0.6 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "colorscale": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "colorscale": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" }, "colorscale": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "rgb(237,237,237)" }, "line": { "color": "white" } }, "header": { "fill": { "color": "rgb(217,217,217)" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 1, "tickcolor": "rgb(36,36,36)", "ticks": "outside" } }, "colorscale": { "diverging": [ [ 0, "rgb(103,0,31)" ], [ 0.1, "rgb(178,24,43)" ], [ 0.2, "rgb(214,96,77)" ], [ 0.3, "rgb(244,165,130)" ], [ 0.4, "rgb(253,219,199)" ], [ 0.5, "rgb(247,247,247)" ], [ 0.6, "rgb(209,229,240)" ], [ 0.7, "rgb(146,197,222)" ], [ 0.8, "rgb(67,147,195)" ], [ 0.9, "rgb(33,102,172)" ], [ 1, "rgb(5,48,97)" ] ], "sequential": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ], "sequentialminus": [ [ 0, "#440154" ], [ 0.1111111111111111, "#482878" ], [ 0.2222222222222222, "#3e4989" ], [ 0.3333333333333333, "#31688e" ], [ 0.4444444444444444, "#26828e" ], [ 0.5555555555555556, "#1f9e89" ], [ 0.6666666666666666, "#35b779" ], [ 0.7777777777777778, "#6ece58" ], [ 0.8888888888888888, "#b5de2b" ], [ 1, "#fde725" ] ] }, "colorway": [ "#1F77B4", "#FF7F0E", "#2CA02C", "#D62728", "#9467BD", "#8C564B", "#E377C2", "#7F7F7F", "#BCBD22", "#17BECF" ], "font": { "color": "rgb(36,36,36)" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "white", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "white", "polar": { "angularaxis": { "gridcolor": "rgb(232,232,232)", "linecolor": "rgb(36,36,36)", "showgrid": false, "showline": true, "ticks": "outside" }, "bgcolor": "white", "radialaxis": { "gridcolor": "rgb(232,232,232)", "linecolor": "rgb(36,36,36)", "showgrid": false, "showline": true, "ticks": "outside" } }, "scene": { "xaxis": { "backgroundcolor": "white", "gridcolor": "rgb(232,232,232)", "gridwidth": 2, "linecolor": "rgb(36,36,36)", "showbackground": true, "showgrid": false, "showline": true, "ticks": "outside", "zeroline": false, "zerolinecolor": "rgb(36,36,36)" }, "yaxis": { "backgroundcolor": "white", "gridcolor": "rgb(232,232,232)", "gridwidth": 2, "linecolor": "rgb(36,36,36)", "showbackground": true, "showgrid": false, "showline": true, "ticks": "outside", "zeroline": false, "zerolinecolor": "rgb(36,36,36)" }, "zaxis": { "backgroundcolor": "white", "gridcolor": "rgb(232,232,232)", "gridwidth": 2, "linecolor": "rgb(36,36,36)", "showbackground": true, "showgrid": false, "showline": true, "ticks": "outside", "zeroline": false, "zerolinecolor": "rgb(36,36,36)" } }, "shapedefaults": { "fillcolor": "black", "line": { "width": 0 }, "opacity": 0.3 }, "ternary": { "aaxis": { "gridcolor": "rgb(232,232,232)", "linecolor": "rgb(36,36,36)", "showgrid": false, "showline": true, "ticks": "outside" }, "baxis": { "gridcolor": "rgb(232,232,232)", "linecolor": "rgb(36,36,36)", "showgrid": false, "showline": true, "ticks": "outside" }, "bgcolor": "white", "caxis": { "gridcolor": "rgb(232,232,232)", "linecolor": "rgb(36,36,36)", "showgrid": false, "showline": true, "ticks": "outside" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "rgb(232,232,232)", "linecolor": "rgb(36,36,36)", "showgrid": false, "showline": true, "ticks": "outside", "title": { "standoff": 15 }, "zeroline": false, "zerolinecolor": "rgb(36,36,36)" }, "yaxis": { "automargin": true, "gridcolor": "rgb(232,232,232)", "linecolor": "rgb(36,36,36)", "showgrid": false, "showline": true, "ticks": "outside", "title": { "standoff": 15 }, "zeroline": false, "zerolinecolor": "rgb(36,36,36)" } } }, "xaxis": { "anchor": "y", "domain": [ 0, 1 ], "title": { "text": "x" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "title": { "text": "y" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import umap as umap\n", "import plotly.express\n", "\n", "# Compute UMAP representation\n", "reducer = umap.UMAP(random_state=1)\n", "umap_coords = reducer.fit_transform(embeddings)\n", "\n", "plotly.express.scatter(x=umap_coords[:,0],\n", " y=umap_coords[:,1],\n", " template=\"simple_white\",\n", " hover_name=cell_metadata.iloc[np.unique(test_pairs)]['hpa_crop_id'],\n", " color=cell_metadata.iloc[np.unique(test_pairs)]['hpa_locations'])" ] }, { "cell_type": "markdown", "id": "5c91a590", "metadata": {}, "source": [ "## Inferring anchor cell mappings and OT distances using trained dCellAligner-OT model" ] }, { "cell_type": "markdown", "id": "8bd79ee7", "metadata": {}, "source": [ "All the model evaluation above was performed using cell images for which the anchor cell mappings and OT distances were already computed. Now that we've trained a dAligner-OT model, we can apply it directly to new `CellAligner_Cell` objects to infer anchor cell mappings and OT distances much faster." ] }, { "cell_type": "code", "execution_count": null, "id": "409c8591", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Mapping cells: 100%|██████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 5.55it/s]\n" ] }, { "data": { "image/png": "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2rFjhyRp9+7d+slPfqJnnnmm85677rpLo6OjuvDCC5dyOQCADYY6AwBYbdQaAMBClrTFcu/evfrqV7+q22+/XSMjI5399WNjYxoaGtLjjz+ur371q3rb296m008/XQ899JA+8pGP6K1vfate+9rXSpKuuOIKXXjhhfr93/99fe5zn9Pk5KQ++clPau/evarVaiv/EwIA1g3qDABgtVFrAAALcWZmi36zcws+/+Uvf1nve9/79OSTT+pf/+t/rYcfflgzMzM666yz9Lu/+7v65Cc/2beE+Fe/+pU++MEP6t5779WmTZt0/fXX60/+5E+UpovL66anpzU2NqbL9A6lrrLYywcAHENume7V7ZqamlrTLR/UGQDYmE6VOiNRawBgo1purVlSQHaqmJqa0vj4uN6itykVxQQAlitXpu/o73To0CGNjY2t9eWsOeoMAKws6szRqDUAsLKWW2tO+BTLtXT48GFJ0nf0d2t8JQCwsRw+fJiBi6gzALBaqDNdzz//vCRqDQCstBOtNetyBVkIQY8++qguvPBCPfnkk2u+THuttY+IHvR7wX3o4l50cS+6XupemJkOHz6snTt3yvsTOuB4Q6HO9OPPURf3IuI+dHEvuqgzS3Po0CGddtppOnDgwMCHhvw56uJedHEvIu5D1/HuxXJrzbpcQea918te9jJJ4ojkHtyLiPvQxb3o4l50HeteDPo/zntRZxbGvejiXkTchy7uRRd1ZnHag7exsTH+2ynx56iLe9HFvYi4D10vdS+WU2uYvgEAAAAAAMBAIyADAAAAAADAQFu3AVmtVtOnPvUp1Wq1tb6UNce9iLgPXdyLLu5FF/diabhfXdyLLu5FxH3o4l50cS+WhvvVxb3o4l50cS8i7kPXat+LddmkHwAAAAAAAFgp63YFGQAAAAAAALASCMgAAAAAAAAw0AjIAAAAAAAAMNAIyAAAAAAAADDQ1mVA9oUvfEEvf/nLVa/XtWvXLn3/+99f60tadZ/+9KflnOt7XHDBBZ3XG42G9u7dq9NPP12bN2/Wtddeq4MHD67hFa+c+++/X29/+9u1c+dOOef0zW9+s+91M9Mtt9yiHTt2aGhoSHv27NEvfvGLvve88MILuu666zQ6Oqrx8XHdcMMNOnLkyEn8KZbvePfhfe9731H/jVx11VV979kI90GSbr31Vr3hDW/QyMiItm3bpne+85169NFH+96zmD8TBw4c0DXXXKPh4WFt27ZNH//4x5Xn+cn8UZZtMffisssuO+q/jQ984AN979kI92KlDVqtoc5QZyRqTRt1pos6s3qoM9SZNupMF3WmizrTdbLqzLoLyP76r/9a+/bt06c+9Sn94z/+oy655BJdeeWVeuaZZ9b60lbda17zGj399NOdx3e+853Oax/5yEf0rW99S1//+td133336amnntK73vWuNbzalTMzM6NLLrlEX/jCFxZ8/XOf+5w+//nP60tf+pIeeOABbdq0SVdeeaUajUbnPdddd50eeeQR3XXXXbrjjjt0//3368YbbzxZP8KKON59kKSrrrqq77+Rr33ta32vb4T7IEn33Xef9u7dq+9973u66667lGWZrrjiCs3MzHTec7w/E0VR6JprrlGr1dJ3v/td/eVf/qVuu+023XLLLWvxI52wxdwLSXr/+9/f99/G5z73uc5rG+VerKRBrTXUmcGuMxK1po0600WdWR3UGepML+pMP+pMRJ1Zgzpj68wb3/hG27t3b+fjoihs586dduutt67hVa2+T33qU3bJJZcs+NqhQ4esUqnY17/+9c5zP/vZz0yS7d+//yRd4ckhyb7xjW90Pg4h2MTEhP2X//JfOs8dOnTIarWafe1rXzMzs5/+9KcmyX7wgx903vP3f//35pyz3/zmNyft2lfS/PtgZnb99dfbO97xjmN+zka8D23PPPOMSbL77rvPzBb3Z+Lv/u7vzHtvk5OTnfd88YtftNHRUWs2myf3B1hB8++Fmdk//af/1P7dv/t3x/ycjXovlmMQaw11JqLOdFFruqgzXdSZlUGd6Uedoc60UWeoM2tZZ9bVCrJWq6UHH3xQe/bs6TznvdeePXu0f//+Nbyyk+MXv/iFdu7cqfPOO0/XXXedDhw4IEl68MEHlWVZ33254IILdPbZZ2/4+/LEE09ocnKy72cfGxvTrl27Oj/7/v37NT4+rte//vWd9+zZs0feez3wwAMn/ZpX07333qtt27bpVa96lT74wQ/q+eef77y2ke/D1NSUJGnLli2SFvdnYv/+/br44ou1ffv2znuuvPJKTU9P65FHHjmJV7+y5t+Ltq985SvaunWrLrroIt18882anZ3tvLZR78WJGuRaQ505GnXmaINYa6gzXdSZ5aPOUGd6UWeORp2hzkhrU2fS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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Select random cells to visualize\n", "np.random.seed(0)\n", "cells_to_plot = np.random.choice(len(cell_object_paths), size=3, replace=False)\n", "new_cell_object_paths = [cell_object_paths[i] for i in cells_to_plot]\n", "\n", "# Use dCellAligner model to map cells to anchor cell\n", "mapped_images = deep_map_to_anchor_cell(model, new_cell_object_paths, process_info_path=os.path.join(save_path, 'cell_image_processing.json'), channel='protein')\n", "\n", "fig, axes = plt.subplots(1, len(new_cell_object_paths), figsize=(15, 5))\n", "for ax, i in zip(axes, range(len(new_cell_object_paths))):\n", " ax.imshow(mapped_images[i])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "ad6612fb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Extracting embeddings for 3 images...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Extracting embeddings: 100%|██████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 17.43it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Computing distance matrix for 3 embeddings:\n", "[[ 0. 10.330376 3.3749614]\n", " [10.330376 0. 16.247938 ]\n", " [ 3.3749614 16.247938 0. ]]\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "# Compute pairwise distances for CellAligner_Cell objects\n", "distances = predict_distances(model, new_cell_object_paths, channel='protein', process_info_path=os.path.join(save_path, 'cell_image_processing.json'))\n", "print(distances)" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }