Skip to content

Commit d788ce2

Browse files
committed
ci: install Fiji mcib3d dependency
0 parents  commit d788ce2

29 files changed

Lines changed: 8517 additions & 0 deletions

.github/workflows/ci.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- master
8+
pull_request:
9+
branches:
10+
- main
11+
- master
12+
13+
permissions:
14+
contents: read
15+
16+
jobs:
17+
build:
18+
name: Maven build
19+
runs-on: ubuntu-latest
20+
21+
steps:
22+
- name: Check out repository
23+
uses: actions/checkout@v4
24+
25+
- name: Set up Java
26+
uses: actions/setup-java@v4
27+
with:
28+
distribution: temurin
29+
java-version: "8"
30+
cache: maven
31+
32+
- name: Install mcib3d-core dependency
33+
run: |
34+
curl -fL -o mcib3d-core-4.1.7b.jar https://sites.imagej.net/Tboudier/plugins/mcib3d-suite/mcib3d-core-4.1.7b.jar-20250509161435
35+
mvn -B install:install-file \
36+
"-Dfile=mcib3d-core-4.1.7b.jar" \
37+
"-DgroupId=org.framagit.mcib3d" \
38+
"-DartifactId=mcib3d-core" \
39+
"-Dversion=4.1.7b" \
40+
"-Dpackaging=jar" \
41+
"-DgeneratePom=true"
42+
43+
- name: Build and test
44+
run: mvn -B clean verify "-Denforcer.skip=true"

.gitignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Build output
2+
/target/
3+
mcib3d-core-*.jar
4+
5+
# IDE files
6+
/.idea/
7+
*.iml
8+
/.vscode/
9+
/.classpath
10+
/.project
11+
/.settings/
12+
*.swp
13+
*~
14+
15+
# OS files
16+
.DS_Store
17+
Thumbs.db
18+
desktop.ini
19+
20+
# Temp files
21+
*.tmp.*

.zenodo.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"title": "3D Objects Counter+: morphology-filterable 3D object counting for Fiji/ImageJ",
3+
"upload_type": "software",
4+
"description": "A Fiji/ImageJ plugin extending the classic 3D Objects Counter workflow with fixed morphology and intensity filters, macro-recordable options, and a public Java API.",
5+
"creators": [
6+
{
7+
"name": "Malcolm, Jamie",
8+
"affiliation": "UK Dementia Research Institute at Imperial College London",
9+
"orcid": "0009-0008-3862-2776"
10+
}
11+
],
12+
"license": "BSD-3-Clause",
13+
"keywords": [
14+
"Fiji",
15+
"ImageJ",
16+
"microscopy",
17+
"3D object counting",
18+
"morphological filtering",
19+
"segmentation"
20+
],
21+
"related_identifiers": [
22+
{
23+
"identifier": "https://github.com/Jay2owe/3DObjectsCounterPlus",
24+
"relation": "isSupplementTo",
25+
"scheme": "url",
26+
"resource_type": "software"
27+
},
28+
{
29+
"identifier": "10.1111/j.1365-2818.2006.01706.x",
30+
"relation": "cites",
31+
"scheme": "doi",
32+
"resource_type": "publication-article"
33+
},
34+
{
35+
"identifier": "10.1093/bioinformatics/btt276",
36+
"relation": "cites",
37+
"scheme": "doi",
38+
"resource_type": "publication-article"
39+
}
40+
]
41+
}

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Changelog
2+
3+
All notable changes to 3D Objects Counter+ are documented here.
4+
5+
## [0.1.0] - 2026-05-17
6+
7+
### Added
8+
9+
- Fiji/ImageJ command at `Analyze > 3D Objects Counter+`.
10+
- Native-style dialog with threshold and slice controls, live threshold preview,
11+
fixed morphology/intensity filter ranges, map selection, result-table
12+
selection, and optional measurement redirect.
13+
- Public Java API through `OC3DPlus`, `OC3DPlusParameters`, and
14+
`OC3DPlusResult`.
15+
- Macro-recordable options for threshold, size limits, edge exclusion,
16+
measurement redirect, direct morphology filters, and output visibility.
17+
- Object, surface, centroid, and center-of-mass maps with numbered overlays.
18+
- Per-object statistics, summary logging, and public macro/API documentation.
19+
- Streaming filtered measurement path for morphology filters without re-running
20+
unsafe heavyweight map generation.
21+
22+
### Fixed
23+
24+
- Guarded high-fragmentation filtered stacks against ImageJ application stalls
25+
caused by expensive legacy object-map pathways.
26+
- Preserved morphology result columns for filtered runs, including filters that
27+
do not directly use every morphology feature.
28+
- Kept object-map labels visible regardless of object count by using overlay
29+
labels instead of changing map pixels.
30+
- Made measurement redirect use processing snapshots so live ImageJ windows are
31+
not read while the engine is running.
32+
33+
### Notes
34+
35+
- The Fiji update site and Zenodo DOI are not live yet.

CITATION.cff

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
cff-version: 1.2.0
2+
message: "If you use 3D Objects Counter+ in published work, please cite it as below."
3+
type: software
4+
title: "3D Objects Counter+: morphology-filterable 3D object counting for Fiji/ImageJ"
5+
abstract: >-
6+
Extension of the classic Fiji 3D Objects Counter (Bolte and Cordelieres,
7+
2006) with morphological filters (sphericity, compactness, elongation,
8+
volume, surface area, Feret diameter, intensity), a public Java API,
9+
and macro-recordable workflows.
10+
authors:
11+
- given-names: Jamie
12+
family-names: Malcolm
13+
orcid: "https://orcid.org/0009-0008-3862-2776"
14+
affiliation: "UK Dementia Research Institute at Imperial College London"
15+
email: jamiemalcolm12@gmail.com
16+
repository-code: "https://github.com/Jay2owe/3DObjectsCounterPlus"
17+
url: "https://github.com/Jay2owe/3DObjectsCounterPlus"
18+
license: BSD-3-Clause
19+
version: "0.1.0"
20+
date-released: 2026-05-17
21+
keywords:
22+
- fiji
23+
- imagej
24+
- microscopy
25+
- 3d-object-counting
26+
- morphological-filtering
27+
- segmentation
28+
references:
29+
- type: article
30+
title: "A guided tour into subcellular colocalization analysis in light microscopy"
31+
authors:
32+
- family-names: Bolte
33+
given-names: S.
34+
- family-names: Cordelieres
35+
given-names: F. P.
36+
journal: "Journal of Microscopy"
37+
year: 2006
38+
doi: "10.1111/j.1365-2818.2006.01706.x"

LICENSE

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Copyright (c) 2026 Jamie Malcolm
2+
3+
Developed at the Brancaccio Lab, UK Dementia Research Institute,
4+
Imperial College London.
5+
6+
Redistribution and use in source and binary forms, with or without
7+
modification, are permitted provided that the following conditions are
8+
met:
9+
10+
1. Redistributions of source code must retain the above copyright
11+
notice, this list of conditions and the following disclaimer.
12+
13+
2. Redistributions in binary form must reproduce the above copyright
14+
notice, this list of conditions and the following disclaimer in the
15+
documentation and/or other materials provided with the distribution.
16+
17+
3. Neither the name of the copyright holder nor the names of its
18+
contributors may be used to endorse or promote products derived from
19+
this software without specific prior written permission.
20+
21+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
27+
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY FROM THE USE OF THIS
31+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

0 commit comments

Comments
 (0)