{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "75bf2599-5a29-4dfc-b0b0-7cecc3c7ab33", "metadata": {}, "source": [ "(toolboxes:analyze_everything_batch)=\n", "# Analyze everything (batched)\n", "\n", "This notebook demonstrates how to run a complete STRESS analysis in a batched way. This requires you to assemble a list of complete filenames and then submit all of them for processing. It is strongly required to do this on a sufficiently powerful processing PC.\n", "\n", "```{note}\n", "Visualizing the results is not part of this tutorial. To find out more, check the [analyze-everything](toolboxes:analyze_everything) tutorial.\n", "```\n", "\n", "## Additional dependencies\n", "\n", "In case you want to work with proprietory file formats (e.g., czi, nd2, etc), you'll need to install some packages that can handle them. As a one-fits-all solution, install the bioio package. To find out exactly what extension of bioio you need, [check the documentation](https://pypi.org/project/bioio/). For instance, for working with czi images you'll need these dependencies:\n", "\n", "```bash\n", "pip install bioio bioio-czi\n", "```" ] }, { "cell_type": "code", "execution_count": 82, "id": "92cdbcda-ad6d-4048-a1eb-f2a452969326", "metadata": {}, "outputs": [], "source": [ "import napari\n", "import numpy as np\n", "from napari_stress import reconstruction, measurements, utils, stress_backend, TimelapseConverter\n", "import os\n", "from pathlib import Path\n", "from bioio import BioImage\n", "\n", "from dask.distributed import Client, get_client\n", "\n", "import pandas as pd\n", "from skimage import io\n", "import vedo" ] }, { "cell_type": "code", "execution_count": 83, "id": "ac43a0f8", "metadata": {}, "outputs": [], "source": [ "Converter = TimelapseConverter()" ] }, { "cell_type": "code", "execution_count": 2, "id": "e440ed15-c9bd-454f-8583-2aaa071142bb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Assistant skips harvesting pyclesperanto as it's not installed.\n" ] } ], "source": [ "viewer = napari.Viewer(ndisplay=3)" ] }, { "cell_type": "markdown", "id": "c5fa4385", "metadata": {}, "source": [ "## Set up parallelization\n", "\n", "IT's important to set this up beforehand. The process may require a lot of memory - and if you don't set it here, napari-stress will set it for you, which may not be suitable for the load we will be working with in this usecase." ] }, { "cell_type": "code", "execution_count": 3, "id": "11e4c0cb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Link to progress dashboard: http://127.0.0.1:8787/status\n" ] } ], "source": [ "try:\n", " client = get_client()\n", "except Exception:\n", " client = Client(n_workers=8, memory_limit='32GB')\n", "print('Link to progress dashboard: ', client.dashboard_link)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "87a6fa3c-9eae-48cd-8eca-52dd0cbaed49", "metadata": {}, "source": [ "## Collect data to be analyzed\n", "\n", "The easiest way to find samples in a given root folder is to use `os.walk`. In essence, it recursively walks all subdirectories of a given folder, which allows you to look for files that are matching a specific pattern:" ] }, { "cell_type": "code", "execution_count": 4, "id": "09557687", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | path | \n", "pixel_size_z | \n", "pixel_size_y | \n", "pixel_size_x | \n", "
---|---|---|---|---|
0 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.37 | \n", "0.082864 | \n", "0.082864 | \n", "
1 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.103580 | \n", "0.103580 | \n", "
2 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.103580 | \n", "0.103580 | \n", "
3 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.094164 | \n", "0.094164 | \n", "
4 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.082864 | \n", "0.082864 | \n", "
5 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.082864 | \n", "0.082864 | \n", "
6 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.103580 | \n", "0.103580 | \n", "
7 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.082864 | \n", "0.082864 | \n", "
8 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.38 | \n", "0.082864 | \n", "0.082864 | \n", "
9 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.37 | \n", "0.090070 | \n", "0.090070 | \n", "
10 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
11 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.37 | \n", "0.115089 | \n", "0.115089 | \n", "
12 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E8.... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
13 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
14 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
15 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
16 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.103580 | \n", "0.103580 | \n", "
17 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
18 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
19 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.103580 | \n", "0.103580 | \n", "
20 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.129475 | \n", "0.129475 | \n", "
21 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
22 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
23 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.38 | \n", "0.115089 | \n", "0.115089 | \n", "
24 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.37 | \n", "0.147972 | \n", "0.147972 | \n", "
25 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.37 | \n", "0.115089 | \n", "0.115089 | \n", "
26 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.37 | \n", "0.138107 | \n", "0.138107 | \n", "
27 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.37 | \n", "0.172634 | \n", "0.172634 | \n", "
28 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.37 | \n", "0.138107 | \n", "0.138107 | \n", "
29 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.37 | \n", "0.115089 | \n", "0.115089 | \n", "
30 | \n", "D:\\Marc\\Marc_mouse_embryo_droplets_Aug2024\\E9.... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
31 | \n", "D:\\Marc\\Marc_genistein_droplets_Aug2024\\F1G4 d... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
32 | \n", "D:\\Marc\\Marc_genistein_droplets_Aug2024\\F1G4 d... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
33 | \n", "D:\\Marc\\Marc_genistein_droplets_Aug2024\\F1G4 d... | \n", "0.37 | \n", "0.094164 | \n", "0.094164 | \n", "
34 | \n", "D:\\Marc\\Marc_genistein_droplets_Aug2024\\GFP-NL... | \n", "0.40 | \n", "0.082864 | \n", "0.082864 | \n", "
35 | \n", "D:\\Marc\\Marc_genistein_droplets_Aug2024\\GFP-NL... | \n", "0.40 | \n", "0.069054 | \n", "0.069054 | \n", "
36 | \n", "D:\\Marc\\Marc_genistein_droplets_Aug2024\\GFP-NL... | \n", "0.40 | \n", "0.082864 | \n", "0.082864 | \n", "
37 | \n", "D:\\Marc\\Marc_genistein_droplets_Aug2024\\GFP-NL... | \n", "0.40 | \n", "0.082864 | \n", "0.082864 | \n", "
38 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.48 | \n", "0.079677 | \n", "0.079677 | \n", "
39 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
40 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.082864 | \n", "0.082864 | \n", "
41 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.094164 | \n", "0.094164 | \n", "
42 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
43 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.109032 | \n", "0.109032 | \n", "
44 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.115089 | \n", "0.115089 | \n", "
45 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
46 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.082864 | \n", "0.082864 | \n", "
47 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
48 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\F1G4... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
49 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
50 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.082864 | \n", "0.082864 | \n", "
51 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
52 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
53 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
54 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.103580 | \n", "0.103580 | \n", "
55 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
56 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
57 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
58 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
59 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.073986 | \n", "0.073986 | \n", "
60 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.094164 | \n", "0.094164 | \n", "
61 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.37 | \n", "0.073986 | \n", "0.073986 | \n", "
62 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.103580 | \n", "0.103580 | \n", "
63 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.103580 | \n", "0.103580 | \n", "
64 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.073986 | \n", "0.073986 | \n", "
65 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.069054 | \n", "0.069054 | \n", "
66 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.069054 | \n", "0.069054 | \n", "
67 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.069054 | \n", "0.069054 | \n", "
68 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.082864 | \n", "0.082864 | \n", "
69 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.076726 | \n", "0.076726 | \n", "
70 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.069054 | \n", "0.069054 | \n", "
71 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.069054 | \n", "0.069054 | \n", "
72 | \n", "D:\\Marc\\Marc_mouse_timepoint_data_Aug2024\\GFP-... | \n", "0.40 | \n", "0.069054 | \n", "0.069054 | \n", "
73 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.073986 | \n", "0.073986 | \n", "
74 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
75 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.073986 | \n", "0.073986 | \n", "
76 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
77 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
78 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
79 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.076726 | \n", "0.076726 | \n", "
80 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
81 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
82 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\48h ... | \n", "0.37 | \n", "0.069054 | \n", "0.069054 | \n", "
83 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\60h ... | \n", "0.66 | \n", "0.069054 | \n", "0.069054 | \n", "
84 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\60h ... | \n", "0.66 | \n", "0.069054 | \n", "0.069054 | \n", "
85 | \n", "D:\\Marc\\Marc_human_timepoint_data_Aug2024\\60h ... | \n", "0.66 | \n", "0.069054 | \n", "0.069054 | \n", "