rapidtide 3.0.8__py3-none-any.whl → 3.0.9__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/RapidtideDataset.py +1 -1
- rapidtide/_version.py +3 -3
- rapidtide/data/examples/src/testfmri +26 -20
- rapidtide/linfitfiltpass.py +44 -25
- rapidtide/refinedelay.py +2 -2
- rapidtide/refineregressor.py +1 -1
- rapidtide/resample.py +8 -8
- rapidtide/tests/test_delayestimation.py +1 -1
- rapidtide/tests/test_fullrunrapidtide_v8.py +66 -0
- rapidtide/workflows/calcSimFuncMap.py +271 -0
- rapidtide/workflows/delayvar.py +1 -1
- rapidtide/workflows/fitSimFuncMap.py +427 -0
- rapidtide/workflows/happy.py +1 -1
- rapidtide/workflows/rapidtide.py +173 -41
- rapidtide/workflows/rapidtide_parser.py +23 -2
- rapidtide/workflows/regressfrommaps.py +7 -7
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.9.dist-info}/METADATA +1 -1
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.9.dist-info}/RECORD +22 -20
- rapidtide/workflows/estimateDelayMap.py +0 -536
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.9.dist-info}/WHEEL +0 -0
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.9.dist-info}/entry_points.txt +0 -0
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.9.dist-info}/licenses/LICENSE +0 -0
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.9.dist-info}/top_level.txt +0 -0
rapidtide/workflows/rapidtide.py
CHANGED
|
@@ -45,8 +45,9 @@ import rapidtide.stats as tide_stats
|
|
|
45
45
|
import rapidtide.util as tide_util
|
|
46
46
|
import rapidtide.voxelData as tide_voxelData
|
|
47
47
|
import rapidtide.wiener as tide_wiener
|
|
48
|
+
import rapidtide.workflows.calcSimFuncMap as tide_calcSimFuncMap
|
|
48
49
|
import rapidtide.workflows.cleanregressor as tide_cleanregressor
|
|
49
|
-
import rapidtide.workflows.
|
|
50
|
+
import rapidtide.workflows.fitSimFuncMap as tide_fitSimFuncMap
|
|
50
51
|
import rapidtide.workflows.refineDelayMap as tide_refineDelayMap
|
|
51
52
|
import rapidtide.workflows.refineRegressor as tide_refineRegressor
|
|
52
53
|
import rapidtide.workflows.regressfrommaps as tide_regressfrommaps
|
|
@@ -572,7 +573,7 @@ def rapidtide_main(argparsingfunc):
|
|
|
572
573
|
savename = f"{outputname}_desc-processed_mask"
|
|
573
574
|
tide_io.savetonifti(corrmask.reshape(xsize, ysize, numslices), theheader, savename)
|
|
574
575
|
|
|
575
|
-
LGR.verbose(f"image threshval = {threshval}")
|
|
576
|
+
LGR.verbose(f"image threshval = {threshval:.2f}")
|
|
576
577
|
validvoxels = np.where(corrmask > 0)[0]
|
|
577
578
|
if optiondict["debug"]:
|
|
578
579
|
print(f"{validvoxels.shape=}")
|
|
@@ -967,7 +968,7 @@ def rapidtide_main(argparsingfunc):
|
|
|
967
968
|
)
|
|
968
969
|
LGR.verbose("Input vector")
|
|
969
970
|
LGR.verbose(f"length: {len(inputvec)}")
|
|
970
|
-
LGR.verbose(f"input freq: {inputfreq}")
|
|
971
|
+
LGR.verbose(f"input freq: {inputfreq:.2f}")
|
|
971
972
|
LGR.verbose(f"input start time: {inputstarttime:.3f}")
|
|
972
973
|
|
|
973
974
|
if not optiondict["useinitregressorref"]:
|
|
@@ -1345,6 +1346,29 @@ def rapidtide_main(argparsingfunc):
|
|
|
1345
1346
|
append=False,
|
|
1346
1347
|
)
|
|
1347
1348
|
|
|
1349
|
+
# prepare for fast resampling
|
|
1350
|
+
optiondict["fastresamplerpadtime"] = (
|
|
1351
|
+
max((-optiondict["lagmin"], optiondict["lagmax"]))
|
|
1352
|
+
+ 30.0
|
|
1353
|
+
+ np.abs(optiondict["offsettime"])
|
|
1354
|
+
)
|
|
1355
|
+
numpadtrs = int(optiondict["fastresamplerpadtime"] // fmritr)
|
|
1356
|
+
optiondict["fastresamplerpadtime"] = fmritr * numpadtrs
|
|
1357
|
+
LGR.info(f"setting up fast resampling with padtime = {optiondict['fastresamplerpadtime']}")
|
|
1358
|
+
|
|
1359
|
+
genlagtc = tide_resample.FastResampler(
|
|
1360
|
+
reference_x, reference_y, padtime=optiondict["fastresamplerpadtime"]
|
|
1361
|
+
)
|
|
1362
|
+
genlagtc.save(f"{outputname}_desc-lagtcgenerator_timeseries")
|
|
1363
|
+
if optiondict["debug"]:
|
|
1364
|
+
genlagtc.info()
|
|
1365
|
+
totalpadlen = validtimepoints + 2 * numpadtrs
|
|
1366
|
+
paddedinitial_fmri_x = (
|
|
1367
|
+
np.linspace(0.0, totalpadlen * fmritr, num=totalpadlen, endpoint=False)
|
|
1368
|
+
+ skiptime
|
|
1369
|
+
- fmritr * numpadtrs
|
|
1370
|
+
)
|
|
1371
|
+
|
|
1348
1372
|
# allocate all the data arrays
|
|
1349
1373
|
tide_util.logmem("before main array allocation")
|
|
1350
1374
|
internalspaceshape = numspatiallocs
|
|
@@ -1359,7 +1383,30 @@ def rapidtide_main(argparsingfunc):
|
|
|
1359
1383
|
outmaparray = np.zeros(internalspaceshape, dtype=rt_floattype)
|
|
1360
1384
|
tide_util.logmem("after main array allocation")
|
|
1361
1385
|
|
|
1362
|
-
|
|
1386
|
+
if optiondict["similaritymetric"] == "riptide":
|
|
1387
|
+
riptideregressorset, riptidedelays = tide_calcSimFuncMap.makeRIPTiDeRegressors(
|
|
1388
|
+
initial_fmri_x,
|
|
1389
|
+
optiondict["lagmin"],
|
|
1390
|
+
optiondict["lagmax"],
|
|
1391
|
+
genlagtc,
|
|
1392
|
+
LGR,
|
|
1393
|
+
targetstep=optiondict["riptidestep"],
|
|
1394
|
+
edgepad=0,
|
|
1395
|
+
showprogressbar=optiondict["showprogressbar"],
|
|
1396
|
+
chunksize=optiondict["mp_chunksize"],
|
|
1397
|
+
nprocs=optiondict["nprocs"],
|
|
1398
|
+
alwaysmultiproc=optiondict["alwaysmultiproc"],
|
|
1399
|
+
rt_floatset=rt_floatset,
|
|
1400
|
+
rt_floattype=rt_floattype,
|
|
1401
|
+
debug=optiondict["debug"],
|
|
1402
|
+
)
|
|
1403
|
+
numriptideregressors = riptideregressorset.shape[0]
|
|
1404
|
+
corroutlen = numriptideregressors
|
|
1405
|
+
else:
|
|
1406
|
+
riptideregressorset = None
|
|
1407
|
+
riptidedelays = None
|
|
1408
|
+
corroutlen = np.shape(trimmedcorrscale)[0]
|
|
1409
|
+
|
|
1363
1410
|
if theinputdata.filetype == "text":
|
|
1364
1411
|
nativecorrshape = (xsize, corroutlen)
|
|
1365
1412
|
else:
|
|
@@ -1372,6 +1419,7 @@ def rapidtide_main(argparsingfunc):
|
|
|
1372
1419
|
LGR.debug(
|
|
1373
1420
|
f"allocating memory for correlation arrays {internalcorrshape} {internalvalidcorrshape}"
|
|
1374
1421
|
)
|
|
1422
|
+
|
|
1375
1423
|
corrout, corrout_shm = tide_util.allocarray(
|
|
1376
1424
|
internalvalidcorrshape,
|
|
1377
1425
|
rt_floatset,
|
|
@@ -1427,29 +1475,6 @@ def rapidtide_main(argparsingfunc):
|
|
|
1427
1475
|
else:
|
|
1428
1476
|
theinitialdelay = None
|
|
1429
1477
|
|
|
1430
|
-
# prepare for fast resampling
|
|
1431
|
-
optiondict["fastresamplerpadtime"] = (
|
|
1432
|
-
max((-optiondict["lagmin"], optiondict["lagmax"]))
|
|
1433
|
-
+ 30.0
|
|
1434
|
-
+ np.abs(optiondict["offsettime"])
|
|
1435
|
-
)
|
|
1436
|
-
numpadtrs = int(optiondict["fastresamplerpadtime"] // fmritr)
|
|
1437
|
-
optiondict["fastresamplerpadtime"] = fmritr * numpadtrs
|
|
1438
|
-
LGR.info(f"setting up fast resampling with padtime = {optiondict['fastresamplerpadtime']}")
|
|
1439
|
-
|
|
1440
|
-
genlagtc = tide_resample.FastResampler(
|
|
1441
|
-
reference_x, reference_y, padtime=optiondict["fastresamplerpadtime"]
|
|
1442
|
-
)
|
|
1443
|
-
genlagtc.save(f"{outputname}_desc-lagtcgenerator_timeseries")
|
|
1444
|
-
if optiondict["debug"]:
|
|
1445
|
-
genlagtc.info()
|
|
1446
|
-
totalpadlen = validtimepoints + 2 * numpadtrs
|
|
1447
|
-
paddedinitial_fmri_x = (
|
|
1448
|
-
np.linspace(0.0, totalpadlen * fmritr, num=totalpadlen, endpoint=False)
|
|
1449
|
-
+ skiptime
|
|
1450
|
-
- fmritr * numpadtrs
|
|
1451
|
-
)
|
|
1452
|
-
|
|
1453
1478
|
if theinputdata.filetype == "text":
|
|
1454
1479
|
nativefmrishape = (xsize, np.shape(initial_fmri_x)[0])
|
|
1455
1480
|
elif theinputdata.filetype == "cifti":
|
|
@@ -1465,7 +1490,7 @@ def rapidtide_main(argparsingfunc):
|
|
|
1465
1490
|
)
|
|
1466
1491
|
|
|
1467
1492
|
# now do the arrays for delay refinement
|
|
1468
|
-
if optiondict["dolinfitfilt"] or optiondict["docvrmap"] or optiondict["refinedelay"]:
|
|
1493
|
+
if optiondict["dolinfitfilt"] or optiondict["docvrmap"] or optiondict["refinedelay"] or (optiondict["similaritymetric"] == "riptide"):
|
|
1469
1494
|
if optiondict["refinedelay"]:
|
|
1470
1495
|
derivaxissize = np.max([2, optiondict["regressderivs"] + 1])
|
|
1471
1496
|
else:
|
|
@@ -1526,6 +1551,13 @@ def rapidtide_main(argparsingfunc):
|
|
|
1526
1551
|
thesize, theunit = tide_util.format_bytes(optiondict["totalRefineDelaybytes"])
|
|
1527
1552
|
print(f"allocated {thesize:.3f} {theunit} {ramlocation} for delay refinement")
|
|
1528
1553
|
tide_util.logmem("after derivative delay/sLFO filter array allocation")
|
|
1554
|
+
else:
|
|
1555
|
+
sLFOfitmean = None
|
|
1556
|
+
rvalue = None
|
|
1557
|
+
r2value = None
|
|
1558
|
+
fitNorm = None
|
|
1559
|
+
fitcoeff = None
|
|
1560
|
+
lagtc = None
|
|
1529
1561
|
|
|
1530
1562
|
# prepare for regressor refinement, if we're doing it
|
|
1531
1563
|
if (
|
|
@@ -1903,8 +1935,9 @@ def rapidtide_main(argparsingfunc):
|
|
|
1903
1935
|
optiondict["currentstage"] = f"precorrelation_pass{thepass}"
|
|
1904
1936
|
tide_io.writedicttojson(optiondict, f"{outputname}_desc-runoptions_info.json")
|
|
1905
1937
|
|
|
1906
|
-
#
|
|
1907
|
-
|
|
1938
|
+
# Step 1a - do the initial delay estimation
|
|
1939
|
+
similaritytype = tide_calcSimFuncMap.calcSimFunc(
|
|
1940
|
+
numvalidspatiallocs,
|
|
1908
1941
|
fmri_data_valid,
|
|
1909
1942
|
validsimcalcstart,
|
|
1910
1943
|
validsimcalcend,
|
|
@@ -1916,12 +1949,83 @@ def rapidtide_main(argparsingfunc):
|
|
|
1916
1949
|
theMutualInformationator,
|
|
1917
1950
|
cleaned_referencetc,
|
|
1918
1951
|
corrout,
|
|
1952
|
+
riptideregressorset,
|
|
1953
|
+
riptidedelays,
|
|
1954
|
+
sLFOfitmean,
|
|
1955
|
+
r2value,
|
|
1956
|
+
fitcoeff,
|
|
1957
|
+
fitNorm,
|
|
1919
1958
|
meanval,
|
|
1920
1959
|
corrscale,
|
|
1921
1960
|
outputname,
|
|
1922
1961
|
outcorrarray,
|
|
1923
1962
|
validvoxels,
|
|
1924
1963
|
nativecorrshape,
|
|
1964
|
+
theinputdata,
|
|
1965
|
+
theheader,
|
|
1966
|
+
lagmininpts,
|
|
1967
|
+
lagmaxinpts,
|
|
1968
|
+
thepass,
|
|
1969
|
+
optiondict,
|
|
1970
|
+
LGR,
|
|
1971
|
+
TimingLGR,
|
|
1972
|
+
similaritymetric=optiondict["similaritymetric"],
|
|
1973
|
+
simcalcoffset=optiondict["simcalcoffset"],
|
|
1974
|
+
echocancel=optiondict["echocancel"],
|
|
1975
|
+
checkpoint=optiondict["checkpoint"],
|
|
1976
|
+
mklthreads=optiondict["mklthreads"],
|
|
1977
|
+
nprocs=optiondict["nprocs_calcsimilarity"],
|
|
1978
|
+
alwaysmultiproc=optiondict["alwaysmultiproc"],
|
|
1979
|
+
oversampfactor=optiondict["oversampfactor"],
|
|
1980
|
+
interptype=optiondict["interptype"],
|
|
1981
|
+
showprogressbar=optiondict["showprogressbar"],
|
|
1982
|
+
chunksize=optiondict["mp_chunksize"],
|
|
1983
|
+
rt_floatset=rt_floatset,
|
|
1984
|
+
rt_floattype=rt_floattype,
|
|
1985
|
+
threaddebug=optiondict["threaddebug"],
|
|
1986
|
+
debug=optiondict["focaldebug"],
|
|
1987
|
+
)
|
|
1988
|
+
if optiondict["similaritymetric"] == "riptide":
|
|
1989
|
+
optiondict["despeckle_passes"] = 0
|
|
1990
|
+
fitcorrscale = riptidedelays
|
|
1991
|
+
else:
|
|
1992
|
+
fitcorrscale = trimmedcorrscale
|
|
1993
|
+
|
|
1994
|
+
if optiondict["saveintermediatemaps"]:
|
|
1995
|
+
theheader = theinputdata.copyheader(numtimepoints=1)
|
|
1996
|
+
bidspasssuffix = f"_intermediatedata-pass{thepass}"
|
|
1997
|
+
maplist = [
|
|
1998
|
+
(lagtimes, "maxtimecoarse", "map", "second", "Lag time in seconds"),
|
|
1999
|
+
(lagstrengths, "maxcorrcoarse", "map", None, "Maximum correlation strength"),
|
|
2000
|
+
]
|
|
2001
|
+
tide_io.savemaplist(
|
|
2002
|
+
f"{outputname}{bidspasssuffix}",
|
|
2003
|
+
maplist,
|
|
2004
|
+
validvoxels,
|
|
2005
|
+
nativespaceshape,
|
|
2006
|
+
theheader,
|
|
2007
|
+
bidsbasedict,
|
|
2008
|
+
filetype=theinputdata.filetype,
|
|
2009
|
+
rt_floattype=rt_floattype,
|
|
2010
|
+
cifti_hdr=theinputdata.cifti_hdr,
|
|
2011
|
+
)
|
|
2012
|
+
|
|
2013
|
+
|
|
2014
|
+
|
|
2015
|
+
# Step 2a - fit the delay function
|
|
2016
|
+
internaldespeckleincludemask = tide_fitSimFuncMap.fitSimFunc(
|
|
2017
|
+
fmri_data_valid,
|
|
2018
|
+
validsimcalcstart,
|
|
2019
|
+
validsimcalcend,
|
|
2020
|
+
osvalidsimcalcstart,
|
|
2021
|
+
osvalidsimcalcend,
|
|
2022
|
+
initial_fmri_x,
|
|
2023
|
+
os_fmri_x,
|
|
2024
|
+
theMutualInformationator,
|
|
2025
|
+
cleaned_referencetc,
|
|
2026
|
+
corrout,
|
|
2027
|
+
outputname,
|
|
2028
|
+
validvoxels,
|
|
1925
2029
|
nativespaceshape,
|
|
1926
2030
|
bidsbasedict,
|
|
1927
2031
|
numspatiallocs,
|
|
@@ -1941,17 +2045,18 @@ def rapidtide_main(argparsingfunc):
|
|
|
1941
2045
|
lagsigma,
|
|
1942
2046
|
failreason,
|
|
1943
2047
|
outmaparray,
|
|
1944
|
-
|
|
1945
|
-
|
|
2048
|
+
fitcorrscale,
|
|
2049
|
+
similaritytype,
|
|
1946
2050
|
thepass,
|
|
1947
2051
|
optiondict,
|
|
1948
2052
|
LGR,
|
|
1949
2053
|
TimingLGR,
|
|
2054
|
+
simplefit=(optiondict["similaritymetric"] == "riptide"),
|
|
1950
2055
|
rt_floatset=np.float64,
|
|
1951
2056
|
rt_floattype="float64",
|
|
1952
2057
|
)
|
|
1953
2058
|
|
|
1954
|
-
# refine delay
|
|
2059
|
+
# Step 2b - refine delay (optional)
|
|
1955
2060
|
if optiondict["refinedelayeachpass"]:
|
|
1956
2061
|
if optiondict["delayoffsetgausssigma"] < 0.0 and theinputdata.filetype != "text":
|
|
1957
2062
|
# set gausssigma automatically
|
|
@@ -2006,7 +2111,26 @@ def rapidtide_main(argparsingfunc):
|
|
|
2006
2111
|
)
|
|
2007
2112
|
lagtimes[:] = lagtimes + delayoffset
|
|
2008
2113
|
|
|
2009
|
-
|
|
2114
|
+
if optiondict["saveintermediatemaps"]:
|
|
2115
|
+
theheader = theinputdata.copyheader(numtimepoints=1)
|
|
2116
|
+
bidspasssuffix = f"_intermediatedata-pass{thepass}"
|
|
2117
|
+
maplist = [
|
|
2118
|
+
(lagtimes, "maxtimerefined", "map", "second", "Lag time in seconds"),
|
|
2119
|
+
(lagstrengths, "maxcorrrefined", "map", None, "Maximum correlation strength"),
|
|
2120
|
+
]
|
|
2121
|
+
tide_io.savemaplist(
|
|
2122
|
+
f"{outputname}{bidspasssuffix}",
|
|
2123
|
+
maplist,
|
|
2124
|
+
validvoxels,
|
|
2125
|
+
nativespaceshape,
|
|
2126
|
+
theheader,
|
|
2127
|
+
bidsbasedict,
|
|
2128
|
+
filetype=theinputdata.filetype,
|
|
2129
|
+
rt_floattype=rt_floattype,
|
|
2130
|
+
cifti_hdr=theinputdata.cifti_hdr,
|
|
2131
|
+
)
|
|
2132
|
+
|
|
2133
|
+
# Step 2b - make a rank order map
|
|
2010
2134
|
timepercentile = (
|
|
2011
2135
|
100.0 * (rankdata(lagtimes, method="dense") - 1) / (numvalidspatiallocs - 1)
|
|
2012
2136
|
)
|
|
@@ -2499,7 +2623,7 @@ def rapidtide_main(argparsingfunc):
|
|
|
2499
2623
|
nprocs_makelaggedtcs=optiondict["nprocs_makelaggedtcs"],
|
|
2500
2624
|
nprocs_regressionfilt=optiondict["nprocs_regressionfilt"],
|
|
2501
2625
|
regressderivs=optiondict["regressderivs"],
|
|
2502
|
-
|
|
2626
|
+
chunksize=optiondict["mp_chunksize"],
|
|
2503
2627
|
showprogressbar=optiondict["showprogressbar"],
|
|
2504
2628
|
alwaysmultiproc=optiondict["alwaysmultiproc"],
|
|
2505
2629
|
debug=optiondict["debug"],
|
|
@@ -2987,7 +3111,7 @@ def rapidtide_main(argparsingfunc):
|
|
|
2987
3111
|
nprocs_makelaggedtcs=optiondict["nprocs_makelaggedtcs"],
|
|
2988
3112
|
nprocs_regressionfilt=optiondict["nprocs_regressionfilt"],
|
|
2989
3113
|
regressderivs=optiondict["regressderivs"],
|
|
2990
|
-
|
|
3114
|
+
chunksize=optiondict["mp_chunksize"],
|
|
2991
3115
|
showprogressbar=optiondict["showprogressbar"],
|
|
2992
3116
|
alwaysmultiproc=optiondict["alwaysmultiproc"],
|
|
2993
3117
|
debug=optiondict["debug"],
|
|
@@ -3147,11 +3271,19 @@ def rapidtide_main(argparsingfunc):
|
|
|
3147
3271
|
del fitmask
|
|
3148
3272
|
|
|
3149
3273
|
# now do the 4D maps of the similarity function and friends
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3274
|
+
if optiondict["similaritymetric"] == "riptide":
|
|
3275
|
+
theheader = theinputdata.copyheader(
|
|
3276
|
+
numtimepoints=np.shape(outcorrarray)[1],
|
|
3277
|
+
tr=riptidedelays[1] - riptidedelays[0],
|
|
3278
|
+
toffset=(riptidedelays[0]),
|
|
3279
|
+
)
|
|
3280
|
+
else:
|
|
3281
|
+
theheader = theinputdata.copyheader(
|
|
3282
|
+
numtimepoints=np.shape(outcorrarray)[1],
|
|
3283
|
+
tr=corrtr,
|
|
3284
|
+
toffset=(corrscale[corrorigin - lagmininpts]),
|
|
3285
|
+
)
|
|
3286
|
+
|
|
3155
3287
|
if (
|
|
3156
3288
|
optiondict["savecorrout"]
|
|
3157
3289
|
or (optiondict["outputlevel"] != "min")
|
|
@@ -96,6 +96,9 @@ DEFAULT_OUTPUTLEVEL = "normal"
|
|
|
96
96
|
|
|
97
97
|
DEFAULT_SLFONOISEAMP_WINDOWSIZE = 40.0
|
|
98
98
|
|
|
99
|
+
DEFAULT_COARSEDELAY_TYPE = "simfunc"
|
|
100
|
+
DEFAULT_RIPTIDESTEP = 2.0
|
|
101
|
+
|
|
99
102
|
DEFAULT_PATCHTHRESH = 3.0
|
|
100
103
|
DEFAULT_REFINEDELAYMINDELAY = -5.0
|
|
101
104
|
DEFAULT_REFINEDELAYMAXDELAY = 5.0
|
|
@@ -779,10 +782,10 @@ def _get_parser():
|
|
|
779
782
|
dest="similaritymetric",
|
|
780
783
|
action="store",
|
|
781
784
|
type=str,
|
|
782
|
-
choices=["correlation", "mutualinfo", "hybrid"],
|
|
785
|
+
choices=["correlation", "mutualinfo", "hybrid", "riptide"],
|
|
783
786
|
help=(
|
|
784
787
|
"Similarity metric for finding delay values. "
|
|
785
|
-
'Choices are "correlation", "mutualinfo", and "
|
|
788
|
+
'Choices are "correlation", "mutualinfo", "hybrid", and "riptide". '
|
|
786
789
|
f"Default is {DEFAULT_SIMILARITYMETRIC}."
|
|
787
790
|
),
|
|
788
791
|
default=DEFAULT_SIMILARITYMETRIC,
|
|
@@ -1442,6 +1445,17 @@ def _get_parser():
|
|
|
1442
1445
|
experimental = parser.add_argument_group(
|
|
1443
1446
|
"Experimental options (not fully tested, or not tested at all, may not work). Beware!"
|
|
1444
1447
|
)
|
|
1448
|
+
output.add_argument(
|
|
1449
|
+
"--riptidestep", # was -h
|
|
1450
|
+
dest="riptidestep",
|
|
1451
|
+
action="store",
|
|
1452
|
+
type=lambda x: pf.is_float(parser, x, maxval=5.0),
|
|
1453
|
+
metavar="STEP",
|
|
1454
|
+
help=(
|
|
1455
|
+
f"Timestep between RIPTiDe regressors, in seconds. Default is {DEFAULT_RIPTIDESTEP}."
|
|
1456
|
+
),
|
|
1457
|
+
default=DEFAULT_RIPTIDESTEP,
|
|
1458
|
+
)
|
|
1445
1459
|
experimental.add_argument(
|
|
1446
1460
|
"--refinedelayeachpass",
|
|
1447
1461
|
dest="refinedelayeachpass",
|
|
@@ -2206,6 +2220,13 @@ def process_args(inputargs=None):
|
|
|
2206
2220
|
print(f"illegal output level {args['outputlevel']}")
|
|
2207
2221
|
sys.exit()
|
|
2208
2222
|
|
|
2223
|
+
# make the pass options dictionary
|
|
2224
|
+
args["passoptions"] = [
|
|
2225
|
+
{"similaritymetric": "riptide",},
|
|
2226
|
+
{"similaritymetric": "correlation", },
|
|
2227
|
+
{"similaritymetric": "correlation", },
|
|
2228
|
+
]
|
|
2229
|
+
|
|
2209
2230
|
# dispersion calculation
|
|
2210
2231
|
args["dispersioncalc_lower"] = args["lagmin"]
|
|
2211
2232
|
args["dispersioncalc_upper"] = args["lagmax"]
|
|
@@ -49,11 +49,11 @@ def regressfrommaps(
|
|
|
49
49
|
nprocs_makelaggedtcs=1,
|
|
50
50
|
nprocs_regressionfilt=1,
|
|
51
51
|
regressderivs=0,
|
|
52
|
-
|
|
52
|
+
chunksize=50000,
|
|
53
53
|
showprogressbar=True,
|
|
54
54
|
alwaysmultiproc=False,
|
|
55
55
|
saveEVsandquit=False,
|
|
56
|
-
|
|
56
|
+
coefficientsonly=False,
|
|
57
57
|
debug=False,
|
|
58
58
|
):
|
|
59
59
|
if debug:
|
|
@@ -61,7 +61,7 @@ def regressfrommaps(
|
|
|
61
61
|
print(f"\t{nprocs_makelaggedtcs=}")
|
|
62
62
|
print(f"\t{nprocs_regressionfilt=}")
|
|
63
63
|
print(f"\t{regressderivs=}")
|
|
64
|
-
print(f"\t{
|
|
64
|
+
print(f"\t{chunksize=}")
|
|
65
65
|
print(f"\t{showprogressbar=}")
|
|
66
66
|
print(f"\t{alwaysmultiproc=}")
|
|
67
67
|
print(f"\t{mode=}")
|
|
@@ -88,7 +88,7 @@ def regressfrommaps(
|
|
|
88
88
|
nprocs=nprocs_makelaggedtcs,
|
|
89
89
|
alwaysmultiproc=alwaysmultiproc,
|
|
90
90
|
showprogressbar=showprogressbar,
|
|
91
|
-
chunksize=
|
|
91
|
+
chunksize=chunksize,
|
|
92
92
|
rt_floatset=rt_floatset,
|
|
93
93
|
rt_floattype=rt_floattype,
|
|
94
94
|
debug=debug,
|
|
@@ -146,12 +146,12 @@ def regressfrommaps(
|
|
|
146
146
|
fitNorm,
|
|
147
147
|
movingsignal,
|
|
148
148
|
filtereddata,
|
|
149
|
-
|
|
149
|
+
coefficientsonly=coefficientsonly,
|
|
150
150
|
nprocs=nprocs_regressionfilt,
|
|
151
151
|
alwaysmultiproc=alwaysmultiproc,
|
|
152
152
|
showprogressbar=showprogressbar,
|
|
153
153
|
verbose=(LGR is not None),
|
|
154
|
-
|
|
154
|
+
chunksize=chunksize,
|
|
155
155
|
rt_floatset=rt_floatset,
|
|
156
156
|
rt_floattype=rt_floattype,
|
|
157
157
|
debug=debug,
|
|
@@ -162,7 +162,7 @@ def regressfrommaps(
|
|
|
162
162
|
fitcoeff *= 100.0
|
|
163
163
|
|
|
164
164
|
# determine what was removed
|
|
165
|
-
if not
|
|
165
|
+
if not coefficientsonly:
|
|
166
166
|
removeddata = fmri_data_valid - filtereddata
|
|
167
167
|
noiseremoved = np.var(removeddata, axis=0)
|
|
168
168
|
if saveminimumsLFOfiltfiles:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rapidtide
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.9
|
|
4
4
|
Summary: Tools for performing correlation analysis on fMRI data.
|
|
5
5
|
Author: Taylor Salo, Daniel M. Drucker, Ph.D., Jeffrey N Stout, Yaroslav O. Halchenko, Derek Monroe
|
|
6
6
|
Author-email: "Blaise deB. Frederick" <blaise.frederick@gmail.com>
|
|
@@ -8,9 +8,9 @@ cloud/rapidtide-cloud-test,sha256=SATOwGo4QYLvt-6hE0e3wyK9JjuDU5XzfLrfMoybvcY,46
|
|
|
8
8
|
cloud/simple-cp-test,sha256=5ef8wmLfcKdny59BV6_DnAPj7O_mi0rOHdFZVN2iiLA,421
|
|
9
9
|
rapidtide/Colortables.py,sha256=OVtgnQ9xTJPgfdyK1ktESHRjBh09cxLVPZvgUvV5jOo,5814
|
|
10
10
|
rapidtide/OrthoImageItem.py,sha256=w70QNZUelMI7wTWYaqOfkJEb38PdsxgSf0NLdyjlcNs,21669
|
|
11
|
-
rapidtide/RapidtideDataset.py,sha256=
|
|
11
|
+
rapidtide/RapidtideDataset.py,sha256=OEeyDrluWw5ssd0FFXRscox3UotSPcmMVJxBIo0WtMA,53012
|
|
12
12
|
rapidtide/__init__.py,sha256=cECnPfGNIWXETiummGLjKcNXLROSDiFlLp-RpZSavwc,97
|
|
13
|
-
rapidtide/_version.py,sha256=
|
|
13
|
+
rapidtide/_version.py,sha256=H9j41yg9NrpwHmnes6ZY5RkH2z5gmYe3FGbumsv2BcM,497
|
|
14
14
|
rapidtide/calccoherence.py,sha256=-_vglu0MZB85Aodw6GpYhBApFBt5eslppfxF4rXM6Xg,3409
|
|
15
15
|
rapidtide/calcnullsimfunc.py,sha256=j5mPfaRCpJvu8R-kHFzn6vrIQVhCdPPDTSYXslaZU_c,5030
|
|
16
16
|
rapidtide/calcsimfunc.py,sha256=xCPYns-XOnLWjwujbP7a7EwGEzhEwOHMf04RpFlL3SI,4713
|
|
@@ -24,7 +24,7 @@ rapidtide/genericmultiproc.py,sha256=ZQwN84HpC7ZA_w4qekBqA4suU_70ryqGjAsTAIa4oSw
|
|
|
24
24
|
rapidtide/happy_supportfuncs.py,sha256=GiUwfjf0ZIYEvN2Fvauhtv58hdiAuQytwx11ZPX8Uvo,56261
|
|
25
25
|
rapidtide/helper_classes.py,sha256=14q92myZQPl_AUTjh5l1dm6y5-3JkW0xCAEKpgyiuXY,10534
|
|
26
26
|
rapidtide/io.py,sha256=A3qFJdFFf1XSVlqPvoOF733OoxrRcbRO-gSEoh_95bE,75037
|
|
27
|
-
rapidtide/linfitfiltpass.py,sha256=
|
|
27
|
+
rapidtide/linfitfiltpass.py,sha256=FqqUFE44lSEHdqcMmqiAtgye29AebmJyk7nhVzjPF7Q,19801
|
|
28
28
|
rapidtide/makelaggedtcs.py,sha256=WG-gwYVX-pZPIwVBJR2_YfpSOCsBcLGLXGvDIz5cA68,3066
|
|
29
29
|
rapidtide/maskutil.py,sha256=IBEgxmHvQ2fnBoTeFu7vw_w3uf91NxpW3IgTDirhWH0,10890
|
|
30
30
|
rapidtide/miscmath.py,sha256=bEmqnBl6xL2ZRXbId7onXqiEayZJW-jWVCEIp0bfw3o,13918
|
|
@@ -32,9 +32,9 @@ rapidtide/multiproc.py,sha256=K5IO0mr-T4rZbL4j7Zp7vFTv-6icavh-dgITZmzP8Ds,5817
|
|
|
32
32
|
rapidtide/patchmatch.py,sha256=VxXine2b_fI0oMJWuhXUzfHhZH_-BdqyvW2Ft2n-Vu0,20643
|
|
33
33
|
rapidtide/peakeval.py,sha256=ZDcuAT4Bw9bTU1oJTvOn9t_rWEZOsXHC5PiNnDdFlX0,5198
|
|
34
34
|
rapidtide/qualitycheck.py,sha256=exTRCQDf9OsNbmlemr-5YPjDGDg3uSTyc8amidXUZqU,11917
|
|
35
|
-
rapidtide/refinedelay.py,sha256=
|
|
36
|
-
rapidtide/refineregressor.py,sha256=
|
|
37
|
-
rapidtide/resample.py,sha256=
|
|
35
|
+
rapidtide/refinedelay.py,sha256=FB9eA_ZUowubUKlPIBd3srTqY2bMt5jCfEqQBTjwes0,16112
|
|
36
|
+
rapidtide/refineregressor.py,sha256=q3E1Sfi1Qs6H-zWDcVpDkLUA7xKWX3HhYgZO3_s_RwA,21835
|
|
37
|
+
rapidtide/resample.py,sha256=mu4Hn4c_O4s_-kAXoA-nd77IG5BhOlJmRI8AL2vjLtc,30753
|
|
38
38
|
rapidtide/simFuncClasses.py,sha256=j--6SWOmMdSv0ZqnxBax9ESTWRXGZrVe63q-gNQEkRg,42057
|
|
39
39
|
rapidtide/simfuncfit.py,sha256=5EUytvZymIPTsv_008qkjJcySxy9QfgfP3HT3ozdW_s,11973
|
|
40
40
|
rapidtide/stats.py,sha256=jYne4e-Gj0ktNx2SYoGsq5hXekknLAhXz7Gp8SIMifQ,29335
|
|
@@ -65,7 +65,7 @@ rapidtide/data/examples/src/testdecomp,sha256=xxxr510aOBjtpJy4aQNAFTyEFZD6QdHp6-
|
|
|
65
65
|
rapidtide/data/examples/src/testdelayvar,sha256=tMn1k8IfvBL7MKhgGC6EGcSkChtXWKp1bENOGG4SagI,330
|
|
66
66
|
rapidtide/data/examples/src/testfileorfloat,sha256=9r4mz7pBV_8iFZya9kmtfbnTRS3-94Cx9Q63Ni3mkZs,815
|
|
67
67
|
rapidtide/data/examples/src/testfingerprint,sha256=RlAIC1lMDWMGzZKxY24DJRuaUEL0BenSFBey0gL5dqU,402
|
|
68
|
-
rapidtide/data/examples/src/testfmri,sha256=
|
|
68
|
+
rapidtide/data/examples/src/testfmri,sha256=2M_hZZDMIazipzS0P42FNmaZHVM-RFgWmIWYWZZ2ras,1298
|
|
69
69
|
rapidtide/data/examples/src/testfmridocker,sha256=jjL7bK29rrcog6uO9BtvcyAU3Sv8_5cbw2nqKoiZ95o,1193
|
|
70
70
|
rapidtide/data/examples/src/testfrozen,sha256=K3qUWDRKPPiCXRgIFuPdwUUjUTzf4QBW8UUhR75NzDM,283
|
|
71
71
|
rapidtide/data/examples/src/testfuncs,sha256=zjq9u7mXMf0UlbUgePyS1mj7QHclicmw6NY0g31SqeY,1551
|
|
@@ -223,7 +223,7 @@ rapidtide/tests/test_cleanregressor.py,sha256=XX1DlO5lAXRsnFUkXGCga8Ry9icjPIAfjv
|
|
|
223
223
|
rapidtide/tests/test_congrid.py,sha256=Ni-PeB-oaBgoqyZ2XLhDB3yvAKWTeY-0kyAb6HjvUQ0,5610
|
|
224
224
|
rapidtide/tests/test_correlate.py,sha256=SKqLbj0MDQ7wZ1N70j6x07_i-Jok9ySPdJMt8lJ7qq0,2547
|
|
225
225
|
rapidtide/tests/test_corrpass.py,sha256=v01jkJ9zCDGQspY4RMiObpQG8k0K84CWvlfFNMnlKiY,7857
|
|
226
|
-
rapidtide/tests/test_delayestimation.py,sha256=
|
|
226
|
+
rapidtide/tests/test_delayestimation.py,sha256=ebXKRwo30rtjYLLXNvWBzhZxp_bWMepz2hnI-taAyr4,13619
|
|
227
227
|
rapidtide/tests/test_doresample.py,sha256=9vwiMo8WutmOKW5LfeMRLG3FAzZNa_1sra-k-36Fn-w,2716
|
|
228
228
|
rapidtide/tests/test_externaltools.py,sha256=oaD9KQ1Db9fhev9g9OfUecoZLKeGHnmQV4-OGrk3rko,2121
|
|
229
229
|
rapidtide/tests/test_fastresampler.py,sha256=x9jimD1aGYA48egjAUbjcCcxA7eXsAf2VPP3KbhBkvw,3884
|
|
@@ -241,6 +241,7 @@ rapidtide/tests/test_fullrunrapidtide_v4.py,sha256=DTEom1FPHn21WZZveiCCf4L_NabR9
|
|
|
241
241
|
rapidtide/tests/test_fullrunrapidtide_v5.py,sha256=NzTYGXaWsJzd7uIIgom_NPwl3EmGCRxlylaUEVN3gxU,1779
|
|
242
242
|
rapidtide/tests/test_fullrunrapidtide_v6.py,sha256=qjxniiLjkA8sFK3_spNpF13PsN_6ONTB8VtcSYAZ_a0,4368
|
|
243
243
|
rapidtide/tests/test_fullrunrapidtide_v7.py,sha256=MKZ1Xi2pl04eb-cdxe6BeWkKqFWFTXAPZu3L_s7QNJk,4250
|
|
244
|
+
rapidtide/tests/test_fullrunrapidtide_v8.py,sha256=usfykAA3QuUj8bghF9g2Vq567qCSY3IMStYz3-thwz0,1963
|
|
244
245
|
rapidtide/tests/test_getparsers.py,sha256=o_YvDHjbGQspZycHSM5ZhlXQsjzdsCN6llCBxQ2Exo4,6870
|
|
245
246
|
rapidtide/tests/test_io.py,sha256=E99Bmfo3qbeQZEn4btq2bPisKyvUPx6PMPXTvKOasYA,17065
|
|
246
247
|
rapidtide/tests/test_linfitfiltpass.py,sha256=Q_XbDujj4tGc3X_I37IJJBDsvAs0m-S_oU8WG7DcGKU,5554
|
|
@@ -291,19 +292,20 @@ rapidtide/workflows/aligntcs.py,sha256=43hg6F2Qy7ZFv7qIur4fnfcZRsnAAdosw3zYCKgOi
|
|
|
291
292
|
rapidtide/workflows/applydlfilter.py,sha256=9dkVYitWSupZWWA1xNtLMf4-BgIwOjYLqDpOj9uV8hY,5430
|
|
292
293
|
rapidtide/workflows/atlasaverage.py,sha256=6j5cNWk613R98LFmBAfVDJh6TuTo8Uxa-VW7nn0uNOA,17478
|
|
293
294
|
rapidtide/workflows/atlastool.py,sha256=6aMMtr6knETNTyW-laThMeiO8mcdd71F8MSsdYHMeIM,16076
|
|
295
|
+
rapidtide/workflows/calcSimFuncMap.py,sha256=Tqc0Ac-iQ8dXs3WwRgAs_Aar_54ez9LTZFLp_lz6R0k,8469
|
|
294
296
|
rapidtide/workflows/calctexticc.py,sha256=9nGGAiqiD2MPg7UiIGR2V7rdtx-jcXQ_Q7uTXCziraQ,10486
|
|
295
297
|
rapidtide/workflows/ccorrica.py,sha256=ZGuBoM4u860Q7WxbNp-yxTxBaHLNozL7Kbx3o3rvaFk,10457
|
|
296
298
|
rapidtide/workflows/cleanregressor.py,sha256=vK3Ev5ft_O_zcPzqSSJCBqn9ZOB3xxYp2fYIeRq2EAo,10307
|
|
297
|
-
rapidtide/workflows/delayvar.py,sha256=
|
|
299
|
+
rapidtide/workflows/delayvar.py,sha256=3HPEz1xd1evvEEVVY1jDAb2xoxAqEOTb-0RyN3krRQ8,39544
|
|
298
300
|
rapidtide/workflows/diffrois.py,sha256=imyKnnO8wnKbVoqsYEpYfJl0oBLllG9_pbV-0D1IdIw,5451
|
|
299
301
|
rapidtide/workflows/endtidalproc.py,sha256=wsuunEjyd4Hy_ExCabCcmsWjJ3jEhaWYdPr_COD4TfU,4923
|
|
300
|
-
rapidtide/workflows/estimateDelayMap.py,sha256=8RMSc70I2PFMGa5e34T9Ougo7V2-fuQXXiLuMo81YIQ,19423
|
|
301
302
|
rapidtide/workflows/fdica.py,sha256=Vqf-Yhdz6_YByN-4CLMuVwi5ts_Nw1ejBs5LAblHUeY,14954
|
|
302
303
|
rapidtide/workflows/filtnifti.py,sha256=LXQw8yY7xbVCYAWNO5wsJOYHkxOH5I4x_oRaaXsPt1E,3242
|
|
303
304
|
rapidtide/workflows/filttc.py,sha256=QHMJ41ZORxB8fG4IcvxKUgSfmOL4X9cFQFpM5px1Uxw,4514
|
|
305
|
+
rapidtide/workflows/fitSimFuncMap.py,sha256=SwyOs8QJHEB8QK6GwKLrGvhg9Cc0wpqYgGt9L1mXB00,16711
|
|
304
306
|
rapidtide/workflows/fixtr.py,sha256=KYr3veeHDUjozH3IO-0iPhLqNDGEc2NcUvzn6tuxeN8,2025
|
|
305
307
|
rapidtide/workflows/gmscalc.py,sha256=Z-3HV2EU-HuIhpr7s5u4EAPAaW0gXtj2aVZt7386Gr8,6258
|
|
306
|
-
rapidtide/workflows/happy.py,sha256=
|
|
308
|
+
rapidtide/workflows/happy.py,sha256=yy5WxWOjSzjLFySVsPBUNbec_GpIIsChwg_TwYuZ7O4,77217
|
|
307
309
|
rapidtide/workflows/happy2std.py,sha256=6gya9YjfPzPMu15jsMUbu7pLq430-n3b3meiTWhRkAo,8132
|
|
308
310
|
rapidtide/workflows/happy_parser.py,sha256=OQTcUIvB61p0niNpG__9auUINb962PKmp0wz6qj_uN8,27354
|
|
309
311
|
rapidtide/workflows/histnifti.py,sha256=BeABj0osc0mEnmyKonN0Hgeis8L8soO-w-cVaeMKLUI,11197
|
|
@@ -322,12 +324,12 @@ rapidtide/workflows/plethquality.py,sha256=kTO74C5aSBmomzt59zs1VeiO_C5SPTxvyZZ0v
|
|
|
322
324
|
rapidtide/workflows/polyfitim.py,sha256=bVKBrrFa0WjWZju4Lkrr8_9mFWALqCxkpCX28540GQA,10184
|
|
323
325
|
rapidtide/workflows/proj2flow.py,sha256=SbkYTRZ_SViVfiM0QJjo20RrICtbsQpEd2i9o9XDgPU,7290
|
|
324
326
|
rapidtide/workflows/rankimage.py,sha256=9opJb3OikO69wtN8zgF3XJxgoHy1-erzZiDKs8pDM6U,3482
|
|
325
|
-
rapidtide/workflows/rapidtide.py,sha256=
|
|
327
|
+
rapidtide/workflows/rapidtide.py,sha256=0ES86ZP8iJlq7bhvrJHzg1BqC_9Jhr33oIxDIZ5TLJw,133102
|
|
326
328
|
rapidtide/workflows/rapidtide2std.py,sha256=coxEnRAof6NNpeXjjECPazx5Wotf4l1SJCnaVEvmHQY,10483
|
|
327
|
-
rapidtide/workflows/rapidtide_parser.py,sha256=
|
|
329
|
+
rapidtide/workflows/rapidtide_parser.py,sha256=PW6KMi4Qz9dX1KhfAyhJJwRAExQerUBhPDkkHYSZdek,77940
|
|
328
330
|
rapidtide/workflows/refineDelayMap.py,sha256=a7oqD0OXRKA4FnMLe9kzhRva9GlQ_YpVjHissU4FbbM,3556
|
|
329
331
|
rapidtide/workflows/refineRegressor.py,sha256=b3jZAPow7A0liAGycAk_7xEwJo2HEYqYsG2qsMnVHZs,23443
|
|
330
|
-
rapidtide/workflows/regressfrommaps.py,sha256=
|
|
332
|
+
rapidtide/workflows/regressfrommaps.py,sha256=E4X5Y3jURLGgXJptw8ZxfZhs8mnVDohb7rAjd_PepT0,5585
|
|
331
333
|
rapidtide/workflows/resamplenifti.py,sha256=GJE7f8bzMRY3QYiMYZOD8bDnga4ah97sp-ZL3yaaIFA,4717
|
|
332
334
|
rapidtide/workflows/resampletc.py,sha256=B4YIKn3qpDaM9dIhYjGwPl-2LtaEhm9fnMBzfBgAUSs,3959
|
|
333
335
|
rapidtide/workflows/retrolagtcs.py,sha256=_xZpx9UFH6yHYvaP8PC_FdJVxdq1Z7r0ngwQTOm1Xqg,10821
|
|
@@ -350,9 +352,9 @@ rapidtide/workflows/tcfrom3col.py,sha256=kV3V-qZ7A7LkD96aHVXabvohA8udsflHXnzsQIw
|
|
|
350
352
|
rapidtide/workflows/tidepool.py,sha256=zua2N_dfXqBQlGgcsyKZXphv1JvqUMjk-eNtwGG1K6Y,86626
|
|
351
353
|
rapidtide/workflows/utils.py,sha256=urIN-042oUCRDusVUSjBelVN3Te2JP3svY3ckq-yBMU,5379
|
|
352
354
|
rapidtide/workflows/variabilityizer.py,sha256=h7Hhrxn84MclRfbAvKIZJoNzlcKO-8d9lZ6y6YFStk8,3167
|
|
353
|
-
rapidtide-3.0.
|
|
354
|
-
rapidtide-3.0.
|
|
355
|
-
rapidtide-3.0.
|
|
356
|
-
rapidtide-3.0.
|
|
357
|
-
rapidtide-3.0.
|
|
358
|
-
rapidtide-3.0.
|
|
355
|
+
rapidtide-3.0.9.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
356
|
+
rapidtide-3.0.9.dist-info/METADATA,sha256=etKUpRUrmf4IIHCSYKGMzIRdqIuAj68Zh2-DGBKYOzE,15696
|
|
357
|
+
rapidtide-3.0.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
358
|
+
rapidtide-3.0.9.dist-info/entry_points.txt,sha256=9NVvZpIx9U6lTWlTFF2ev-wuPAHJxcXI_901_EcGRYA,3323
|
|
359
|
+
rapidtide-3.0.9.dist-info/top_level.txt,sha256=MnNXGfbrIBc9RnAqzBHOWd3GQO-aIUDnRTz4_5VjH5g,16
|
|
360
|
+
rapidtide-3.0.9.dist-info/RECORD,,
|