rapidtide 3.0.11__py3-none-any.whl → 3.1.1__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.
- rapidtide/Colortables.py +492 -27
- rapidtide/OrthoImageItem.py +1049 -46
- rapidtide/RapidtideDataset.py +1533 -86
- rapidtide/_version.py +3 -3
- rapidtide/calccoherence.py +196 -29
- rapidtide/calcnullsimfunc.py +188 -40
- rapidtide/calcsimfunc.py +242 -42
- rapidtide/correlate.py +1203 -383
- rapidtide/data/examples/src/testLD +56 -0
- rapidtide/data/examples/src/testalign +1 -1
- rapidtide/data/examples/src/testdelayvar +0 -1
- rapidtide/data/examples/src/testfmri +53 -3
- rapidtide/data/examples/src/testglmfilt +5 -5
- rapidtide/data/examples/src/testhappy +29 -7
- rapidtide/data/examples/src/testppgproc +17 -0
- rapidtide/data/examples/src/testrolloff +11 -0
- rapidtide/data/models/model_cnn_pytorch/best_model.pth +0 -0
- rapidtide/data/models/model_cnn_pytorch/loss.png +0 -0
- rapidtide/data/models/model_cnn_pytorch/loss.txt +1 -0
- rapidtide/data/models/model_cnn_pytorch/model.pth +0 -0
- rapidtide/data/models/model_cnn_pytorch/model_meta.json +68 -0
- rapidtide/decorators.py +91 -0
- rapidtide/dlfilter.py +2226 -110
- rapidtide/dlfiltertorch.py +4842 -0
- rapidtide/externaltools.py +327 -12
- rapidtide/fMRIData_class.py +79 -40
- rapidtide/filter.py +1899 -810
- rapidtide/fit.py +2011 -581
- rapidtide/genericmultiproc.py +93 -18
- rapidtide/happy_supportfuncs.py +2047 -172
- rapidtide/helper_classes.py +584 -43
- rapidtide/io.py +2370 -372
- rapidtide/linfitfiltpass.py +346 -99
- rapidtide/makelaggedtcs.py +210 -24
- rapidtide/maskutil.py +448 -62
- rapidtide/miscmath.py +827 -121
- rapidtide/multiproc.py +210 -22
- rapidtide/patchmatch.py +242 -42
- rapidtide/peakeval.py +31 -31
- rapidtide/ppgproc.py +2203 -0
- rapidtide/qualitycheck.py +352 -39
- rapidtide/refinedelay.py +431 -57
- rapidtide/refineregressor.py +494 -189
- rapidtide/resample.py +671 -185
- rapidtide/scripts/applyppgproc.py +28 -0
- rapidtide/scripts/showxcorr_legacy.py +7 -7
- rapidtide/scripts/stupidramtricks.py +15 -17
- rapidtide/simFuncClasses.py +1052 -77
- rapidtide/simfuncfit.py +269 -69
- rapidtide/stats.py +540 -238
- rapidtide/tests/happycomp +9 -0
- rapidtide/tests/test_cleanregressor.py +1 -2
- rapidtide/tests/test_dlfiltertorch.py +627 -0
- rapidtide/tests/test_findmaxlag.py +24 -8
- rapidtide/tests/test_fullrunhappy_v1.py +0 -2
- rapidtide/tests/test_fullrunhappy_v2.py +0 -2
- rapidtide/tests/test_fullrunhappy_v3.py +11 -4
- rapidtide/tests/test_fullrunhappy_v4.py +10 -2
- rapidtide/tests/test_fullrunrapidtide_v7.py +1 -1
- rapidtide/tests/test_getparsers.py +11 -3
- rapidtide/tests/test_refinedelay.py +0 -1
- rapidtide/tests/test_simroundtrip.py +16 -8
- rapidtide/tests/test_stcorrelate.py +3 -1
- rapidtide/tests/utils.py +9 -8
- rapidtide/tidepoolTemplate.py +142 -38
- rapidtide/tidepoolTemplate_alt.py +165 -44
- rapidtide/tidepoolTemplate_big.py +189 -52
- rapidtide/util.py +1217 -118
- rapidtide/voxelData.py +684 -37
- rapidtide/wiener.py +136 -23
- rapidtide/wiener2.py +113 -7
- rapidtide/workflows/adjustoffset.py +105 -3
- rapidtide/workflows/aligntcs.py +85 -2
- rapidtide/workflows/applydlfilter.py +87 -10
- rapidtide/workflows/applyppgproc.py +540 -0
- rapidtide/workflows/atlasaverage.py +210 -47
- rapidtide/workflows/atlastool.py +100 -3
- rapidtide/workflows/calcSimFuncMap.py +288 -69
- rapidtide/workflows/calctexticc.py +201 -9
- rapidtide/workflows/ccorrica.py +101 -6
- rapidtide/workflows/cleanregressor.py +165 -31
- rapidtide/workflows/delayvar.py +171 -23
- rapidtide/workflows/diffrois.py +81 -3
- rapidtide/workflows/endtidalproc.py +144 -4
- rapidtide/workflows/fdica.py +195 -15
- rapidtide/workflows/filtnifti.py +70 -3
- rapidtide/workflows/filttc.py +74 -3
- rapidtide/workflows/fitSimFuncMap.py +202 -51
- rapidtide/workflows/fixtr.py +73 -3
- rapidtide/workflows/gmscalc.py +113 -3
- rapidtide/workflows/happy.py +801 -199
- rapidtide/workflows/happy2std.py +144 -12
- rapidtide/workflows/happy_parser.py +163 -23
- rapidtide/workflows/histnifti.py +118 -2
- rapidtide/workflows/histtc.py +84 -3
- rapidtide/workflows/linfitfilt.py +117 -4
- rapidtide/workflows/localflow.py +328 -28
- rapidtide/workflows/mergequality.py +79 -3
- rapidtide/workflows/niftidecomp.py +322 -18
- rapidtide/workflows/niftistats.py +174 -4
- rapidtide/workflows/pairproc.py +98 -4
- rapidtide/workflows/pairwisemergenifti.py +85 -2
- rapidtide/workflows/parser_funcs.py +1421 -40
- rapidtide/workflows/physiofreq.py +137 -11
- rapidtide/workflows/pixelcomp.py +207 -5
- rapidtide/workflows/plethquality.py +103 -21
- rapidtide/workflows/polyfitim.py +151 -11
- rapidtide/workflows/proj2flow.py +75 -2
- rapidtide/workflows/rankimage.py +111 -4
- rapidtide/workflows/rapidtide.py +368 -76
- rapidtide/workflows/rapidtide2std.py +98 -2
- rapidtide/workflows/rapidtide_parser.py +109 -9
- rapidtide/workflows/refineDelayMap.py +144 -33
- rapidtide/workflows/refineRegressor.py +675 -96
- rapidtide/workflows/regressfrommaps.py +161 -37
- rapidtide/workflows/resamplenifti.py +85 -3
- rapidtide/workflows/resampletc.py +91 -3
- rapidtide/workflows/retrolagtcs.py +99 -9
- rapidtide/workflows/retroregress.py +176 -26
- rapidtide/workflows/roisummarize.py +174 -5
- rapidtide/workflows/runqualitycheck.py +71 -3
- rapidtide/workflows/showarbcorr.py +149 -6
- rapidtide/workflows/showhist.py +86 -2
- rapidtide/workflows/showstxcorr.py +160 -3
- rapidtide/workflows/showtc.py +159 -3
- rapidtide/workflows/showxcorrx.py +190 -10
- rapidtide/workflows/showxy.py +185 -15
- rapidtide/workflows/simdata.py +264 -38
- rapidtide/workflows/spatialfit.py +77 -2
- rapidtide/workflows/spatialmi.py +250 -27
- rapidtide/workflows/spectrogram.py +305 -32
- rapidtide/workflows/synthASL.py +154 -3
- rapidtide/workflows/tcfrom2col.py +76 -2
- rapidtide/workflows/tcfrom3col.py +74 -2
- rapidtide/workflows/tidepool.py +2971 -130
- rapidtide/workflows/utils.py +19 -14
- rapidtide/workflows/utils_doc.py +293 -0
- rapidtide/workflows/variabilityizer.py +116 -3
- {rapidtide-3.0.11.dist-info → rapidtide-3.1.1.dist-info}/METADATA +10 -8
- {rapidtide-3.0.11.dist-info → rapidtide-3.1.1.dist-info}/RECORD +144 -128
- {rapidtide-3.0.11.dist-info → rapidtide-3.1.1.dist-info}/entry_points.txt +1 -0
- {rapidtide-3.0.11.dist-info → rapidtide-3.1.1.dist-info}/WHEEL +0 -0
- {rapidtide-3.0.11.dist-info → rapidtide-3.1.1.dist-info}/licenses/LICENSE +0 -0
- {rapidtide-3.0.11.dist-info → rapidtide-3.1.1.dist-info}/top_level.txt +0 -0
rapidtide/genericmultiproc.py
CHANGED
|
@@ -18,31 +18,106 @@
|
|
|
18
18
|
#
|
|
19
19
|
import gc
|
|
20
20
|
import logging
|
|
21
|
+
from typing import Any, Callable
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
from numpy.typing import NDArray
|
|
23
24
|
from tqdm import tqdm
|
|
24
25
|
|
|
25
26
|
import rapidtide.multiproc as tide_multiproc
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
def run_multiproc(
|
|
29
|
-
voxelfunc,
|
|
30
|
-
packfunc,
|
|
31
|
-
unpackfunc,
|
|
32
|
-
voxelargs,
|
|
33
|
-
voxelproducts,
|
|
34
|
-
inputshape,
|
|
35
|
-
voxelmask,
|
|
36
|
-
LGR,
|
|
37
|
-
nprocs,
|
|
38
|
-
alwaysmultiproc,
|
|
39
|
-
showprogressbar,
|
|
40
|
-
chunksize,
|
|
41
|
-
indexaxis=0,
|
|
42
|
-
procunit="voxels",
|
|
43
|
-
debug=False,
|
|
44
|
-
**kwargs,
|
|
45
|
-
):
|
|
30
|
+
voxelfunc: Callable,
|
|
31
|
+
packfunc: Callable,
|
|
32
|
+
unpackfunc: Callable,
|
|
33
|
+
voxelargs: list,
|
|
34
|
+
voxelproducts: list,
|
|
35
|
+
inputshape: tuple,
|
|
36
|
+
voxelmask: NDArray,
|
|
37
|
+
LGR: logging.Logger | None,
|
|
38
|
+
nprocs: int,
|
|
39
|
+
alwaysmultiproc: bool,
|
|
40
|
+
showprogressbar: bool,
|
|
41
|
+
chunksize: int,
|
|
42
|
+
indexaxis: int = 0,
|
|
43
|
+
procunit: str = "voxels",
|
|
44
|
+
debug: bool = False,
|
|
45
|
+
**kwargs: Any,
|
|
46
|
+
) -> int:
|
|
47
|
+
"""
|
|
48
|
+
Execute voxel-wise processing with optional multiprocessing support.
|
|
49
|
+
|
|
50
|
+
This function performs voxel-wise computations using the provided functions
|
|
51
|
+
for processing, packing, and unpacking data. It supports both single-threaded
|
|
52
|
+
and multi-process execution depending on the input parameters.
|
|
53
|
+
|
|
54
|
+
Parameters
|
|
55
|
+
----------
|
|
56
|
+
voxelfunc : callable
|
|
57
|
+
Function to be applied to each voxel. It should accept a voxel index,
|
|
58
|
+
packed arguments, and optional debug and keyword arguments.
|
|
59
|
+
packfunc : callable
|
|
60
|
+
Function to pack voxel arguments for use in `voxelfunc`. It takes a voxel
|
|
61
|
+
index and `voxelargs` as input.
|
|
62
|
+
unpackfunc : callable
|
|
63
|
+
Function to unpack results from `voxelfunc` and store them in `voxelproducts`.
|
|
64
|
+
voxelargs : list
|
|
65
|
+
List of arguments to be passed to `packfunc`.
|
|
66
|
+
voxelproducts : list
|
|
67
|
+
List of arrays or data structures to be updated with results from `unpackfunc`.
|
|
68
|
+
inputshape : tuple
|
|
69
|
+
Shape of the input data, used to determine the number of voxels to process.
|
|
70
|
+
voxelmask : ndarray
|
|
71
|
+
Boolean or integer mask indicating which voxels to process.
|
|
72
|
+
LGR : logging.Logger or None
|
|
73
|
+
Logger instance for logging messages. If None, no logging is performed.
|
|
74
|
+
nprocs : int
|
|
75
|
+
Number of processes to use for multiprocessing. If 1, single-threaded execution is used.
|
|
76
|
+
alwaysmultiproc : bool
|
|
77
|
+
If True, forces multiprocessing even when `nprocs` is 1.
|
|
78
|
+
showprogressbar : bool
|
|
79
|
+
If True, displays a progress bar during processing.
|
|
80
|
+
chunksize : int
|
|
81
|
+
Size of chunks to process in each step for multiprocessing.
|
|
82
|
+
indexaxis : int, optional
|
|
83
|
+
Axis along which to iterate over voxels, default is 0.
|
|
84
|
+
procunit : str, optional
|
|
85
|
+
Unit of processing for progress bar, default is "voxels".
|
|
86
|
+
debug : bool, optional
|
|
87
|
+
If True, prints debug information, default is False.
|
|
88
|
+
**kwargs : dict
|
|
89
|
+
Additional keyword arguments passed to `voxelfunc`.
|
|
90
|
+
|
|
91
|
+
Returns
|
|
92
|
+
-------
|
|
93
|
+
int
|
|
94
|
+
Total number of voxels processed.
|
|
95
|
+
|
|
96
|
+
Notes
|
|
97
|
+
-----
|
|
98
|
+
- If `nprocs` > 1 or `alwaysmultiproc` is True, multiprocessing is used.
|
|
99
|
+
- Otherwise, a single-threaded loop is used with optional progress bar.
|
|
100
|
+
- The function uses `tide_multiproc.run_multiproc` internally for multiprocessing.
|
|
101
|
+
- Garbage collection is performed after processing.
|
|
102
|
+
|
|
103
|
+
Examples
|
|
104
|
+
--------
|
|
105
|
+
>>> run_multiproc(
|
|
106
|
+
... voxelfunc=my_voxel_func,
|
|
107
|
+
... packfunc=pack_voxel_args,
|
|
108
|
+
... unpackfunc=unpack_results,
|
|
109
|
+
... voxelargs=[arg1, arg2],
|
|
110
|
+
... voxelproducts=[output_array],
|
|
111
|
+
... inputshape=(100, 100, 100),
|
|
112
|
+
... voxelmask=mask_array,
|
|
113
|
+
... LGR=None,
|
|
114
|
+
... nprocs=4,
|
|
115
|
+
... alwaysmultiproc=False,
|
|
116
|
+
... showprogressbar=True,
|
|
117
|
+
... chunksize=10,
|
|
118
|
+
... )
|
|
119
|
+
1000
|
|
120
|
+
"""
|
|
46
121
|
if debug:
|
|
47
122
|
print(f"{len(voxelproducts)=}, {voxelproducts[0].shape}")
|
|
48
123
|
if nprocs > 1 or alwaysmultiproc:
|