This guide walks you through the full process of running an automated pollen viability analysis β from preparing your images to downloading your results. No programming experience is required.
[!NOTE] This pipeline runs the heavy computation on a remote university server (CESNET cluster), so it works even on modest laptops. You only need to start the job from your computer β the actual image analysis happens remotely.
You only need to do these steps once when setting up the workflow for the first time.
All images and results are stored in the CESNET S3 cloud. You need access before anything else.
π Follow the CESNET S3 Connection Guide
This will take you through applying for access, generating your personal keys, and installing Cyberduck (the tool you will use to upload and download files).
The detection pipeline is run via a script. You need to have the project code and its required tools installed once on the computer youβll use to launch jobs.
You will need three programs installed:
| Program | What it does | Download |
|---|---|---|
| Git | Downloads the project code | git-scm.com |
| Docker Desktop | Packages the detection code to run on the cluster | docker.com/get-started |
| WSL 2 (Windows only) | Lets Windows run Linux-style scripts | Microsoft Docs |
[!IMPORTANT] On Windows: After installing WSL 2, open Docker Desktop β Settings β Resources β WSL Integration and enable it for your Linux distribution. On Linux: After installing Docker, run
sudo usermod -aG docker $USERand log out and back in.
Open a terminal (on Windows: search for βUbuntuβ or βWSLβ in the Start menu) and type:
git clone https://github.com/Pollination-Ecology-Group/Pollen_viability.git
cd Pollen_viability
This downloads all the scripts you need into a folder called Pollen_viability.
You will also need the kubeconfig.yaml file β this is the key that lets your computer talk to the CESNET cluster. Ask the project lead to send you this file, then place it inside the Pollen_viability folder you just downloaded.
Once setup is complete, running detection every time takes just 3 steps.
Using Cyberduck, navigate to the Ostatni/Pollen_viability/detect_images/ folder in the S3 bucket and drag your microscope images (TIF or JPG format) into it.
[!TIP] You can upload a whole folder at once. Just drag it into the Cyberduck window.
Open a terminal (on Windows: Ubuntu / WSL) and navigate to the project folder:
cd Pollen_viability
Then run:
./deploy_pollen.sh
[!NOTE] The first time you run this, Docker will download several components. This may take 5β15 minutes depending on your internet speed. Subsequent runs are much faster.
You will see output in the terminal that looks like this:
πΈ Pollen Detector Deployment Script
π 1. Building Docker image...
βοΈ 2. Pushing image...
π 4. Deploying Job to Cluster...
π 6. Streaming logs...
The terminal will then show live progress from the cluster. You donβt need to do anything β just wait.
[!TIP] If you see a
permission deniederror when running./deploy_pollen.sh, try:Linux:
sg docker -c ./deploy_pollen.shWindows (WSL): Make sure Docker Desktop is running and WSL integration is enabled.
Once the detection finishes (the terminal shows it has completed), your results are automatically uploaded to the S3 bucket.
Open Cyberduck and navigate to:
Ostatni/Pollen_viability/detected_images/ β Annotated images with coloured bounding boxes showing which pollen grains are viable (green) and non-viable (red).Ostatni/Pollen_viability/pollen_counting_results/ β CSV summary files (pollen_counts.csv) with counts and viability percentages per image.Download these files to your computer by right-clicking β Download in Cyberduck.
| Problem | Solution |
|---|---|
permission denied when running script |
See the tip in Step 2 above |
| Docker Desktop not starting | Make sure WSL 2 is installed and enabled |
| Script says βcannot connect to clusterβ | Check that kubeconfig.yaml is in the Pollen_viability folder |
| No files appear in S3 after job finishes | Wait a few minutes; large jobs can take time to upload results |
| Any other issue | Contact the project lead or schedule a meeting |