junifer 0.0.5.dev131__py3-none-any.whl → 0.0.5.dev145__py3-none-any.whl
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.
- junifer/__init__.py +17 -0
- junifer/_version.py +2 -2
- junifer/api/__init__.py +3 -0
- junifer/api/decorators.py +9 -0
- junifer/api/functions.py +7 -4
- junifer/api/parser.py +3 -0
- junifer/api/queue_context/__init__.py +3 -0
- junifer/api/res/afni/run_afni_docker.sh +1 -1
- junifer/api/res/ants/run_ants_docker.sh +1 -1
- junifer/api/res/fsl/run_fsl_docker.sh +1 -1
- junifer/configs/juseless/__init__.py +3 -0
- junifer/configs/juseless/datagrabbers/__init__.py +9 -0
- junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +3 -0
- junifer/configs/juseless/datagrabbers/camcan_vbm.py +3 -0
- junifer/configs/juseless/datagrabbers/ixi_vbm.py +3 -0
- junifer/configs/juseless/datagrabbers/ucla.py +3 -0
- junifer/configs/juseless/datagrabbers/ukb_vbm.py +3 -0
- junifer/data/__init__.py +20 -0
- junifer/data/coordinates.py +8 -0
- junifer/data/masks.py +10 -0
- junifer/data/parcellations.py +9 -0
- junifer/data/template_spaces.py +3 -0
- junifer/data/utils.py +3 -0
- junifer/datagrabber/__init__.py +15 -0
- junifer/datagrabber/aomic/__init__.py +3 -0
- junifer/datagrabber/aomic/id1000.py +3 -0
- junifer/datagrabber/aomic/piop1.py +3 -0
- junifer/datagrabber/aomic/piop2.py +3 -0
- junifer/datagrabber/base.py +3 -0
- junifer/datagrabber/datalad_base.py +3 -0
- junifer/datagrabber/hcp1200/__init__.py +3 -0
- junifer/datagrabber/hcp1200/datalad_hcp1200.py +3 -0
- junifer/datagrabber/hcp1200/hcp1200.py +3 -0
- junifer/datagrabber/multiple.py +3 -0
- junifer/datagrabber/pattern.py +3 -0
- junifer/datagrabber/pattern_datalad.py +3 -0
- junifer/datagrabber/utils.py +3 -0
- junifer/datareader/__init__.py +3 -0
- junifer/datareader/default.py +3 -0
- junifer/markers/__init__.py +21 -0
- junifer/markers/base.py +21 -7
- junifer/markers/brainprint.py +3 -0
- junifer/markers/collection.py +3 -0
- junifer/markers/complexity/__init__.py +10 -0
- junifer/markers/complexity/complexity_base.py +3 -0
- junifer/markers/complexity/hurst_exponent.py +3 -0
- junifer/markers/complexity/multiscale_entropy_auc.py +3 -0
- junifer/markers/complexity/perm_entropy.py +3 -0
- junifer/markers/complexity/range_entropy.py +3 -0
- junifer/markers/complexity/range_entropy_auc.py +3 -0
- junifer/markers/complexity/sample_entropy.py +3 -0
- junifer/markers/complexity/tests/test_hurst_exponent.py +7 -0
- junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +7 -0
- junifer/markers/complexity/tests/test_perm_entropy.py +7 -0
- junifer/markers/complexity/tests/test_range_entropy.py +7 -0
- junifer/markers/complexity/tests/test_range_entropy_auc.py +7 -0
- junifer/markers/complexity/tests/test_sample_entropy.py +7 -0
- junifer/markers/complexity/tests/test_weighted_perm_entropy.py +7 -0
- junifer/markers/complexity/weighted_perm_entropy.py +3 -0
- junifer/markers/ets_rss.py +3 -0
- junifer/markers/falff/__init__.py +3 -0
- junifer/markers/falff/_afni_falff.py +3 -0
- junifer/markers/falff/_junifer_falff.py +3 -0
- junifer/markers/falff/falff_base.py +3 -0
- junifer/markers/falff/falff_parcels.py +3 -0
- junifer/markers/falff/falff_spheres.py +3 -0
- junifer/markers/functional_connectivity/__init__.py +9 -0
- junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +3 -0
- junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +3 -0
- junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +3 -0
- junifer/markers/functional_connectivity/functional_connectivity_base.py +3 -0
- junifer/markers/functional_connectivity/functional_connectivity_parcels.py +3 -0
- junifer/markers/functional_connectivity/functional_connectivity_spheres.py +3 -0
- junifer/markers/parcel_aggregation.py +3 -0
- junifer/markers/reho/__init__.py +3 -0
- junifer/markers/reho/_afni_reho.py +3 -0
- junifer/markers/reho/_junifer_reho.py +3 -0
- junifer/markers/reho/reho_base.py +2 -0
- junifer/markers/reho/reho_parcels.py +3 -0
- junifer/markers/reho/reho_spheres.py +3 -0
- junifer/markers/sphere_aggregation.py +3 -0
- junifer/markers/temporal_snr/__init__.py +3 -0
- junifer/markers/temporal_snr/temporal_snr_base.py +3 -0
- junifer/markers/temporal_snr/temporal_snr_parcels.py +3 -0
- junifer/markers/temporal_snr/temporal_snr_spheres.py +3 -0
- junifer/onthefly/__init__.py +3 -0
- junifer/onthefly/read_transform.py +3 -0
- junifer/pipeline/__init__.py +8 -0
- junifer/pipeline/pipeline_step_mixin.py +3 -0
- junifer/pipeline/registry.py +3 -0
- junifer/pipeline/singleton.py +3 -0
- junifer/pipeline/update_meta_mixin.py +3 -0
- junifer/pipeline/utils.py +3 -0
- junifer/pipeline/workdir_manager.py +3 -0
- junifer/preprocess/__init__.py +8 -0
- junifer/preprocess/base.py +4 -1
- junifer/preprocess/confounds/__init__.py +3 -0
- junifer/preprocess/confounds/fmriprep_confound_remover.py +3 -0
- junifer/preprocess/smoothing/__init__.py +3 -0
- junifer/preprocess/warping/__init__.py +3 -0
- junifer/preprocess/warping/_ants_warper.py +3 -0
- junifer/preprocess/warping/_fsl_warper.py +3 -0
- junifer/stats.py +3 -0
- junifer/storage/__init__.py +8 -0
- junifer/storage/base.py +3 -0
- junifer/storage/hdf5.py +3 -0
- junifer/storage/pandas_base.py +3 -0
- junifer/storage/sqlite.py +3 -0
- junifer/storage/utils.py +9 -0
- junifer/testing/__init__.py +3 -0
- junifer/testing/datagrabbers.py +7 -0
- junifer/testing/utils.py +3 -0
- junifer/utils/__init__.py +10 -0
- junifer/utils/fs.py +3 -0
- junifer/utils/helpers.py +3 -0
- junifer/utils/logging.py +10 -0
- {junifer-0.0.5.dev131.dist-info → junifer-0.0.5.dev145.dist-info}/METADATA +1 -1
- {junifer-0.0.5.dev131.dist-info → junifer-0.0.5.dev145.dist-info}/RECORD +123 -123
- {junifer-0.0.5.dev131.dist-info → junifer-0.0.5.dev145.dist-info}/AUTHORS.rst +0 -0
- {junifer-0.0.5.dev131.dist-info → junifer-0.0.5.dev145.dist-info}/LICENSE.md +0 -0
- {junifer-0.0.5.dev131.dist-info → junifer-0.0.5.dev145.dist-info}/WHEEL +0 -0
- {junifer-0.0.5.dev131.dist-info → junifer-0.0.5.dev145.dist-info}/entry_points.txt +0 -0
- {junifer-0.0.5.dev131.dist-info → junifer-0.0.5.dev145.dist-info}/top_level.txt +0 -0
junifer/__init__.py
CHANGED
@@ -20,3 +20,20 @@ from . import (
|
|
20
20
|
onthefly,
|
21
21
|
)
|
22
22
|
from ._version import __version__
|
23
|
+
|
24
|
+
|
25
|
+
__all__ = [
|
26
|
+
"api",
|
27
|
+
"configs",
|
28
|
+
"data",
|
29
|
+
"datagrabber",
|
30
|
+
"datareader",
|
31
|
+
"markers",
|
32
|
+
"pipeline",
|
33
|
+
"preprocess",
|
34
|
+
"stats",
|
35
|
+
"storage",
|
36
|
+
"utils",
|
37
|
+
"external",
|
38
|
+
"onthefly",
|
39
|
+
]
|
junifer/_version.py
CHANGED
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '0.0.5.
|
16
|
-
__version_tuple__ = version_tuple = (0, 0, 5, '
|
15
|
+
__version__ = version = '0.0.5.dev145'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 5, 'dev145')
|
junifer/api/__init__.py
CHANGED
junifer/api/decorators.py
CHANGED
@@ -10,6 +10,15 @@ from typing import Type
|
|
10
10
|
from ..pipeline.registry import register
|
11
11
|
|
12
12
|
|
13
|
+
__all__ = [
|
14
|
+
"register_datagrabber",
|
15
|
+
"register_datareader",
|
16
|
+
"register_preprocessor",
|
17
|
+
"register_marker",
|
18
|
+
"register_storage",
|
19
|
+
]
|
20
|
+
|
21
|
+
|
13
22
|
def register_datagrabber(klass: Type) -> Type:
|
14
23
|
"""Register DataGrabber.
|
15
24
|
|
junifer/api/functions.py
CHANGED
@@ -23,6 +23,9 @@ from .queue_context import GnuParallelLocalAdapter, HTCondorAdapter
|
|
23
23
|
from .utils import yaml
|
24
24
|
|
25
25
|
|
26
|
+
__all__ = ["run", "collect", "queue", "reset", "list_elements"]
|
27
|
+
|
28
|
+
|
26
29
|
def _get_datagrabber(datagrabber_config: Dict) -> BaseDataGrabber:
|
27
30
|
"""Get DataGrabber.
|
28
31
|
|
@@ -92,7 +95,7 @@ def run(
|
|
92
95
|
datagrabber : dict
|
93
96
|
DataGrabber to use. Must have a key ``kind`` with the kind of
|
94
97
|
DataGrabber to use. All other keys are passed to the DataGrabber
|
95
|
-
|
98
|
+
constructor.
|
96
99
|
markers : list of dict
|
97
100
|
List of markers to extract. Each marker is a dict with at least two
|
98
101
|
keys: ``name`` and ``kind``. The ``name`` key is used to name the
|
@@ -102,11 +105,11 @@ def run(
|
|
102
105
|
storage : dict
|
103
106
|
Storage to use. Must have a key ``kind`` with the kind of
|
104
107
|
storage to use. All other keys are passed to the storage
|
105
|
-
|
108
|
+
constructor.
|
106
109
|
preprocessors : list of dict, optional
|
107
110
|
List of preprocessors to use. Each preprocessor is a dict with at
|
108
111
|
least a key ``kind`` specifying the preprocessor to use. All other keys
|
109
|
-
are passed to the preprocessor
|
112
|
+
are passed to the preprocessor constructor (default None).
|
110
113
|
elements : str or tuple or list of str or tuple, optional
|
111
114
|
Element(s) to process. Will be used to index the DataGrabber
|
112
115
|
(default None).
|
@@ -188,7 +191,7 @@ def collect(storage: Dict) -> None:
|
|
188
191
|
storage : dict
|
189
192
|
Storage to use. Must have a key ``kind`` with the kind of
|
190
193
|
storage to use. All other keys are passed to the storage
|
191
|
-
|
194
|
+
constructor.
|
192
195
|
|
193
196
|
"""
|
194
197
|
storage_params = storage.copy()
|
junifer/api/parser.py
CHANGED
@@ -31,7 +31,7 @@ if [ -d "${var}" ]; then
|
|
31
31
|
done
|
32
32
|
|
33
33
|
echo "Docker args: ${docker_args[*]}" >&2
|
34
|
-
echo "Corrected args for
|
34
|
+
echo "Corrected args for AFNI: ${corrected_args[*]}" >&2
|
35
35
|
|
36
36
|
cwd=$(pwd)
|
37
37
|
cmd="docker run --rm ${docker_args[*]} -v ${cwd}:${cwd} -w ${cwd} afni/afni_make_build ${corrected_args[*]}"
|
@@ -31,7 +31,7 @@ if [ -d "${var}" ]; then
|
|
31
31
|
done
|
32
32
|
|
33
33
|
echo "Docker args: ${docker_args[*]}" >&2
|
34
|
-
echo "Corrected args for
|
34
|
+
echo "Corrected args for ANTs: ${corrected_args[*]}" >&2
|
35
35
|
|
36
36
|
cwd=$(pwd)
|
37
37
|
cmd="docker run --rm ${docker_args[*]} -v ${cwd}:${cwd} -w ${cwd} antsx/ants ${corrected_args[*]}"
|
@@ -31,7 +31,7 @@ if [ -d "${var}" ]; then
|
|
31
31
|
done
|
32
32
|
|
33
33
|
echo "Docker args: ${docker_args[*]}" >&2
|
34
|
-
echo "Corrected args for
|
34
|
+
echo "Corrected args for FSL: ${corrected_args[*]}" >&2
|
35
35
|
|
36
36
|
cwd=$(pwd)
|
37
37
|
cmd="docker run --rm ${docker_args[*]} -v ${cwd}:${cwd} -w ${cwd} brainlife/fsl ${corrected_args[*]}"
|
@@ -10,3 +10,12 @@ from .camcan_vbm import JuselessDataladCamCANVBM
|
|
10
10
|
from .ixi_vbm import JuselessDataladIXIVBM
|
11
11
|
from .ucla import JuselessUCLA
|
12
12
|
from .ukb_vbm import JuselessDataladUKBVBM
|
13
|
+
|
14
|
+
|
15
|
+
__all__ = [
|
16
|
+
"JuselessDataladAOMICID1000VBM",
|
17
|
+
"JuselessDataladCamCANVBM",
|
18
|
+
"JuselessDataladIXIVBM",
|
19
|
+
"JuselessUCLA",
|
20
|
+
"JuselessDataladUKBVBM",
|
21
|
+
]
|
@@ -11,6 +11,9 @@ from ....api.decorators import register_datagrabber
|
|
11
11
|
from ....datagrabber import PatternDataladDataGrabber
|
12
12
|
|
13
13
|
|
14
|
+
__all__ = ["JuselessDataladAOMICID1000VBM"]
|
15
|
+
|
16
|
+
|
14
17
|
@register_datagrabber
|
15
18
|
class JuselessDataladAOMICID1000VBM(PatternDataladDataGrabber):
|
16
19
|
"""Concrete implementation for Juseless AOMIC ID1000 VBM data fetching.
|
@@ -12,6 +12,9 @@ from ....api.decorators import register_datagrabber
|
|
12
12
|
from ....datagrabber import PatternDataladDataGrabber
|
13
13
|
|
14
14
|
|
15
|
+
__all__ = ["JuselessDataladCamCANVBM"]
|
16
|
+
|
17
|
+
|
15
18
|
@register_datagrabber
|
16
19
|
class JuselessDataladCamCANVBM(PatternDataladDataGrabber):
|
17
20
|
"""Concrete implementation for Juseless CamCAN VBM data fetching.
|
@@ -13,6 +13,9 @@ from ....datagrabber import PatternDataladDataGrabber
|
|
13
13
|
from ....utils import raise_error
|
14
14
|
|
15
15
|
|
16
|
+
__all__ = ["JuselessDataladIXIVBM"]
|
17
|
+
|
18
|
+
|
16
19
|
@register_datagrabber
|
17
20
|
class JuselessDataladIXIVBM(PatternDataladDataGrabber):
|
18
21
|
"""Concrete implementation for Juseless IXI VBM data fetching.
|
@@ -12,6 +12,9 @@ from ....api.decorators import register_datagrabber
|
|
12
12
|
from ....datagrabber import PatternDataladDataGrabber
|
13
13
|
|
14
14
|
|
15
|
+
__all__ = ["JuselessDataladUKBVBM"]
|
16
|
+
|
17
|
+
|
15
18
|
@register_datagrabber
|
16
19
|
class JuselessDataladUKBVBM(PatternDataladDataGrabber):
|
17
20
|
"""Concrete implementation for Juseless UKB VBM data fetching.
|
junifer/data/__init__.py
CHANGED
@@ -28,3 +28,23 @@ from .masks import (
|
|
28
28
|
from .template_spaces import get_template, get_xfm
|
29
29
|
|
30
30
|
from . import utils
|
31
|
+
|
32
|
+
|
33
|
+
__all__ = [
|
34
|
+
"list_coordinates",
|
35
|
+
"load_coordinates",
|
36
|
+
"register_coordinates",
|
37
|
+
"get_coordinates",
|
38
|
+
"list_parcellations",
|
39
|
+
"load_parcellation",
|
40
|
+
"register_parcellation",
|
41
|
+
"merge_parcellations",
|
42
|
+
"get_parcellation",
|
43
|
+
"list_masks",
|
44
|
+
"load_mask",
|
45
|
+
"register_mask",
|
46
|
+
"get_mask",
|
47
|
+
"get_template",
|
48
|
+
"get_xfm",
|
49
|
+
"utils",
|
50
|
+
]
|
junifer/data/coordinates.py
CHANGED
@@ -16,6 +16,14 @@ from ..pipeline import WorkDirManager
|
|
16
16
|
from ..utils import logger, raise_error, run_ext_cmd
|
17
17
|
|
18
18
|
|
19
|
+
__all__ = [
|
20
|
+
"register_coordinates",
|
21
|
+
"list_coordinates",
|
22
|
+
"get_coordinates",
|
23
|
+
"load_coordinates",
|
24
|
+
]
|
25
|
+
|
26
|
+
|
19
27
|
# Path to the VOIs
|
20
28
|
_vois_path = Path(__file__).parent / "VOIs"
|
21
29
|
|
junifer/data/masks.py
CHANGED
@@ -35,6 +35,16 @@ from .utils import closest_resolution
|
|
35
35
|
if TYPE_CHECKING:
|
36
36
|
from nibabel import Nifti1Image
|
37
37
|
|
38
|
+
|
39
|
+
__all__ = [
|
40
|
+
"compute_brain_mask",
|
41
|
+
"register_mask",
|
42
|
+
"list_masks",
|
43
|
+
"get_mask",
|
44
|
+
"load_mask",
|
45
|
+
]
|
46
|
+
|
47
|
+
|
38
48
|
# Path to the masks
|
39
49
|
_masks_path = Path(__file__).parent / "masks"
|
40
50
|
|
junifer/data/parcellations.py
CHANGED
@@ -30,6 +30,15 @@ if TYPE_CHECKING:
|
|
30
30
|
from nibabel import Nifti1Image
|
31
31
|
|
32
32
|
|
33
|
+
__all__ = [
|
34
|
+
"register_parcellation",
|
35
|
+
"list_parcellations",
|
36
|
+
"get_parcellation",
|
37
|
+
"load_parcellation",
|
38
|
+
"merge_parcellations",
|
39
|
+
]
|
40
|
+
|
41
|
+
|
33
42
|
# A dictionary containing all supported parcellations and their respective
|
34
43
|
# valid parameters.
|
35
44
|
|
junifer/data/template_spaces.py
CHANGED
junifer/data/utils.py
CHANGED
junifer/datagrabber/__init__.py
CHANGED
@@ -16,3 +16,18 @@ from .aomic import DataladAOMICID1000, DataladAOMICPIOP1, DataladAOMICPIOP2
|
|
16
16
|
from .hcp1200 import HCP1200, DataladHCP1200
|
17
17
|
from .multiple import MultipleDataGrabber
|
18
18
|
from .dmcc13_benchmark import DMCC13Benchmark
|
19
|
+
|
20
|
+
|
21
|
+
__all__ = [
|
22
|
+
"BaseDataGrabber",
|
23
|
+
"DataladDataGrabber",
|
24
|
+
"PatternDataGrabber",
|
25
|
+
"PatternDataladDataGrabber",
|
26
|
+
"DataladAOMICID1000",
|
27
|
+
"DataladAOMICPIOP1",
|
28
|
+
"DataladAOMICPIOP2",
|
29
|
+
"HCP1200",
|
30
|
+
"DataladHCP1200",
|
31
|
+
"MultipleDataGrabber",
|
32
|
+
"DMCC13Benchmark",
|
33
|
+
]
|
@@ -14,6 +14,9 @@ from ...api.decorators import register_datagrabber
|
|
14
14
|
from ..pattern_datalad import PatternDataladDataGrabber
|
15
15
|
|
16
16
|
|
17
|
+
__all__ = ["DataladAOMICID1000"]
|
18
|
+
|
19
|
+
|
17
20
|
@register_datagrabber
|
18
21
|
class DataladAOMICID1000(PatternDataladDataGrabber):
|
19
22
|
"""Concrete implementation for datalad-based data fetching of AOMIC ID1000.
|
@@ -16,6 +16,9 @@ from ...utils import raise_error
|
|
16
16
|
from ..pattern_datalad import PatternDataladDataGrabber
|
17
17
|
|
18
18
|
|
19
|
+
__all__ = ["DataladAOMICPIOP1"]
|
20
|
+
|
21
|
+
|
19
22
|
@register_datagrabber
|
20
23
|
class DataladAOMICPIOP1(PatternDataladDataGrabber):
|
21
24
|
"""Concrete implementation for pattern-based data fetching of AOMIC PIOP1.
|
@@ -16,6 +16,9 @@ from ...utils import raise_error
|
|
16
16
|
from ..pattern_datalad import PatternDataladDataGrabber
|
17
17
|
|
18
18
|
|
19
|
+
__all__ = ["DataladAOMICPIOP2"]
|
20
|
+
|
21
|
+
|
19
22
|
@register_datagrabber
|
20
23
|
class DataladAOMICPIOP2(PatternDataladDataGrabber):
|
21
24
|
"""Concrete implementation for pattern-based data fetching of AOMIC PIOP2.
|
junifer/datagrabber/base.py
CHANGED
@@ -14,6 +14,9 @@ from ...api.decorators import register_datagrabber
|
|
14
14
|
from .hcp1200 import HCP1200
|
15
15
|
|
16
16
|
|
17
|
+
__all__ = ["DataladHCP1200"]
|
18
|
+
|
19
|
+
|
17
20
|
@register_datagrabber
|
18
21
|
class DataladHCP1200(DataladDataGrabber, HCP1200):
|
19
22
|
"""Concrete implementation for datalad-based data fetching of HCP1200.
|
junifer/datagrabber/multiple.py
CHANGED
junifer/datagrabber/pattern.py
CHANGED
@@ -12,6 +12,9 @@ from .datalad_base import DataladDataGrabber
|
|
12
12
|
from .pattern import PatternDataGrabber
|
13
13
|
|
14
14
|
|
15
|
+
__all__ = ["PatternDataladDataGrabber"]
|
16
|
+
|
17
|
+
|
15
18
|
@register_datagrabber
|
16
19
|
class PatternDataladDataGrabber(DataladDataGrabber, PatternDataGrabber):
|
17
20
|
"""Concrete implementation for pattern and datalad based data fetching.
|
junifer/datagrabber/utils.py
CHANGED
junifer/datareader/__init__.py
CHANGED
junifer/datareader/default.py
CHANGED
junifer/markers/__init__.py
CHANGED
@@ -24,3 +24,24 @@ from .temporal_snr import (
|
|
24
24
|
TemporalSNRSpheres,
|
25
25
|
)
|
26
26
|
from .brainprint import BrainPrint
|
27
|
+
|
28
|
+
|
29
|
+
__all__ = [
|
30
|
+
"BaseMarker",
|
31
|
+
"MarkerCollection",
|
32
|
+
"RSSETSMarker",
|
33
|
+
"ParcelAggregation",
|
34
|
+
"SphereAggregation",
|
35
|
+
"FunctionalConnectivityParcels",
|
36
|
+
"FunctionalConnectivitySpheres",
|
37
|
+
"CrossParcellationFC",
|
38
|
+
"EdgeCentricFCParcels",
|
39
|
+
"EdgeCentricFCSpheres",
|
40
|
+
"ReHoParcels",
|
41
|
+
"ReHoSpheres",
|
42
|
+
"ALFFParcels",
|
43
|
+
"ALFFSpheres",
|
44
|
+
"TemporalSNRParcels",
|
45
|
+
"TemporalSNRSpheres",
|
46
|
+
"BrainPrint",
|
47
|
+
]
|
junifer/markers/base.py
CHANGED
@@ -15,16 +15,22 @@ if TYPE_CHECKING:
|
|
15
15
|
from junifer.storage import BaseFeatureStorage
|
16
16
|
|
17
17
|
|
18
|
+
__all__ = ["BaseMarker"]
|
19
|
+
|
20
|
+
|
18
21
|
class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
|
19
22
|
"""Abstract base class for all markers.
|
20
23
|
|
24
|
+
For every interface that is required, one needs to provide a concrete
|
25
|
+
implementation of this abstract class.
|
26
|
+
|
21
27
|
Parameters
|
22
28
|
----------
|
23
|
-
on : str or list of str
|
24
|
-
The
|
25
|
-
available data.
|
29
|
+
on : str or list of str or None, optional
|
30
|
+
The data type to apply the marker on. If None,
|
31
|
+
will work on all available data types (default None).
|
26
32
|
name : str, optional
|
27
|
-
The name of the marker.
|
33
|
+
The name of the marker. If None, will use the class name as the
|
28
34
|
name of the marker (default None).
|
29
35
|
|
30
36
|
Raises
|
@@ -192,17 +198,25 @@ class BaseMarker(ABC, PipelineStepMixin, UpdateMetaMixin):
|
|
192
198
|
for type_ in self._on:
|
193
199
|
if type_ in input.keys():
|
194
200
|
logger.info(f"Computing {type_}")
|
201
|
+
# Get data dict for data type
|
195
202
|
t_input = input[type_]
|
203
|
+
# Pass the other data types as extra input, removing
|
204
|
+
# the current type
|
196
205
|
extra_input = input.copy()
|
197
206
|
extra_input.pop(type_)
|
207
|
+
logger.debug(
|
208
|
+
f"Extra data type for feature extraction: "
|
209
|
+
f"{extra_input.keys()}"
|
210
|
+
)
|
211
|
+
# Copy metadata
|
198
212
|
t_meta = t_input["meta"].copy()
|
199
213
|
t_meta["type"] = type_
|
200
|
-
|
214
|
+
# Compute marker
|
201
215
|
t_out = self.compute(input=t_input, extra_input=extra_input)
|
202
216
|
t_out["meta"] = t_meta
|
203
|
-
|
217
|
+
# Update metadata for step
|
204
218
|
self.update_meta(t_out, "marker")
|
205
|
-
|
219
|
+
# Check storage
|
206
220
|
if storage is not None:
|
207
221
|
logger.info(f"Storing in {storage}")
|
208
222
|
self.store(type_=type_, out=t_out, storage=storage)
|
junifer/markers/brainprint.py
CHANGED
junifer/markers/collection.py
CHANGED
@@ -25,3 +25,13 @@ else:
|
|
25
25
|
from .weighted_perm_entropy import WeightedPermEntropy
|
26
26
|
from .sample_entropy import SampleEntropy
|
27
27
|
from .multiscale_entropy_auc import MultiscaleEntropyAUC
|
28
|
+
|
29
|
+
__all__ = [
|
30
|
+
"HurstExponent",
|
31
|
+
"RangeEntropy",
|
32
|
+
"RangeEntropyAUC",
|
33
|
+
"PermEntropy",
|
34
|
+
"WeightedPermEntropy",
|
35
|
+
"SampleEntropy",
|
36
|
+
"MultiscaleEntropyAUC",
|
37
|
+
]
|
@@ -14,6 +14,9 @@ from ...utils import logger, warn_with_log
|
|
14
14
|
from .complexity_base import ComplexityBase
|
15
15
|
|
16
16
|
|
17
|
+
__all__ = ["MultiscaleEntropyAUC"]
|
18
|
+
|
19
|
+
|
17
20
|
@register_marker
|
18
21
|
class MultiscaleEntropyAUC(ComplexityBase):
|
19
22
|
"""Class for AUC of multiscale entropy of a time series.
|