{
  "schemaVersion": 4,
  "meta": {
    "name": "Coloc 3 channels",
    "shortDescription": "Spot colocalization with three image channels.",
    "description": "Spot colocalization with three image channels.",
    "authors": [
      {
        "fullName": "Melanie Schuerz",
        "organization": "University of Salzburg"
      }
    ],
    "creationTime": "2026-06-11T00:00:00Z",
    "category": "Colocalization",
    "tags": [
      "colocalization",
      "spots",
      "3-channel"
    ],
    "appVersion": ""
  },
  "classification": {
    "classes": [
      {
        "id": 0,
        "color": "#97978f",
        "name": "Background",
        "notes": ""
      },
      {
        "id": 15,
        "color": "#5eff00",
        "name": "ch1@allspots",
        "notes": ""
      },
      {
        "id": 1,
        "color": "#ff3333",
        "name": "ch2@allspots",
        "notes": ""
      },
      {
        "id": 5,
        "color": "#3399ff",
        "name": "ch3@all spots",
        "notes": ""
      },
      {
        "id": 16,
        "color": "#d2ff00",
        "name": "tetraspeck@spot",
        "notes": ""
      },
      {
        "id": 7,
        "color": "#ffd200",
        "name": "ch1@coloc_ch2",
        "notes": ""
      },
      {
        "id": 8,
        "color": "#ffff33",
        "name": "ch1@coloc_ch3",
        "notes": ""
      },
      {
        "id": 4,
        "color": "#f6ff00",
        "name": "ch1@coloc_ch2and3",
        "notes": ""
      },
      {
        "id": 11,
        "color": "#ff33c4",
        "name": "ch2@coloc_ch1",
        "notes": ""
      },
      {
        "id": 2,
        "color": "#ff33ff",
        "name": "ch2@coloc_ch3",
        "notes": ""
      },
      {
        "id": 3,
        "color": "#9933ff",
        "name": "ch2@coloc_ch1and3",
        "notes": ""
      },
      {
        "id": 6,
        "color": "#33ffd1",
        "name": "ch3@coloc_ch1",
        "notes": ""
      },
      {
        "id": 9,
        "color": "#33ffcc",
        "name": "ch3@coloc_ch2",
        "notes": ""
      },
      {
        "id": 10,
        "color": "#33ff99",
        "name": "ch3@coloc_ch1and2",
        "notes": ""
      },
      {
        "id": 12,
        "color": "#33ff57",
        "name": "ch1@noncoloc",
        "notes": ""
      },
      {
        "id": 13,
        "color": "#ff3380",
        "name": "ch2@noncoloc",
        "notes": ""
      },
      {
        "id": 14,
        "color": "#33cfff",
        "name": "ch3@noncoloc",
        "notes": ""
      }
    ]
  },
  "plate": {
    "groupingMode": "AUTO",
    "groupingRegex": "",
    "plateSize": "PLATE1X1",
    "wellLayout": {
      "FIXED": {
        "rows": 4,
        "cols": 4
      }
    },
    "wellImageOrder": [
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16
    ]
  },
  "pipelines": [
    {
      "id": 2,
      "name": "Tetraspeck",
      "enabled": false,
      "imageSource": {
        "channel": 3
      },
      "description": "Detects calibration beads (e.g. tetraspeck) that are fluorescent in all channels; the analysis removes every spot overlapping one.\n1. Enable this pipeline\n2. Select the tetraspeck image channel (channel showing only tetraspecks)\n3. Adapt the threshold",
      "steps": [
        {
          "id": 1,
          "enabled": true,
          "module": {
            "key": "EV_DETECTION",
            "values": {
              "evs": "16",
              "threshold_method": "Manual",
              "min_threshold": 200.0,
              "min_area": 5.0
            }
          }
        }
      ]
    },
    {
      "id": 1,
      "name": "Coloc 3 channels",
      "enabled": true,
      "imageSource": "NONE",
      "description": "Set image channels, classes and detection settings on the module.",
      "steps": [
        {
          "id": 1,
          "enabled": true,
          "module": {
            "key": "COLOC_3_CHANNEL",
            "values": {}
          }
        }
      ]
    }
  ],
  "modules": [
    {
      "key": "COLOC_3_CHANNEL",
      "meta": {
        "name": "Coloc 3 channels",
        "shortDescription": "Spot colocalization with three image channels.",
        "description": "Spot colocalization with three image channels.",
        "authors": [
          {
            "fullName": "Melanie Schuerz",
            "organization": "University of Salzburg"
          }
        ],
        "creationTime": "2026-06-11T00:00:00Z",
        "version": 1,
        "category": "Colocalization",
        "tags": [
          "colocalization",
          "spots",
          "3-channel"
        ]
      },
      "classes": [],
      "steps": [
        {
          "id": 1,
          "enabled": true,
          "command": {
            "type": "LOAD_CHANNEL",
            "channel": 0
          }
        },
        {
          "id": 2,
          "enabled": true,
          "module": {
            "key": "EV_DETECTION",
            "values": {
              "evs": "15",
              "threshold_method": "Manual",
              "min_threshold": 200.0,
              "min_area": 5.0
            }
          }
        },
        {
          "id": 3,
          "enabled": true,
          "command": {
            "type": "LOAD_CHANNEL",
            "channel": 1
          }
        },
        {
          "id": 4,
          "enabled": true,
          "module": {
            "key": "EV_DETECTION",
            "values": {
              "evs": "1",
              "threshold_method": "Manual",
              "min_threshold": 200.0,
              "min_area": 5.0
            }
          }
        },
        {
          "id": 5,
          "enabled": true,
          "command": {
            "type": "LOAD_CHANNEL",
            "channel": 2
          }
        },
        {
          "id": 6,
          "enabled": true,
          "module": {
            "key": "EV_DETECTION",
            "values": {
              "evs": "5",
              "threshold_method": "Manual",
              "min_threshold": 200.0,
              "min_area": 5.0
            }
          }
        },
        {
          "id": 7,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 15
              }
            ],
            "matchHandling": "REMOVE_ALL_CLASSES_IF_MATCH",
            "outputClass": "UNSET",
            "overlappingWith": {
              "GLOBAL": 16
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 8,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 1
              }
            ],
            "matchHandling": "REMOVE_ALL_CLASSES_IF_MATCH",
            "outputClass": "UNSET",
            "overlappingWith": {
              "GLOBAL": 16
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 9,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 5
              }
            ],
            "matchHandling": "REMOVE_ALL_CLASSES_IF_MATCH",
            "outputClass": "UNSET",
            "overlappingWith": {
              "GLOBAL": 16
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 10,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 15
              },
              {
                "GLOBAL": 1
              },
              {
                "GLOBAL": 5
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 4
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 11,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 1
              },
              {
                "GLOBAL": 15
              },
              {
                "GLOBAL": 5
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 3
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 12,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 5
              },
              {
                "GLOBAL": 15
              },
              {
                "GLOBAL": 1
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 10
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 13,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 15
              },
              {
                "GLOBAL": 1
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 7
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 14,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 1
              },
              {
                "GLOBAL": 15
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 11
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 15,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 15
              },
              {
                "GLOBAL": 5
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 8
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 16,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 5
              },
              {
                "GLOBAL": 15
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 6
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 17,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 1
              },
              {
                "GLOBAL": 5
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 2
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 18,
          "enabled": true,
          "command": {
            "type": "COLOCALIZATION",
            "classesToColoc": [
              {
                "GLOBAL": 5
              },
              {
                "GLOBAL": 1
              }
            ],
            "filterClasses": [],
            "classForOverlappingAreas": {
              "GLOBAL": 9
            },
            "multiplicity": "MANY_TO_MANY",
            "sizeUnit": "PIXELS",
            "minColocArea": 0.0,
            "excludeClasses": []
          }
        },
        {
          "id": 19,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 15
              }
            ],
            "matchHandling": "ADD_OUTPUT_CLASS_IF_NOT_MATCH",
            "outputClass": {
              "GLOBAL": 12
            },
            "overlappingWith": {
              "GLOBAL": 1
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 20,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 12
              }
            ],
            "matchHandling": "REMOVE_OUTPUT_CLASS_IF_MATCH",
            "outputClass": {
              "GLOBAL": 12
            },
            "overlappingWith": {
              "GLOBAL": 5
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 21,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 1
              }
            ],
            "matchHandling": "ADD_OUTPUT_CLASS_IF_NOT_MATCH",
            "outputClass": {
              "GLOBAL": 13
            },
            "overlappingWith": {
              "GLOBAL": 15
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 22,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 13
              }
            ],
            "matchHandling": "REMOVE_OUTPUT_CLASS_IF_MATCH",
            "outputClass": {
              "GLOBAL": 13
            },
            "overlappingWith": {
              "GLOBAL": 5
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 23,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 5
              }
            ],
            "matchHandling": "ADD_OUTPUT_CLASS_IF_NOT_MATCH",
            "outputClass": {
              "GLOBAL": 14
            },
            "overlappingWith": {
              "GLOBAL": 15
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        },
        {
          "id": 24,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "inputClasses": [
              {
                "GLOBAL": 14
              }
            ],
            "matchHandling": "REMOVE_OUTPUT_CLASS_IF_MATCH",
            "outputClass": {
              "GLOBAL": 14
            },
            "overlappingWith": {
              "GLOBAL": 1
            },
            "originSegmentation": [],
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 0.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true
          }
        }
      ],
      "parameters": [
        {
          "key": "channels_spots_ch1",
          "label": "Spots ch1",
          "description": "",
          "section": "Channels",
          "default": 0,
          "bindings": [
            {
              "step": 1,
              "param": "channel"
            }
          ]
        },
        {
          "key": "channels_spots_ch2",
          "label": "Spots ch2",
          "description": "",
          "section": "Channels",
          "default": 1,
          "bindings": [
            {
              "step": 3,
              "param": "channel"
            }
          ]
        },
        {
          "key": "channels_spots_ch3",
          "label": "Spots ch3",
          "description": "",
          "section": "Channels",
          "default": 2,
          "bindings": [
            {
              "step": 5,
              "param": "channel"
            }
          ]
        },
        {
          "key": "classes_ch1_allspots",
          "label": "ch1@allspots",
          "description": "",
          "section": "Classes",
          "default": "15",
          "bindings": [
            {
              "step": 21,
              "param": "overlapping_with"
            },
            {
              "step": 23,
              "param": "overlapping_with"
            },
            {
              "step": 2,
              "param": "evs"
            },
            {
              "step": 7,
              "param": "input_classes"
            },
            {
              "step": 10,
              "param": "classes_to_coloc"
            },
            {
              "step": 11,
              "param": "classes_to_coloc"
            },
            {
              "step": 12,
              "param": "classes_to_coloc"
            },
            {
              "step": 13,
              "param": "classes_to_coloc"
            },
            {
              "step": 14,
              "param": "classes_to_coloc"
            },
            {
              "step": 15,
              "param": "classes_to_coloc"
            },
            {
              "step": 16,
              "param": "classes_to_coloc"
            },
            {
              "step": 19,
              "param": "input_classes"
            }
          ]
        },
        {
          "key": "classes_ch2_allspots",
          "label": "ch2@allspots",
          "description": "",
          "section": "Classes",
          "default": "1",
          "bindings": [
            {
              "step": 19,
              "param": "overlapping_with"
            },
            {
              "step": 24,
              "param": "overlapping_with"
            },
            {
              "step": 4,
              "param": "evs"
            },
            {
              "step": 8,
              "param": "input_classes"
            },
            {
              "step": 10,
              "param": "classes_to_coloc"
            },
            {
              "step": 11,
              "param": "classes_to_coloc"
            },
            {
              "step": 12,
              "param": "classes_to_coloc"
            },
            {
              "step": 13,
              "param": "classes_to_coloc"
            },
            {
              "step": 14,
              "param": "classes_to_coloc"
            },
            {
              "step": 17,
              "param": "classes_to_coloc"
            },
            {
              "step": 18,
              "param": "classes_to_coloc"
            },
            {
              "step": 21,
              "param": "input_classes"
            }
          ]
        },
        {
          "key": "classes_ch3_all_spots",
          "label": "ch3@all spots",
          "description": "",
          "section": "Classes",
          "default": "5",
          "bindings": [
            {
              "step": 20,
              "param": "overlapping_with"
            },
            {
              "step": 22,
              "param": "overlapping_with"
            },
            {
              "step": 6,
              "param": "evs"
            },
            {
              "step": 9,
              "param": "input_classes"
            },
            {
              "step": 10,
              "param": "classes_to_coloc"
            },
            {
              "step": 11,
              "param": "classes_to_coloc"
            },
            {
              "step": 12,
              "param": "classes_to_coloc"
            },
            {
              "step": 15,
              "param": "classes_to_coloc"
            },
            {
              "step": 16,
              "param": "classes_to_coloc"
            },
            {
              "step": 17,
              "param": "classes_to_coloc"
            },
            {
              "step": 18,
              "param": "classes_to_coloc"
            },
            {
              "step": 23,
              "param": "input_classes"
            }
          ]
        },
        {
          "key": "classes_tetraspeck_spot",
          "label": "tetraspeck@spot",
          "description": "",
          "section": "Classes",
          "default": "16",
          "bindings": [
            {
              "step": 7,
              "param": "overlapping_with"
            },
            {
              "step": 8,
              "param": "overlapping_with"
            },
            {
              "step": 9,
              "param": "overlapping_with"
            }
          ]
        },
        {
          "key": "classes_ch1_coloc_ch2and3",
          "label": "ch1@coloc_ch2and3",
          "description": "",
          "section": "Classes",
          "default": "4",
          "bindings": [
            {
              "step": 10,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch2_coloc_ch1and3",
          "label": "ch2@coloc_ch1and3",
          "description": "",
          "section": "Classes",
          "default": "3",
          "bindings": [
            {
              "step": 11,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch3_coloc_ch1and2",
          "label": "ch3@coloc_ch1and2",
          "description": "",
          "section": "Classes",
          "default": "10",
          "bindings": [
            {
              "step": 12,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch1_coloc_ch2",
          "label": "ch1@coloc_ch2",
          "description": "",
          "section": "Classes",
          "default": "7",
          "bindings": [
            {
              "step": 13,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch2_coloc_ch1",
          "label": "ch2@coloc_ch1",
          "description": "",
          "section": "Classes",
          "default": "11",
          "bindings": [
            {
              "step": 14,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch1_coloc_ch3",
          "label": "ch1@coloc_ch3",
          "description": "",
          "section": "Classes",
          "default": "8",
          "bindings": [
            {
              "step": 15,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch3_coloc_ch1",
          "label": "ch3@coloc_ch1",
          "description": "",
          "section": "Classes",
          "default": "6",
          "bindings": [
            {
              "step": 16,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch2_coloc_ch3",
          "label": "ch2@coloc_ch3",
          "description": "",
          "section": "Classes",
          "default": "2",
          "bindings": [
            {
              "step": 17,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch3_coloc_ch2",
          "label": "ch3@coloc_ch2",
          "description": "",
          "section": "Classes",
          "default": "9",
          "bindings": [
            {
              "step": 18,
              "param": "class_for_overlapping_areas"
            }
          ]
        },
        {
          "key": "classes_ch1_noncoloc",
          "label": "ch1@noncoloc",
          "description": "",
          "section": "Classes",
          "default": "12",
          "bindings": [
            {
              "step": 19,
              "param": "output_class"
            },
            {
              "step": 20,
              "param": "output_class"
            },
            {
              "step": 20,
              "param": "input_classes"
            }
          ]
        },
        {
          "key": "classes_ch2_noncoloc",
          "label": "ch2@noncoloc",
          "description": "",
          "section": "Classes",
          "default": "13",
          "bindings": [
            {
              "step": 21,
              "param": "output_class"
            },
            {
              "step": 22,
              "param": "output_class"
            },
            {
              "step": 22,
              "param": "input_classes"
            }
          ]
        },
        {
          "key": "classes_ch3_noncoloc",
          "label": "ch3@noncoloc",
          "description": "",
          "section": "Classes",
          "default": "14",
          "bindings": [
            {
              "step": 23,
              "param": "output_class"
            },
            {
              "step": 24,
              "param": "output_class"
            },
            {
              "step": 24,
              "param": "input_classes"
            }
          ]
        },
        {
          "key": "spots_ch1_threshold_method",
          "label": "Threshold method",
          "description": "",
          "section": "Spots ch1",
          "default": "Manual",
          "bindings": [
            {
              "step": 2,
              "param": "threshold_method"
            }
          ]
        },
        {
          "key": "spots_ch1_min_threshold",
          "label": "Min threshold",
          "description": "",
          "section": "Spots ch1",
          "default": 200.0,
          "bindings": [
            {
              "step": 2,
              "param": "min_threshold"
            }
          ]
        },
        {
          "key": "spots_ch1_min_area",
          "label": "Min area",
          "description": "",
          "section": "Spots ch1",
          "default": 5.0,
          "bindings": [
            {
              "step": 2,
              "param": "min_area"
            }
          ]
        },
        {
          "key": "spots_ch2_threshold_method",
          "label": "Threshold method",
          "description": "",
          "section": "Spots ch2",
          "default": "Manual",
          "bindings": [
            {
              "step": 4,
              "param": "threshold_method"
            }
          ]
        },
        {
          "key": "spots_ch2_min_threshold",
          "label": "Min threshold",
          "description": "",
          "section": "Spots ch2",
          "default": 200.0,
          "bindings": [
            {
              "step": 4,
              "param": "min_threshold"
            }
          ]
        },
        {
          "key": "spots_ch2_min_area",
          "label": "Min area",
          "description": "",
          "section": "Spots ch2",
          "default": 5.0,
          "bindings": [
            {
              "step": 4,
              "param": "min_area"
            }
          ]
        },
        {
          "key": "spots_ch3_threshold_method",
          "label": "Threshold method",
          "description": "",
          "section": "Spots ch3",
          "default": "Manual",
          "bindings": [
            {
              "step": 6,
              "param": "threshold_method"
            }
          ]
        },
        {
          "key": "spots_ch3_min_threshold",
          "label": "Min threshold",
          "description": "",
          "section": "Spots ch3",
          "default": 200.0,
          "bindings": [
            {
              "step": 6,
              "param": "min_threshold"
            }
          ]
        },
        {
          "key": "spots_ch3_min_area",
          "label": "Min area",
          "description": "",
          "section": "Spots ch3",
          "default": 5.0,
          "bindings": [
            {
              "step": 6,
              "param": "min_area"
            }
          ]
        },
        {
          "key": "colocalization_min_coloc_area",
          "label": "Min coloc area",
          "description": "",
          "section": "Colocalization",
          "default": 0.0,
          "bindings": [
            {
              "step": 10,
              "param": "min_coloc_area"
            },
            {
              "step": 11,
              "param": "min_coloc_area"
            },
            {
              "step": 12,
              "param": "min_coloc_area"
            },
            {
              "step": 13,
              "param": "min_coloc_area"
            },
            {
              "step": 14,
              "param": "min_coloc_area"
            },
            {
              "step": 15,
              "param": "min_coloc_area"
            },
            {
              "step": 16,
              "param": "min_coloc_area"
            },
            {
              "step": 17,
              "param": "min_coloc_area"
            },
            {
              "step": 18,
              "param": "min_coloc_area"
            }
          ]
        }
      ]
    },
    {
      "key": "EV_DETECTION",
      "meta": {
        "name": "EV detection",
        "shortDescription": "EV detection",
        "description": "Detects extracellular vesicles (EVs) in a fluorescence channel using rolling ball background subtraction, blurring and Li thresholding. The class the objects get is the module's \"EVs\" parameter.",
        "authors": [
          {
            "fullName": "Melanie Schuerz",
            "organization": "University of Salzburg"
          }
        ],
        "creationTime": "2026-10-20T17:24:19.175336003Z",
        "version": 2,
        "category": "Spot Detection",
        "tags": [
          "spot"
        ],
        "appVersion": "0.1.0"
      },
      "classes": [],
      "steps": [
        {
          "id": 1,
          "enabled": true,
          "command": {
            "type": "ROLLING_BALL",
            "radius": 4.0,
            "ballType": "PARABOLOID",
            "preSmooth": true
          }
        },
        {
          "id": 2,
          "enabled": true,
          "command": {
            "type": "BLUR",
            "kernelSize": 3
          }
        },
        {
          "id": 3,
          "enabled": true,
          "command": {
            "type": "BLUR",
            "kernelSize": 3
          }
        },
        {
          "id": 4,
          "enabled": true,
          "command": {
            "type": "THRESHOLD",
            "thresholds": [
              {
                "method": {
                  "type": "LI"
                },
                "minThreshold": 0.0,
                "maxThreshold": 65535.0,
                "unit": "BIT",
                "segmentationClass": 1,
                "valueSource": "ACTUAL_IMAGE"
              }
            ]
          }
        },
        {
          "id": 5,
          "enabled": true,
          "command": {
            "type": "CONNECTED_COMPONENTS",
            "minSize": 0
          }
        },
        {
          "id": 6,
          "enabled": true,
          "command": {
            "type": "EXTRACT_OBJECTS",
            "maxObjectsBeforeFail": 100000,
            "classMapping": [
              {
                "segmentationClass": 1,
                "objectClass": {
                  "GLOBAL": 1
                }
              }
            ]
          }
        },
        {
          "id": 7,
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "originSegmentation": [],
            "inputClasses": [
              {
                "GLOBAL": 1
              }
            ],
            "matchHandling": "REMOVE_ALL_CLASSES_IF_NOT_MATCH",
            "outputClass": {
              "GLOBAL": 1
            },
            "overlappingWith": "UNSET",
            "minIntersectionArea": 0.0,
            "sizeUnit": "PIXELS",
            "minArea": 4.0,
            "maxArea": 2147483600.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483600.0,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483600.0,
            "allowEdgeTouching": true,
            "intensityFilters": []
          }
        }
      ],
      "parameters": [
        {
          "key": "evs",
          "label": "EVs",
          "description": "",
          "section": "Classes",
          "default": "1",
          "bindings": [
            {
              "step": 6,
              "param": "class_mapping.0.object_class"
            },
            {
              "step": 7,
              "param": "output_class"
            },
            {
              "step": 7,
              "param": "input_classes"
            }
          ]
        },
        {
          "key": "threshold_method",
          "label": "Threshold method",
          "description": "",
          "section": "Detection",
          "default": "Li",
          "bindings": [
            {
              "step": 4,
              "param": "thresholds.0.method"
            }
          ]
        },
        {
          "key": "min_threshold",
          "label": "Min threshold",
          "description": "",
          "section": "Detection",
          "default": 0,
          "bindings": [
            {
              "step": 4,
              "param": "thresholds.0.min_threshold"
            }
          ]
        },
        {
          "key": "min_area",
          "label": "Min area",
          "description": "",
          "section": "Filter",
          "default": 4,
          "bindings": [
            {
              "step": 7,
              "param": "min_area"
            }
          ]
        },
        {
          "key": "size_unit",
          "label": "Size unit",
          "description": "",
          "section": "Filter",
          "default": "px",
          "bindings": [
            {
              "step": 7,
              "param": "size_unit"
            }
          ]
        }
      ],
      "origin": {
        "originModuleKey": "EV_DETECTION",
        "library": "ev_detection.evacomp",
        "version": 2,
        "contentHash": "c30e99d5bd4fefde"
      }
    }
  ]
}
