junifer 0.0.5.dev110__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.
Files changed (134) hide show
  1. junifer/__init__.py +17 -0
  2. junifer/_version.py +2 -2
  3. junifer/api/__init__.py +3 -0
  4. junifer/api/decorators.py +9 -0
  5. junifer/api/functions.py +7 -4
  6. junifer/api/parser.py +3 -0
  7. junifer/api/queue_context/__init__.py +3 -0
  8. junifer/api/res/afni/run_afni_docker.sh +1 -1
  9. junifer/api/res/ants/run_ants_docker.sh +1 -1
  10. junifer/api/res/fsl/run_fsl_docker.sh +1 -1
  11. junifer/api/tests/test_api_utils.py +2 -0
  12. junifer/configs/juseless/__init__.py +3 -0
  13. junifer/configs/juseless/datagrabbers/__init__.py +9 -0
  14. junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +3 -0
  15. junifer/configs/juseless/datagrabbers/camcan_vbm.py +3 -0
  16. junifer/configs/juseless/datagrabbers/ixi_vbm.py +3 -0
  17. junifer/configs/juseless/datagrabbers/ucla.py +3 -0
  18. junifer/configs/juseless/datagrabbers/ukb_vbm.py +3 -0
  19. junifer/data/__init__.py +20 -0
  20. junifer/data/coordinates.py +8 -0
  21. junifer/data/masks.py +10 -0
  22. junifer/data/parcellations.py +9 -0
  23. junifer/data/template_spaces.py +3 -0
  24. junifer/data/tests/test_masks.py +1 -1
  25. junifer/data/utils.py +3 -0
  26. junifer/datagrabber/__init__.py +15 -0
  27. junifer/datagrabber/aomic/__init__.py +3 -0
  28. junifer/datagrabber/aomic/id1000.py +3 -0
  29. junifer/datagrabber/aomic/piop1.py +3 -0
  30. junifer/datagrabber/aomic/piop2.py +3 -0
  31. junifer/datagrabber/base.py +3 -0
  32. junifer/datagrabber/datalad_base.py +3 -0
  33. junifer/datagrabber/hcp1200/__init__.py +3 -0
  34. junifer/datagrabber/hcp1200/datalad_hcp1200.py +3 -0
  35. junifer/datagrabber/hcp1200/hcp1200.py +3 -0
  36. junifer/datagrabber/multiple.py +3 -0
  37. junifer/datagrabber/pattern.py +5 -1
  38. junifer/datagrabber/pattern_datalad.py +3 -0
  39. junifer/datagrabber/utils.py +3 -0
  40. junifer/datareader/__init__.py +3 -0
  41. junifer/datareader/default.py +3 -0
  42. junifer/external/BrainPrint/brainprint/__init__.py +4 -0
  43. junifer/external/BrainPrint/brainprint/_version.py +3 -0
  44. junifer/external/BrainPrint/brainprint/asymmetry.py +91 -0
  45. junifer/external/BrainPrint/brainprint/brainprint.py +441 -0
  46. junifer/external/BrainPrint/brainprint/surfaces.py +258 -0
  47. junifer/external/BrainPrint/brainprint/utils/__init__.py +1 -0
  48. junifer/external/BrainPrint/brainprint/utils/_config.py +112 -0
  49. junifer/external/BrainPrint/brainprint/utils/utils.py +188 -0
  50. junifer/markers/__init__.py +22 -0
  51. junifer/markers/base.py +21 -7
  52. junifer/markers/brainprint.py +665 -0
  53. junifer/markers/collection.py +3 -0
  54. junifer/markers/complexity/__init__.py +10 -0
  55. junifer/markers/complexity/complexity_base.py +3 -0
  56. junifer/markers/complexity/hurst_exponent.py +3 -0
  57. junifer/markers/complexity/multiscale_entropy_auc.py +3 -0
  58. junifer/markers/complexity/perm_entropy.py +3 -0
  59. junifer/markers/complexity/range_entropy.py +3 -0
  60. junifer/markers/complexity/range_entropy_auc.py +3 -0
  61. junifer/markers/complexity/sample_entropy.py +3 -0
  62. junifer/markers/complexity/tests/test_hurst_exponent.py +7 -0
  63. junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +7 -0
  64. junifer/markers/complexity/tests/test_perm_entropy.py +7 -0
  65. junifer/markers/complexity/tests/test_range_entropy.py +7 -0
  66. junifer/markers/complexity/tests/test_range_entropy_auc.py +7 -0
  67. junifer/markers/complexity/tests/test_sample_entropy.py +7 -0
  68. junifer/markers/complexity/tests/test_weighted_perm_entropy.py +7 -0
  69. junifer/markers/complexity/weighted_perm_entropy.py +3 -0
  70. junifer/markers/ets_rss.py +3 -0
  71. junifer/markers/falff/__init__.py +3 -0
  72. junifer/markers/falff/_afni_falff.py +3 -0
  73. junifer/markers/falff/_junifer_falff.py +3 -0
  74. junifer/markers/falff/falff_base.py +3 -0
  75. junifer/markers/falff/falff_parcels.py +3 -0
  76. junifer/markers/falff/falff_spheres.py +3 -0
  77. junifer/markers/functional_connectivity/__init__.py +9 -0
  78. junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +3 -0
  79. junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +3 -0
  80. junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +3 -0
  81. junifer/markers/functional_connectivity/functional_connectivity_base.py +3 -0
  82. junifer/markers/functional_connectivity/functional_connectivity_parcels.py +3 -0
  83. junifer/markers/functional_connectivity/functional_connectivity_spheres.py +3 -0
  84. junifer/markers/parcel_aggregation.py +3 -0
  85. junifer/markers/reho/__init__.py +3 -0
  86. junifer/markers/reho/_afni_reho.py +4 -1
  87. junifer/markers/reho/_junifer_reho.py +4 -1
  88. junifer/markers/reho/reho_base.py +2 -0
  89. junifer/markers/reho/reho_parcels.py +5 -2
  90. junifer/markers/reho/reho_spheres.py +5 -2
  91. junifer/markers/sphere_aggregation.py +3 -0
  92. junifer/markers/temporal_snr/__init__.py +3 -0
  93. junifer/markers/temporal_snr/temporal_snr_base.py +3 -0
  94. junifer/markers/temporal_snr/temporal_snr_parcels.py +3 -0
  95. junifer/markers/temporal_snr/temporal_snr_spheres.py +3 -0
  96. junifer/markers/tests/test_brainprint.py +47 -0
  97. junifer/onthefly/__init__.py +3 -0
  98. junifer/onthefly/read_transform.py +3 -0
  99. junifer/pipeline/__init__.py +8 -0
  100. junifer/pipeline/pipeline_step_mixin.py +3 -0
  101. junifer/pipeline/registry.py +3 -0
  102. junifer/pipeline/singleton.py +3 -0
  103. junifer/pipeline/update_meta_mixin.py +3 -0
  104. junifer/pipeline/utils.py +3 -0
  105. junifer/pipeline/workdir_manager.py +3 -0
  106. junifer/preprocess/__init__.py +8 -0
  107. junifer/preprocess/base.py +4 -1
  108. junifer/preprocess/confounds/__init__.py +3 -0
  109. junifer/preprocess/confounds/fmriprep_confound_remover.py +3 -0
  110. junifer/preprocess/smoothing/__init__.py +3 -0
  111. junifer/preprocess/warping/__init__.py +3 -0
  112. junifer/preprocess/warping/_ants_warper.py +3 -0
  113. junifer/preprocess/warping/_fsl_warper.py +3 -0
  114. junifer/stats.py +3 -0
  115. junifer/storage/__init__.py +8 -0
  116. junifer/storage/base.py +3 -0
  117. junifer/storage/hdf5.py +3 -0
  118. junifer/storage/pandas_base.py +3 -0
  119. junifer/storage/sqlite.py +3 -0
  120. junifer/storage/utils.py +9 -0
  121. junifer/testing/__init__.py +3 -0
  122. junifer/testing/datagrabbers.py +7 -0
  123. junifer/testing/utils.py +3 -0
  124. junifer/utils/__init__.py +10 -0
  125. junifer/utils/fs.py +3 -0
  126. junifer/utils/helpers.py +3 -0
  127. junifer/utils/logging.py +10 -0
  128. {junifer-0.0.5.dev110.dist-info → junifer-0.0.5.dev145.dist-info}/METADATA +2 -1
  129. {junifer-0.0.5.dev110.dist-info → junifer-0.0.5.dev145.dist-info}/RECORD +134 -124
  130. {junifer-0.0.5.dev110.dist-info → junifer-0.0.5.dev145.dist-info}/AUTHORS.rst +0 -0
  131. {junifer-0.0.5.dev110.dist-info → junifer-0.0.5.dev145.dist-info}/LICENSE.md +0 -0
  132. {junifer-0.0.5.dev110.dist-info → junifer-0.0.5.dev145.dist-info}/WHEEL +0 -0
  133. {junifer-0.0.5.dev110.dist-info → junifer-0.0.5.dev145.dist-info}/entry_points.txt +0 -0
  134. {junifer-0.0.5.dev110.dist-info → junifer-0.0.5.dev145.dist-info}/top_level.txt +0 -0
@@ -15,6 +15,9 @@ if TYPE_CHECKING:
15
15
  from junifer.storage import BaseFeatureStorage
16
16
 
17
17
 
18
+ __all__ = ["read_transform"]
19
+
20
+
18
21
  def read_transform(
19
22
  storage: Type["BaseFeatureStorage"],
20
23
  transform: str,
@@ -7,3 +7,11 @@ from . import registry
7
7
  from .pipeline_step_mixin import PipelineStepMixin
8
8
  from .update_meta_mixin import UpdateMetaMixin
9
9
  from .workdir_manager import WorkDirManager
10
+
11
+
12
+ __all__ = [
13
+ "registry",
14
+ "PipelineStepMixin",
15
+ "UpdateMetaMixin",
16
+ "WorkDirManager",
17
+ ]
@@ -17,6 +17,9 @@ from ..utils import raise_error
17
17
  from .utils import check_ext_dependencies
18
18
 
19
19
 
20
+ __all__ = ["PipelineStepMixin"]
21
+
22
+
20
23
  class PipelineStepMixin:
21
24
  """Mixin class for a pipeline step."""
22
25
 
@@ -16,6 +16,9 @@ if TYPE_CHECKING:
16
16
  from .pipeline_step_mixin import PipelineStepMixin
17
17
 
18
18
 
19
+ __all__ = ["register", "get_step_names", "get_class", "build"]
20
+
21
+
19
22
  # Define valid steps for operation
20
23
  _VALID_STEPS: List[str] = [
21
24
  "datagrabber",
@@ -6,6 +6,9 @@
6
6
  from typing import Any, Dict, Type
7
7
 
8
8
 
9
+ __all__ = ["singleton"]
10
+
11
+
9
12
  def singleton(cls: Type) -> Type:
10
13
  """Make a class singleton.
11
14
 
@@ -7,6 +7,9 @@
7
7
  from typing import Dict
8
8
 
9
9
 
10
+ __all__ = ["UpdateMetaMixin"]
11
+
12
+
10
13
  class UpdateMetaMixin:
11
14
  """Mixin class for updating meta."""
12
15
 
junifer/pipeline/utils.py CHANGED
@@ -10,6 +10,9 @@ from typing import Any, List, Optional
10
10
  from junifer.utils.logging import raise_error, warn_with_log
11
11
 
12
12
 
13
+ __all__ = ["check_ext_dependencies"]
14
+
15
+
13
16
  def check_ext_dependencies(
14
17
  name: str, optional: bool = False, **kwargs: Any
15
18
  ) -> bool:
@@ -13,6 +13,9 @@ from ..utils import logger
13
13
  from .singleton import singleton
14
14
 
15
15
 
16
+ __all__ = ["WorkDirManager"]
17
+
18
+
16
19
  @singleton
17
20
  class WorkDirManager:
18
21
  """Class for working directory manager.
@@ -9,3 +9,11 @@ from .base import BasePreprocessor
9
9
  from .confounds import fMRIPrepConfoundRemover
10
10
  from .warping import SpaceWarper
11
11
  from .smoothing import Smoothing
12
+
13
+
14
+ __all__ = [
15
+ "BasePreprocessor",
16
+ "fMRIPrepConfoundRemover",
17
+ "SpaceWarper",
18
+ "Smoothing",
19
+ ]
@@ -11,6 +11,9 @@ from ..pipeline import PipelineStepMixin, UpdateMetaMixin
11
11
  from ..utils import logger, raise_error
12
12
 
13
13
 
14
+ __all__ = ["BasePreprocessor"]
15
+
16
+
14
17
  class BasePreprocessor(ABC, PipelineStepMixin, UpdateMetaMixin):
15
18
  """Abstract base class for all preprocessors.
16
19
 
@@ -136,7 +139,7 @@ class BasePreprocessor(ABC, PipelineStepMixin, UpdateMetaMixin):
136
139
  A single input from the Junifer Data object to preprocess.
137
140
  extra_input : dict, optional
138
141
  The other fields in the Junifer Data object. Useful for accessing
139
- other data kind that needs to be used in the computation. For
142
+ other data type that needs to be used in the computation. For
140
143
  example, the confound removers can make use of the
141
144
  confounds if available (default None).
142
145
 
@@ -5,3 +5,6 @@
5
5
  # License: AGPL
6
6
 
7
7
  from .fmriprep_confound_remover import fMRIPrepConfoundRemover
8
+
9
+
10
+ __all__ = ["fMRIPrepConfoundRemover"]
@@ -27,6 +27,9 @@ from ...utils import logger, raise_error
27
27
  from ..base import BasePreprocessor
28
28
 
29
29
 
30
+ __all__ = ["fMRIPrepConfoundRemover"]
31
+
32
+
30
33
  FMRIPREP_BASICS = {
31
34
  "motion": [
32
35
  "trans_x",
@@ -4,3 +4,6 @@
4
4
  # License: AGPL
5
5
 
6
6
  from .smoothing import Smoothing
7
+
8
+
9
+ __all__ = ["Smoothing"]
@@ -4,3 +4,6 @@
4
4
  # License: AGPL
5
5
 
6
6
  from .space_warper import SpaceWarper
7
+
8
+
9
+ __all__ = ["SpaceWarper"]
@@ -20,6 +20,9 @@ from ...pipeline import WorkDirManager
20
20
  from ...utils import logger, run_ext_cmd
21
21
 
22
22
 
23
+ __all__ = ["ANTsWarper"]
24
+
25
+
23
26
  class ANTsWarper:
24
27
  """Class for space warping via ANTs antsApplyTransforms.
25
28
 
@@ -19,6 +19,9 @@ from ...pipeline import WorkDirManager
19
19
  from ...utils import logger, run_ext_cmd
20
20
 
21
21
 
22
+ __all__ = ["FSLWarper"]
23
+
24
+
22
25
  class FSLWarper:
23
26
  """Class for space warping via FSL FLIRT.
24
27
 
junifer/stats.py CHANGED
@@ -13,6 +13,9 @@ from scipy.stats.mstats import winsorize
13
13
  from .utils import logger, raise_error
14
14
 
15
15
 
16
+ __all__ = ["get_aggfunc_by_name", "count", "winsorized_mean", "select"]
17
+
18
+
16
19
  def get_aggfunc_by_name(
17
20
  name: str, func_params: Optional[Dict[str, Any]] = None
18
21
  ) -> Callable:
@@ -8,3 +8,11 @@ from .base import BaseFeatureStorage
8
8
  from .pandas_base import PandasBaseFeatureStorage
9
9
  from .sqlite import SQLiteFeatureStorage
10
10
  from .hdf5 import HDF5FeatureStorage
11
+
12
+
13
+ __all__ = [
14
+ "BaseFeatureStorage",
15
+ "PandasBaseFeatureStorage",
16
+ "SQLiteFeatureStorage",
17
+ "HDF5FeatureStorage",
18
+ ]
junifer/storage/base.py CHANGED
@@ -15,6 +15,9 @@ from ..utils import raise_error
15
15
  from .utils import process_meta
16
16
 
17
17
 
18
+ __all__ = ["BaseFeatureStorage"]
19
+
20
+
18
21
  class BaseFeatureStorage(ABC):
19
22
  """Abstract base class for feature storage.
20
23
 
junifer/storage/hdf5.py CHANGED
@@ -26,6 +26,9 @@ from .base import BaseFeatureStorage
26
26
  from .utils import element_to_prefix, matrix_to_vector, store_matrix_checks
27
27
 
28
28
 
29
+ __all__ = ["HDF5FeatureStorage"]
30
+
31
+
29
32
  def _create_chunk(
30
33
  chunk_data: List[np.ndarray],
31
34
  kind: str,
@@ -15,6 +15,9 @@ from ..utils import raise_error
15
15
  from .base import BaseFeatureStorage
16
16
 
17
17
 
18
+ __all__ = ["PandasBaseFeatureStorage"]
19
+
20
+
18
21
  class PandasBaseFeatureStorage(BaseFeatureStorage):
19
22
  """Abstract base class for feature storage via pandas.
20
23
 
junifer/storage/sqlite.py CHANGED
@@ -25,6 +25,9 @@ if TYPE_CHECKING:
25
25
  from sqlalchemy.engine import Engine
26
26
 
27
27
 
28
+ __all__ = ["SQLiteFeatureStorage"]
29
+
30
+
28
31
  @register_storage
29
32
  class SQLiteFeatureStorage(PandasBaseFeatureStorage):
30
33
  """Concrete implementation for feature storage via SQLite.
junifer/storage/utils.py CHANGED
@@ -14,6 +14,15 @@ import numpy as np
14
14
  from ..utils.logging import logger, raise_error
15
15
 
16
16
 
17
+ __all__ = [
18
+ "get_dependency_version",
19
+ "process_meta",
20
+ "element_to_prefix",
21
+ "store_matrix_checks",
22
+ "matrix_to_vector",
23
+ ]
24
+
25
+
17
26
  def get_dependency_version(dependency: str) -> str:
18
27
  """Get dependency version.
19
28
 
@@ -6,3 +6,6 @@
6
6
 
7
7
  from . import datagrabbers
8
8
  from .utils import get_testing_data
9
+
10
+
11
+ __all__ = ["datagrabbers", "get_testing_data"]
@@ -14,6 +14,13 @@ from nilearn import datasets, image
14
14
  from ..datagrabber.base import BaseDataGrabber
15
15
 
16
16
 
17
+ __all__ = [
18
+ "OasisVBMTestingDataGrabber",
19
+ "SPMAuditoryTestingDataGrabber",
20
+ "PartlyCloudyTestingDataGrabber",
21
+ ]
22
+
23
+
17
24
  class OasisVBMTestingDataGrabber(BaseDataGrabber):
18
25
  """DataGrabber for Oasis VBM testing data.
19
26
 
junifer/testing/utils.py CHANGED
@@ -6,6 +6,9 @@
6
6
  from pathlib import Path
7
7
 
8
8
 
9
+ __all__ = ["get_testing_data"]
10
+
11
+
9
12
  def get_testing_data(fname: str) -> Path:
10
13
  """Get the path to a testing data file.
11
14
 
junifer/utils/__init__.py CHANGED
@@ -7,3 +7,13 @@
7
7
  from .fs import make_executable
8
8
  from .logging import configure_logging, logger, raise_error, warn_with_log
9
9
  from .helpers import run_ext_cmd
10
+
11
+
12
+ __all__ = [
13
+ "make_executable",
14
+ "configure_logging",
15
+ "logger",
16
+ "raise_error",
17
+ "warn_with_log",
18
+ "run_ext_cmd",
19
+ ]
junifer/utils/fs.py CHANGED
@@ -8,6 +8,9 @@ import stat
8
8
  from pathlib import Path
9
9
 
10
10
 
11
+ __all__ = ["make_executable"]
12
+
13
+
11
14
  def make_executable(path: Path) -> None:
12
15
  """Make ``path`` executable.
13
16
 
junifer/utils/helpers.py CHANGED
@@ -9,6 +9,9 @@ from typing import List
9
9
  from .logging import logger, raise_error
10
10
 
11
11
 
12
+ __all__ = ["run_ext_cmd"]
13
+
14
+
12
15
  def run_ext_cmd(name: str, cmd: List[str]) -> None:
13
16
  """Run external command via subprocess.
14
17
 
junifer/utils/logging.py CHANGED
@@ -19,6 +19,16 @@ from warnings import warn
19
19
  import datalad
20
20
 
21
21
 
22
+ __all__ = [
23
+ "WrapStdOut",
24
+ "get_versions",
25
+ "log_versions",
26
+ "configure_logging",
27
+ "raise_error",
28
+ "warn_with_log",
29
+ ]
30
+
31
+
22
32
  logger = logging.getLogger("JUNIFER")
23
33
 
24
34
  # Set up datalad logger level to warning by default
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.5.dev110
3
+ Version: 0.0.5.dev145
4
4
  Summary: JUelich NeuroImaging FEature extractoR
5
5
  Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
6
6
  Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
@@ -41,6 +41,7 @@ Requires-Dist: h5py >=3.10
41
41
  Requires-Dist: httpx[http2] ==0.26.0
42
42
  Requires-Dist: tqdm ==4.66.1
43
43
  Requires-Dist: templateflow >=23.0.0
44
+ Requires-Dist: lapy <2.0.0,>=1.0.0
44
45
  Requires-Dist: importlib-metadata ; python_version < "3.10"
45
46
  Requires-Dist: looseversion ==1.3.0 ; python_version >= "3.12"
46
47
  Provides-Extra: all