Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add tool description to ReadMe #6

Open
wants to merge 117 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
efd1e3e
Merge pull request #3 from neuroanatomy/master
katjaq Apr 30, 2020
231bcd0
added tool description to ReadMe
katjaq Jun 11, 2020
5b14a1e
Merge pull request #3 from katjaq/master
katjaq Jun 11, 2020
ebad30c
Update ReadMe.md
katjaq Sep 8, 2020
6185355
setup continuous integration
r03ert0 Sep 12, 2020
87ad4c0
setup mocha tests
r03ert0 Sep 12, 2020
6c827ad
Merge branch 'master' of https://github.com/neuroanatomy/thresholdmann
r03ert0 Sep 12, 2020
75c7a8a
Update ReadMe.md
r03ert0 Sep 12, 2020
47e410b
add license
katjaq Sep 12, 2020
e5e564d
fix handling points and values with global object
katjaq Sep 16, 2020
103f52c
Create Contributing.md
katjaq Sep 16, 2020
18676a4
Create Issue_Template.md
katjaq Sep 16, 2020
9ddbd6e
Create Pull_Request_Template.md
katjaq Sep 16, 2020
747452d
add figures for paper and for doc
katjaq Sep 17, 2020
faf5d4e
add documentation
katjaq Sep 17, 2020
2226850
update figures
katjaq Sep 17, 2020
b3933e2
add fig 3 for doc
katjaq Oct 4, 2020
fe2ee68
update doc image
katjaq Oct 4, 2020
37ff100
fix load rbf
katjaq Oct 4, 2020
e30f7ee
fix path
katjaq Oct 4, 2020
0787e13
fix path
katjaq Oct 4, 2020
90ee933
fix loading control points: c.p. display table and threshold update
katjaq Oct 4, 2020
634a7ab
Update ReadMe.md
r03ert0 Oct 5, 2020
16cda3f
Merge pull request #4 from neuroanatomy/master
katjaq Oct 31, 2020
e8e388a
added doc to Readme
katjaq Oct 31, 2020
0d7eb72
added documentation of new features
katjaq Oct 31, 2020
68c2e8d
import new libraries, improve file loading page, import fonts, add doc
katjaq Oct 31, 2020
edcac6b
Merge pull request #9 from katjaq/master
r03ert0 Oct 31, 2020
80a138d
fix UI test
r03ert0 Nov 1, 2020
4c9e551
update tests
r03ert0 Nov 1, 2020
636a48c
fixed favicon in doc
katjaq Nov 1, 2020
b3de8b5
Merge pull request #10 from katjaq/master
katjaq Oct 16, 2022
b48a20e
Merge pull request #5 from neuroanatomy/master
katjaq Oct 16, 2022
383c252
major UI update and change in interpolation method
r03ert0 Nov 21, 2023
c6ae283
default point
r03ert0 Nov 21, 2023
88cbbfa
fix worker
r03ert0 Nov 22, 2023
5230ef8
fix screen to voxel conversions
r03ert0 Nov 23, 2023
04ea317
add info
r03ert0 Nov 23, 2023
1eae739
cleanup, wip remove jquery
r03ert0 Nov 23, 2023
d4938cd
3d renderer
r03ert0 Nov 23, 2023
2c57227
fix absolute paths
r03ert0 Nov 24, 2023
c5216e0
fix absolute paths
r03ert0 Nov 24, 2023
84b3f35
fix drag-and-drop
r03ert0 Nov 24, 2023
daa0c42
fix coordinates
r03ert0 Nov 25, 2023
98b039c
enable manual input of threshold levels
r03ert0 Nov 25, 2023
027a28b
remove unused functions
r03ert0 Nov 25, 2023
a4a7ef0
increase line-height
r03ert0 Nov 25, 2023
bc4e2e5
shortcuts, locality
r03ert0 Nov 26, 2023
9de1b30
image adjustment tools
r03ert0 Nov 27, 2023
9b078de
update documentation with new functionalities
katjaq Nov 27, 2023
e04fea3
add new functionalities to doc
katjaq Nov 27, 2023
4065dd6
add jsdoc strings for functions
r03ert0 Nov 28, 2023
c32bb78
add naat
katjaq Nov 28, 2023
c7be498
Merge branch 'master' of https://github.com/neuroanatomy/thresholdmann
katjaq Nov 28, 2023
82aa04b
Merge pull request #6 from neuroanatomy/master
katjaq Nov 28, 2023
096eca4
add made by
katjaq Nov 28, 2023
600b8de
grey sliders
katjaq Nov 28, 2023
a1756d6
add new functionalities to doc
katjaq Nov 28, 2023
c8c922e
Update ReadMe.md
katjaq Dec 5, 2023
cfbd390
update dependencies
ntraut Dec 6, 2023
7194833
update eslint rules
ntraut Dec 6, 2023
50cf0b7
fix init functions not global
ntraut Dec 6, 2023
2b70166
Merge pull request #14 from ntraut/master
katjaq Dec 6, 2023
9accf0f
add new figures
katjaq Dec 6, 2023
d0c2303
update figures doc
katjaq Dec 6, 2023
27ff2e6
update doc
katjaq Dec 6, 2023
898f1ea
add new figure, update doc
katjaq Dec 7, 2023
5846669
update doc and figure
katjaq Dec 8, 2023
62278ef
add references to doc
katjaq Dec 8, 2023
9d021b9
add more tests
ntraut Dec 8, 2023
b012c1c
Merge pull request #15 from ntraut/master
katjaq Dec 8, 2023
1aed4c6
fix style references in doc
katjaq Dec 8, 2023
28bd5f7
Merge branch 'master' of https://github.com/neuroanatomy/thresholdmann
katjaq Dec 8, 2023
8fef0a5
add hyperlinks
katjaq Dec 8, 2023
9927c40
update ReadMe
katjaq Dec 10, 2023
25090ab
update doc
katjaq Dec 10, 2023
eb006a6
Test multiple browsers with playwright, global fixture to start and s…
sneakers-the-rat Feb 20, 2024
05aed09
linting
sneakers-the-rat Feb 20, 2024
a8ffd7f
Remove launching server from test action, since test fixtures handle …
sneakers-the-rat Feb 20, 2024
16cec4f
remove commented out or duplicate functions :)
sneakers-the-rat Feb 20, 2024
48e940a
fix incomplete attribute selectors in keyboard shortcuts
sneakers-the-rat Feb 20, 2024
a35dcc0
Merge pull request #19 from sneakers-the-rat/tests-playwright
katjaq Mar 5, 2024
df6504b
Merge pull request #27 from sneakers-the-rat/fix-button-selectors
katjaq Mar 5, 2024
9bd56c3
Merge pull request #25 from sneakers-the-rat/remove-unused
katjaq Mar 5, 2024
2066606
use pre-built Playwright Docker image in circleci
ntraut Mar 6, 2024
09cce69
Merge pull request #28 from ntraut/patch-1
katjaq Mar 6, 2024
1c52e10
perform some linting
ntraut Mar 13, 2024
6ddf70e
add new tests
ntraut Mar 13, 2024
8f31408
adjust timeouts
ntraut Mar 14, 2024
b9327f9
increase timeout for load control points test
ntraut Mar 15, 2024
ac0c41f
Merge pull request #29 from ntraut/new-tests
katjaq Mar 15, 2024
cd7ec21
increase timeout for expect
ntraut Mar 16, 2024
5560bbd
Merge pull request #30 from ntraut/patch-2
katjaq Mar 19, 2024
6e74c28
Add developer notes to Contributing.md
katjaq Mar 19, 2024
d858db4
increase timeouts for test load control points
ntraut Mar 19, 2024
f88e4c8
Merge pull request #31 from ntraut/new-tests
katjaq Mar 19, 2024
59a3d34
Update Contributing.md
katjaq Mar 19, 2024
58f8f09
add loading demo data option to start screen
katjaq Mar 19, 2024
3d59065
add demo data to pass test
katjaq Mar 19, 2024
1888a80
fix test to include new demo data
katjaq Mar 19, 2024
03027fb
nicify the demo data text
katjaq Mar 19, 2024
d55829c
resctrict control points movement to the limit of the image
ntraut Mar 20, 2024
9d7f65d
Merge pull request #32 from ntraut/master
katjaq Mar 20, 2024
9861286
add Nicolas
katjaq Mar 21, 2024
a061d22
add information on epsilon term
katjaq Apr 9, 2024
eb6342c
add performance test to doc
katjaq Apr 9, 2024
4f4185b
improve control point visibility
katjaq Apr 27, 2024
344f987
disable text selection for ui controls
katjaq Apr 27, 2024
ffbda69
set threshold value to numeric input
katjaq Apr 27, 2024
6bdaf8c
validate json
r03ert0 Apr 27, 2024
78f73ff
fix NaN finding procedure
r03ert0 Apr 27, 2024
77012c3
Add Zenodo archive badge
katjaq Apr 28, 2024
37eead0
add citation file
katjaq May 3, 2024
30e5528
add JOSS accepted paper
katjaq May 3, 2024
b04b9d7
fix style accepted JOSS paper
katjaq May 3, 2024
b0bbfa3
add citation for JOSS on tool webpage
katjaq May 3, 2024
3aba464
Merge pull request #7 from neuroanatomy/master
katjaq May 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version : 2.1
jobs:
build:
docker:
- image: mcr.microsoft.com/playwright:v1.41.2-jammy
steps:
- checkout
- run: npm install
- run:
name: Run tests
command: 'npm test'
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
render3D
11 changes: 11 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module.exports = {
'extends': ['naat'],
'overrides': [
{
files: ['test.mjs'],
'env': {
'mocha': true
}
}
]
};
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.DS_Store
._.DS_Store
node_modules
40 changes: 40 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
cff-version: "1.2.0"
authors:
- family-names: Heuer
given-names: Katja
orcid: "https://orcid.org/0000-0002-7237-0196"
- family-names: Traut
given-names: Nicolas
orcid: "https://orcid.org/0000-0003-3277-6316"
- family-names: Toro
given-names: Roberto
orcid: "https://orcid.org/0000-0002-6671-858X"
doi: 10.5281/zenodo.11080336
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Heuer
given-names: Katja
orcid: "https://orcid.org/0000-0002-7237-0196"
- family-names: Traut
given-names: Nicolas
orcid: "https://orcid.org/0000-0003-3277-6316"
- family-names: Toro
given-names: Roberto
orcid: "https://orcid.org/0000-0002-6671-858X"
date-published: 2024-05-03
doi: 10.21105/joss.06336
issn: 2475-9066
issue: 97
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 6336
title: "Thresholdmann: A Web tool for interactively creating adaptive
thresholds to segment MRI data."
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.06336"
volume: 9
title: "Thresholdmann: A Web tool for interactively creating adaptive
thresholds to segment MRI data."
33 changes: 33 additions & 0 deletions Contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Thresholdmann

### How can you help?

**Join our efforts on GitHub!**

We are looking for help to improve the user interface,
improve the user experience,
improve the responsivity by accelerating image rendering,
allow operation in different devices (different Web browsers, iOS, Android),
testing with different nifti files,
add the ability to open files from a URL,
improving the documentation, creating tutorials. We are also open
to hearing your ideas for improvement
and extension of Thresholdmann.

You can check out if there is an open [issue](https://github.com/neuroanatomy/thresholdmann/issues) you'd like to jump on, and get in touch with us there.
You can also open a new issue to let us know about bugs, or request a new feature.

We will be happy to work with anyone who would love to join our effort.

**Test new functionalities**

If you would like to change the code, please make sure the existing tests run using ```npm install && npm run test```.
If you add a new functionality, please also implement new test(s) to make sure of its correct working. Thank you.

**Get in touch with us!**

You can also write us on twitter (X) to [katjaq](https://twitter.com/katjaQheuer) and [R3RT0](https://twitter.com/r3rt0)!

**We are looking forward to meeting you!**

All work shall be open and free and respect the Mozilla Community Participation Guidelines. Please have a look at them [here.](https://www.mozilla.org/en-US/about/governance/policies/participation)
17 changes: 17 additions & 0 deletions Issue_Template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## Thank you for your feedback.

### Current behaviour

* If this is a bug, please explain how to reproduce the problem
* Which tools did you use in which sequence?
* Does the error concern the online display/ functionality or the downloaded result?
* What is the type and resolution of your data? (Can you provide a link to your data?)
* Do not include sensitive information.
* Upload the browser error message if you are familiar with web developer tools.

### Expected behaviour

### Version information (for bug reports)

* **Browser + version**:
* **Your OS + version**:
7 changes: 7 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
ISC License (ISC)

Copyright 2020 Thresholdmann Developers

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 changes: 17 additions & 0 deletions Pull_Request_Template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!-- Thank you for your contribution to Reorient -->

<!-- Give a short title and description for your pull request: -->

---
<!-- Please run the tests. Replace each `[ ]` by `[X]` when the step is complete.-->
- [ ] These changes fix #__ (github issue number if applicable).
- [ ] ```npm test``` ran with full success.
- [ ] ```npm test``` resulted in failure in _____

<!-- Replace `__` with appropriate information: -->
- [ ] I implemented tests for the changes I made OR
- [ ] These changes do not require tests because _____

<!-- Please make sure that "Allow edits from maintainers" checkbox is checked.-->

<!-- Pull requests that do not address these steps are also welcome, but they will require additional verification. -->
23 changes: 17 additions & 6 deletions ReadMe.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
# Thresholdmann

A tool to apply a smoothly varying threshold to a nifti image.
A Web tool for interactively creating adaptive thresholds to segment MRI data.

Simply drag & drop your MRI file for display in an interactive stereotaxic viewer.
Katja Heuer, Nicolas Traut & Roberto Toro, November 2023

<img src="https://user-images.githubusercontent.com/6297454/41974463-4c29f89c-7a18-11e8-8617-558869b13299.gif" width="100%" />
[![CircleCI](https://circleci.com/gh/neuroanatomy/thresholdmann.svg?style=shield)](https://circleci.com/gh/neuroanatomy/thresholdmann)
[![DOI](https://zenodo.org/badge/135712332.svg)](https://zenodo.org/doi/10.5281/zenodo.11080336)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.06336/status.svg)](https://doi.org/10.21105/joss.06336)


Add a control point and grow or shrink your selection from there.
You can later re-select and adjust control points or delete them.
Once you are happy with your selection, you can download the control points (json) and you can download the mask (.nii.gz).
Simply drag & drop your MRI file for display in an interactive stereotaxic viewer. Move and add a control point and grow or shrink your selection from there.
You can later re-select and adjust control points or delete them. Once you are happy with your selection, you can download the control points (json) and you can download the mask (`.nii.gz`).

<img src="https://raw.githubusercontent.com/neuroanatomy/thresholdmann/master/img/thresholdmann_fig1.png" width="100%" />

Brain extraction and segmentation are required for most analyses of neuroimaging data. Obtaining appropriate masks can be particularly difficult in non-human brain imaging, as standard automatic tools struggle with the surrounding muscle tissue, skull, and strong luminosity gradients. A simple interactive threshold is intuitive and fast to apply, and can often provide a rather good initial guess. However, because of luminosity gradients, the threshold that works for one brain region is likely to fail in another.

[Thresholdmann](https://neuroanatomy.github.io/thresholdmann) is an open source Web tool for the interactive application of space-varying thresholds to Nifti volumes. No download or installation are required and all processing is done on the user’s computer. Nifti volumes are dragged and dropped onto the Web app and become available for visual exploration in a stereotaxic viewer. A space-varying threshold is then created by setting control points, each with their own local threshold. Each point can be repositioned or removed, and each local threshold can be adjusted in real time using sliders or entering their values numerically. The threshold direction can be switched to allow segmentation of the structure of interest in different imaging modalities, such as T1 and T2 weighted contrasts. The opacity of the mask and the brightness and contrast of the MRI image can be adjusted via sliders. A 3D model of the thresholded mask can be computed to inspect the result in an interactive 3D render. Finally, the thresholded mask, the space varying threshold and the list of control points can be saved for later use in scripted workflows, able to reproduce the thresholded volume from the original data.

Thresholdmann complements the variety of existing brain segmentation tools, providing an easy interface to manually control the segmentation on a local scale across different brain imaging modalities and image contrast gradients. The masks produced by Thresholdmann can serve as a starting point for more detailed manual editing using tools such as [BrainBox](https://brainbox.pasteur.fr) or [ITK Snap](http://www.itksnap.org). This interactive approach is especially valuable for non-human brain imaging data, where automatic approaches often require extensive manual adjustment anyway. We have used Thresholdmann successfully to create initial brain masks for a variety of vertebrate brains – including many non-human primate datasets ([Heuer et al. 2019](https://www.sciencedirect.com/science/article/abs/pii/S0010945219301704?via%3Dihub), [Magielse et al. 2023](https://www.nature.com/articles/s42003-023-05553-z)) – as well as developmental data. Small Web tools, such as Thresholdmann or Reorient (https://neuroanatomy.github.io/reorient), focused on solving a single problem, can become helpful additions to the methodological toolbox of neuroimagers.

### Documentation
A description of a typical workflow can be found in the [doc](https://neuroanatomy.github.io/thresholdmann/doc.html).
Loading