{
  "schemaVersion": 2,
  "meta": {
    "name": "Spot count",
    "shortDescription": "Count the number of spots in an image channel.",
    "description": "Count the number of spots in an image channel.",
    "authors": [
      "Melanie Schuerz"
    ],
    "authorOrganization": "University of Salzburg",
    "creationTime": "2026-06-11T00:00:00Z",
    "category": "Spot Detection",
    "tags": [
      "spot-count",
      "particle-analysis"
    ]
  },
  "classification": {
    "classes": [
      {
        "id": {
          "VALID": 0
        },
        "color": "#97978f",
        "name": "Background",
        "notes": ""
      },
      {
        "id": {
          "VALID": 21
        },
        "color": "#33CFFF",
        "name": "ch1@spot",
        "notes": "",
        "measure": {
          "areaSize": [
            "AVG"
          ],
          "circularity": [
            "AVG"
          ],
          "intensitySum": [
            "AVG"
          ],
          "intensityAvg": [
            "AVG"
          ]
        }
      },
      {
        "id": {
          "VALID": 5
        },
        "color": "#66FF33",
        "name": "tetraspeck@spot",
        "notes": "",
        "measure": {}
      }
    ]
  },
  "plate": {
    "groupingMode": "NO_GROUPING",
    "groupingRegex": "",
    "plateCols": 1,
    "plateRows": 1,
    "wellCols": 4,
    "wellRows": 4,
    "wellImageOrder": [
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16
    ]
  },
  "pipelines": [
    {
      "id": 1,
      "name": "EV Detection",
      "description": "1. output class can be renamed in classification tab (ch1@.. can be e.g. GFP@...)\n2. Select EV image channel\n3. Adapt manual threshold\n4. Object can be gated by size/circularity in \"Classifier\"\n",
      "imageSource": {
        "channel": 0
      },
      "enabled": true,
      "steps": [
        {
          "enabled": true,
          "command": {
            "type": "ROLLING_BALL",
            "radius": 4.0,
            "ballType": "PARABOLOID",
            "preSmooth": true
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "BLUR",
            "kernelSize": 3
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "BLUR",
            "kernelSize": 3
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "THRESHOLD",
            "thresholds": [
              {
                "method": {
                  "type": "MANUAL"
                },
                "minThreshold": 200.0,
                "maxThreshold": 65535.0,
                "unit": "BIT",
                "objectClassId": 1
              }
            ]
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "WATERSHED",
            "maximumFinderTolerance": 0.5,
            "smoothingSigma": 0.0,
            "minObjectSize": 0
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "CONNECTED_COMPONENTS"
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "EXTRACT_OBJECTS",
            "maxObjectsBeforeFail": 100000
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "originSegmentation": [],
            "inputClasses": [
              {
                "VALID": 1
              }
            ],
            "matchHandling": "REMOVE_ALL_CLASSES_IF_NOT_MATCH",
            "outputClass": "UNSET",
            "overlappingWith": "UNSET",
            "minIntersectionArea": 0.0,
            "sizeUnit": "px",
            "minArea": 3.0,
            "maxArea": 2147483648.0,
            "minCircularity": 0.10000000149011612,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483648,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483648,
            "allowEdgeTouching": true
          }
        }
      ]
    },
    {
      "id": 2,
      "name": "Tetraspeck",
      "description": "This pipeline steps enables the removal of calibration beads (e.g. tetraspeck) that are fluorescent in all channels. \n1. Enable pipeline\n2. Select Tetraspeck image channel (channel showing only tetraspecks)\n3. Adapt (manual) threshold \n4. Within the *Reclassify* command select the channels where tetraspeck need to be removed.",
      "imageSource": {
        "channel": 1
      },
      "enabled": true,
      "steps": [
        {
          "enabled": true,
          "command": {
            "type": "ROLLING_BALL",
            "radius": 4.0,
            "ballType": "PARABOLOID",
            "preSmooth": true
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "BLUR",
            "kernelSize": 3
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "BLUR",
            "kernelSize": 3
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "THRESHOLD",
            "thresholds": [
              {
                "method": {
                  "type": "MANUAL"
                },
                "minThreshold": 200.0,
                "maxThreshold": 65535.0,
                "unit": "BIT",
                "objectClassId": 5
              }
            ]
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "WATERSHED",
            "maximumFinderTolerance": 0.5,
            "smoothingSigma": 0.0,
            "minObjectSize": 0
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "CONNECTED_COMPONENTS"
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "EXTRACT_OBJECTS",
            "maxObjectsBeforeFail": 100000
          }
        },
        {
          "enabled": true,
          "command": {
            "type": "CLASSIFY_OBJECTS",
            "originSegmentation": [],
            "inputClasses": [
              {
                "VALID": 5
              }
            ],
            "matchHandling": "REMOVE_ALL_CLASSES_IF_NOT_MATCH",
            "outputClass": "UNSET",
            "overlappingWith": "UNSET",
            "minIntersectionArea": 0.0,
            "sizeUnit": "px",
            "minArea": 5.0,
            "maxArea": 2147483648.0,
            "minCircularity": 0.0,
            "maxCircularity": 1.0,
            "minSolidity": 0.0,
            "maxSolidity": 1.0,
            "minAspectRatio": 0.0,
            "maxAspectRatio": 2147483648,
            "minEccentricity": 0.0,
            "maxEccentricity": 1.0,
            "minFeret": 0.0,
            "maxFeret": 2147483648,
            "allowEdgeTouching": true
          }
        }
      ]
    }
  ]
}