scalesurfer 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scalesurfer-0.1.0/.gitignore +15 -0
- scalesurfer-0.1.0/PKG-INFO +71 -0
- scalesurfer-0.1.0/README.md +27 -0
- scalesurfer-0.1.0/pyproject.toml +70 -0
- scalesurfer-0.1.0/scalesurfer/__init__.py +4 -0
- scalesurfer-0.1.0/scalesurfer/convert.py +728 -0
- scalesurfer-0.1.0/scalesurfer/data.py +609 -0
- scalesurfer-0.1.0/scalesurfer/evaluation/notebook.py +223 -0
- scalesurfer-0.1.0/scalesurfer/evaluation/plotting.py +76 -0
- scalesurfer-0.1.0/scalesurfer/evaluation/volume.py +2129 -0
- scalesurfer-0.1.0/scalesurfer/experiments/__init__.py +794 -0
- scalesurfer-0.1.0/scalesurfer/experiments/clinical.py +1609 -0
- scalesurfer-0.1.0/scalesurfer/experiments/clinical_datasets.py +440 -0
- scalesurfer-0.1.0/scalesurfer/experiments/config.py +99 -0
- scalesurfer-0.1.0/scalesurfer/inference/_datasets.py +57 -0
- scalesurfer-0.1.0/scalesurfer/inference/_io.py +148 -0
- scalesurfer-0.1.0/scalesurfer/inference/_models.py +161 -0
- scalesurfer-0.1.0/scalesurfer/inference/_runtime.py +152 -0
- scalesurfer-0.1.0/scalesurfer/inference/_settings.py +40 -0
- scalesurfer-0.1.0/scalesurfer/integrations/freesurfer.py +1310 -0
- scalesurfer-0.1.0/scalesurfer/integrations/freesurfer_norm.py +150 -0
- scalesurfer-0.1.0/scalesurfer/integrations/freeview.py +61 -0
- scalesurfer-0.1.0/scalesurfer/integrations/openneuro.py +1046 -0
- scalesurfer-0.1.0/scalesurfer/models/hub.py +91 -0
- scalesurfer-0.1.0/scalesurfer/models/stats.py +228 -0
- scalesurfer-0.1.0/scalesurfer/models/volume.py +393 -0
- scalesurfer-0.1.0/scalesurfer/scalesurfer.py +694 -0
- scalesurfer-0.1.0/scalesurfer/stats/__init__.py +80 -0
- scalesurfer-0.1.0/scalesurfer/stats/inference.py +776 -0
- scalesurfer-0.1.0/scalesurfer/stats/utils.py +778 -0
- scalesurfer-0.1.0/scalesurfer/training/stats/train.py +597 -0
- scalesurfer-0.1.0/scalesurfer/training/volume/config.py +172 -0
- scalesurfer-0.1.0/scalesurfer/training/volume/pipeline.py +440 -0
- scalesurfer-0.1.0/scalesurfer/training/volume/splits.py +441 -0
- scalesurfer-0.1.0/scalesurfer/training/volume/targets.py +809 -0
- scalesurfer-0.1.0/scalesurfer/training/volume/train.py +404 -0
- scalesurfer-0.1.0/scalesurfer/training/volume/utils.py +95 -0
- scalesurfer-0.1.0/scalesurfer/volume/eval.py +804 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: scalesurfer
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Fast 3D brain segmentation and FreeSurfer-like statistics inference.
|
|
5
|
+
Project-URL: Homepage, https://github.com/voytekresearch/scalesurfer
|
|
6
|
+
Project-URL: Repository, https://github.com/voytekresearch/scalesurfer
|
|
7
|
+
Project-URL: Issues, https://github.com/voytekresearch/scalesurfer/issues
|
|
8
|
+
Author: Ryan Hammonds
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
12
|
+
Requires-Python: >=3.12
|
|
13
|
+
Requires-Dist: huggingface-hub
|
|
14
|
+
Requires-Dist: joblib
|
|
15
|
+
Requires-Dist: matplotlib
|
|
16
|
+
Requires-Dist: nibabel
|
|
17
|
+
Requires-Dist: nilearn
|
|
18
|
+
Requires-Dist: numba
|
|
19
|
+
Requires-Dist: numpy
|
|
20
|
+
Requires-Dist: pandas
|
|
21
|
+
Requires-Dist: safetensors
|
|
22
|
+
Requires-Dist: scikit-image
|
|
23
|
+
Requires-Dist: scipy
|
|
24
|
+
Requires-Dist: seaborn>=0.13.2
|
|
25
|
+
Requires-Dist: torch
|
|
26
|
+
Requires-Dist: tqdm
|
|
27
|
+
Provides-Extra: openneuro
|
|
28
|
+
Requires-Dist: boto3; extra == 'openneuro'
|
|
29
|
+
Requires-Dist: botocore; extra == 'openneuro'
|
|
30
|
+
Requires-Dist: joblib; extra == 'openneuro'
|
|
31
|
+
Requires-Dist: matplotlib; extra == 'openneuro'
|
|
32
|
+
Requires-Dist: nibabel; extra == 'openneuro'
|
|
33
|
+
Requires-Dist: nilearn; extra == 'openneuro'
|
|
34
|
+
Requires-Dist: numba; extra == 'openneuro'
|
|
35
|
+
Requires-Dist: numpy; extra == 'openneuro'
|
|
36
|
+
Requires-Dist: pandas; extra == 'openneuro'
|
|
37
|
+
Requires-Dist: scikit-image; extra == 'openneuro'
|
|
38
|
+
Requires-Dist: scipy; extra == 'openneuro'
|
|
39
|
+
Requires-Dist: torch; extra == 'openneuro'
|
|
40
|
+
Requires-Dist: tqdm; extra == 'openneuro'
|
|
41
|
+
Provides-Extra: test
|
|
42
|
+
Requires-Dist: pytest; extra == 'test'
|
|
43
|
+
Description-Content-Type: text/markdown
|
|
44
|
+
|
|
45
|
+
# scalesufer
|
|
46
|
+
|
|
47
|
+
`scalesurfer` is a repository for fast FreeSurfer inference. The volumetric model uses UNet (local scale), with a Transformer bottlenck (global scale). The stats models predict FreeSurfer stats.
|
|
48
|
+
|
|
49
|
+
## Usage
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
from scalesurfer import ScaleSurfer
|
|
53
|
+
|
|
54
|
+
# Anatomical images
|
|
55
|
+
adni_dir = "/home/rph/scalesurfer/data/adni_bids"
|
|
56
|
+
subjects = ["sub-002S0559", "sub-002S0619"]
|
|
57
|
+
|
|
58
|
+
anat_files = [
|
|
59
|
+
f"{adni_dir}/sub-002S0559/ses-20060627/anat/sub-002S0559_ses-20060627_T1w.nii.gz",
|
|
60
|
+
f"{adni_dir}/sub-002S0619/ses-20060601/anat/sub-002S0619_ses-20060601_T1w.nii.gz"
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
# Predict aparc+aseg and stats tables
|
|
64
|
+
surfer = ScaleSurfer(anat_files, subjects, "/tmp/scalesurfer_subjects", device="cuda")
|
|
65
|
+
surfer.prepare_images()
|
|
66
|
+
surfer.predict_volumes()
|
|
67
|
+
surfer.plot_volume(subjects[0])
|
|
68
|
+
df_stats = surfer.predict_stats()
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
See the inference [notebook](https://github.com/voytekresearch/scalesurfer/blob/master/docs/notebooks/03_inference/08_inference.ipynb) for additional settings for faster processing.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# scalesufer
|
|
2
|
+
|
|
3
|
+
`scalesurfer` is a repository for fast FreeSurfer inference. The volumetric model uses UNet (local scale), with a Transformer bottlenck (global scale). The stats models predict FreeSurfer stats.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from scalesurfer import ScaleSurfer
|
|
9
|
+
|
|
10
|
+
# Anatomical images
|
|
11
|
+
adni_dir = "/home/rph/scalesurfer/data/adni_bids"
|
|
12
|
+
subjects = ["sub-002S0559", "sub-002S0619"]
|
|
13
|
+
|
|
14
|
+
anat_files = [
|
|
15
|
+
f"{adni_dir}/sub-002S0559/ses-20060627/anat/sub-002S0559_ses-20060627_T1w.nii.gz",
|
|
16
|
+
f"{adni_dir}/sub-002S0619/ses-20060601/anat/sub-002S0619_ses-20060601_T1w.nii.gz"
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
# Predict aparc+aseg and stats tables
|
|
20
|
+
surfer = ScaleSurfer(anat_files, subjects, "/tmp/scalesurfer_subjects", device="cuda")
|
|
21
|
+
surfer.prepare_images()
|
|
22
|
+
surfer.predict_volumes()
|
|
23
|
+
surfer.plot_volume(subjects[0])
|
|
24
|
+
df_stats = surfer.predict_stats()
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
See the inference [notebook](https://github.com/voytekresearch/scalesurfer/blob/master/docs/notebooks/03_inference/08_inference.ipynb) for additional settings for faster processing.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "scalesurfer"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Fast 3D brain segmentation and FreeSurfer-like statistics inference."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.12"
|
|
7
|
+
authors = [
|
|
8
|
+
{name = "Ryan Hammonds"},
|
|
9
|
+
]
|
|
10
|
+
classifiers = [
|
|
11
|
+
"Programming Language :: Python :: 3",
|
|
12
|
+
"Programming Language :: Python :: 3.12",
|
|
13
|
+
"Topic :: Scientific/Engineering :: Medical Science Apps.",
|
|
14
|
+
]
|
|
15
|
+
dependencies = [
|
|
16
|
+
"huggingface-hub",
|
|
17
|
+
"joblib",
|
|
18
|
+
"matplotlib",
|
|
19
|
+
"nibabel",
|
|
20
|
+
"nilearn",
|
|
21
|
+
"numba",
|
|
22
|
+
"numpy",
|
|
23
|
+
"pandas",
|
|
24
|
+
"safetensors",
|
|
25
|
+
"scikit-image",
|
|
26
|
+
"scipy",
|
|
27
|
+
"seaborn>=0.13.2",
|
|
28
|
+
"torch",
|
|
29
|
+
"tqdm",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.optional-dependencies]
|
|
33
|
+
test = [
|
|
34
|
+
"pytest",
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
openneuro = [
|
|
38
|
+
"boto3",
|
|
39
|
+
"botocore",
|
|
40
|
+
"joblib",
|
|
41
|
+
"matplotlib",
|
|
42
|
+
"nibabel",
|
|
43
|
+
"nilearn",
|
|
44
|
+
"numba",
|
|
45
|
+
"numpy",
|
|
46
|
+
"pandas",
|
|
47
|
+
"scikit-image",
|
|
48
|
+
"scipy",
|
|
49
|
+
"torch",
|
|
50
|
+
"tqdm",
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
[project.urls]
|
|
54
|
+
Homepage = "https://github.com/voytekresearch/scalesurfer"
|
|
55
|
+
Repository = "https://github.com/voytekresearch/scalesurfer"
|
|
56
|
+
Issues = "https://github.com/voytekresearch/scalesurfer/issues"
|
|
57
|
+
|
|
58
|
+
[build-system]
|
|
59
|
+
requires = ["hatchling"]
|
|
60
|
+
build-backend = "hatchling.build"
|
|
61
|
+
|
|
62
|
+
[tool.hatch.build.targets.wheel]
|
|
63
|
+
packages = ["scalesurfer"]
|
|
64
|
+
|
|
65
|
+
[tool.hatch.build.targets.sdist]
|
|
66
|
+
include = [
|
|
67
|
+
"/scalesurfer",
|
|
68
|
+
"/README.md",
|
|
69
|
+
"/pyproject.toml",
|
|
70
|
+
]
|