├── .github
└── workflows
│ └── book.yml
├── .gitignore
├── LICENSE-CC-BY
├── README.md
├── docs
├── _config.yml
├── _toc.yml
├── images
│ ├── 2290861_computer_laptop_network_notebook_share_icon.png
│ ├── 2290861_computer_laptop_network_notebook_share_icon_link_free.txt
│ ├── biapol_logo.png
│ ├── cle_logo.png
│ ├── cupy_logo.png
│ ├── cupy_logo_image_data_source_and_license.txt
│ ├── dfg_logo.png
│ ├── elephant-logo.png
│ ├── idr_logo.png
│ ├── idr_logo_image_data_souce_and_license.txt
│ ├── johannes_mueller.jpg
│ ├── jupyter_logo.png
│ ├── mamba_logo.png
│ ├── mamba_logo_source.txt
│ ├── mara_lampert.jpeg
│ ├── marcelo_zoccoler_photo.jpg
│ ├── napari-image_logo_image_source.txt
│ ├── napari_logo.png
│ ├── ome-logomark.png
│ ├── omero_mark_licence_permissions_link.txt
│ ├── package_manager.jpeg
│ ├── pol_logo.png
│ ├── python_logo.png
│ ├── python_logo_image_data_source.txt
│ ├── qt_logo.png
│ ├── robert_haase.png
│ ├── scikit-image_logo_image_source.txt
│ ├── skimage_logo.png
│ ├── sphinx_logo.png
│ ├── sphinx_logo_license
│ ├── stardist_logo.jpg
│ ├── stardist_logo_image_source.txt
│ ├── tud_logo.png
│ └── yolo_dataset.PNG
├── imprint.md
├── intro.md
├── johannes_mueller
│ ├── .gitignore
│ ├── Readme.md
│ ├── anaconda_getting_started
│ │ ├── Readme.md
│ │ └── imgs
│ │ │ ├── 1_anaconda_download.jpg
│ │ │ ├── 2_anaconda_install_1.jpg
│ │ │ ├── 2_anaconda_install_2.jpg
│ │ │ ├── 2_anaconda_install_3.jpg
│ │ │ ├── 2_anaconda_install_4.jpg
│ │ │ ├── 2_anaconda_install_5.jpg
│ │ │ ├── 2_anaconda_install_6.jpg
│ │ │ ├── 3_create_environments_1.jpg
│ │ │ ├── 3_create_environments_2.jpg
│ │ │ ├── 3_create_environments_3.jpg
│ │ │ ├── 3_create_environments_4.jpg
│ │ │ ├── 4_jupyter_lab.png
│ │ │ ├── 4_jupyter_lab2.png
│ │ │ └── 4_jupyter_lab3.png
│ ├── entry_sphinx
│ │ ├── Readme.md
│ │ └── images
│ │ │ ├── generate_docstring.png
│ │ │ ├── screenshot_1.JPG
│ │ │ ├── screenshot_2.JPG
│ │ │ ├── screenshot_3.JPG
│ │ │ ├── screenshot_4.JPG
│ │ │ ├── screenshot_5.JPG
│ │ │ └── screenshot_6.JPG
│ ├── entry_user_inter
│ │ └── Readme.md
│ ├── entry_user_interf2
│ │ ├── Readme.md
│ │ └── scripts
│ │ │ ├── example_1
│ │ │ ├── MainWindow.py
│ │ │ ├── MainWindow.ui
│ │ │ ├── MyGUI.py
│ │ │ └── matplotlibwidgetFile.py
│ │ │ ├── example_2
│ │ │ ├── MainWindow.py
│ │ │ ├── MainWindow.ui
│ │ │ ├── MyGUI.py
│ │ │ └── matplotlibwidgetFile.py
│ │ │ └── example_3
│ │ │ ├── MainWindow.py
│ │ │ ├── MainWindow.ui
│ │ │ ├── MyGUI.py
│ │ │ ├── matplotlibwidgetFile.py
│ │ │ └── stylefile.qss
│ ├── qtdesigner_and_magicgui
│ │ ├── Readme.md
│ │ ├── example
│ │ │ ├── complex_widget.ui
│ │ │ ├── demo.ipynb
│ │ │ └── my_custom_widget.py
│ │ └── imgs
│ │ │ ├── 10_final_widget.PNG
│ │ │ ├── 11_widget_options.PNG
│ │ │ ├── 12_widget_in_napari.PNG
│ │ │ ├── 13_widget_in_napari_and_magicgui.PNG
│ │ │ ├── 14_threshold_widget.gif
│ │ │ ├── 1_create_widget.PNG
│ │ │ ├── 2_create_widget.PNG
│ │ │ ├── 3_create_widget.PNG
│ │ │ ├── 4_available_layouts.PNG
│ │ │ ├── 5_scaled_widgets.PNG
│ │ │ ├── 6_spacers.PNG
│ │ │ ├── 7_drop_spacers.PNG
│ │ │ ├── 8_drop_spacers2.PNG
│ │ │ └── 9_vertical_layout.PNG
│ └── yolo_from_omero
│ │ ├── detection.yaml
│ │ ├── imgs
│ │ ├── PR_curve.png
│ │ ├── annotate.gif
│ │ ├── confusion_matrix.png
│ │ ├── confusion_matrix_normalized.png
│ │ ├── image1.png
│ │ ├── image2.PNG
│ │ ├── image3.PNG
│ │ ├── image4.PNG
│ │ ├── image5.png
│ │ ├── image6.png
│ │ ├── image7.png
│ │ ├── image8.png
│ │ ├── labels.jpg
│ │ ├── train_batch0.jpg
│ │ ├── val_batch1_labels.jpg
│ │ ├── val_batch1_pred.jpg
│ │ └── well_102_t0_x2671.34_y1437.11.png
│ │ └── train_yolo.ipynb
├── mara_lampert
│ ├── getting_started_with_mambaforge_and_python
│ │ ├── imgs
│ │ │ ├── 1_mambaforge_download_1.png
│ │ │ ├── 1_mambaforge_download_11.png
│ │ │ ├── 1_mambaforge_download_12.png
│ │ │ ├── 1_mambaforge_download_2.png
│ │ │ ├── 2_mac_install_1.png
│ │ │ ├── 2_mac_install_2.png
│ │ │ ├── 2_mac_install_3.png
│ │ │ ├── 2_mac_install_4.png
│ │ │ ├── 2_mambaforge_install_1.png
│ │ │ ├── 2_mambaforge_install_2.png
│ │ │ ├── 2_mambaforge_install_3.png
│ │ │ ├── 2_mambaforge_install_4.png
│ │ │ ├── 2_mambaforge_install_5.png
│ │ │ ├── 2_mambaforge_install_6.png
│ │ │ ├── 2_mambaforge_install_7.png
│ │ │ ├── 2_miniforge_install_1.png
│ │ │ ├── 2_miniforge_install_2.png
│ │ │ ├── 2_miniforge_install_3.png
│ │ │ ├── 2_miniforge_install_4.png
│ │ │ ├── 2_miniforge_install_5.png
│ │ │ ├── 2_miniforge_install_6.png
│ │ │ ├── 2_miniforge_install_7.png
│ │ │ ├── 3_envs_1.png
│ │ │ ├── 3_envs_2.png
│ │ │ ├── 4_devbio_napari_1.png
│ │ │ ├── 5_jupyter_1.png
│ │ │ ├── 5_jupyter_2.png
│ │ │ ├── 5_jupyter_3.png
│ │ │ ├── 5_jupyter_4.png
│ │ │ └── 6_install_seaborn.png
│ │ └── readme.md
│ ├── getting_started_with_miniforge_and_python
│ │ ├── imgs
│ │ │ ├── 1_miniforge_download_12.png
│ │ │ ├── 2_mac_install_1.png
│ │ │ ├── 2_mac_install_2.png
│ │ │ ├── 2_mac_install_3.png
│ │ │ ├── 2_mac_install_4.png
│ │ │ ├── 2_miniforge_install_1.png
│ │ │ ├── 2_miniforge_install_2.png
│ │ │ ├── 2_miniforge_install_3.png
│ │ │ ├── 2_miniforge_install_4.png
│ │ │ ├── 2_miniforge_install_5.png
│ │ │ ├── 2_miniforge_install_6.png
│ │ │ ├── 2_miniforge_install_7.png
│ │ │ ├── 3_envs_1.png
│ │ │ ├── 3_envs_2.png
│ │ │ ├── 4_devbio_napari_1.png
│ │ │ ├── 5_jupyter_1.png
│ │ │ ├── 5_jupyter_2.png
│ │ │ ├── 5_jupyter_3.png
│ │ │ ├── 5_jupyter_4.png
│ │ │ ├── 6_install_seaborn.png
│ │ │ └── 6_install_seaborn_2.png
│ │ └── readme.md
│ └── readme.md
├── marcelo_zoccoler
│ ├── entry_user_interf3
│ │ ├── Readme.md
│ │ ├── images
│ │ │ ├── 21_Map_of_Tabuaeran_Kiribati_blue.png
│ │ │ ├── designer_stylesheet.png
│ │ │ ├── designer_stylesheet0.png
│ │ │ ├── flood_tool_gui.png
│ │ │ ├── map_of_Tauaeran_license.txt
│ │ │ ├── napari_flood_tool1.png
│ │ │ ├── napari_flood_tool1b.png
│ │ │ ├── napari_flood_tool2.png
│ │ │ ├── napari_flood_tool3.png
│ │ │ ├── napari_flood_tool4.png
│ │ │ ├── napari_flood_tool5.png
│ │ │ ├── napari_island_in_napari.png
│ │ │ ├── napari_window.png
│ │ │ └── napari_window_in_napari.png
│ │ └── scripts
│ │ │ ├── add_flood_tool.py
│ │ │ ├── flood_tool.ui
│ │ │ ├── functiongui_add_flood_tool.py
│ │ │ └── magicgui_add_flood_tool.py
│ ├── entry_user_interf4
│ │ ├── Readme.md
│ │ ├── images
│ │ │ ├── cookiecutter_questions1.png
│ │ │ ├── cookiecutter_questions2.png
│ │ │ ├── directory_items.png
│ │ │ ├── flood_plugin_PR.png
│ │ │ ├── flood_plugin_commit.png
│ │ │ ├── flood_plugin_merge.png
│ │ │ ├── flood_plugin_v1.png
│ │ │ ├── github_desktop1.png
│ │ │ ├── github_desktop1b.png
│ │ │ ├── github_desktop1c.png
│ │ │ ├── github_release.png
│ │ │ ├── github_repo_page.png
│ │ │ ├── napari_plugin1.png
│ │ │ └── new_branch.png
│ │ └── scripts
│ │ │ └── flood_tool.ui
│ ├── jamovi
│ │ ├── data
│ │ │ ├── .gitignore
│ │ │ ├── Results_black.csv
│ │ │ └── Results_white.csv
│ │ ├── images
│ │ │ ├── TEM_filter_sample_and_overlay.png
│ │ │ ├── jamovi-icon.png
│ │ │ ├── screen0.PNG
│ │ │ ├── screen1.PNG
│ │ │ ├── screen2.PNG
│ │ │ ├── screen3a.PNG
│ │ │ ├── screen3b.PNG
│ │ │ ├── screen4a.PNG
│ │ │ ├── screen4b.PNG
│ │ │ ├── screen4c.PNG
│ │ │ ├── screen5a.PNG
│ │ │ ├── screen6.PNG
│ │ │ ├── screen7.PNG
│ │ │ └── screen7b.PNG
│ │ └── jamovi.md
│ ├── mini_sabbatical_rike
│ │ └── Readme.md
│ ├── omero_scripts
│ │ ├── figures
│ │ │ ├── omero_screen1.png
│ │ │ ├── omero_screen2.png
│ │ │ ├── omero_screen3.png
│ │ │ ├── omero_screen4.png
│ │ │ ├── omero_screen5.png
│ │ │ ├── omero_screen6.png
│ │ │ └── refresh.png
│ │ └── readme.md
│ └── readme.md
├── people.md
├── robert_haase
│ ├── browsing_idr
│ │ ├── browse_idr.ipynb
│ │ ├── idr_api
│ │ │ ├── idr1.png
│ │ │ ├── idr2.png
│ │ │ ├── idr3.png
│ │ │ ├── idr4.png
│ │ │ ├── idr_collab.png
│ │ │ ├── img_1.png
│ │ │ └── img_1_thumbnail.png
│ │ └── readme.md
│ ├── clesperanto_google_colab
│ │ ├── clesperanto_colab
│ │ │ ├── colab1.png
│ │ │ ├── colab10.png
│ │ │ ├── colab11.png
│ │ │ ├── colab2.png
│ │ │ ├── colab3a.png
│ │ │ ├── colab3b.png
│ │ │ ├── colab4.png
│ │ │ ├── colab5.png
│ │ │ ├── colab6.png
│ │ │ ├── colab7.png
│ │ │ ├── colab8.png
│ │ │ ├── colab9.png
│ │ │ └── restart_runtime.png
│ │ └── readme.md
│ ├── cupy_cucim
│ │ ├── cupy_cucim.ipynb
│ │ ├── cupy_cucim
│ │ │ ├── cu1.png
│ │ │ ├── cu2.png
│ │ │ ├── cu3.png
│ │ │ ├── cu4.png
│ │ │ ├── cu5.png
│ │ │ ├── cu6.png
│ │ │ ├── cu7.png
│ │ │ └── cu8.png
│ │ └── readme.md
│ ├── ms_build_tools
│ │ ├── download1.png
│ │ ├── download2.png
│ │ ├── error.png
│ │ ├── install.png
│ │ ├── install2.png
│ │ ├── readme.md
│ │ └── success.png
│ ├── readme.md
│ ├── stardist_gpu
│ │ ├── images
│ │ │ ├── check_env1.png
│ │ │ ├── check_env2.png
│ │ │ ├── check_env3.png
│ │ │ ├── download_cuda.png
│ │ │ ├── download_cudnn.png
│ │ │ ├── install_cudnn1.png
│ │ │ ├── install_cudnn2.png
│ │ │ ├── install_cudnn3.png
│ │ │ ├── install_stardist.png
│ │ │ ├── install_stardist2.png
│ │ │ ├── use_stardist1.png
│ │ │ ├── use_stardist2.png
│ │ │ ├── use_stardist3.png
│ │ │ ├── use_stardist4.png
│ │ │ └── use_stardist5.png
│ │ └── readme.md
│ └── why_we_blog
│ │ └── readme.md
├── ryan_savill
│ ├── 01_intro_to_python
│ │ ├── IDE_overview.png
│ │ └── readme.md
│ ├── 02_intro_to_skimage
│ │ ├── Introduction to Image Analysis Basics in Python with Scikit Image.ipynb
│ │ ├── output_11_0.png
│ │ ├── output_13_0.png
│ │ ├── output_15_1.png
│ │ ├── output_17_1.png
│ │ ├── output_19_1.png
│ │ ├── output_7_2.png
│ │ ├── output_9_0.png
│ │ └── readme.md
│ ├── 03_background_subtraction
│ │ ├── MAX_Lund_18.0_22.0_Hours Z-projection t1.tif
│ │ ├── background subtraction in scipy and scikit image.ipynb
│ │ ├── image_analysis_functions.py
│ │ ├── output_13_1.png
│ │ ├── output_17_2.png
│ │ ├── output_19_1.png
│ │ ├── output_21_1.png
│ │ ├── output_3_1.png
│ │ ├── output_5_1.png
│ │ ├── output_7_0.png
│ │ └── readme.md
│ ├── principal_feature_analysis
│ │ └── readme.md
│ └── readme.md
├── stefan_hahmann
│ ├── elephant_server_installation_windows
│ │ ├── images
│ │ │ ├── Windows_Subsystem_for_Linux_logo.png
│ │ │ ├── docker-hello-world.png
│ │ │ ├── docker-logo-blue.png
│ │ │ ├── docker-wsl-integration.png
│ │ │ ├── elephant-control-panel.png
│ │ │ ├── elephant-logo.png
│ │ │ ├── elephant-server-interface.png
│ │ │ ├── fiji.png
│ │ │ ├── hostnamectl.png
│ │ │ ├── mastodon.png
│ │ │ ├── nvidia.png
│ │ │ ├── start-wsl.png
│ │ │ └── wsl_l_v.png
│ │ └── readme.md
│ ├── github_desktop_jupyter_notebook
│ │ ├── images
│ │ │ ├── clone-project.png
│ │ │ ├── git-logo.png
│ │ │ ├── github-logo.png
│ │ │ ├── github-mark.png
│ │ │ ├── jupyter-logo.png
│ │ │ ├── jupyterlab-notebook-edit.png
│ │ │ ├── jupyterlab-notebook-run.png
│ │ │ ├── jupyterlab-notebooks.png
│ │ │ └── jupyterlab-start.png
│ │ └── readme.md
│ ├── readme.md
│ ├── readme
│ │ └── stefan_hahmann.jpg
│ └── stardist_gpu_2025
│ │ ├── images
│ │ ├── check_env1.png
│ │ ├── check_env2.png
│ │ ├── check_env3.png
│ │ ├── cudnn_download.png
│ │ ├── download_cuda.png
│ │ ├── install_cudnn1.png
│ │ ├── install_cudnn2.png
│ │ ├── install_cudnn3.png
│ │ ├── install_stardist.png
│ │ ├── install_stardist2.png
│ │ ├── tensorflow-gpu-table.png
│ │ ├── use_stardist1.png
│ │ ├── use_stardist2.png
│ │ ├── use_stardist3.png
│ │ ├── use_stardist4.png
│ │ └── use_stardist5.gif
│ │ └── readme.md
└── till_korten
│ ├── devbio-napari_cluster
│ ├── images
│ │ ├── 10_imshow.png
│ │ ├── 1_login.png
│ │ ├── 2_start_server.png
│ │ ├── 3_configure_node.png
│ │ ├── 4_wait.png
│ │ ├── 7_open_notebook.png
│ │ ├── 8_select_kernel.png
│ │ └── 9_select_devbio_napari.png
│ └── readme.md
│ └── devbio-napari_cluster_setup
│ ├── images
│ ├── 1_login.png
│ ├── 2_start_server.png
│ ├── 3_configure_node.png
│ ├── 4_wait.png
│ ├── 5_open_terminal.png
│ ├── 6_terminal_output.png
│ ├── 7_open_notebook.png
│ ├── 8_select_kernel.png
│ ├── 9_select_devbio_napari.png
│ ├── a1_new_project_application.png
│ ├── a2_trial_project.png
│ ├── a3_PI_PC_email.png
│ ├── a4_CPU_GPU.png
│ └── a6_data_management.png
│ └── readme.md
└── requirements.txt
/.github/workflows/book.yml:
--------------------------------------------------------------------------------
1 | name: deploy-book
2 |
3 | # Only run this when the master branch changes
4 | on:
5 | push:
6 | branches:
7 | - master
8 | - main
9 |
10 | # This job installs dependencies, build the book, and pushes it to `gh-pages`
11 | jobs:
12 | deploy-book:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - uses: actions/checkout@v2
16 |
17 | # Install dependencies
18 | - name: Set up Python 3.9
19 | uses: actions/setup-python@v1
20 | with:
21 | python-version: 3.9
22 |
23 | - name: Install dependencies
24 | run: |
25 | pip install -r requirements.txt
26 |
27 |
28 | # Build the book
29 | - name: Build the book
30 | run: |
31 | jupyter-book build docs/
32 |
33 | # Push the book's HTML to github-pages
34 | - name: GitHub Pages action
35 | uses: peaceiris/actions-gh-pages@v3.5.9
36 | with:
37 | github_token: ${{ secrets.GITHUB_TOKEN }}
38 | publish_dir: ./docs/_build/html
39 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea/
2 | docs/marcelo_zoccoler/entry_user_interf3/scripts/__pycache__/flood_tool.cpython-37.pyc
3 |
4 | .DS_Store
5 |
6 | .ipynb_checkpoints
7 | /docs/_build
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # The BiA-PoL Blog
2 | This repository contains a collection of blog posts explaining bio-image analysis to a broad audience, focusing on life-scientists. The content is available at
3 |
4 | https://biapol.github.io/blog/
5 |
6 | It is maintained using [Jupyter lab](https://jupyterlab.readthedocs.io/en/stable/) and build using [Jupyter book](https://jupyterbook.org/intro.html).
7 |
8 | Most of us study and work at the [Bio-image Analysis Technology Development group](https://physics-of-life.tu-dresden.de/bia) at the [DFG Cluster of Excellence "Physics of Life" at the TU Dresden](https://physics-of-life.tu-dresden.de/).
9 | We blog about image data science, knowledge exchange and research data management in the life sciences. The contents of this blog are licensed by the respective authors under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/) license unless a different license is specified.
10 |
11 |
12 |
13 |
14 | ## Acknowledgements
15 | We acknowledge the support by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence Physics of Life of TU Dresden.
16 |
17 |
18 |
19 | [Imprint](https://biapol.github.io/blog/imprint)
20 |
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | # Book settings
2 | # Learn more at https://jupyterbook.org/customize/config.html
3 |
4 | title: BiA-PoL blog
5 | author: Marcelo Zoccoler, Johannes Müller, Till Korten, Ryan Savill, Mara Lampert, Stefan Hahmann, Robert Haase, DFG Cluster of Excellence "Physics of Life", TU Dresden
6 | copyright: "2024"
7 | logo: images/biapol_logo.png
8 | execute:
9 | execute_notebooks: off
10 |
11 | # Define the name of the latex output file for PDF builds
12 | latex:
13 | latex_documents:
14 | targetname: BiA-PoL_blog.tex
15 |
16 | # Add a bibtex file so that we can create citations
17 | # bibtex_bibfiles:
18 | # - references.bib
19 |
20 | # Information about where the book exists on the web
21 | repository:
22 | url: https://github.com/BiAPoL/blog
23 | path_to_book: docs
24 | branch: master # Which branch of the repository should be used when creating links (optional)
25 |
26 | # Add GitHub buttons to your book
27 | html:
28 | use_issues_button: true
29 | use_repository_button: true
30 |
31 | parse:
32 | myst_enable_extensions:
33 | - html_image
34 | - dollarmath
35 | - amsmath
36 |
--------------------------------------------------------------------------------
/docs/_toc.yml:
--------------------------------------------------------------------------------
1 | # Table of contents
2 | # Learn more at https://jupyterbook.org/customize/toc.html
3 |
4 | format: jb-book
5 | root: intro
6 | parts:
7 | - caption: Blog Posts
8 | chapters:
9 | # Add new chapters here (recent first)
10 | - file: stefan_hahmann/stardist_gpu_2025/readme
11 | - file: johannes_mueller/yolo_from_omero/train_yolo
12 | - file: mara_lampert/getting_started_with_miniforge_and_python/readme
13 | - file: stefan_hahmann/elephant_server_installation_windows/readme
14 | - file: stefan_hahmann/github_desktop_jupyter_notebook/readme
15 | - file: johannes_mueller/qtdesigner_and_magicgui/Readme
16 | - file: mara_lampert/getting_started_with_mambaforge_and_python/readme
17 | - file: till_korten/devbio-napari_cluster/readme
18 | - file: till_korten/devbio-napari_cluster_setup/readme
19 | - file: marcelo_zoccoler/omero_scripts/readme
20 | - file: marcelo_zoccoler/mini_sabbatical_rike/Readme
21 | - file: johannes_mueller/anaconda_getting_started/Readme
22 | - file: johannes_mueller/entry_sphinx/Readme
23 | - file: johannes_mueller/entry_user_inter/Readme
24 | sections:
25 | - file: johannes_mueller/entry_user_interf2/Readme
26 | - file: marcelo_zoccoler/entry_user_interf3/Readme
27 | - file: marcelo_zoccoler/entry_user_interf4/Readme
28 | - file: marcelo_zoccoler/jamovi/jamovi
29 | - file: robert_haase/ms_build_tools/readme
30 | - file: ryan_savill/principal_feature_analysis/readme
31 | - file: ryan_savill/03_background_subtraction/readme
32 | - file: ryan_savill/02_intro_to_skimage/readme
33 | - file: robert_haase/stardist_gpu/readme
34 | - file: ryan_savill/01_intro_to_python/readme
35 | - file: robert_haase/cupy_cucim/readme
36 | - file: robert_haase/browsing_idr/readme
37 | - file: robert_haase/clesperanto_google_colab/readme
38 |
39 | - caption: About the Blog
40 | chapters:
41 | - file: robert_haase/why_we_blog/readme
42 | - file: people
43 | sections:
44 | - file: mara_lampert/readme
45 | - file: stefan_hahmann/readme
46 | - file: johannes_mueller/Readme
47 | - file: marcelo_zoccoler/readme
48 | - file: ryan_savill/readme
49 | - file: robert_haase/readme
50 | - file: imprint
51 |
--------------------------------------------------------------------------------
/docs/images/2290861_computer_laptop_network_notebook_share_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/2290861_computer_laptop_network_notebook_share_icon.png
--------------------------------------------------------------------------------
/docs/images/2290861_computer_laptop_network_notebook_share_icon_link_free.txt:
--------------------------------------------------------------------------------
1 | This image is free for commercial use.
2 |
3 | https://www.iconfinder.com/icons/2290861/computer_laptop_network_notebook_share_web_icon
--------------------------------------------------------------------------------
/docs/images/biapol_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/biapol_logo.png
--------------------------------------------------------------------------------
/docs/images/cle_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/cle_logo.png
--------------------------------------------------------------------------------
/docs/images/cupy_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/cupy_logo.png
--------------------------------------------------------------------------------
/docs/images/cupy_logo_image_data_source_and_license.txt:
--------------------------------------------------------------------------------
1 | The cupy logo is adapted from the cupy github repository, where it is licensed under the MIT license.
2 | https://github.com/cupy/cupy/blob/master/LICENSE
3 |
4 | https://github.com/cupy/cupy/blob/master/docs/image/cupy_logo_1000px.png
5 |
6 | Copyright (c) 2015 Preferred Infrastructure, Inc.
7 | Copyright (c) 2015 Preferred Networks, Inc.
8 |
9 | Permission is hereby granted, free of charge, to any person obtaining a copy
10 | of this software and associated documentation files (the "Software"), to deal
11 | in the Software without restriction, including without limitation the rights
12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | copies of the Software, and to permit persons to whom the Software is
14 | furnished to do so, subject to the following conditions:
15 |
16 | The above copyright notice and this permission notice shall be included in
17 | all copies or substantial portions of the Software.
18 |
19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | THE SOFTWARE.
26 |
--------------------------------------------------------------------------------
/docs/images/dfg_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/dfg_logo.png
--------------------------------------------------------------------------------
/docs/images/elephant-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/elephant-logo.png
--------------------------------------------------------------------------------
/docs/images/idr_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/idr_logo.png
--------------------------------------------------------------------------------
/docs/images/johannes_mueller.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/johannes_mueller.jpg
--------------------------------------------------------------------------------
/docs/images/jupyter_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/jupyter_logo.png
--------------------------------------------------------------------------------
/docs/images/mamba_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/mamba_logo.png
--------------------------------------------------------------------------------
/docs/images/mamba_logo_source.txt:
--------------------------------------------------------------------------------
1 | The Mamba logo has been taken from https://github.com/mamba-org/mamba
2 |
3 | It is licensed BSD3:
4 | https://github.com/mamba-org/mamba/blob/main/LICENSE
--------------------------------------------------------------------------------
/docs/images/mara_lampert.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/mara_lampert.jpeg
--------------------------------------------------------------------------------
/docs/images/marcelo_zoccoler_photo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/marcelo_zoccoler_photo.jpg
--------------------------------------------------------------------------------
/docs/images/napari-image_logo_image_source.txt:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2018, Napari
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/docs/images/napari_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/napari_logo.png
--------------------------------------------------------------------------------
/docs/images/ome-logomark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/ome-logomark.png
--------------------------------------------------------------------------------
/docs/images/omero_mark_licence_permissions_link.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/omero_mark_licence_permissions_link.txt
--------------------------------------------------------------------------------
/docs/images/package_manager.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/package_manager.jpeg
--------------------------------------------------------------------------------
/docs/images/pol_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/pol_logo.png
--------------------------------------------------------------------------------
/docs/images/python_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/python_logo.png
--------------------------------------------------------------------------------
/docs/images/python_logo_image_data_source.txt:
--------------------------------------------------------------------------------
1 | The python logo was adapted from this source: https://www.python.org/community/logos/
2 |
3 | Guidelines for Use
4 | The Python logo is a trademark of the Python Software Foundation, which is responsible for defending against any damaging or confusing uses of the trademark.
5 |
6 | See the PSF Trademark Usage Policy.
7 |
8 | In general, we want the logo to be used as widely as possible to indicate use of Python or suitability for Python. However, please ask first when using a derived version of the logo or when in doubt.
9 |
10 | https://www.python.org/community/logos/
--------------------------------------------------------------------------------
/docs/images/qt_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/qt_logo.png
--------------------------------------------------------------------------------
/docs/images/robert_haase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/robert_haase.png
--------------------------------------------------------------------------------
/docs/images/scikit-image_logo_image_source.txt:
--------------------------------------------------------------------------------
1 | The Scikit-image logo was adapted from https://scikit-image.org
2 |
3 | Scikit-image is available under this license:
4 |
5 | Copyright (C) 2019, the scikit-image team
6 | All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions are
10 | met:
11 |
12 | 1. Redistributions of source code must retain the above copyright
13 | notice, this list of conditions and the following disclaimer.
14 | 2. Redistributions in binary form must reproduce the above copyright
15 | notice, this list of conditions and the following disclaimer in
16 | the documentation and/or other materials provided with the
17 | distribution.
18 | 3. Neither the name of skimage nor the names of its contributors may be
19 | used to endorse or promote products derived from this software without
20 | specific prior written permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
26 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
27 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
30 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
31 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 | POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/docs/images/skimage_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/skimage_logo.png
--------------------------------------------------------------------------------
/docs/images/sphinx_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/sphinx_logo.png
--------------------------------------------------------------------------------
/docs/images/stardist_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/stardist_logo.jpg
--------------------------------------------------------------------------------
/docs/images/stardist_logo_image_source.txt:
--------------------------------------------------------------------------------
1 | The star dist logo is available under a BSD 3.0 license
2 | Shared via https://github.com/stardist/stardist/
3 |
4 | BSD 3-Clause License
5 |
6 | Copyright (c) 2018-2021, Uwe Schmidt, Martin Weigert
7 | All rights reserved.
8 |
9 | Redistribution and use in source and binary forms, with or without
10 | modification, are permitted provided that the following conditions are met:
11 |
12 | * Redistributions of source code must retain the above copyright notice, this
13 | list of conditions and the following disclaimer.
14 |
15 | * Redistributions in binary form must reproduce the above copyright notice,
16 | this list of conditions and the following disclaimer in the documentation
17 | and/or other materials provided with the distribution.
18 |
19 | * Neither the name of the copyright holder nor the names of its
20 | contributors may be used to endorse or promote products derived from
21 | this software without specific prior written permission.
22 |
23 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
27 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
31 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/docs/images/tud_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/tud_logo.png
--------------------------------------------------------------------------------
/docs/images/yolo_dataset.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/images/yolo_dataset.PNG
--------------------------------------------------------------------------------
/docs/imprint.md:
--------------------------------------------------------------------------------
1 |
2 | # Imprint
3 |
4 | ## Impressum
5 | ### Angaben gemäß § 5 TMG
6 |
7 | Dr. rer. medic. Robert Haase\
8 | DFG Cluster of Excellence “Physics of Life”, TU Dresden\
9 | Am Tatzberg 47/49\
10 | 01307 Dresden
11 |
12 | ### Kontakt
13 | Telefon: +49 351 463-40315\
14 | E-Mail: robert.haase (at] tu-dresden.de
15 |
16 | ### Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:
17 | Dr. rer. medic. Robert Haase\
18 | DFG Cluster of Excellence “Physics of Life”, TU Dresden\
19 | Am Tatzberg 47/49\
20 | 01307 Dresden
21 |
22 | # Haftungsausschluss
23 |
24 | ## Haftung für Inhalte
25 |
26 | Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
27 |
28 | ## Haftung für Links
29 |
30 | Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
31 |
32 | ## Urheberrecht
33 |
34 | Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes sind gestattet unter Einhaltung der Lizenzbedingungen der [Creative Commons CC-BY 4.0 Lizenz](https://creativecommons.org/licenses/by/4.0/). Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
35 |
36 | ## Datenschutz
37 |
38 | Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
39 | Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
40 | Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.
41 |
--------------------------------------------------------------------------------
/docs/intro.md:
--------------------------------------------------------------------------------
1 | # Welcome!
2 | Most of us study and work at the [Bio-image Analysis Technology Development group](https://physics-of-life.tu-dresden.de/bia) at the [DFG Cluster of Excellence "Physics of Life" at the TU Dresden](https://physics-of-life.tu-dresden.de/).
3 | We blog about image data science, knowledge exchange and research data management in the life sciences. The contents of this blog are licensed by the respective authors under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/) license unless a different license is specified.
4 |
5 | If you want to read more about why we blog, please check out [this blog post](robert_haase/why_we_blog/readme.md).
6 |
7 | If you have feedback or suggestions, if spotted a typo, broken link or misleading explanation, please get in touch via a
8 | [github issue](https://github.com/BiAPoL/blog/issues) or
9 | [pull request](https://github.com/BiAPoL/blog/pulls) so that we can fix it. Contributions are very welcome.
10 |
11 | ## Recent blog posts
12 |
13 | ### [Using StarDist in napari with GPU-support in Windows (2025)](stefan_hahmann/stardist_gpu_2025/readme)
14 |
15 | [Stefan Hahmann](stefan_hahmann/readme), January 20th, 2025
16 | 
This blog post documents how to setup a Windows 10 system such that it can run the StarDist 2D and 3D plugin for Napari.
17 |
18 | ### [Training a yolo model on an OMERO dataset](ref:yolo_omero)
19 |
20 | [Johannes Soltwedel](johannes_mueller/readme), August 12th, 2024
21 | 
YOLO is a powerful tool for object detection and thus, obviously interesting in bio-image analysis. This blog post will show you how to train a YOLO model on an OMERO dataset.
22 |
23 | ### [Getting started with Miniforge and Python](mara_lampert/getting_started_with_miniforge_and_python/readme)]
24 |
25 | [Mara Lampert](mara_lampert/readme), July 8th, 2024
26 | 
This post will help you to get started with Python using Miniforge. More precisely, you will learn how to install Miniforge, how to create and use conda environments and you will get to know some important packages for bio image analysis.
27 |
28 | ### [Installation of Elephant Server on Windows](stefan_hahmann/elephant_server_installation_windows/readme)
29 |
30 | [Stefan Hahmann](stefan_hahmann/readme), April 24th, 2024
31 | 
ELEPHANT is a platform for 3D cell tracking, based on incremental and interactive deep learning. This post will show you how to install the ELEPHANT server component on a Windows machine.
32 |
33 | Find more blog posts on the left sidebar.
34 | Enjoy reading!
35 |
36 | ## Acknowledgements
37 | We acknowledge the support by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence Physics of Life of TU Dresden.
38 |
39 |
40 |
41 | [Imprint](imprint.md)
42 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/Readme.md:
--------------------------------------------------------------------------------
1 | # Johannes Soltwedel
2 |
3 |
4 |
5 | Hi! My name is Johannes and I originally studied physics. No coding, no biology, just classic physics: lasers, calculations, stuff like that.
6 | As I started to progress through the academic cycle, I began to be more and more interested into the life sciences: I worked on thermographic imaging of breast
7 | cancer lesions in my Master thesis and micro-environmental features of head-and neck tumors in mice during my PhD thesis.
8 | The more I got to learn about such biological systems, the more I got fascinated by the overwhelming complexity of biological systems - and the variance of approaches we have to address this!
9 | In particular, my recently finished thesis included analyzing large-scale microscopic image data (~20000 x 20000 pixels) of tumor samples in a way that
10 | would be reproducible and time-wise feasible - enter bio-image analysis.
11 |
12 | In 2021, I became part of the bio-image analysis group of Robert Haase at Physics of Life (POL) in Dresden. My task will be to develop tailored bio-image workflows for my fellow researchers,
13 | educate others to empower them to develop their own workflows and develop new methods such that they can be deployed by as many researchers as possible.
14 |
15 | ## Blog posts
16 | * [GUIs in Python - getting started](entry_user_inter/Readme)
17 | * [Advanced GUIs with Qt designer](entry_user_interf2/Readme)
18 | * [Automated package documentation with Sphinx](entry_sphinx/Readme)
19 | * [Getting started with Python and Anaconda](anaconda_getting_started/Readme)
20 | * [Training a yolo model on an OMERO dataset](ref:yolo_omero)
21 |
22 | ## Links
23 | * [BiA-PoL group website](https://physics-of-life.tu-dresden.de/en/research/technology-development-groups/bio-image-analysis)
24 | * [Johannes on twitter](https://twitter.com/jm_mightypirate)
25 | * [Johannes on github](https://github.com/jo-mueller)
26 |
27 | [Imprint](../imprint)
28 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/1_anaconda_download.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/1_anaconda_download.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_1.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_2.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_3.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_4.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_5.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/2_anaconda_install_6.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_1.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_2.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_3.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/3_create_environments_4.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/4_jupyter_lab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/4_jupyter_lab.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/4_jupyter_lab2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/4_jupyter_lab2.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/anaconda_getting_started/imgs/4_jupyter_lab3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/anaconda_getting_started/imgs/4_jupyter_lab3.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_sphinx/images/generate_docstring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/entry_sphinx/images/generate_docstring.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_sphinx/images/screenshot_1.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/entry_sphinx/images/screenshot_1.JPG
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_sphinx/images/screenshot_2.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/entry_sphinx/images/screenshot_2.JPG
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_sphinx/images/screenshot_3.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/entry_sphinx/images/screenshot_3.JPG
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_sphinx/images/screenshot_4.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/entry_sphinx/images/screenshot_4.JPG
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_sphinx/images/screenshot_5.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/entry_sphinx/images/screenshot_5.JPG
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_sphinx/images/screenshot_6.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/entry_sphinx/images/screenshot_6.JPG
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_1/MainWindow.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'MainWindow.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.9.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 | class Ui_MainWindow(object):
12 | def setupUi(self, MainWindow):
13 | MainWindow.setObjectName("MainWindow")
14 | MainWindow.resize(300, 147)
15 | self.centralwidget = QtWidgets.QWidget(MainWindow)
16 | self.centralwidget.setObjectName("centralwidget")
17 | self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
18 | self.gridLayout.setObjectName("gridLayout")
19 | self.label_2 = QtWidgets.QLabel(self.centralwidget)
20 | self.label_2.setObjectName("label_2")
21 | self.gridLayout.addWidget(self.label_2, 1, 3, 1, 1)
22 | self.label = QtWidgets.QLabel(self.centralwidget)
23 | self.label.setObjectName("label")
24 | self.gridLayout.addWidget(self.label, 0, 3, 1, 1)
25 | self.pushButton = QtWidgets.QPushButton(self.centralwidget)
26 | self.pushButton.setObjectName("pushButton")
27 | self.gridLayout.addWidget(self.pushButton, 0, 2, 1, 1)
28 | self.spinBox = QtWidgets.QSpinBox(self.centralwidget)
29 | self.spinBox.setObjectName("spinBox")
30 | self.gridLayout.addWidget(self.spinBox, 0, 1, 1, 1)
31 | self.horizontalSlider = QtWidgets.QSlider(self.centralwidget)
32 | self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
33 | self.horizontalSlider.setObjectName("horizontalSlider")
34 | self.gridLayout.addWidget(self.horizontalSlider, 1, 1, 1, 2)
35 | MainWindow.setCentralWidget(self.centralwidget)
36 | self.menubar = QtWidgets.QMenuBar(MainWindow)
37 | self.menubar.setGeometry(QtCore.QRect(0, 0, 300, 21))
38 | self.menubar.setObjectName("menubar")
39 | MainWindow.setMenuBar(self.menubar)
40 | self.statusbar = QtWidgets.QStatusBar(MainWindow)
41 | self.statusbar.setObjectName("statusbar")
42 | MainWindow.setStatusBar(self.statusbar)
43 |
44 | self.retranslateUi(MainWindow)
45 | QtCore.QMetaObject.connectSlotsByName(MainWindow)
46 |
47 | def retranslateUi(self, MainWindow):
48 | _translate = QtCore.QCoreApplication.translate
49 | MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
50 | self.label_2.setText(_translate("MainWindow", "TextLabel"))
51 | self.label.setText(_translate("MainWindow", "TextLabel"))
52 | self.pushButton.setText(_translate("MainWindow", "PushButton"))
53 |
54 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_1/MainWindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 300
10 | 147
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 | -
19 |
20 |
21 | TextLabel
22 |
23 |
24 |
25 | -
26 |
27 |
28 | TextLabel
29 |
30 |
31 |
32 | -
33 |
34 |
35 | PushButton
36 |
37 |
38 |
39 | -
40 |
41 |
42 | -
43 |
44 |
45 | Qt::Horizontal
46 |
47 |
48 |
49 |
50 |
51 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_1/MyGUI.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on Mon Oct 18 15:56:18 2021
4 |
5 | @author: johan
6 | """
7 |
8 | import sys
9 |
10 | # This imports the previously generated UI file
11 | from MainWindow import Ui_MainWindow
12 |
13 | from PyQt5.QtCore import Qt
14 | from PyQt5.QtWidgets import QApplication, QMainWindow
15 |
16 | # Define the the main window class
17 | class MainWindow(QMainWindow, Ui_MainWindow):
18 | def __init__(self):
19 | super().__init__()
20 |
21 | #Initialize GUI
22 | self.setupUi(self)
23 |
24 | self.pushButton.clicked.connect(self.print2label_1)
25 | self.horizontalSlider.valueChanged.connect(self.print2label_2)
26 |
27 | def print2label_1(self):
28 |
29 | # read value from spinbox
30 | value = self.spinBox.value()
31 |
32 | # print value to textlabel
33 | self.label.setText(f'{value}')
34 |
35 | def print2label_2(self):
36 |
37 | # read value from slider
38 | value = self.horizontalSlider.value()
39 |
40 | # print value to textlabel
41 | self.label_2.setText(f'{value}')
42 |
43 | def closeEvent(self, event):
44 | self.close()
45 | app.quit()
46 |
47 | # Start the application
48 | app = QApplication(sys.argv)
49 |
50 | window = MainWindow()
51 | window.show()
52 |
53 | app.exec_()
54 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_1/matplotlibwidgetFile.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | Given a QWidget object these objects give a matplotlib window in Qt4/5
5 | with one subplot and the toolbar. Can be used in designer for promoting
6 | QWidgets.
7 | """
8 |
9 | from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
10 | from matplotlib.backends.backend_qt5 import NavigationToolbar2QT as NavigationToolbar
11 |
12 | from matplotlib.figure import Figure
13 |
14 | from PyQt5.QtWidgets import QSizePolicy
15 | from PyQt5.QtWidgets import QVBoxLayout
16 | from PyQt5.QtWidgets import QWidget
17 |
18 | import numpy as np
19 |
20 |
21 | class MplCanvas(FigureCanvas):
22 | """
23 | Defines the canvas of the matplotlib window
24 | """
25 |
26 | def __init__(self):
27 | self.fig = Figure() # create figure
28 | self.axes = self.fig.add_subplot(111) # create subplot
29 |
30 | FigureCanvas.__init__(self, self.fig) # initialize canvas
31 | FigureCanvas.setSizePolicy(self, QSizePolicy.Expanding,
32 | QSizePolicy.Expanding)
33 | FigureCanvas.updateGeometry(self)
34 |
35 | class matplotlibWidget(QWidget):
36 | """
37 | The matplotlibWidget class based on QWidget
38 | """
39 | def __init__(self, parent=None):
40 | QWidget.__init__(self, parent)
41 | # save canvas and toolbar
42 | self.canvas = MplCanvas()
43 | self.toolbar = NavigationToolbar(self.canvas, self)
44 | # set layout and add them to widget
45 | self.vbl = QVBoxLayout()
46 | self.vbl.addWidget(self.toolbar)
47 | self.vbl.addWidget(self.canvas)
48 | self.setLayout(self.vbl)
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_2/MainWindow.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'MainWindow.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.9.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 | class Ui_MainWindow(object):
12 | def setupUi(self, MainWindow):
13 | MainWindow.setObjectName("MainWindow")
14 | MainWindow.resize(387, 295)
15 | MainWindow.setAutoFillBackground(False)
16 | self.centralwidget = QtWidgets.QWidget(MainWindow)
17 | self.centralwidget.setObjectName("centralwidget")
18 | self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
19 | self.gridLayout.setObjectName("gridLayout")
20 | self.plotWidget = matplotlibWidget(self.centralwidget)
21 | self.plotWidget.setObjectName("plotWidget")
22 | self.gridLayout.addWidget(self.plotWidget, 0, 0, 1, 1)
23 | MainWindow.setCentralWidget(self.centralwidget)
24 | self.menubar = QtWidgets.QMenuBar(MainWindow)
25 | self.menubar.setGeometry(QtCore.QRect(0, 0, 387, 21))
26 | self.menubar.setObjectName("menubar")
27 | MainWindow.setMenuBar(self.menubar)
28 | self.statusbar = QtWidgets.QStatusBar(MainWindow)
29 | self.statusbar.setObjectName("statusbar")
30 | MainWindow.setStatusBar(self.statusbar)
31 |
32 | self.retranslateUi(MainWindow)
33 | QtCore.QMetaObject.connectSlotsByName(MainWindow)
34 |
35 | def retranslateUi(self, MainWindow):
36 | _translate = QtCore.QCoreApplication.translate
37 | MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
38 |
39 | from matplotlibwidgetFile import matplotlibWidget
40 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_2/MainWindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 387
10 | 295
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 | false
18 |
19 |
20 |
21 | -
22 |
23 |
24 |
25 |
26 |
36 |
37 |
38 |
39 |
40 | matplotlibWidget
41 | QWidget
42 |
43 | 1
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_2/MyGUI.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | # This imports the previously generated UI file
4 | from MainWindow import Ui_MainWindow
5 |
6 | from PyQt5.QtCore import Qt
7 | from PyQt5.QtWidgets import QApplication, QMainWindow
8 |
9 | # Define the the main window class
10 | class MainWindow(QMainWindow, Ui_MainWindow):
11 | def __init__(self):
12 | super().__init__()
13 |
14 | #Initialize GUI
15 | self.setupUi(self)
16 |
17 | def closeEvent(self, event):
18 | self.close()
19 | app.quit()
20 |
21 |
22 | # Start the application
23 | app = QApplication(sys.argv)
24 |
25 | window = MainWindow()
26 | window.show()
27 |
28 | app.exec_()
29 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_2/matplotlibwidgetFile.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | Given a QWidget object these objects give a matplotlib window in Qt4/5
5 | with one subplot and the toolbar. Can be used in designer for promoting
6 | QWidgets.
7 | """
8 |
9 | from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
10 | from matplotlib.backends.backend_qt5 import NavigationToolbar2QT as NavigationToolbar
11 |
12 | from matplotlib.figure import Figure
13 |
14 | from PyQt5.QtWidgets import QSizePolicy
15 | from PyQt5.QtWidgets import QVBoxLayout
16 | from PyQt5.QtWidgets import QWidget
17 |
18 | import numpy as np
19 |
20 |
21 | class MplCanvas(FigureCanvas):
22 | """
23 | Defines the canvas of the matplotlib window
24 | """
25 |
26 | def __init__(self):
27 | self.fig = Figure() # create figure
28 | self.axes = self.fig.add_subplot(111) # create subplot
29 |
30 | FigureCanvas.__init__(self, self.fig) # initialize canvas
31 | FigureCanvas.setSizePolicy(self, QSizePolicy.Expanding,
32 | QSizePolicy.Expanding)
33 | FigureCanvas.updateGeometry(self)
34 |
35 | class matplotlibWidget(QWidget):
36 | """
37 | The matplotlibWidget class based on QWidget
38 | """
39 | def __init__(self, parent=None):
40 | QWidget.__init__(self, parent)
41 | # save canvas and toolbar
42 | self.canvas = MplCanvas()
43 | self.toolbar = NavigationToolbar(self.canvas, self)
44 | # set layout and add them to widget
45 | self.vbl = QVBoxLayout()
46 | self.vbl.addWidget(self.toolbar)
47 | self.vbl.addWidget(self.canvas)
48 | self.setLayout(self.vbl)
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_3/MainWindow.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'MainWindow.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.9.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 | class Ui_MainWindow(object):
12 | def setupUi(self, MainWindow):
13 | MainWindow.setObjectName("MainWindow")
14 | MainWindow.resize(300, 147)
15 | self.centralwidget = QtWidgets.QWidget(MainWindow)
16 | self.centralwidget.setObjectName("centralwidget")
17 | self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
18 | self.gridLayout.setObjectName("gridLayout")
19 | self.label_2 = QtWidgets.QLabel(self.centralwidget)
20 | self.label_2.setObjectName("label_2")
21 | self.gridLayout.addWidget(self.label_2, 1, 3, 1, 1)
22 | self.label = QtWidgets.QLabel(self.centralwidget)
23 | self.label.setObjectName("label")
24 | self.gridLayout.addWidget(self.label, 0, 3, 1, 1)
25 | self.pushButton = QtWidgets.QPushButton(self.centralwidget)
26 | self.pushButton.setObjectName("pushButton")
27 | self.gridLayout.addWidget(self.pushButton, 0, 2, 1, 1)
28 | self.spinBox = QtWidgets.QSpinBox(self.centralwidget)
29 | self.spinBox.setObjectName("spinBox")
30 | self.gridLayout.addWidget(self.spinBox, 0, 1, 1, 1)
31 | self.horizontalSlider = QtWidgets.QSlider(self.centralwidget)
32 | self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
33 | self.horizontalSlider.setObjectName("horizontalSlider")
34 | self.gridLayout.addWidget(self.horizontalSlider, 1, 1, 1, 2)
35 | MainWindow.setCentralWidget(self.centralwidget)
36 | self.menubar = QtWidgets.QMenuBar(MainWindow)
37 | self.menubar.setGeometry(QtCore.QRect(0, 0, 300, 21))
38 | self.menubar.setObjectName("menubar")
39 | MainWindow.setMenuBar(self.menubar)
40 | self.statusbar = QtWidgets.QStatusBar(MainWindow)
41 | self.statusbar.setObjectName("statusbar")
42 | MainWindow.setStatusBar(self.statusbar)
43 |
44 | self.retranslateUi(MainWindow)
45 | QtCore.QMetaObject.connectSlotsByName(MainWindow)
46 |
47 | def retranslateUi(self, MainWindow):
48 | _translate = QtCore.QCoreApplication.translate
49 | MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
50 | self.label_2.setText(_translate("MainWindow", "TextLabel"))
51 | self.label.setText(_translate("MainWindow", "TextLabel"))
52 | self.pushButton.setText(_translate("MainWindow", "PushButton"))
53 |
54 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_3/MainWindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 300
10 | 147
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 | -
19 |
20 |
21 | TextLabel
22 |
23 |
24 |
25 | -
26 |
27 |
28 | TextLabel
29 |
30 |
31 |
32 | -
33 |
34 |
35 | PushButton
36 |
37 |
38 |
39 | -
40 |
41 |
42 | -
43 |
44 |
45 | Qt::Horizontal
46 |
47 |
48 |
49 |
50 |
51 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_3/MyGUI.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | Created on Mon Oct 18 15:56:18 2021
4 |
5 | @author: johan
6 | """
7 |
8 | import sys, os
9 |
10 | # This imports the previously generated UI file
11 | from MainWindow import Ui_MainWindow
12 |
13 | from PyQt5.QtCore import Qt
14 | from PyQt5.QtWidgets import QApplication, QMainWindow
15 |
16 | # Define the the main window class
17 | class MainWindow(QMainWindow, Ui_MainWindow):
18 | def __init__(self):
19 | super().__init__()
20 |
21 | #Initialize GUI
22 | self.setupUi(self)
23 |
24 | self.pushButton.clicked.connect(self.print2label_1)
25 | self.horizontalSlider.valueChanged.connect(self.print2label_2)
26 |
27 | def print2label_1(self):
28 |
29 | # read value from spinbox
30 | value = self.spinBox.value()
31 |
32 | # print value to textlabel
33 | self.label.setText(f'{value}')
34 |
35 | def print2label_2(self):
36 |
37 | # read value from slider
38 | value = self.horizontalSlider.value()
39 |
40 | # print value to textlabel
41 | self.label_2.setText(f'{value}')
42 |
43 | def closeEvent(self, event):
44 | self.close()
45 | app.quit()
46 |
47 | # Start the application
48 | app = QApplication(sys.argv)
49 |
50 | window = MainWindow()
51 | window.show()
52 |
53 | stylefile = os.path.join(os.getcwd(), 'stylefile.qss')
54 | window.setStyleSheet(open(stylefile, "r").read())
55 |
56 | app.exec_()
57 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/entry_user_interf2/scripts/example_3/matplotlibwidgetFile.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | Given a QWidget object these objects give a matplotlib window in Qt4/5
5 | with one subplot and the toolbar. Can be used in designer for promoting
6 | QWidgets.
7 | """
8 |
9 | from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
10 | from matplotlib.backends.backend_qt5 import NavigationToolbar2QT as NavigationToolbar
11 |
12 | from matplotlib.figure import Figure
13 |
14 | from PyQt5.QtWidgets import QSizePolicy
15 | from PyQt5.QtWidgets import QVBoxLayout
16 | from PyQt5.QtWidgets import QWidget
17 |
18 | import numpy as np
19 |
20 |
21 | class MplCanvas(FigureCanvas):
22 | """
23 | Defines the canvas of the matplotlib window
24 | """
25 |
26 | def __init__(self):
27 | self.fig = Figure() # create figure
28 | self.axes = self.fig.add_subplot(111) # create subplot
29 |
30 | FigureCanvas.__init__(self, self.fig) # initialize canvas
31 | FigureCanvas.setSizePolicy(self, QSizePolicy.Expanding,
32 | QSizePolicy.Expanding)
33 | FigureCanvas.updateGeometry(self)
34 |
35 | class matplotlibWidget(QWidget):
36 | """
37 | The matplotlibWidget class based on QWidget
38 | """
39 | def __init__(self, parent=None):
40 | QWidget.__init__(self, parent)
41 | # save canvas and toolbar
42 | self.canvas = MplCanvas()
43 | self.toolbar = NavigationToolbar(self.canvas, self)
44 | # set layout and add them to widget
45 | self.vbl = QVBoxLayout()
46 | self.vbl.addWidget(self.toolbar)
47 | self.vbl.addWidget(self.canvas)
48 | self.setLayout(self.vbl)
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/example/complex_widget.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Form
4 |
5 |
6 |
7 | 0
8 | 0
9 | 400
10 | 212
11 |
12 |
13 |
14 | Form
15 |
16 |
17 | -
18 |
19 |
20 | -
21 |
22 |
23 | 0
24 |
25 |
26 |
27 | Tab 1
28 |
29 |
30 |
-
31 |
32 |
33 | PushButton
34 |
35 |
36 |
37 | -
38 |
39 |
40 | -
41 |
42 |
43 | Qt::Horizontal
44 |
45 |
46 |
47 | -
48 |
49 |
50 | Qt::Vertical
51 |
52 |
53 |
54 | 20
55 | 40
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 | Tab 2
65 |
66 |
67 |
68 |
69 | 30
70 | 40
71 | 47
72 | 14
73 |
74 |
75 |
76 | TextLabel
77 |
78 |
79 |
80 |
81 |
82 | -
83 |
84 |
85 | Qt::Vertical
86 |
87 |
88 |
89 | 20
90 | 40
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/example/demo.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import napari\n",
10 | "from my_custom_widget import my_custom_widget\n",
11 | "from skimage import data"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {},
18 | "outputs": [
19 | {
20 | "data": {
21 | "text/plain": [
22 | ""
23 | ]
24 | },
25 | "execution_count": 2,
26 | "metadata": {},
27 | "output_type": "execute_result"
28 | }
29 | ],
30 | "source": [
31 | "viewer = napari.Viewer()\n",
32 | "viewer.add_image(data.camera(), name=\"camera\")\n",
33 | "\n",
34 | "widget = my_custom_widget(viewer)\n",
35 | "viewer.window.add_dock_widget(widget, area=\"right\")"
36 | ]
37 | }
38 | ],
39 | "metadata": {
40 | "kernelspec": {
41 | "display_name": "stress",
42 | "language": "python",
43 | "name": "python3"
44 | },
45 | "language_info": {
46 | "codemirror_mode": {
47 | "name": "ipython",
48 | "version": 3
49 | },
50 | "file_extension": ".py",
51 | "mimetype": "text/x-python",
52 | "name": "python",
53 | "nbconvert_exporter": "python",
54 | "pygments_lexer": "ipython3",
55 | "version": "3.9.16"
56 | },
57 | "orig_nbformat": 4
58 | },
59 | "nbformat": 4,
60 | "nbformat_minor": 2
61 | }
62 |
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/example/my_custom_widget.py:
--------------------------------------------------------------------------------
1 | from qtpy.QtWidgets import QWidget
2 | from qtpy.QtCore import QEvent, QObject
3 | from qtpy import uic
4 | from pathlib import Path
5 |
6 | from magicgui.widgets import create_widget
7 | from napari.layers import Image
8 |
9 |
10 | class my_custom_widget(QWidget):
11 | def __init__(self, napari_viewer):
12 | super().__init__()
13 |
14 | self.viewer = napari_viewer
15 | uic.loadUi(Path(__file__).parent / "./complex_widget.ui", self)
16 |
17 | # add magicgui widget to widget layout
18 | self.image_layer_select = create_widget(annotation=Image,
19 | label="Image_layer")
20 | self.layout().insertWidget(0, self.image_layer_select.native)
21 | self.installEventFilter(self)
22 |
23 | # connect slider to function
24 | self.horizontal_slider_widget.valueChanged.connect(self.on_slider_change)
25 |
26 | def eventFilter(self, obj: QObject, event: QEvent):
27 | if event.type() == QEvent.ParentChange:
28 | self.image_layer_select.parent_changed.emit(self.parent())
29 |
30 | return super().eventFilter(obj, event)
31 |
32 | def on_slider_change(self):
33 | image_layer = self.image_layer_select.value
34 | binary_image = image_layer.data > self.horizontal_slider_widget.value()
35 |
36 | if 'result of threshold' not in self.viewer.layers:
37 | self.viewer.add_image(binary_image,
38 | name='result of threshold',
39 | opacity=0.5)
40 | else:
41 | self.viewer.layers['result of threshold'].data = binary_image
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/10_final_widget.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/10_final_widget.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/11_widget_options.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/11_widget_options.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/12_widget_in_napari.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/12_widget_in_napari.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/13_widget_in_napari_and_magicgui.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/13_widget_in_napari_and_magicgui.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/14_threshold_widget.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/14_threshold_widget.gif
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/1_create_widget.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/1_create_widget.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/2_create_widget.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/2_create_widget.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/3_create_widget.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/3_create_widget.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/4_available_layouts.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/4_available_layouts.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/5_scaled_widgets.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/5_scaled_widgets.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/6_spacers.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/6_spacers.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/7_drop_spacers.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/7_drop_spacers.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/8_drop_spacers2.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/8_drop_spacers2.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/9_vertical_layout.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/qtdesigner_and_magicgui/imgs/9_vertical_layout.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/detection.yaml:
--------------------------------------------------------------------------------
1 | path: E:/BiAPoL/yolo_demo/dataset # dataset root dir
2 | train: train/images # train images (relative to 'path') 128 images
3 | val: val/images # val images (relative to 'path') 128 images
4 | test: test/images # test images (optional)
5 |
6 | names:
7 | 0: cell
8 | 1: compacted
9 | 2: spheroid
10 | 3: dead
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/PR_curve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/PR_curve.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/annotate.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/annotate.gif
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/confusion_matrix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/confusion_matrix.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/confusion_matrix_normalized.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/confusion_matrix_normalized.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image1.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image2.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image2.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image3.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image3.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image4.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image4.PNG
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image5.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image6.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image7.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/image8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/image8.png
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/labels.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/labels.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/train_batch0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/train_batch0.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/val_batch1_labels.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/val_batch1_labels.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/val_batch1_pred.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/val_batch1_pred.jpg
--------------------------------------------------------------------------------
/docs/johannes_mueller/yolo_from_omero/imgs/well_102_t0_x2671.34_y1437.11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/johannes_mueller/yolo_from_omero/imgs/well_102_t0_x2671.34_y1437.11.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_11.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_12.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/1_mambaforge_download_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_3.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mac_install_4.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_3.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_4.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_5.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_6.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_mambaforge_install_7.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_3.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_4.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_5.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_6.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/2_miniforge_install_7.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/3_envs_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/3_envs_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/3_envs_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/3_envs_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/4_devbio_napari_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/4_devbio_napari_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_3.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/5_jupyter_4.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/6_install_seaborn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_mambaforge_and_python/imgs/6_install_seaborn.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/1_miniforge_download_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/1_miniforge_download_12.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_3.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_mac_install_4.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_3.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_4.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_5.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_6.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/2_miniforge_install_7.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/3_envs_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/3_envs_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/3_envs_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/3_envs_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/4_devbio_napari_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/4_devbio_napari_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_1.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_3.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/5_jupyter_4.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/6_install_seaborn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/6_install_seaborn.png
--------------------------------------------------------------------------------
/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/6_install_seaborn_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/mara_lampert/getting_started_with_miniforge_and_python/imgs/6_install_seaborn_2.png
--------------------------------------------------------------------------------
/docs/mara_lampert/readme.md:
--------------------------------------------------------------------------------
1 | # Mara Lampert
2 |
3 |
4 |
5 | ## Blog posts
6 |
7 | Hi! My name is Mara and I studied Molecular Biology and Biotechnology at TU Dresden. During my studies, I learned more about animals, plants and microbes and how they work than about computers. But in the context of the module, _Bioinformatics_, I had a very engaging lecture about Bio-image Analysis held by Robert. This gave the impulse for me diving deeper into computer science and image analysis.
8 |
9 | In 2022, I became part of the Bio-image Analysis Group of Robert Haase at Physics of Life (PoL) in Dresden. First as a student assistant, now as a research assistant. My aim is to increase my knowledge about image analysis in python. I am excited about this interdisciplinary work and would like to facilitate and increase the exchange between computer scientists and biologists.
10 |
11 | Below is an index with all blogposts I already wrote, which will be updated with content every now and then.
12 |
13 | Enjoy coding!
14 |
15 | ## Blog posts
16 | * [Getting started with Mambaforge and Python ](getting_started_with_mambaforge_and_python/readme)
17 | * [Getting started with Miniforge and Python ](getting_started_with_miniforge_and_python/readme)
18 |
19 | ## Links
20 | * [BiA-PoL group website](https://physics-of-life.tu-dresden.de/en/research/technology-development-groups/bio-image-analysis)
21 | * [Mara on twitter](https://twitter.com/maralampert)
22 | * [Mara on github](https://github.com/marabuuu)
23 |
24 | [Imprint](../imprint)
25 |
26 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/21_Map_of_Tabuaeran_Kiribati_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/21_Map_of_Tabuaeran_Kiribati_blue.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/designer_stylesheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/designer_stylesheet.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/designer_stylesheet0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/designer_stylesheet0.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/flood_tool_gui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/flood_tool_gui.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool1.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool1b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool1b.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool2.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool3.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool4.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_flood_tool5.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_island_in_napari.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_island_in_napari.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_window.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/images/napari_window_in_napari.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf3/images/napari_window_in_napari.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/scripts/add_flood_tool.py:
--------------------------------------------------------------------------------
1 | import napari
2 | from skimage.io import imread
3 | from qtpy.QtWidgets import QMainWindow
4 | from qtpy import uic
5 | from pathlib import Path
6 |
7 | def flood(image, delta):
8 | new_level = delta*85
9 | label_image = image <= new_level
10 | label_image = label_image.astype(int)*13 # label 13 is blue in napari
11 | return(label_image, new_level)
12 |
13 | # Define the main window class
14 | class FancyGUI(QMainWindow):
15 | def __init__(self, napari_viewer): # include napari_viewer as argument (it has to have this name)
16 | super().__init__()
17 | self.viewer = napari_viewer
18 | self.UI_FILE = str(Path(__file__).parent / "flood_tool.ui") # path to .ui file
19 | uic.loadUi(self.UI_FILE, self) # load QtDesigner .ui file
20 |
21 | self.label_layer = None # stored label layer variable
22 | self.pushButton.clicked.connect(self.apply_delta)
23 |
24 | def apply_delta(self):
25 | image = self.viewer.layers['napari_island'].data # We chose to use the layer name to find the correct image layer
26 | delta = self.doubleSpinBox.value()
27 | label, level = flood(image, delta)
28 | if self.label_layer is None:
29 | self.label_layer = self.viewer.add_labels(label)
30 | else:
31 | self.label_layer.data = label
32 | self.horizontalSlider.setValue(level)
33 |
34 | viewer = napari.Viewer()
35 | napari_image = imread('../images/21_Map_of_Tabuaeran_Kiribati_blue.png') # Reads an image from file
36 | viewer.add_image(napari_image, name='napari_island') # Adds the image to the viewer and give the image layer a name
37 |
38 | flood_widget = FancyGUI(viewer) # Create instance from our class
39 | viewer.window.add_dock_widget(flood_widget, area='right') # Add our gui instance to napari viewer
40 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/scripts/flood_tool.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 288
10 | 76
11 |
12 |
13 |
14 |
15 | 288
16 | 76
17 |
18 |
19 |
20 | Flood Tool
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | 288
29 | 76
30 |
31 |
32 |
33 | -
34 |
35 |
36 | Qt::Vertical
37 |
38 |
39 |
40 | 20
41 | 40
42 |
43 |
44 |
45 |
46 | -
47 |
48 |
49 |
50 | 75
51 | true
52 |
53 |
54 |
55 | Represents current gray value
56 |
57 |
58 | Sea Level (dm):
59 |
60 |
61 |
62 | -
63 |
64 |
65 | false
66 |
67 |
68 |
69 | 0
70 | 14
71 |
72 |
73 |
74 | background-color : qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(0, 0, 255, 255));
75 |
76 |
77 |
78 | 0
79 |
80 |
81 | 255
82 |
83 |
84 | Qt::Horizontal
85 |
86 |
87 |
88 | -
89 |
90 |
91 |
92 | 30
93 | 20
94 |
95 |
96 |
97 | background-color: rgb(0, 0, 255);
98 | color: rgb(255, 255, 255);
99 | font: 75 12pt "MS Shell Dlg 2";
100 | border: 2px solid white;
101 | border-radius: 5px;
102 |
103 |
104 | Apply
105 |
106 |
107 |
108 | -
109 |
110 |
111 | 3.000000000000000
112 |
113 |
114 | 0.100000000000000
115 |
116 |
117 |
118 | -
119 |
120 |
121 |
122 | 75
123 | true
124 |
125 |
126 |
127 | Temperature (Δ°C)
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/scripts/functiongui_add_flood_tool.py:
--------------------------------------------------------------------------------
1 | import napari
2 | from skimage.io import imread
3 | from napari.types import ImageData, LabelsData, LayerDataTuple
4 | from magicgui.widgets import FunctionGui
5 |
6 | def flood(image: ImageData, delta: float=0, new_level: int=0) -> LayerDataTuple:
7 | new_level = delta*85
8 | label_image = image <= new_level
9 | label_image = label_image.astype(int)*13 # label 13 is blue in napari
10 | return((label_image, {'name': 'flood result','metadata': {'new_level':new_level}}))
11 |
12 | class MyGui(FunctionGui):
13 | def __init__(self):
14 | super().__init__(
15 | flood,
16 | call_button=False,
17 | auto_call=True,
18 | layout='vertical',
19 | param_options={'delta':
20 | {'label': 'Temperature Increase (Δ°C):',
21 | 'min': 0, 'max' : 3, 'step': 0.1},
22 | 'new_level':
23 | {'label':'Sea Level (dm):', 'widget_type':'Slider',
24 | 'min': 0, 'max' : 255, 'enabled' : False}}
25 | )
26 |
27 | def __call__(self):
28 | label_image = super().__call__()
29 | new_level = round(label_image[1]['metadata']['new_level'])
30 | self.new_level.value = new_level
31 |
32 |
33 | napari_image = imread('../images/21_Map_of_Tabuaeran_Kiribati_blue.png')
34 | viewer = napari.Viewer()
35 | viewer.add_image(napari_image, name='napari_island')
36 |
37 | flood_widget = MyGui()
38 | viewer.window.add_dock_widget(flood_widget, area='right')
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf3/scripts/magicgui_add_flood_tool.py:
--------------------------------------------------------------------------------
1 | import napari
2 | from skimage.io import imread
3 | from magicgui import magicgui
4 | from napari.types import ImageData, LabelsData
5 |
6 | def flood(image: ImageData, delta: float=0, new_level: int=0) -> LabelsData:
7 | new_level = delta*85
8 | label_image = image <= new_level
9 | label_image = label_image.astype(int)*13 # label 13 is blue in napari
10 | return(label_image)
11 |
12 | viewer = napari.Viewer()
13 | napari_image = imread('../images/21_Map_of_Tabuaeran_Kiribati_blue.png') # Reads an image from file
14 | viewer.add_image(napari_image, name='napari_island') # Adds the image to the viewer and give the image layer a name
15 |
16 | flood_widget = magicgui(flood, delta={'label': 'Temperature Increase (Δ°C):', # Create GUI with magicgui
17 | 'min': 0, 'max' : 3, 'step': 0.1},
18 | new_level={'label':'Sea Level (dm):', 'widget_type':'Slider',
19 | 'min': 0, 'max' : 255, "enabled": False},
20 | auto_call=True)
21 |
22 | # Thalley Lambert contributed to the annotated function below
23 | @flood_widget.delta.changed.connect # Connect a function to delta (spinbox widget)
24 | def update_level(delta: float):
25 | flood_widget.new_level.value = delta * 85 # Update slider when spinbox changes
26 |
27 | viewer.window.add_dock_widget(flood_widget, area='right') # Add our gui instance to napari viewer
28 |
29 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/cookiecutter_questions1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/cookiecutter_questions1.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/cookiecutter_questions2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/cookiecutter_questions2.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/directory_items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/directory_items.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_PR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_PR.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_commit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_commit.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_merge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_merge.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_v1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/flood_plugin_v1.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/github_desktop1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/github_desktop1.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/github_desktop1b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/github_desktop1b.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/github_desktop1c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/github_desktop1c.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/github_release.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/github_release.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/github_repo_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/github_repo_page.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/napari_plugin1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/napari_plugin1.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/images/new_branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/entry_user_interf4/images/new_branch.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/entry_user_interf4/scripts/flood_tool.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 288
10 | 76
11 |
12 |
13 |
14 |
15 | 288
16 | 76
17 |
18 |
19 |
20 | Flood Tool
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | 288
29 | 76
30 |
31 |
32 |
33 | -
34 |
35 |
36 | 255
37 |
38 |
39 |
40 | -
41 |
42 |
43 | Qt::Vertical
44 |
45 |
46 |
47 | 20
48 | 40
49 |
50 |
51 |
52 |
53 | -
54 |
55 |
56 | Gray value (0-255):
57 |
58 |
59 |
60 | -
61 |
62 |
63 |
64 | 0
65 | 14
66 |
67 |
68 |
69 | background-color : qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 255, 255, 255), stop:1 rgba(0, 0, 255, 255));
70 |
71 |
72 |
73 | 0
74 |
75 |
76 | 255
77 |
78 |
79 | Qt::Horizontal
80 |
81 |
82 |
83 | -
84 |
85 |
86 | Represents current gray value
87 |
88 |
89 | Water Level:
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/data/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/data/Results_black.csv:
--------------------------------------------------------------------------------
1 | ,Area,Mean,Circ.,AR,Round,Solidity
2 | 1,84,148.548,0.880,1.304,0.767,0.880
3 | 2,32,164.250,0.991,1.224,0.817,0.901
4 | 3,89,159.494,0.643,1.476,0.678,0.802
5 | 4,21,172.714,1.000,1.116,0.896,0.857
6 | 5,35,153.429,0.897,1.082,0.924,0.854
7 | 6,32,166.125,0.991,1.242,0.805,0.889
8 | 7,43,177.349,0.585,1.960,0.510,0.761
9 | 8,25,178.560,0.714,2.781,0.360,0.820
10 | 9,27,173.778,0.836,1.255,0.797,0.818
11 | 10,23,174.043,0.824,1.803,0.555,0.807
12 | 11,50,149.300,0.681,2.690,0.372,0.833
13 | 12,72,155.736,0.625,2.594,0.386,0.823
14 | 13,70,145.400,0.857,1.531,0.653,0.843
15 | 14,93,137.892,0.720,1.741,0.575,0.849
16 | 15,35,162.343,0.809,1.908,0.524,0.909
17 | 16,73,139.726,0.907,1.205,0.830,0.896
18 | 17,27,158.111,1.000,1.316,0.760,0.885
19 | 18,21,174.905,1.000,1.147,0.872,0.933
20 | 19,32,192.344,0.710,1.463,0.684,0.800
21 | 20,30,158.433,0.769,1.306,0.765,0.800
22 | 21,637,169.868,0.362,1.795,0.557,0.696
23 | 22,108,141.444,0.730,1.260,0.794,0.847
24 | 23,29,161.828,0.784,1.872,0.534,0.841
25 | 24,47,164.979,0.654,1.781,0.561,0.740
26 | 25,35,167.257,0.777,1.430,0.699,0.833
27 | 26,133,139.609,0.592,2.793,0.358,0.850
28 | 27,239,118.322,0.683,1.174,0.852,0.823
29 | 28,31,153.968,0.838,1.189,0.841,0.861
30 | 29,23,163.435,1.000,1.227,0.815,0.902
31 | 30,57,136.965,0.839,1.449,0.690,0.857
32 | 31,65,155.846,0.730,1.330,0.752,0.807
33 | 32,56,167.000,0.775,1.509,0.663,0.903
34 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/data/Results_white.csv:
--------------------------------------------------------------------------------
1 | ,Area,Mean,Circ.,AR,Round,Solidity
2 | 1,38,247.289,0.819,1.844,0.542,0.927
3 | 2,173,246.769,0.877,1.251,0.799,0.945
4 | 3,168,247.048,0.985,1.101,0.908,0.944
5 | 4,406,247.493,0.747,1.820,0.549,0.899
6 | 5,188,246.362,0.934,1.184,0.844,0.938
7 | 6,186,246.253,0.946,1.187,0.842,0.947
8 | 7,419,247.439,0.711,1.607,0.622,0.866
9 | 8,32,242.000,1.000,1.000,1.000,0.941
10 | 9,76,245.855,0.944,1.212,0.825,0.916
11 | 10,173,247.329,0.860,1.716,0.583,0.930
12 | 11,170,246.035,0.949,1.088,0.919,0.934
13 | 12,105,246.448,0.997,1.159,0.863,0.959
14 | 13,135,246.556,0.960,1.227,0.815,0.931
15 | 14,54,243.926,0.933,1.544,0.648,0.908
16 | 15,300,245.730,0.588,1.869,0.535,0.800
17 | 16,58,246.259,1.000,1.371,0.730,0.935
18 | 17,397,245.781,0.600,2.321,0.431,0.844
19 | 18,163,245.233,0.879,1.336,0.748,0.918
20 | 19,152,244.987,0.892,1.271,0.787,0.918
21 | 20,121,245.298,0.937,1.113,0.899,0.931
22 | 21,166,246.422,0.959,1.031,0.970,0.951
23 | 22,41,244.634,1.000,1.009,0.991,0.932
24 | 23,45,244.844,0.658,3.012,0.332,0.957
25 | 24,352,246.517,0.776,1.800,0.556,0.890
26 | 25,86,245.174,0.832,1.962,0.510,0.896
27 | 26,203,247.000,0.933,1.133,0.882,0.938
28 | 27,180,245.500,0.795,1.866,0.536,0.902
29 | 28,265,246.706,0.868,1.309,0.764,0.923
30 | 29,69,243.362,0.939,1.261,0.793,0.908
31 | 30,197,245.289,0.926,1.178,0.849,0.934
32 | 31,47,246.255,1.000,1.150,0.870,0.931
33 | 32,105,245.857,0.984,1.164,0.859,0.938
34 | 33,147,244.905,0.967,1.179,0.849,0.930
35 | 34,156,245.019,0.949,1.193,0.838,0.929
36 | 35,206,245.641,0.803,1.443,0.693,0.866
37 | 36,149,244.832,0.965,1.139,0.878,0.937
38 | 37,139,245.914,0.868,1.410,0.709,0.894
39 | 38,302,246.219,0.728,2.135,0.468,0.891
40 | 39,106,245.085,0.841,1.585,0.631,0.938
41 | 40,141,245.525,0.938,1.104,0.906,0.919
42 | 41,209,245.780,0.615,2.447,0.409,0.857
43 | 42,171,245.959,0.954,1.046,0.956,0.947
44 | 43,64,245.578,0.998,1.220,0.820,0.928
45 | 44,52,242.981,1.000,1.272,0.786,0.912
46 | 45,133,244.940,0.946,1.230,0.813,0.930
47 | 46,362,245.760,0.602,2.134,0.469,0.815
48 | 47,161,244.851,0.979,1.162,0.861,0.944
49 | 48,98,246.418,0.961,1.153,0.867,0.929
50 | 49,77,246.948,0.791,2.049,0.488,0.928
51 | 50,166,244.645,0.950,1.267,0.789,0.933
52 | 51,162,244.265,0.960,1.153,0.867,0.950
53 | 52,162,244.728,0.975,1.043,0.959,0.931
54 | 53,373,245.188,0.753,1.808,0.553,0.878
55 | 54,116,246.328,0.977,1.038,0.963,0.939
56 | 55,251,245.112,0.847,1.545,0.647,0.909
57 | 56,350,245.171,0.705,2.054,0.487,0.871
58 | 57,170,245.759,0.865,1.215,0.823,0.916
59 | 58,161,245.174,0.944,1.119,0.894,0.923
60 | 59,168,244.792,0.897,1.141,0.876,0.913
61 | 60,36,245.167,1.000,1.186,0.843,0.935
62 | 61,184,245.870,0.894,1.196,0.836,0.936
63 | 62,82,246.500,0.659,2.630,0.380,0.943
64 | 63,150,244.060,0.961,1.132,0.883,0.923
65 | 64,293,246.276,0.760,1.655,0.604,0.904
66 | 65,155,244.219,0.753,1.942,0.515,0.891
67 | 66,193,244.280,0.907,1.282,0.780,0.923
68 | 67,198,245.273,0.952,1.149,0.870,0.934
69 | 68,125,243.456,0.952,1.063,0.941,0.933
70 | 69,152,243.842,0.934,1.287,0.777,0.944
71 | 70,47,245.234,1.000,1.172,0.853,0.931
72 | 71,38,244.079,1.000,1.159,0.863,0.950
73 | 72,126,243.397,0.921,1.277,0.783,0.940
74 | 73,106,243.594,0.904,1.303,0.768,0.951
75 | 74,136,245.456,0.915,1.308,0.764,0.941
76 | 75,134,243.433,0.927,1.110,0.901,0.931
77 | 76,264,243.477,0.632,2.033,0.492,0.822
78 | 77,174,244.707,0.873,1.306,0.766,0.941
79 | 78,148,243.534,0.868,1.045,0.957,0.908
80 | 79,166,244.500,0.845,1.285,0.778,0.917
81 | 80,138,243.312,0.861,1.503,0.665,0.896
82 | 81,136,244.044,0.881,1.215,0.823,0.922
83 | 82,105,245.476,0.953,1.120,0.893,0.929
84 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/TEM_filter_sample_and_overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/TEM_filter_sample_and_overlay.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/jamovi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/jamovi-icon.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen0.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen0.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen1.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen1.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen2.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen2.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen3a.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen3a.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen3b.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen3b.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen4a.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen4a.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen4b.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen4b.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen4c.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen4c.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen5a.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen5a.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen6.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen6.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen7.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen7.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/images/screen7b.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/jamovi/images/screen7b.PNG
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/jamovi/jamovi.md:
--------------------------------------------------------------------------------
1 | # Jamovi: statistical analysis made visual and easy (powered with R)
2 | [Marcelo Zoccoler](../readme), October 7th 2021
3 |
4 | Statistical analysis software exist for decades. So why care about "just another one". Well, for one main reason: simplicity. And I mean simplicity by a clean interface and an easy usage. Besides that, [Jamovi](https://www.jamovi.org/) is open-source and developed in R, a powerful programming language to perform statistical tests.
5 |
6 | Almost every field in science uses statistical analysis as a tool to validate or refuse a hypothesis. Thus, popular commercial software, like [SPSS](https://www.ibm.com/analytics/spss-statistics-software), [SAS](https://www.sas.com/en_us/home.html), [Origin](https://www.originlab.com/), [Stata](https://www.stata.com/), [Prism](https://www.graphpad.com/scientific-software/prism/), as well as Excel itself, have been and are used. They are all very powerful platforms, but their initial interface with too many menus and buttons may intimidate new users (besides the price). There is a free similar option to SPSS called [PSPP](https://www.gnu.org/software/pspp/), but since it mimics the latter, their interfaces are similar.
7 | Another options would be using programming languages like [Python](https://www.python.org/) and [R](https://www.r-project.org/), but that still wards off all non-programmers.
8 |
9 | Recently, two options free and open-source emerged as a solution to this: [JASP](https://jasp-stats.org/) and [Jamovi](https://www.jamovi.org/). They are very much alike, but here I will focus on this last one for no particular reason.
10 |
11 | Since I work with image analysis, I will use Jamovi to compare features of different elements in the following image (a sample from [imageJ](https://imagej.net/software/fiji/) called "TEM_filter_sample"). Let's suppose I did 2 distinct segmentations and I want to compare the shapes of the black elements (yellow contour) against the white elements (red contour):
12 |
13 | 
14 |
15 | Then I saved 2 [tables](https://github.com/BiAPoL/blog/raw/master/marcelo_zoccoler/jamovi/data) (as .csv files) containing data about shape descriptors.
16 |
17 | ## Installing Jamovi
18 |
19 | Just download it from the [website](https://www.jamovi.org/) and follow standard installation steps.
20 | There are also a [user guide](https://www.jamovi.org/user-manual.html) and [other tutorials](https://www.jamovi.org/community.html) there!
21 |
22 | ## Using Jamovi
23 |
24 | Open Jamovi and you will see a screen like the one shown below:
25 |
26 | 
27 |
28 | It is hardly possible to have a starting screen simpler than that. You have 4 tabs: Variables, Data, Analysis and Edit. And a split screen: left, where your data will live, and right, where the results will show up.
29 |
30 | ## Importing your data
31 |
32 | You could type your data yourself in the left side, but since we already have our data from elsewhere, let's import it. On the top left, click on the 3 dashes symbol and then click on "Import". You should get a screen like this one:
33 |
34 | 
35 |
36 | Browse your data folder. Now, if you want to import data from 2 or more files, like in this case, it is important to press CTRL/CMD and click on every file before clicking on the "Import" button at the bottom.
37 |
38 | If you used the tables I provided in this example, you may notice some empty columns A, B and C, which were already there before importing the files. Let's delete those variables by clicking on "Variables", selecting them and clicking on "Delete".
39 |
40 | 
41 |
42 | ## Descriptive analysis
43 |
44 | Now we are ready for analysis! It is always a good idea to take a look at the data before performing statistical tests. So, let's go to "Analysis -> Exploration" and observe descriptors about a certain feature. In our case, we are interested in Circularity, so click on the variable "Circ." and then click on the arrow at the top to put this feature in the "Variables" box. We also want to see this feature separated by our black/white elements, so click on the variable "source" and then click on the second arrow to put it in the "Split by" box. You will already see a table on the right side showing some statistics like mean, median, etc.
45 |
46 | 
47 |
48 | You can also add plots!
49 |
50 | 
51 |
52 | ## Hypothesis testing: T-tests
53 |
54 | Then let's do a t-test. Go to "Analyses -> T-tests -> Independent Samples T-Test".
55 |
56 | 
57 |
58 | Since our data seems to be not normally distributed, we will perform a [Mann-Whitney U test](https://en.wikipedia.org/wiki/Mann%E2%80%93Whitney_U_test) (shown below in red). We can also perform [normality](https://en.wikipedia.org/wiki/Normal_distribution) and [homoscedasticity](https://en.wikipedia.org/wiki/Homoscedasticity) tests to check our assumptions (shown in green).
59 |
60 | 
61 |
62 | And generate plots related to the [t-test](https://en.wikipedia.org/wiki/Student%27s_t-test) (check "Descriptive plots" below in red) and a [Q-Q plot](https://en.wikipedia.org/wiki/Q%E2%80%93Q_plot) (shown in green).
63 |
64 | 
65 |
66 | ## Correlation analysis
67 |
68 | Another analysis we could run is [correlation](https://en.wikipedia.org/wiki/Correlation). Let's check if roundness and aspect ratio are correlated.
69 | In the Analyses tab, click "Regression -> Correlation Matrix". Then just assign the variables "Round" and "AR" to right box, choose the correlations you want, like Pearson and Spearman, and activate some plot by checking checkboxes.
70 |
71 | 
72 |
73 | We can see that they are negatively correlated, as one would expect by examining their [documentation](https://imagej.nih.gov/ij/docs/menus/analyze.html).
74 |
75 | ## Editing
76 |
77 | All figures and tables produced can be exported or removed by right-clicking on them. Jamovi allows just a small amount of layout editing. If you click on the three dots at the upper right corner, you can change zoom, color palette and also enable "Syntax mode", which then display the R code responsible for executing the tests and generating the plots.
78 |
79 | 
80 |
81 | ## Extra features
82 |
83 | Finally, extra functionality and tests that might be missing with the standard installation can be added as plugins. For instance, if one wants to perform power analysis, this can be done by clicking on the "+ Modules" button at the top right. Then, a list of plugins is displayed for installation.
84 |
85 | 
86 |
87 | If you install "jpower" for example, the new module appears as an extra button right next to the other analyses.
88 |
89 | 
90 |
91 | You can find more information in their [documentation](https://jamovi.readthedocs.io/en/latest/index.html).
92 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/mini_sabbatical_rike/Readme.md:
--------------------------------------------------------------------------------
1 | # Mini-Sabbatical Experience at Bia-PoL
2 | Friederike Kessel, February 28th 2022
3 |
4 | Hello, my name is Rike. For the last four years I have been a PhD student in experimental nephrology at the University Hospital Carl Gustav Carus in Dresden. During this time I started diving into the possibilities of bioimage analysis with Fiji. By using the ImageJ Macro language I helped colleagues to automatize workflows for the quantification of fluorescent signals in histology and intravital microscopy in mice.
5 |
6 | I contacted Robert at the BiAPoL because I was looking for something different, interesting to do for a short time between finishing my PhD and starting a new job as PostDoc in the field of neuroregeneration. Surprisingly, he already had the concept of a mini-sabbatical for this kind of scenario in mind – so for four weeks in November 2021 I joined him and his group for some exploration in the field of bioimage analysis.
7 |
8 | After some general brainstorming with Robert about what I was interested in, plus what might actually be relevant for my future position, I got started. I got a desk in the office together with Marcelo and Johannes. Everyone was very supportive and I could simply try and get into new plugins – just the things I never had the time or headspace to fully explore during my PhD. The main new topics included the general use of GitLab for project specific communication, tracking of cells in 4D with Trackmate and Mastodon in ImageJ, setting up and using Napari (for the first time) for segmentation of cells with StarDist 3D, including unsupervised clustering of these datasets with the napari-clusters-plotter. Although halfway through the sabbatical the pandemic situation in saxony drastically worsened and everyone was eager to work from home again, the regular coffee breaks in online meetings still made me feel like I was part of a team. I am very grateful for Robert’s, Marcelo’s and Johannes’ time, patience and the expertise they willingly shared with me.
9 |
10 | In conclusion I can only say: A mini-sabbatical, especially in a non-pressure environment, is the prefect way to gain new perspectives and connect with other scientists. I definitely recommend the general concept itself, and Robert’s group specifically - for anyone, from students to group leaders. I really hope that I will be able to repeat this experience in the future.
11 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen1.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen2.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen3.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen4.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen5.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/omero_scripts/figures/omero_screen6.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/figures/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/marcelo_zoccoler/omero_scripts/figures/refresh.png
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/omero_scripts/readme.md:
--------------------------------------------------------------------------------
1 | # Running Deep-Learning Scripts in the BiA-PoL Omero Server
2 | [Marcelo Zoccoler](../readme), May 2nd 2022
3 |
4 | ## Omero Server
5 |
6 | OMERO is client-server software for managing, visualizing and analyzing microscopy images and associated metadata. Once configured, it can be accessed from a few different interfaces, which are:
7 | - A command line;
8 | - A web browser;
9 | - A Desktop application.
10 |
11 | Viewing images and running scripts can be done from any of these interfaces, but importing images to the server can only be done via command line or the desktop application. Thus, in this tutorial, we show
12 | 1. how to load data using the desktop application, called Omero Insight;
13 | 2. how to run a script for deep-learning (Stardist 2D) through the browser.
14 |
15 | ## Getting access to the BiA-PoL Omero Server
16 |
17 | The Bio-Image Analysis group from the Physics of Life Cluster of Excellence has an Omero server. If you have access to your own omero server, you may skip to the next section.
18 |
19 | Access to the BiA-PoL Omero server may be provided to local users through the following steps:
20 |
21 | 1. Contact BiA-PoL members to check if you are allowed to get access to the server by email.
22 | 2. One of the BiA-PoL members will ask the IT department to create an account for you. You need a ZIH account for that.
23 | 3. Configure a VPN access by following [these instructions](https://intranet.crt-dresden.de/it-department/external-access.html).
24 | 4. Connect to the "Biotec Crtd Journal Access" VPN.
25 |
26 | ## Importing data to the Omero Server
27 |
28 | As mentioned before, you can import data to the server either via command line or via the Desktop Client. Here, we will explain the second option (Omero Insight application).
29 | The Omero webpage has a good step-by-step tutorial of how to import images to the server using the Desktop client application `Omero.insight`. When asked (step 2 of the link below), provide your omero server address. For the BiA-PoL server, the address is https://omero-int.biotec.tu-dresden.de .
30 |
31 | - [Import data using the Desktop Client](https://omero-guides.readthedocs.io/projects/upload/en/latest/import-desktop-client.html#setup)
32 |
33 | After installing Omero Insight and loading some images, you can access the server from Omero Insight, from command line or from the browser. From this point forward, we will only be accessing it from the browser. The server address from the browser is slightly different: https://omero-web.biotec.tu-dresden.de . There, provide the same ZIH username and password to connect to the server. Remember to be connected to the VPN!
34 |
35 | ## Running Omero Scripts
36 |
37 | After logging in, you should get to the following screen:
38 |
39 | 
40 |
41 | Images in Omero are usually organized as:
42 | ```
43 | User/Client
44 | └──Project
45 | | └──Dataset
46 | | └──Images
47 | └──Orphaned Images
48 | ```
49 |
50 | The Orphaned Images is the place where images are stored if they have no Project associated to them. You can browse through this file structure by clicking on the `+` buttons to open these directories. Once you reach the Dataset level, you can see image thumbnails in the main panel. If you click on them, you can get the corresponding information on the right side. One of the most important properties is the Project/Dataset/Image ID (magenta arrow in the figure below), which you will usually need to provide to scripts.
51 |
52 | 
53 |
54 | Omero scripts can be run by clicking on the small button with two gears on top of the screen (magenta square). A pop-up menu should open where you can select the origin of your scripts (`omero` or `CMCB`).
55 |
56 | 
57 |
58 | In `omero`, you can run the standard omero scripts. If you are logged to BiA-PoL omero server, you also have access to run one of the plugins we are developing in `CMCB`. Most of them are work in progress, that is why you may find names starting with 'testing'. In this tutorial, we will use "apply_stardist2D". Clicking on it open a new small window:
59 |
60 |
61 |
62 | There you should provide 3 parameters: the "Data Type" (Dataset or Image), the corresponding ID and one of the pretrained Stardist2D models. Then, click on the "Run Script" button. The Activities window (magenta square below) should pop-up on the top, indicating the status of execution. After the script finish running, it should look like this:
63 |
64 |
65 |
66 | You can download the "Info" (green arrow above) and "Error" (cyan arrow above) as text files. "Error" may contain errors or, in this case, just some warnings that can be ignored. "Info" contains information returned from print statements within the script.
67 |
68 | The resulting labeled image may not be visible after that. If that is the case, refresh the files by clicking on the refresh button:
69 |
70 |
71 |
72 | 
73 |
74 | The output image should now appear in the same place as the input image/dataset. It gets the name 'label_2D' + the chosen model + the input image name. It also gets some tags and key/pair values assigned to it to indicate how it was produced (right side panel).
75 |
76 | That's it! You ran a server-side custom script and got its outputs.
77 |
--------------------------------------------------------------------------------
/docs/marcelo_zoccoler/readme.md:
--------------------------------------------------------------------------------
1 | # Marcelo Zoccoler
2 |
3 | 
4 |
5 | Hi! My name is Marcelo and I am an Electrical Engineer who has specialized in Life Sciences and Image Analysis!
6 | Most of my work has been done on tools and software for image analysis focused on microscopy data.
7 |
8 | During my Masters and PhD in Biomedical Engineering, I have worked with measuring microtubules stiffness by image analysis and modeling at UJF (now Université Grenoble Alpes) in France. After that, I have performed experiments with single cardiomyocytes under electrical fields in a [fluorescence microscope that was assembled by our group](https://doi.org/10.1007/978-3-319-19387-8_318) at UNICAMP in Brazil. There, I started developing algorithms and software for bio-image analysis in MATLAB and Python. I also used a lot of Fiji as well! The goals were to quantify calcium concentration and membrane potential in these cells. Since some of these signals are very weak, I developed a software to extract these signals from noisy images called [METROID](https://doi.org/10.1186/s12859-020-03661-9). Most recently, I have contributed to develop a software called [PoET](https://doi.org/10.1093/bioadv/vbab037) that automatically measures Giant Unilamellar Vesicles (GUV) pores and I have designed an online simulator as a tool to teach students about electrochemical balance across a semipermeable membrane.
9 |
10 | Since 2021, as a researcher for the Bio-image Analysis Technology Development group (BiA-PoL) at the DFG Cluster of Excellence “Physics of Life” at TU Dresden, I am developing courses and tools, mostly in Python and Fiji, that are intended to break down the barriers that biologists and biophysicists might experience when delving into the data science jungle. Below you will find some links to content related to my studies and how to find me.
11 |
12 | # Blog posts
13 |
14 | * [Jamovi: statistical analysis made visual and easy (powered with R)](jamovi/jamovi)
15 | * [Creating advanced GUIs for napari](entry_user_interf3/Readme)
16 | * [Turning napari GUI into plugins](entry_user_interf4/Readme)
17 |
18 | # Links
19 | *
[BiA-PoL website](https://physics-of-life.tu-dresden.de/en/research/core-groups/bio-image-analysis)
20 | *
[Twitter](https://twitter.com/zoccolermarcelo)
21 | *
[Github](https://github.com/zoccoler)
22 | *
[ResearchGate](https://www.researchgate.net/profile/Marcelo-Zoccoler)
23 |
--------------------------------------------------------------------------------
/docs/people.md:
--------------------------------------------------------------------------------
1 | # BiA-PoL blog authors
2 |
3 | * [Robert Haase](/robert_haase/readme)
4 | * [Ryan Savill](/ryan_savill/readme)
5 | * [Marcelo Zoccoler](/marcelo_zoccoler/readme)
6 | * [Johannes Müller](/johannes_mueller/Readme)
7 | * [Mara Lampert](/mara_lampert/readme)
8 | * [Stefan Hahmann](/stefan_hahmann/readme)
9 |
10 | [Imprint](/imprint)
11 |
--------------------------------------------------------------------------------
/docs/robert_haase/browsing_idr/idr_api/idr1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/browsing_idr/idr_api/idr1.png
--------------------------------------------------------------------------------
/docs/robert_haase/browsing_idr/idr_api/idr2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/browsing_idr/idr_api/idr2.png
--------------------------------------------------------------------------------
/docs/robert_haase/browsing_idr/idr_api/idr3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/browsing_idr/idr_api/idr3.png
--------------------------------------------------------------------------------
/docs/robert_haase/browsing_idr/idr_api/idr4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/browsing_idr/idr_api/idr4.png
--------------------------------------------------------------------------------
/docs/robert_haase/browsing_idr/idr_api/idr_collab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/browsing_idr/idr_api/idr_collab.png
--------------------------------------------------------------------------------
/docs/robert_haase/browsing_idr/idr_api/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/browsing_idr/idr_api/img_1.png
--------------------------------------------------------------------------------
/docs/robert_haase/browsing_idr/idr_api/img_1_thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/browsing_idr/idr_api/img_1_thumbnail.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab1.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab10.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab11.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab2.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab3a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab3a.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab3b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab3b.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab4.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab5.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab6.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab7.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab8.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/colab9.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/restart_runtime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/clesperanto_google_colab/clesperanto_colab/restart_runtime.png
--------------------------------------------------------------------------------
/docs/robert_haase/clesperanto_google_colab/readme.md:
--------------------------------------------------------------------------------
1 | # GPU-accelerated image processing in the cloud using Google Colab and clEsperanto
2 | [Robert Haase](../readme), June 5th 2021
3 |
4 | Not every computer has a powerful graphics processing unit (GPU) and thus,
5 | it might make sense to use cloud computing, e.g. provided by Google. In this
6 | blog post I give a short intro into Google Colab and how to enable
7 | GPU-accelerated image processing in the cloud using [clEsperanto](https://clesperanto.net).
8 |
9 | See also
10 | * [Getting Started With Google Colab by Anne Bonner](https://towardsdatascience.com/getting-started-with-google-colab-f2fff97f594c)
11 | * [clEsperanto count blobs tutorial](https://nbviewer.jupyter.org/github/clEsperanto/pyclesperanto_prototype/blob/master/demo/basics/count_blobs.ipynb)
12 |
13 | ## Step 1: Create a new notebook
14 | Go to [https://colab.research.google.com/](https://colab.research.google.com/)
15 | and click on `New Notebook`
16 | 
17 |
18 | ## Step 2: Activate access to a GPU
19 | In the `Runtime` menu, click on `Change runtime type`
20 | 
21 |
22 | The dialog allows you to select hardware accelerators. Select `GPU` and click on `Save`.
23 | 
24 |
25 | ## Step 4: Install pyclesperanto
26 | For installing pyclesperanto, enter this code in a cell and hit SHIFT-ENTER.
27 | ```
28 | !pip install pyclesperanto_prototype
29 | ```
30 | 
31 |
32 | After installation, you may read a message asking you to restart your kernel. If so, click on 'Restart Runtime'.
33 | 
34 |
35 | Afterwards, test the installation by printing out which GPU-device is selected:
36 | ```
37 | import pyclesperanto_prototype as cle
38 |
39 | cle.get_device()
40 | ```
41 | 
42 |
43 | ## Step 4: Testing image processing
44 | For processing an image, we use scikit-image to load it from the cloud first
45 | ```
46 | from skimage.io import imread
47 |
48 | image = cle.push(imread('https://samples.fiji.sc/blobs.png'))
49 | image.shape
50 | ```
51 | and clesperantos' `imshow` function to visualize it:
52 | 
53 |
54 | An image processing workflow using the GPU looks for example like this:
55 | ```
56 | blurred = cle.gaussian_blur(image, sigma_x=2, sigma_y=2)
57 | binary = cle.threshold_otsu(blurred)
58 | labels = cle.connected_components_labeling_box(binary)
59 | ```
60 | Label images can be visualized with `cle.imshow` as well by providing the parameter `labels=True`.
61 | ```
62 | cle.imshow(labels, labels=True)
63 | ```
64 | 
65 |
66 | ## Step 5: Connecting google drive
67 | For saving image processing results to our google drive, we need to connect to it:
68 | ```
69 | from google.colab import drive
70 | drive.mount('/content/gdrive')
71 | ```
72 | The procedure involves creating an authorization code.
73 | In order to generate it, click on the provided link and follow the instructions.
74 | Give access to your Google drive to Google Colab:
75 | 
76 | Afterwards, copy the authorization code by clicking the `copy to clipboard` button
77 | 
78 | and paste the code in the respective field in your notebook:
79 | 
80 | After the connection was established successfully, you can save to your google drive like this:
81 |
82 | 
83 | ```
84 | from skimage.io import imsave
85 | imsave('/content/gdrive/My Drive/labels.tif', cle.pull(labels))
86 | ```
87 | You will then see the saved file in your google drive:
88 | 
89 |
90 | ## Hints
91 |
92 | ### Sharing notebooks via github.com
93 | If you have a [github](https://github.com) account, you can upload a notebook also to a github repository.
94 | Afterwards, you can enter the location of the repository into a google colab link to share it with collaborators:
95 |
96 | For example, a notebook on github.com can have this URL:
97 | ```
98 | https://github.com/clEsperanto/pyclesperanto_google_colab/blob/main/interactive_example.ipynb
99 | ```
100 | and the corresponding Google Colab address looks like this:
101 | ```
102 | https://colab.research.google.com/github/clEsperanto/pyclesperanto_google_colab/blob/main/interactive_example.ipynb
103 | ```
104 | [Try it out!](https://colab.research.google.com/github/clEsperanto/pyclesperanto_google_colab/blob/main/interactive_example.ipynb)
105 |
106 | ### How much memory does my GPU have?
107 | You can read how much memory is available from the device object.
108 | Divide the value three times by 1024 to get the amount of memory in giga bytes.
109 | ```
110 | dev = cle.get_device()
111 | dev.device.global_mem_size / 1024 / 1024 / 1024
112 | ```
113 |
114 | ### How much memory is currently in use?
115 | If you are using an NVidia GPU, you can the [NVidia System Management Interface](https://developer.nvidia.com/nvidia-system-management-interface):
116 | ```
117 | !nvidia-smi
118 | ```
119 | It will give an overview about what's currently going on on your GPU:
120 | ```
121 | +-----------------------------------------------------------------------------+
122 | | NVIDIA-SMI 465.27 Driver Version: 460.32.03 CUDA Version: 11.2 |
123 | |-------------------------------+----------------------+----------------------+
124 | | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
125 | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
126 | | | | MIG M. |
127 | |===============================+======================+======================|
128 | | 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |
129 | | N/A 63C P0 30W / 70W | 106MiB / 15109MiB | 0% Default |
130 | | | | N/A |
131 | +-------------------------------+----------------------+----------------------+
132 |
133 | +-----------------------------------------------------------------------------+
134 | | Processes: |
135 | | GPU GI CI PID Type Process name GPU Memory |
136 | | ID ID Usage |
137 | |=============================================================================|
138 | +-----------------------------------------------------------------------------+
139 | ```
140 |
141 | # Disclosure
142 | When reading this blog post, please have in mind that I'm one of the core developers of [clesperanto](https://clesperanto.net). I may be biased on the one side and even more interested on feedback on the other side.
143 |
144 | # Acknowledgements
145 | I would like to thank Florian Jug and Wei Ouyang for introducing me to Google Colab and showing me tips and tricks.
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu1.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu2.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu3.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu4.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu5.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu6.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu7.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/cupy_cucim/cu8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/cupy_cucim/cupy_cucim/cu8.png
--------------------------------------------------------------------------------
/docs/robert_haase/cupy_cucim/readme.md:
--------------------------------------------------------------------------------
1 | # GPU-accelerated image processing using cupy and cucim
2 | [Robert Haase](../readme), June 6th 2021
3 |
4 | Processing large images with python can take time. In order to accelerate processing, graphics processing units (GPUs) can be exploited, for example using [NVidia CUDA](https://en.wikipedia.org/wiki/CUDA). For processing images with CUDA, there are a couple of libraries available. We will take a closer look at [cupy](https://cupy.dev/), which brings more general computing capabilities for CUDA compatible GPUs, and [cucim](https://github.com/rapidsai/cucim), a library of image processing specific operations using CUDA. Both together can serve as GPU-surrogate for [scikit-image](https://scikit-image.org/).
5 |
6 | See also
7 | * [StackOverflow: Is it possible to install cupy on google colab?](https://stackoverflow.com/questions/49135065/is-it-possible-to-install-cupy-on-google-colab)
8 | * [cupy basics tutorial](https://docs.cupy.dev/en/stable/user_guide/basic.html)
9 | * [cucim example notebooks](https://github.com/rapidsai/cucim/blob/branch-0.20/notebooks/Welcome.ipynb)
10 |
11 | Before we start, we need to install CUDA and CUCIM it properly. The following commands make this notebook run in Google Colab. Installation instructions for linux can be found [here](https://github.com/rapidsai/cucim) and [other operating systems are not supported](https://github.com/rapidsai/cucim/issues/60) at the time of writing this.
12 |
13 | ```shell
14 | !curl https://colab.chainer.org/install | sh -
15 |
16 | !pip install cucim
17 | !pip install scipy scikit-image cupy-cuda100
18 | ```
19 |
20 | You can also go through this blog post as a [google colab notebook](https://colab.research.google.com/github/biapol/blog/blob/master/robert_haase/cupy_cucim/cupy_cucim.ipynb)
21 |
22 | We can check the installation by importing all libraries we need.
23 | ```
24 | import numpy as np
25 | import cupy as cp
26 | import cucim
27 | from skimage.io import imread, imshow
28 | import pandas as pd
29 | ```
30 |
31 | In the following, we are using image data from Paci et al shared under the [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license. See also: https://doi.org/10.17867/10000140
32 |
33 | ```python
34 | image = imread('https://idr.openmicroscopy.org/webclient/render_image_download/9844418/?format=tif')
35 |
36 | imshow(image)
37 | ```
38 | 
39 |
40 | In order to process an image using CUDA on the GPU, we need to convert it. Under the hood of this conversion, the image data is sent from computer random access memory (RAM) to the GPUs memory.
41 | ```python
42 | image_gpu = cp.asarray(image)
43 |
44 | image_gpu.shape
45 | ```
46 | ```
47 | (640, 640, 3)
48 | ```
49 |
50 | Extracting a single channel out of the three-channel image works like if we were working with
51 | [numpy](https://numpy.org/).
52 | Showing the image using scikit-image `imshow` does not work, because the CUDA image is not available in memory.
53 | In order to get it back from GPU memory, we need to convert it to a numpy array.
54 | ```python
55 | single_channel_gpu = image_gpu[:,:,1]
56 |
57 | # the following line would fail
58 | # imshow(single_channel_gpu)
59 |
60 | # get single channel image back from GPU memory and show it
61 | single_channel = np.asarray(single_channel_gpu)
62 | imshow(single_channel)
63 | ```
64 | 
65 |
66 | We can also do this within a convenience function, making our following code shorter and easier to read.
67 | ```python
68 | def gpu_imshow(image_gpu):
69 | image = np.asarray(image_gpu)
70 | imshow(image)
71 | ```
72 |
73 | ## Image filtering and segmentation
74 |
75 | The [cucim developers](https://github.com/rapidsai/cucim/graphs/contributors) have re-implemented many functions from scikit image,
76 | e.g. the [Gaussian blur filter](https://docs.rapids.ai/api/cucim/stable/api.html#cucim.skimage.filters.gaussian),
77 | [Otsu Thresholding](https://docs.rapids.ai/api/cucim/stable/api.html#cucim.skimage.filters.threshold_otsu)
78 | after [Otsu et al. 1979](https://ieeexplore.ieee.org/document/4310076),
79 | [binary erosion](https://docs.rapids.ai/api/cucim/stable/api.html#cucim.skimage.morphology.binary_erosion)
80 | and [connected component labeling](https://docs.rapids.ai/api/cucim/stable/api.html#cucim.skimage.measure.label).
81 |
82 | ```python
83 | from cucim.skimage.filters import gaussian
84 |
85 | blurred_gpu = gaussian(single_channel_gpu, sigma=5)
86 |
87 | gpu_imshow(blurred_gpu)
88 | ```
89 |
90 | 
91 |
92 | ```python
93 | from cucim.skimage.filters import threshold_otsu
94 |
95 | # determine threshold
96 | threshold = threshold_otsu(blurred_gpu)
97 |
98 | # binarize image by apply the threshold
99 | binary_gpu = blurred_gpu > threshold
100 |
101 | gpu_imshow(binary_gpu)
102 | ```
103 |
104 | 
105 |
106 | ```python
107 | from cucim.skimage.morphology import binary_erosion, disk
108 |
109 | eroded_gpu = binary_erosion(binary_gpu, selem=disk(2))
110 |
111 | gpu_imshow(eroded_gpu)
112 | ```
113 |
114 | 
115 |
116 | ```python
117 | from cucim.skimage.measure import label
118 |
119 | labels_gpu = label(eroded_gpu)
120 |
121 | gpu_imshow(labels_gpu)
122 | ```
123 |
124 | 
125 |
126 |
127 | For visualization purposes, it is recommended to turn the label image into an
128 | [RGB](https://en.wikipedia.org/wiki/RGB_color_model) image, especially if you want to save it to disk.
129 | ```python
130 | from cucim.skimage.color import label2rgb
131 |
132 | labels_rgb_gpu = label2rgb(labels_gpu)
133 |
134 | gpu_imshow(labels_rgb_gpu)
135 | ```
136 |
137 | 
138 |
139 | ## Quantitative measurements
140 |
141 | Also quantitative measurements using [regionprops_table](https://docs.rapids.ai/api/cucim/stable/api.html#cucim.skimage.measure.regionprops_table) have been implemented in cucim. A major difference is that you need to convert its result back to numpy if you want to continue processing on the CPU, e.g. using [pandas](https://pandas.pydata.org/).
142 |
143 | ```python
144 | from cucim.skimage.measure import regionprops_table
145 |
146 | table_gpu = regionprops_table(labels_gpu, intensity_image=single_channel_gpu, properties=('mean_intensity', 'area', 'solidity'))
147 |
148 | table_gpu
149 | ```
150 |
151 | ```
152 | {'area': array([ 238, 5833, 6006, 5679, 2534, 4200, 4655, 2662, 3846, 3350, 5005,
153 | 2200, 3952, 3837, 4298, 4111, 139]),
154 | 'mean_intensity': array([68.93277311, 54.14537974, 68.23676324, 59.95175207, 87.22178374,
155 | 71.32666667, 74.37529538, 64.63561232, 58.93213729, 66.88656716,
156 | 62.15684316, 50.51363636, 62.50177126, 92.24863174, 71.68776175,
157 | 51.80345415, 72.3381295 ]),
158 | 'solidity': array([0.97942387, 0.95842918, 0.97785738, 0.97964464, 0.98868513,
159 | 0.98522167, 0.98727466, 0.99143389, 0.87171351, 0.98355843,
160 | 0.96864718, 0.59945504, 0.98676654, 0.98510911, 0.98397436,
161 | 0.97997616, 0.97887324])}
162 | ```
163 |
164 | ```python
165 | # The following line would fail.
166 | # pd.DataFrame(table_gpu)
167 |
168 | # We need to convert that table to numpy before we can pass it to pandas.
169 | table = {item[0] : cp.asnumpy(item[1]) for item in table_gpu.items()}
170 | pd.DataFrame(table)
171 | ```
172 | 
173 |
174 | Note: As alternative, one may want to dive into [cuDF](https://github.com/rapidsai/cudf) the CUDA-based counterpart for pandas DataFrames.
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
--------------------------------------------------------------------------------
/docs/robert_haase/ms_build_tools/download1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/ms_build_tools/download1.png
--------------------------------------------------------------------------------
/docs/robert_haase/ms_build_tools/download2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/ms_build_tools/download2.png
--------------------------------------------------------------------------------
/docs/robert_haase/ms_build_tools/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/ms_build_tools/error.png
--------------------------------------------------------------------------------
/docs/robert_haase/ms_build_tools/install.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/ms_build_tools/install.png
--------------------------------------------------------------------------------
/docs/robert_haase/ms_build_tools/install2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/ms_build_tools/install2.png
--------------------------------------------------------------------------------
/docs/robert_haase/ms_build_tools/readme.md:
--------------------------------------------------------------------------------
1 | # Installing Microsoft buildtools on Windows
2 | [Robert Haase](../readme), July 9th 2021
3 |
4 | Installing python libraries on Windows can be tricky. When using `pip install` on a Windows computer that is not regularly visited by a hardcore programmer, a typical error message is "error: Microsoft Visual C++ 14.0 or greater is required.".
5 | This blog post shows how to deal with it and also hints how to avoid installing software that is not necessary.
6 |
7 | ## Symptoms: Installations fail
8 | I hit that issue today on a freshly installed Windows computer when installing `tvb-gdist`. This command failed unfortunately:
9 |
10 | ```
11 | pip install tvb-gdist
12 | ```
13 |
14 | It showed this error message:
15 |
16 | 
17 | Note: This screenshot has been contrast enhanced. Normally, you can't read such errors on Windows so clearly.
18 |
19 | ## Downloading build tools
20 | The error message provides a URL and we can visit that website.
21 | [https://visualstudio.microsoft.com/visual-cpp-build-tools/](https://visualstudio.microsoft.com/visual-cpp-build-tools/)
22 |
23 | 
24 |
25 | The "Download Build Tools" link is pretty obvious and clicking it leads us to another website:
26 |
27 | 
28 |
29 | The second website is a bit misleading as it appears we downloaded "Visual Studio" and are going to install it.
30 | We didn't. And we don't need to.
31 | This website appears to me as an advertisement for Microsoft's Integrated Development Environment, which we don't need this time.
32 | The download of the buildtools will start a couple of seconds later and we just need to execute "vs_buildtools__1234567.8901234.exe" that appears, e.g. on the bottom of the screen in the Chrome Browser.
33 |
34 | No need to download or install anything else.
35 |
36 | ## Installing buildtools
37 | After starting the installer, the following form shows up.
38 | One only needs to activate a single checkbox, "Desktop Development with C++", and click on "Install" in the bottom right.
39 |
40 | 
41 |
42 | Installation will then look like this for a while:
43 |
44 | 
45 |
46 | Afterwards, it might be necessary to restart your computer. Do this.
47 |
48 | ## Checking if installation succeeded
49 | If we try to install `tvb-gdist` again, it will succeed:
50 | ```
51 | pip install tvb-gdist
52 | ```
53 |
54 | 
55 |
56 | In the future, on this particular computer, installation of python packages might be easier.
57 |
--------------------------------------------------------------------------------
/docs/robert_haase/ms_build_tools/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/ms_build_tools/success.png
--------------------------------------------------------------------------------
/docs/robert_haase/readme.md:
--------------------------------------------------------------------------------
1 | # Robert Haase
2 |
3 |
4 |
5 | My name is Robert and I am computer scientist by training.
6 | Over the years I turned into an image data scientist working in the life sciences.
7 | Thus, I don't feel like a computer scientist anymore and not yet as biologist neither.
8 | In the past decade, I worked registering microscopy images of histological stainings of tumor tissue with magnetic resonance imaging,
9 | swarm intelligence based algorithms for medical image segmentation for positron emission tomography in the cancer research context and
10 | analysing manifold images from mostly fluorescence microscopy.
11 | I have job titles such as bio-image analyst, scientific software engineer and image data science consultant.
12 | I give lectures about bio-image analysis, bio-statistics, programming and machine learning at the Biotechnology Center of the TU Dresden and world-wide via youtube.
13 |
14 | Since 2020 I'm heading the Bio-image Analysis Technology Development group (BiA-PoL) at the DFG Cluster of Excellence "Physics of Life" at the TU Dresden where I also started this blog.
15 | I serve here as editor and I'm supporting students, employees and collaborators of the BiA-PoL in communicating their science and technology with the world.
16 |
17 | ## Blog posts
18 | * [GPU-accelerated image processing in the cloud using Google Colab and clEsperanto](clesperanto_google_colab/readme)
19 | * [Browsing the Open Microscopy Image Data Resource with Python](browsing_idr/readme)
20 | * [GPU-accelerated image processing using cupy and cucim](cupy_cucim/readme)
21 | * [Using StarDist in napari with GPU-support in Windows](stardist_gpu/readme)
22 | * [Installing Microsoft buildtools on Windows](ms_build_tools/readme)
23 |
24 | ## Links
25 | * [BiA-PoL group website](https://physics-of-life.tu-dresden.de/en/research/core-groups/bio-image-analysis)
26 | * [Robert on twitter](https://twitter.com/haesleinhuepf)
27 | * [Robert on github](https://github.com/haesleinhuepf)
28 | * [Robert on youtube](https://youtube.com/haesleinhuepf)
29 |
30 | [Imprint](../imprint)
31 |
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/check_env1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/check_env1.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/check_env2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/check_env2.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/check_env3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/check_env3.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/download_cuda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/download_cuda.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/download_cudnn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/download_cudnn.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/install_cudnn1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/install_cudnn1.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/install_cudnn2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/install_cudnn2.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/install_cudnn3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/install_cudnn3.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/install_stardist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/install_stardist.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/install_stardist2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/install_stardist2.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/use_stardist1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/use_stardist1.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/use_stardist2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/use_stardist2.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/use_stardist3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/use_stardist3.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/use_stardist4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/use_stardist4.png
--------------------------------------------------------------------------------
/docs/robert_haase/stardist_gpu/images/use_stardist5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/robert_haase/stardist_gpu/images/use_stardist5.png
--------------------------------------------------------------------------------
/docs/robert_haase/why_we_blog/readme.md:
--------------------------------------------------------------------------------
1 | # Why we blog
2 | [Robert Haase](../readme), May 30th 2021
3 |
4 | Bio-image analysis is an emerging field.
5 | New technological developments in the middle ground between microscopy and data science emerge rapidly and new ways for processing image data change the way how we do research in biology and biophysics.
6 | As it is challenging to keep track of all the new developments, we need to share efforts with other groups world wide in exploring and exploiting new algorithms, software, plugins and libraries.
7 | We start blogging here in 2021 because there is knowledge to share which is too casual for a scientific publication and too substantial so that it cannot be expressed in a tweet.
8 | In our blog we will explore technologies, teaching material, web services, data sets, online resources, products and any kind of digital asset of bio-image data science.
9 | And we will share what we discover openly accessible to our local collaborators and readers world-wide in this blog.
10 |
11 | If you have feedback or suggestions, if spotted a typo, broken link or misleading explanation, please get in touch via a
12 | [github issue](https://github.com/BiAPoL/blog/issues) or
13 | [pull request](https://github.com/BiAPoL/blog/pulls) so that we can fix it. Contributions are very welcome.
14 |
15 | Enjoy reading!
16 |
17 | Robert Haase
18 |
19 | Group Leader, Bio-image Analysis Technology Development\
20 | DFG Cluster of Excellence “Physics of Life”, TU Dresden\
21 | Am Tatzberg 47/49, 01307 Dresden\
22 | [https://physics-of-life.tu-dresden.de/bia](https://physics-of-life.tu-dresden.de/bia)
23 |
24 | [Imprint](https://biapol.github.io/blog/imprint)
--------------------------------------------------------------------------------
/docs/ryan_savill/01_intro_to_python/IDE_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/01_intro_to_python/IDE_overview.png
--------------------------------------------------------------------------------
/docs/ryan_savill/02_intro_to_skimage/output_11_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/02_intro_to_skimage/output_11_0.png
--------------------------------------------------------------------------------
/docs/ryan_savill/02_intro_to_skimage/output_13_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/02_intro_to_skimage/output_13_0.png
--------------------------------------------------------------------------------
/docs/ryan_savill/02_intro_to_skimage/output_15_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/02_intro_to_skimage/output_15_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/02_intro_to_skimage/output_17_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/02_intro_to_skimage/output_17_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/02_intro_to_skimage/output_19_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/02_intro_to_skimage/output_19_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/02_intro_to_skimage/output_7_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/02_intro_to_skimage/output_7_2.png
--------------------------------------------------------------------------------
/docs/ryan_savill/02_intro_to_skimage/output_9_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/02_intro_to_skimage/output_9_0.png
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/MAX_Lund_18.0_22.0_Hours Z-projection t1.tif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/MAX_Lund_18.0_22.0_Hours Z-projection t1.tif
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/image_analysis_functions.py:
--------------------------------------------------------------------------------
1 | def subtract_background(image, radius=50, light_bg=False):
2 | # import libraries
3 | from skimage.morphology import white_tophat, black_tophat, disk
4 |
5 | # generate structuring element
6 | str_el = disk(radius)
7 |
8 | # use appropriate filter depending on the background colour
9 | if light_bg:
10 | return black_tophat(image, str_el)
11 | else:
12 | return white_tophat(image, str_el)
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/output_13_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/output_13_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/output_17_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/output_17_2.png
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/output_19_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/output_19_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/output_21_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/output_21_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/output_3_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/output_3_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/output_5_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/output_5_1.png
--------------------------------------------------------------------------------
/docs/ryan_savill/03_background_subtraction/output_7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/ryan_savill/03_background_subtraction/output_7_0.png
--------------------------------------------------------------------------------
/docs/ryan_savill/readme.md:
--------------------------------------------------------------------------------
1 | # Ryan Savill
2 | ## Image Analysis in Python from a Biologist for Biologists
3 | ## About Me
4 | I'm a Master Student in molecular bioengineering (in your university it's probably called some combination of technology, biology and engineering) and have become interested in image analysis when I had a lecture on it. It seems that image analysis is becoming more and more commonplace in biology labs as microscopy and antibody stainings are becoming easier to use and more accessible. However I have decided to dive in the deep end and want to get used to image analysis in python, which in comparison to other tools like cellprofiler and ImageJ is much more coding based. This is a steep learning curve especially for biologists that have not coded for long, but the tools that are available in python allow the implementation of really advanced functions as well as cutting edge techniques. So to take away some of the burden of getting used to python this is a resource for biologists and other scientists, sharing things I have learnt and resources I used to get into programming in python.
5 |
6 | Below you'll find an index of topics that I'll cover, which will be updated with content every now and then. All resources I'm using will be linked to or are available in the github repository of this Blog!
7 |
8 | ## Getting into Image Processing with Python
9 | * [Introduction to Using Python for Image Analysis](01_intro_to_python/readme.md)
10 | * [Introduction to Image Analysis Basics in Python with Scikit Image](02_intro_to_skimage/readme.md)
11 | * [Background Subtraction](03_background_subtraction/readme.md)
12 |
13 | ## Other Interesting Stuff
14 | * [Principal Feature Analysis - What It Does and Python Implementation](principal_feature_analysis/readme.md)
15 |
16 | ## Links
17 | * [Twitter](https://twitter.com/RyanSavill4)
18 | * [Research Gate](https://www.researchgate.net/profile/Ryan-Savill)
19 | * Email: ryan_george.savill@mailbox.tu-dresden.de
20 |
21 | ### Have Fun Coding!
22 |
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/Windows_Subsystem_for_Linux_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/Windows_Subsystem_for_Linux_logo.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/docker-hello-world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/docker-hello-world.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/docker-logo-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/docker-logo-blue.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/docker-wsl-integration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/docker-wsl-integration.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/elephant-control-panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/elephant-control-panel.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/elephant-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/elephant-logo.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/elephant-server-interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/elephant-server-interface.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/fiji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/fiji.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/hostnamectl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/hostnamectl.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/mastodon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/mastodon.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/nvidia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/nvidia.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/start-wsl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/start-wsl.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/elephant_server_installation_windows/images/wsl_l_v.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/elephant_server_installation_windows/images/wsl_l_v.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/clone-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/clone-project.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/git-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/git-logo.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/github-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/github-logo.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/github-mark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/github-mark.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyter-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyter-logo.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-notebook-edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-notebook-edit.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-notebook-run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-notebook-run.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-notebooks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-notebooks.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/github_desktop_jupyter_notebook/images/jupyterlab-start.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/github_desktop_jupyter_notebook/readme.md:
--------------------------------------------------------------------------------
1 | # Running bio image analysis workflows on your machine
2 |
3 | [Stefan Hahmann](../readme.md), December 21st 2023
4 |
5 | ## Introduction
6 |
7 | Jupyter Notebooks may be used to run bio image analysis workflows on your machine with your own data. They are a great tool to share workflows with others.
8 | This blog post will show you how to use [Github Desktop](https://desktop.github.com/) and [Jupyter Lab](https://jupyterlab.readthedocs.io/en/stable/) to run a workflow documented in a [Jupyter Notebook](https://jupyter.org/) on your local machine with your own data.
9 |
10 | ## Prerequisites
11 |
12 | [Git](https://git-scm.com/) is a version control system that allows you to track changes in your files. It is widely used in software development, because source files of code are frequently changed during the development process. Files that belong together are stored in a so-called repository.
13 | A repository can be stored on a local computer or on a web server. Git allows you to synchronize your local repository with a remote repository. This is useful, if you want to collaborate with other people on the same files.
14 |
15 |
16 |
17 | [GitHub](https://github.com/) is a web-based hosting service for Git repositories. [GitHub Desktop](https://desktop.github.com/) is a client for Git and Github. It allows you to manage your Git repositories locally on your computer.
18 |
19 |
20 |
21 | [Jupyter Notebooks](https://jupyter.org/) are documents that contain code, equations, visualizations and narrative text. They are widely used in data science and research. The can contain workflows that help you to analyse your data. [Jupyter Lab](https://jupyterlab.readthedocs.io/en/stable/) allows you to edit and run Jupyter Notebooks.
22 |
23 |
24 |
25 | [Python](https://www.python.org/) is a programming language that is widely used in data science and research.
26 |
27 | [Napari](https://napari.org) is a multi-dimensional image viewer implemented in Python.
28 |
29 | ## Installation
30 |
31 | ### Git
32 |
33 | There is no need to install Git separately before installing GitHub Desktop. GitHub Desktop includes a bundled version of Git, so when you install GitHub Desktop, it will also install Git as part of the process.
34 |
35 | ### GitHub Desktop
36 |
37 | Download and install [GitHub Desktop](https://desktop.github.com/). Choose the version for your operating system. GitHub.com provides installers for Windows and Mac. Users on Unix-like systems may follow these [instructions](https://dev.to/rahedmir/is-github-desktop-available-for-gnu-linux-4a69) to install a [fork](https://github.com/shiftkey/desktop/releases) of GitHub Desktop.
38 |
39 | ### Jupyter Lab
40 |
41 | The installation of Jupyter Lab on your local machine is part of the installation of Python and Conda. You can follow the instructions in [Getting started with Miniforge and Python](../../mara_lampert/getting_started_with_mambaforge_and_python/readme) for this.
42 |
43 | You should have installed now Python and the environment [devbio-napari](https://github.com/haesleinhuepf/devbio-napari), a distribution of napari with a set of plugins for bioimage analysis.
44 |
45 | ## Clone the repository
46 |
47 | Open GitHub Desktop and click "File" > "Clone a repository from the Internet...". Enter the name of the repository you want to clone, e.g.: [BiAPoL/Bio-image_Analysis_with_Python](https://github.com/BiAPoL/Bio-image_Analysis_with_Python) and the local path where you want to store the repository on your computer. Click "Clone".
48 | 
49 |
50 | ## Starting Jupyter Lab
51 |
52 | Open a terminal and navigate to the folder where you have cloned the repository.
53 |
54 | Activate the environment by entering this (assuming you have used the name `my_first_env` for your environment, otherwise `my_first_env` must be replaced by the name of your environment):
55 |
56 | ```
57 | mamba activate my_first_env
58 | ```
59 |
60 | Start [Jupyter lab](https://jupyter.org/) from the terminal like this:
61 |
62 | ```
63 | jupyter lab
64 | ```
65 |
66 | A browser will open and show you the following web page.
67 |
68 | 
69 |
70 | ## Running a Jupyter Notebook
71 |
72 | Navigate to the notebook you want to run and click on it. Notebooks have the file extension `.ipynb`. The notebook will open in a new tab.
73 |
74 | 
75 |
76 | Run the notebook by clicking on the "Run" button in the toolbar or by pressing "Shift + Enter". While a cell is running, a star is shown in the square brackets on the left side of the cell. When the cell has finished running, a number is shown in the square brackets.
77 |
78 | 
79 |
80 | Before you run a cell, you can change the code in the cell. This allows you to adapt the workflow to your needs. You may e.g. change the path to the data you want to analyse.
81 |
82 | 
83 |
84 | It is possible to skip cells. This is useful, if you want to run only parts of the workflow. To skip a cell, click on the next cell, after the cell you want to skip and then click on the "Run". This will run the selected cell.
85 |
86 |
87 |
--------------------------------------------------------------------------------
/docs/stefan_hahmann/readme.md:
--------------------------------------------------------------------------------
1 | # Stefan Hahmann
2 |
3 | 
4 |
5 | Hi! My name is Stefan.
6 |
7 | Originally, I studied geodesy at [HTW Dresden](https://www.htw-dresden.de/hochschule/fakultaeten/geoinformation). Towards the end of my studies, I focused in geoinformatics.
8 |
9 | During my professional career, I continuously developed software tools in different domains mainly in Java, but also using PHP, JavaScript, R and Python. Before moving to academia, I developed tools for [geomarketing](https://www.microm.de/apps/mapchart-gis). I did PhD at [TU Dresden](https://tu-dresden.de/bu/umwelt/geo/ifk), where I investigated the [relationship between space and semantics of social media data](https://nbn-resolving.org/urn:nbn:de:bsz:14-qucosa-148835).
10 | During my Postdoc, I worked at [Heidelberg University](https://www.geog.uni-heidelberg.de/gis/), where I contributed to the route planning service [OpenRouteService.org](https://maps.openrouteservice.org/#/) and at [Fraunhofer IVI](https://www.ivi.fraunhofer.de/), where I contributed to [Mobikat](https://www.mobikat.net/en.html), a decision support tool for fire departments, rescue services and police.
11 |
12 | Since 2022, I work as a [research software engineer](https://de-rse.org/en/) for the Bio-image Analysis Technology Development group ([BiA-PoL](https://physics-of-life.tu-dresden.de/research/core-groups/bio-image-analysis/people)) at the DFG Cluster of Excellence “[Physics of Life](https://physics-of-life.tu-dresden.de/)” at TU Dresden. I am developing plugins for the image analysis software [Fiji](https://imagej.net/software/fiji/) and workflows for the image analysis software [Napari](https://napari.org/stable/), where currently most of the time I am [extending](https://github.com/mastodon-sc/mastodon-deep-lineage) the (cell) tracking module [Mastodon](https://mastodon.readthedocs.io/en/latest/).
13 |
14 | # Blog posts
15 |
16 | * [Running bio image analysis workflows on your machine](github_desktop_jupyter_notebook/readme)
17 | * [Installation of Elephant Server on Windows](elephant_server_installation_windows/readme)
18 | * [Using StarDist in napari with GPU-support in Windows (2025)](stardist_gpu_2025/readme)
19 |
20 | # Links
21 |
22 | * [Twitter](https://twitter.com/stefanhahmann)
23 | * [Github](https://github.com/stefanhahmann/)
24 | * [ORCID](https://orcid.org/0000-0002-8145-7090)
25 |
--------------------------------------------------------------------------------
/docs/stefan_hahmann/readme/stefan_hahmann.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/readme/stefan_hahmann.jpg
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/check_env1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/check_env1.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/check_env2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/check_env2.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/check_env3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/check_env3.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/cudnn_download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/cudnn_download.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/download_cuda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/download_cuda.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/install_cudnn1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/install_cudnn1.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/install_cudnn2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/install_cudnn2.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/install_cudnn3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/install_cudnn3.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/install_stardist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/install_stardist.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/install_stardist2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/install_stardist2.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/tensorflow-gpu-table.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/tensorflow-gpu-table.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist1.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist2.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist3.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist4.png
--------------------------------------------------------------------------------
/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/stefan_hahmann/stardist_gpu_2025/images/use_stardist5.gif
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/10_imshow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/10_imshow.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/1_login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/1_login.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/2_start_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/2_start_server.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/3_configure_node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/3_configure_node.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/4_wait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/4_wait.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/7_open_notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/7_open_notebook.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/8_select_kernel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/8_select_kernel.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster/images/9_select_devbio_napari.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster/images/9_select_devbio_napari.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/1_login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/1_login.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/2_start_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/2_start_server.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/3_configure_node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/3_configure_node.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/4_wait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/4_wait.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/5_open_terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/5_open_terminal.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/6_terminal_output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/6_terminal_output.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/7_open_notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/7_open_notebook.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/8_select_kernel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/8_select_kernel.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/9_select_devbio_napari.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/9_select_devbio_napari.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/a1_new_project_application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/a1_new_project_application.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/a2_trial_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/a2_trial_project.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/a3_PI_PC_email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/a3_PI_PC_email.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/a4_CPU_GPU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/a4_CPU_GPU.png
--------------------------------------------------------------------------------
/docs/till_korten/devbio-napari_cluster_setup/images/a6_data_management.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BiAPoL/blog/829c3bacff981fbff63a9391462249e0d58c0141/docs/till_korten/devbio-napari_cluster_setup/images/a6_data_management.png
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | jupyter-book
2 | matplotlib
3 | numpy
--------------------------------------------------------------------------------