rapidtide 3.0.6__py3-none-any.whl → 3.0.7__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 +17 -0
- rapidtide/_version.py +3 -3
- rapidtide/correlate.py +25 -6
- rapidtide/data/examples/src/testfmri +15 -0
- rapidtide/data/examples/src/testhappy +56 -60
- rapidtide/data/examples/src/testsimdata +45 -28
- rapidtide/happy_supportfuncs.py +599 -107
- rapidtide/resample.py +24 -14
- rapidtide/tests/test_congrid.py +68 -79
- rapidtide/voxelData.py +17 -3
- rapidtide/workflows/cleanregressor.py +3 -2
- rapidtide/workflows/happy.py +59 -2
- rapidtide/workflows/happy_parser.py +36 -0
- rapidtide/workflows/rapidtide.py +16 -5
- rapidtide/workflows/rapidtide_parser.py +7 -0
- rapidtide/workflows/showarbcorr.py +19 -6
- rapidtide/workflows/simdata.py +149 -65
- {rapidtide-3.0.6.dist-info → rapidtide-3.0.7.dist-info}/METADATA +1 -1
- {rapidtide-3.0.6.dist-info → rapidtide-3.0.7.dist-info}/RECORD +23 -23
- {rapidtide-3.0.6.dist-info → rapidtide-3.0.7.dist-info}/WHEEL +1 -1
- {rapidtide-3.0.6.dist-info → rapidtide-3.0.7.dist-info}/entry_points.txt +0 -0
- {rapidtide-3.0.6.dist-info → rapidtide-3.0.7.dist-info}/licenses/LICENSE +0 -0
- {rapidtide-3.0.6.dist-info → rapidtide-3.0.7.dist-info}/top_level.txt +0 -0
rapidtide/workflows/simdata.py
CHANGED
|
@@ -18,12 +18,13 @@
|
|
|
18
18
|
#
|
|
19
19
|
import argparse
|
|
20
20
|
|
|
21
|
-
import numpy as np
|
|
22
21
|
from matplotlib.pyplot import *
|
|
23
22
|
|
|
23
|
+
import rapidtide.filter as tide_filt
|
|
24
24
|
import rapidtide.io as tide_io
|
|
25
25
|
import rapidtide.miscmath as tide_math
|
|
26
26
|
import rapidtide.resample as tide_resample
|
|
27
|
+
import rapidtide.voxelData as tide_voxelData
|
|
27
28
|
import rapidtide.workflows.parser_funcs as pf
|
|
28
29
|
|
|
29
30
|
|
|
@@ -38,21 +39,30 @@ def _get_parser():
|
|
|
38
39
|
)
|
|
39
40
|
|
|
40
41
|
# Required arguments
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
parser.add_argument(
|
|
43
|
+
"fmritr",
|
|
44
|
+
type=lambda x: pf.is_float(parser, x, minval=0.0),
|
|
45
|
+
help="TR of the simulated data, in seconds.",
|
|
46
|
+
)
|
|
47
|
+
parser.add_argument(
|
|
48
|
+
"numtrs",
|
|
49
|
+
type=lambda x: pf.is_int(parser, x, minval=1),
|
|
50
|
+
help="Number of TRs in the simulated data.",
|
|
43
51
|
)
|
|
44
52
|
pf.addreqinputniftifile(
|
|
45
53
|
parser, "immeanfilename", addedtext="3D file with the mean value for each voxel"
|
|
46
54
|
)
|
|
47
55
|
parser.add_argument("outputroot", type=str, help="Root name for the output files.")
|
|
48
|
-
parser.add_argument(
|
|
49
|
-
"slicetimefile",
|
|
50
|
-
type=str,
|
|
51
|
-
help="Slice acquisition time file, either FSL format or BIDS sidecar.",
|
|
52
|
-
)
|
|
53
56
|
|
|
54
57
|
for band in ["lfo", "resp", "cardiac"]:
|
|
55
|
-
|
|
58
|
+
if band == "lfo":
|
|
59
|
+
bandopts = parser.add_argument_group("LFO band options")
|
|
60
|
+
elif band == "resp":
|
|
61
|
+
bandopts = parser.add_argument_group("Resp band options")
|
|
62
|
+
else:
|
|
63
|
+
bandopts = parser.add_argument_group("Cardiac band options")
|
|
64
|
+
strengthopts = bandopts.add_mutually_exclusive_group()
|
|
65
|
+
strengthopts.add_argument(
|
|
56
66
|
f"--{band}pctfile",
|
|
57
67
|
dest=(f"{band}pctfile"),
|
|
58
68
|
action="store",
|
|
@@ -61,7 +71,18 @@ def _get_parser():
|
|
|
61
71
|
help=(f"3D NIFTI file with the {band} amplitude in percent of mean at every point"),
|
|
62
72
|
default=None,
|
|
63
73
|
)
|
|
64
|
-
|
|
74
|
+
strengthopts.add_argument(
|
|
75
|
+
f"--{band}signalfraction",
|
|
76
|
+
dest=(f"{band}sigfracfile"),
|
|
77
|
+
action="store",
|
|
78
|
+
type=lambda x: pf.is_valid_file(parser, x),
|
|
79
|
+
metavar="FILE",
|
|
80
|
+
help=(
|
|
81
|
+
f"3D NIFTI file with the {band} amplitude expressed as the percentage of inband variance accounted for by the regressor"
|
|
82
|
+
),
|
|
83
|
+
default=None,
|
|
84
|
+
)
|
|
85
|
+
bandopts.add_argument(
|
|
65
86
|
f"--{band}lagfile",
|
|
66
87
|
dest=(f"{band}lagfile"),
|
|
67
88
|
action="store",
|
|
@@ -70,7 +91,7 @@ def _get_parser():
|
|
|
70
91
|
help=(f"3D NIFTI file with the {band} delay value in seconds at every point"),
|
|
71
92
|
default=None,
|
|
72
93
|
)
|
|
73
|
-
|
|
94
|
+
bandopts.add_argument(
|
|
74
95
|
f"--{band}regressor",
|
|
75
96
|
dest=(f"{band}regressor"),
|
|
76
97
|
action="store",
|
|
@@ -79,7 +100,7 @@ def _get_parser():
|
|
|
79
100
|
help=(f"The {band} regressor text file"),
|
|
80
101
|
default=None,
|
|
81
102
|
)
|
|
82
|
-
|
|
103
|
+
bandopts.add_argument(
|
|
83
104
|
f"--{band}samprate",
|
|
84
105
|
dest=(f"{band}samprate"),
|
|
85
106
|
action="store",
|
|
@@ -88,7 +109,7 @@ def _get_parser():
|
|
|
88
109
|
help=(f"The sample rate of the {band} regressor file, in Hz"),
|
|
89
110
|
default=None,
|
|
90
111
|
)
|
|
91
|
-
|
|
112
|
+
bandopts.add_argument(
|
|
92
113
|
f"--{band}starttime",
|
|
93
114
|
dest=(f"{band}starttime"),
|
|
94
115
|
action="store",
|
|
@@ -103,6 +124,16 @@ def _get_parser():
|
|
|
103
124
|
)
|
|
104
125
|
|
|
105
126
|
# optional arguments
|
|
127
|
+
parser.add_argument(
|
|
128
|
+
"--slicetimefile",
|
|
129
|
+
dest="slicetimefile",
|
|
130
|
+
action="store",
|
|
131
|
+
type=str,
|
|
132
|
+
metavar="FILE",
|
|
133
|
+
help="Slice acquisition time file, either FSL format or BIDS sidecar.",
|
|
134
|
+
default=None,
|
|
135
|
+
)
|
|
136
|
+
|
|
106
137
|
parser.add_argument(
|
|
107
138
|
"--numskip",
|
|
108
139
|
dest="numskip",
|
|
@@ -127,7 +158,9 @@ def _get_parser():
|
|
|
127
158
|
action="store",
|
|
128
159
|
type=float,
|
|
129
160
|
metavar="LEVEL",
|
|
130
|
-
help=(
|
|
161
|
+
help=(
|
|
162
|
+
"The variance of the voxel specific noise, as percent of the voxel mean. Default is 0.0"
|
|
163
|
+
),
|
|
131
164
|
default=0.0,
|
|
132
165
|
)
|
|
133
166
|
parser.add_argument(
|
|
@@ -144,8 +177,9 @@ def _get_parser():
|
|
|
144
177
|
|
|
145
178
|
|
|
146
179
|
def prepareband(
|
|
147
|
-
|
|
180
|
+
simdatadims,
|
|
148
181
|
pctfile,
|
|
182
|
+
sigfracfile,
|
|
149
183
|
lagfile,
|
|
150
184
|
regressorfile,
|
|
151
185
|
samprate,
|
|
@@ -155,8 +189,9 @@ def prepareband(
|
|
|
155
189
|
debug=False,
|
|
156
190
|
):
|
|
157
191
|
if debug:
|
|
158
|
-
print("
|
|
192
|
+
print("simdatadims:", simdatadims)
|
|
159
193
|
print("pctfile:", pctfile)
|
|
194
|
+
print("sigfracfile:", sigfracfile)
|
|
160
195
|
print("lagfile:", lagfile)
|
|
161
196
|
print("regressorfile:", regressorfile)
|
|
162
197
|
print("regressorname:", regressorname)
|
|
@@ -204,44 +239,66 @@ def prepareband(
|
|
|
204
239
|
regressor_x[-1],
|
|
205
240
|
)
|
|
206
241
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
242
|
+
if pctfile is not None:
|
|
243
|
+
nim_pct, pctdata, pctheader, pctdims, pctsizes = tide_io.readfromnifti(pctfile)
|
|
244
|
+
pctscale = True
|
|
245
|
+
else:
|
|
246
|
+
nim_pct, pctdata, pctheader, pctdims, pctsizes = tide_io.readfromnifti(sigfracfile)
|
|
247
|
+
pctscale = False
|
|
248
|
+
if not tide_io.checkspacedimmatch(pctdims, simdatadims):
|
|
249
|
+
print(regressorname, "pct file does not match fmri")
|
|
250
|
+
exit()
|
|
251
|
+
pctdata /= 100.0
|
|
211
252
|
nim_lag, lagdata, lagheader, lagdims, lagsizes = tide_io.readfromnifti(lagfile)
|
|
212
|
-
if not tide_io.checkspacedimmatch(lagdims,
|
|
253
|
+
if not tide_io.checkspacedimmatch(lagdims, simdatadims):
|
|
213
254
|
print(regressorname, "lag file does not match fmri")
|
|
214
255
|
exit()
|
|
215
256
|
|
|
216
257
|
generator = tide_resample.FastResampler(
|
|
217
258
|
regressor_x, regressor_y, padtime=padtime, doplot=False
|
|
218
259
|
)
|
|
219
|
-
return pctdata, lagdata, generator
|
|
260
|
+
return pctdata, pctscale, lagdata, generator
|
|
220
261
|
|
|
221
262
|
|
|
222
263
|
def fmrisignal(
|
|
264
|
+
Fs,
|
|
223
265
|
times,
|
|
224
266
|
meanvalue,
|
|
225
267
|
dolfo=False,
|
|
226
268
|
lfowave=None,
|
|
227
269
|
lfomag=None,
|
|
228
270
|
lfodelay=None,
|
|
271
|
+
lfonoise=0.0,
|
|
272
|
+
lfofilter=None,
|
|
229
273
|
doresp=False,
|
|
230
274
|
respwave=None,
|
|
231
275
|
respmag=None,
|
|
232
276
|
respdelay=None,
|
|
277
|
+
respnoise=0.0,
|
|
278
|
+
respfilter=None,
|
|
233
279
|
docardiac=False,
|
|
234
280
|
cardiacwave=None,
|
|
235
281
|
cardiacmag=None,
|
|
236
282
|
cardiacdelay=None,
|
|
283
|
+
cardiacnoise=0.0,
|
|
284
|
+
cardiacfilter=None,
|
|
237
285
|
):
|
|
238
286
|
thesignal = np.zeros((len(times)), dtype=float)
|
|
239
287
|
if dolfo:
|
|
240
|
-
thesignal += meanvalue * (
|
|
288
|
+
thesignal += meanvalue * (
|
|
289
|
+
lfomag * lfowave.yfromx(times - lfodelay)
|
|
290
|
+
+ lfonoise * lfofilter.apply(Fs, np.random.standard_normal(len(times)))
|
|
291
|
+
)
|
|
241
292
|
if doresp:
|
|
242
|
-
thesignal += meanvalue * (
|
|
293
|
+
thesignal += meanvalue * (
|
|
294
|
+
respmag * respwave.yfromx(times - respdelay)
|
|
295
|
+
+ respnoise * respfilter.apply(Fs, np.random.standard_normal(len(times)))
|
|
296
|
+
)
|
|
243
297
|
if docardiac:
|
|
244
|
-
thesignal += meanvalue * (
|
|
298
|
+
thesignal += meanvalue * (
|
|
299
|
+
cardiacmag * cardiacwave.yfromx(times - cardiacdelay)
|
|
300
|
+
+ cardiacnoise * cardiacfilter.apply(Fs, np.random.standard_normal(len(times)))
|
|
301
|
+
)
|
|
245
302
|
return thesignal + meanvalue
|
|
246
303
|
|
|
247
304
|
|
|
@@ -250,33 +307,38 @@ def simdata(args):
|
|
|
250
307
|
lfopctdata = None
|
|
251
308
|
lfolagdata = None
|
|
252
309
|
lfogenerator = None
|
|
310
|
+
lfofilter = None
|
|
253
311
|
|
|
254
312
|
resppctdata = None
|
|
255
313
|
resplagdata = None
|
|
256
314
|
respgenerator = None
|
|
315
|
+
respfilter = None
|
|
257
316
|
|
|
258
317
|
cardiacpctdata = None
|
|
259
318
|
cardiaclagdata = None
|
|
260
319
|
cardiacgenerator = None
|
|
320
|
+
cardiacfilter = None
|
|
261
321
|
|
|
262
322
|
# check for complete information
|
|
263
323
|
if (
|
|
264
|
-
(args.lfopctfile is None)
|
|
324
|
+
((args.lfopctfile is None) and (args.lfosigfracfile is None))
|
|
265
325
|
or (args.lfolagfile is None)
|
|
266
326
|
or (args.lforegressor is None)
|
|
267
327
|
or ((args.lfosamprate is None) and (tide_io.parsefilespec(args.lforegressor)[1] is None))
|
|
268
328
|
):
|
|
269
329
|
print("lfopctfile:", args.lfopctfile)
|
|
330
|
+
print("lfosigfracfile:", args.lfosigfracfile)
|
|
270
331
|
print("lfolagfile:", args.lfolagfile)
|
|
271
332
|
print("lforegressor:", args.lforegressor)
|
|
272
333
|
print("lfopctsamprate:", args.lfosamprate)
|
|
273
334
|
dolfo = False
|
|
274
335
|
else:
|
|
275
336
|
dolfo = True
|
|
337
|
+
lfofilter = tide_filt.NoncausalFilter("lfo")
|
|
276
338
|
print("LFO information is complete, will be included.")
|
|
277
339
|
|
|
278
340
|
if (
|
|
279
|
-
(args.resppctfile is None)
|
|
341
|
+
((args.resppctfile is None) and (args.respsigfracfile is None))
|
|
280
342
|
or (args.resplagfile is None)
|
|
281
343
|
or (args.respregressor is None)
|
|
282
344
|
or ((args.respsamprate is None) and (tide_io.parsefilespec(args.respregressor)[1] is None))
|
|
@@ -284,10 +346,11 @@ def simdata(args):
|
|
|
284
346
|
doresp = False
|
|
285
347
|
else:
|
|
286
348
|
doresp = True
|
|
349
|
+
respfilter = tide_filt.NoncausalFilter("resp")
|
|
287
350
|
print("Respiratory information is complete, will be included.")
|
|
288
351
|
|
|
289
352
|
if (
|
|
290
|
-
(args.cardiacpctfile is None)
|
|
353
|
+
((args.cardiacpctfile is None) and (args.cardiacsigfracfile is None))
|
|
291
354
|
or (args.cardiaclagfile is None)
|
|
292
355
|
or (args.cardiacregressor is None)
|
|
293
356
|
or (
|
|
@@ -298,6 +361,7 @@ def simdata(args):
|
|
|
298
361
|
docardiac = False
|
|
299
362
|
else:
|
|
300
363
|
docardiac = True
|
|
364
|
+
cardiacfilter = tide_filt.NoncausalFilter("cardiac")
|
|
301
365
|
print("Cardiac information is complete, will be included.")
|
|
302
366
|
if not (dolfo or doresp or docardiac):
|
|
303
367
|
print(
|
|
@@ -306,23 +370,17 @@ def simdata(args):
|
|
|
306
370
|
_get_parser().print_help()
|
|
307
371
|
sys.exit()
|
|
308
372
|
|
|
309
|
-
|
|
310
|
-
args.slicetimefile
|
|
311
|
-
)
|
|
312
|
-
|
|
313
|
-
fmritr, numtrs = tide_io.fmritimeinfo(args.fmrifilename)
|
|
314
|
-
if normalizedtotr:
|
|
315
|
-
sliceoffsettimes *= fmritr
|
|
316
|
-
|
|
317
|
-
nim_fmri, fmridata, fmriheader, fmridims, fmrisizes = tide_io.readfromnifti(args.fmrifilename)
|
|
318
|
-
print(f"fmri data: {numtrs} timepoints, tr = {fmritr}")
|
|
373
|
+
print(f"simulated fmri data: {args.numtrs} timepoints, tr = {args.fmritr}")
|
|
319
374
|
|
|
320
375
|
# prepare the output timepoints
|
|
321
376
|
initial_fmri_x = (
|
|
322
377
|
np.linspace(
|
|
323
|
-
0.0,
|
|
378
|
+
0.0,
|
|
379
|
+
args.fmritr * (args.numtrs - args.numskip),
|
|
380
|
+
num=(args.numtrs - args.numskip),
|
|
381
|
+
endpoint=False,
|
|
324
382
|
)
|
|
325
|
-
+ fmritr * args.numskip
|
|
383
|
+
+ args.fmritr * args.numskip
|
|
326
384
|
)
|
|
327
385
|
print("length of fmri after removing skip:", len(initial_fmri_x))
|
|
328
386
|
print(
|
|
@@ -332,34 +390,36 @@ def simdata(args):
|
|
|
332
390
|
|
|
333
391
|
# read in the immean file
|
|
334
392
|
print("reading in source files")
|
|
335
|
-
(
|
|
336
|
-
|
|
337
|
-
immeandata,
|
|
338
|
-
immeanheader,
|
|
339
|
-
immeandims,
|
|
340
|
-
immeansizes,
|
|
341
|
-
) = tide_io.readfromnifti(args.immeanfilename)
|
|
342
|
-
if not tide_io.checkspacedimmatch(immeandims, fmridims):
|
|
343
|
-
print("immean file does not match")
|
|
344
|
-
exit()
|
|
393
|
+
theimmeandata = tide_voxelData.VoxelData(args.immeanfilename, timestep=args.fmritr)
|
|
394
|
+
immeandata = theimmeandata.byvol()
|
|
345
395
|
|
|
346
396
|
# now set up the simulated data array
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
397
|
+
simdataheader = theimmeandata.copyheader(
|
|
398
|
+
numtimepoints=len(initial_fmri_x), tr=args.fmritr, toffset=args.numskip * args.fmritr
|
|
399
|
+
)
|
|
400
|
+
simdatadims = simdataheader["dim"].copy()
|
|
401
|
+
xsize, ysize, numslices, timepoints = tide_io.parseniftidims(simdatadims)
|
|
402
|
+
simdata = np.zeros((xsize, ysize, numslices, timepoints), dtype="float")
|
|
403
|
+
|
|
404
|
+
# read in the slicetimes file if we have one
|
|
405
|
+
if args.slicetimefile is not None:
|
|
406
|
+
sliceoffsettimes, normalizedtotr, fileisjson = tide_io.getslicetimesfromfile(
|
|
407
|
+
args.slicetimefile
|
|
408
|
+
)
|
|
409
|
+
else:
|
|
410
|
+
sliceoffsettimes = np.zeros((numslices), dtype=float)
|
|
352
411
|
|
|
353
412
|
# set up fast resampling
|
|
354
413
|
padtime = 60.0
|
|
355
|
-
numpadtrs = int(padtime / fmritr)
|
|
356
|
-
padtime = fmritr * numpadtrs
|
|
414
|
+
numpadtrs = int(padtime / args.fmritr)
|
|
415
|
+
padtime = args.fmritr * numpadtrs
|
|
357
416
|
|
|
358
417
|
# prepare the input data for interpolation
|
|
359
418
|
if dolfo:
|
|
360
|
-
lfopctdata, lfolagdata, lfogenerator = prepareband(
|
|
361
|
-
|
|
419
|
+
lfopctdata, lfopctscale, lfolagdata, lfogenerator = prepareband(
|
|
420
|
+
simdatadims,
|
|
362
421
|
args.lfopctfile,
|
|
422
|
+
args.lfosigfracfile,
|
|
363
423
|
args.lfolagfile,
|
|
364
424
|
args.lforegressor,
|
|
365
425
|
args.lfosamprate,
|
|
@@ -369,9 +429,10 @@ def simdata(args):
|
|
|
369
429
|
debug=args.debug,
|
|
370
430
|
)
|
|
371
431
|
if doresp:
|
|
372
|
-
resppctdata, resplagdata, respgenerator = prepareband(
|
|
373
|
-
|
|
432
|
+
resppctdata, resppctscale, resplagdata, respgenerator = prepareband(
|
|
433
|
+
simdatadims,
|
|
374
434
|
args.resppctfile,
|
|
435
|
+
args.respsigfracfile,
|
|
375
436
|
args.resplagfile,
|
|
376
437
|
args.respregressor,
|
|
377
438
|
args.respsamprate,
|
|
@@ -381,9 +442,10 @@ def simdata(args):
|
|
|
381
442
|
debug=args.debug,
|
|
382
443
|
)
|
|
383
444
|
if docardiac:
|
|
384
|
-
cardiacpctdata, cardiaclagdata, cardiacgenerator = prepareband(
|
|
385
|
-
|
|
445
|
+
cardiacpctdata, cardiacpctscale, cardiaclagdata, cardiacgenerator = prepareband(
|
|
446
|
+
simdatadims,
|
|
386
447
|
args.cardiacpctfile,
|
|
448
|
+
args.cardiacsigfracfile,
|
|
387
449
|
args.cardiaclagfile,
|
|
388
450
|
args.cardiacregressor,
|
|
389
451
|
args.cardiacsamprate,
|
|
@@ -408,42 +470,64 @@ def simdata(args):
|
|
|
408
470
|
# add in the signals
|
|
409
471
|
if dolfo:
|
|
410
472
|
lfopct = lfopctdata[i, j, k]
|
|
473
|
+
if lfopctscale:
|
|
474
|
+
lfonoise = 0.0
|
|
475
|
+
else:
|
|
476
|
+
lfonoise = 1.0 - lfopct
|
|
411
477
|
lfolag = lfolagdata[i, j, k]
|
|
412
478
|
else:
|
|
413
479
|
lfopct = 0.0
|
|
414
480
|
lfolag = 0.0
|
|
481
|
+
lfonoise = 0.0
|
|
415
482
|
if doresp:
|
|
416
483
|
resppct = resppctdata[i, j, k]
|
|
484
|
+
if resppctscale:
|
|
485
|
+
respnoise = 0.0
|
|
486
|
+
else:
|
|
487
|
+
respnoise = 1.0 - resppct
|
|
417
488
|
resplag = resplagdata[i, j, k]
|
|
418
489
|
else:
|
|
419
490
|
resppct = 0.0
|
|
420
491
|
resplag = 0.0
|
|
492
|
+
respnoise = 0.0
|
|
421
493
|
if docardiac:
|
|
422
494
|
cardiacpct = cardiacpctdata[i, j, k]
|
|
495
|
+
if cardiacpctscale:
|
|
496
|
+
cardiacnoise = 0.0
|
|
497
|
+
else:
|
|
498
|
+
cardiacnoise = 1.0 - cardiacpct
|
|
423
499
|
cardiaclag = cardiaclagdata[i, j, k]
|
|
424
500
|
else:
|
|
425
501
|
cardiacpct = 0.0
|
|
426
502
|
cardiaclag = 0.0
|
|
503
|
+
cardiacnoise = 0.0
|
|
427
504
|
|
|
428
505
|
simdata[i, j, k, :] = (
|
|
429
506
|
fmrisignal(
|
|
507
|
+
(1.0 / args.fmritr),
|
|
430
508
|
fmri_x_slice,
|
|
431
509
|
immeandata[i, j, k],
|
|
432
510
|
dolfo=dolfo,
|
|
433
511
|
lfowave=lfogenerator,
|
|
434
512
|
lfomag=lfopct,
|
|
435
513
|
lfodelay=lfolag,
|
|
514
|
+
lfonoise=lfonoise,
|
|
515
|
+
lfofilter=lfofilter,
|
|
436
516
|
doresp=doresp,
|
|
437
517
|
respwave=respgenerator,
|
|
438
518
|
respmag=resppct,
|
|
439
519
|
respdelay=resplag,
|
|
520
|
+
respnoise=respnoise,
|
|
521
|
+
respfilter=respfilter,
|
|
440
522
|
docardiac=docardiac,
|
|
441
523
|
cardiacwave=cardiacgenerator,
|
|
442
524
|
cardiacmag=cardiacpct,
|
|
443
525
|
cardiacdelay=cardiaclag,
|
|
526
|
+
cardiacnoise=cardiacnoise,
|
|
527
|
+
cardiacfilter=cardiacfilter,
|
|
444
528
|
)
|
|
445
529
|
+ theglobalnoise
|
|
446
|
-
+ thevoxelnoise
|
|
530
|
+
+ (thevoxelnoise) / 100.0 * immeandata[i, j, k]
|
|
447
531
|
)
|
|
448
532
|
|
|
449
|
-
tide_io.savetonifti(simdata,
|
|
533
|
+
tide_io.savetonifti(simdata, simdataheader, args.outputroot)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rapidtide
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.7
|
|
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,21 +8,21 @@ 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=mHK6dL1cFSSM5jYw6rkzb57lWVVz-TGX-xMeV8IqF-M,53013
|
|
12
12
|
rapidtide/RegressorRefiner.py,sha256=dPG9Vy2nlqxv2Mx9vrYtgYTsNGcVIwWknawDrNdpZxQ,17232
|
|
13
13
|
rapidtide/__init__.py,sha256=cECnPfGNIWXETiummGLjKcNXLROSDiFlLp-RpZSavwc,97
|
|
14
|
-
rapidtide/_version.py,sha256=
|
|
14
|
+
rapidtide/_version.py,sha256=HDQ6uc9dBVVhrf7M2MUpG-xKl7d0UA0eisj2QL7_Kd4,497
|
|
15
15
|
rapidtide/calccoherence.py,sha256=-_vglu0MZB85Aodw6GpYhBApFBt5eslppfxF4rXM6Xg,3409
|
|
16
16
|
rapidtide/calcnullsimfunc.py,sha256=34osvoQ_tWk3VeFk7g3TYsmpPVRMIkEX31KYvx5Ox_A,5032
|
|
17
17
|
rapidtide/calcsimfunc.py,sha256=xCPYns-XOnLWjwujbP7a7EwGEzhEwOHMf04RpFlL3SI,4713
|
|
18
|
-
rapidtide/correlate.py,sha256=
|
|
18
|
+
rapidtide/correlate.py,sha256=cKfJR35A0tnbx56aGfaXTgnYsHxWUR3o2bUVi7MSo7E,37147
|
|
19
19
|
rapidtide/dlfilter.py,sha256=sJ1UoekNFlGVJOIeN6BKP_-pU-MOHD5Gc4GT7FTB2So,58161
|
|
20
20
|
rapidtide/externaltools.py,sha256=-p2GZRRpI2_7eRY8N6lnG4DBQKoRd_WZZQzvgFCicUY,3965
|
|
21
21
|
rapidtide/fMRIData_class.py,sha256=qVPp8xUw98cUJm4zsO5UUXrgBWz-UhJhwHLrzjBNxow,5102
|
|
22
22
|
rapidtide/filter.py,sha256=GySR0UdlrfNzWs9HOdvsIGlfHKThT9KdamNk0Y0JHeU,71647
|
|
23
23
|
rapidtide/fit.py,sha256=whveHKtqC-cPWxclCf86-5iBAtXOdXL2G1yg082q6R8,67955
|
|
24
24
|
rapidtide/genericmultiproc.py,sha256=ZQwN84HpC7ZA_w4qekBqA4suU_70ryqGjAsTAIa4oSw,3423
|
|
25
|
-
rapidtide/happy_supportfuncs.py,sha256=
|
|
25
|
+
rapidtide/happy_supportfuncs.py,sha256=kGL2fJkL9HU4-V71eyMaRBwx3RONPmy02rKxBF7k6os,56261
|
|
26
26
|
rapidtide/helper_classes.py,sha256=2m2zcFUgE12JhYL0HQJEafJ1pFa0Zsb46Lpi9iw3Qbg,51470
|
|
27
27
|
rapidtide/io.py,sha256=A3qFJdFFf1XSVlqPvoOF733OoxrRcbRO-gSEoh_95bE,75037
|
|
28
28
|
rapidtide/linfitfiltpass.py,sha256=ps7IGbKcpO33kLW0gK2O0OBddDs3PoC-0zhs9gWAe9M,16303
|
|
@@ -35,7 +35,7 @@ rapidtide/peakeval.py,sha256=ZDcuAT4Bw9bTU1oJTvOn9t_rWEZOsXHC5PiNnDdFlX0,5198
|
|
|
35
35
|
rapidtide/qualitycheck.py,sha256=exTRCQDf9OsNbmlemr-5YPjDGDg3uSTyc8amidXUZqU,11917
|
|
36
36
|
rapidtide/refinedelay.py,sha256=abOji4e2k7DpQR7jxgGh6nJ2IE4ZxQp5S5DNKfLZwP8,16323
|
|
37
37
|
rapidtide/refineregressor.py,sha256=w9RP2SDjC769FmUq_CQ5ZUtr5-7kfzhvlzlBvKs8cXg,21831
|
|
38
|
-
rapidtide/resample.py,sha256=
|
|
38
|
+
rapidtide/resample.py,sha256=UYK3QCgNltOdgXKMEbqsFVjQEVD-Ar1lodLvdUQH4_o,30751
|
|
39
39
|
rapidtide/simfuncfit.py,sha256=QfBJxkn4lzNX4HIx2CbvWUV55C2WZmfwwm69RqNtlSE,11837
|
|
40
40
|
rapidtide/stats.py,sha256=vA79EazdcpQHJJFC0tjKBc37Ij_KfSeKcSPOjuWCHuM,29230
|
|
41
41
|
rapidtide/tidepoolTemplate.py,sha256=YK6vXIXfgAq5OHa67RjvL0MhMJIIgjmDpxQY16Cwnl4,46252
|
|
@@ -48,7 +48,7 @@ rapidtide/tidepoolTemplate_big.ui,sha256=lJYAJHJA8iJYJTlnq5GllkW-VMRrpLhDL4kskwU
|
|
|
48
48
|
rapidtide/tidepoolTemplate_big_qt6.py,sha256=yXmFpoO5exhbXHtjKVE7AG-oi7tB6QOCFW5RRO0z6Ls,67499
|
|
49
49
|
rapidtide/tidepoolTemplate_qt6.py,sha256=qBgufkyHsmEZ_HPgAu8LLbztlwlyfm6KcRfJ9qVFbXc,48198
|
|
50
50
|
rapidtide/util.py,sha256=2Q991FzjiSgn5qHErVgAV7bya3ylNDdhctE-3X7ImH4,36487
|
|
51
|
-
rapidtide/voxelData.py,sha256=
|
|
51
|
+
rapidtide/voxelData.py,sha256=En0SJuG2gykXrmEcFs1n0BxpzTNH5wikiPUUr97RcAA,14015
|
|
52
52
|
rapidtide/wiener.py,sha256=UcRBIJZY5RYgpKFwlvppXDsXRIX_MJgPB37S9nvC4lU,4128
|
|
53
53
|
rapidtide/wiener2.py,sha256=IF913hQ4naCjLYGXCspNsA-YCCb0WvjjueDl6UoWvLo,3746
|
|
54
54
|
rapidtide/data/examples/src/installtestdata,sha256=ummRjxxmArheODnzRHwb6DL9Sxhay6ulJpETEMVy-fs,205
|
|
@@ -65,12 +65,12 @@ 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=FatnYBPAPCIC6MVWwfhs7bJkQnkB-DlNXIkb28-8Asw,972
|
|
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
|
|
72
72
|
rapidtide/data/examples/src/testglmfilt,sha256=MuZlVBJIV7FrTWFLKGuWBcpR9WiZEjCGeD6cAnJLeNI,3357
|
|
73
|
-
rapidtide/data/examples/src/testhappy,sha256=
|
|
73
|
+
rapidtide/data/examples/src/testhappy,sha256=FOBQWO8vdgkZKt_yzzB0Q4mvg7oScXaknPVCb2imGAw,1557
|
|
74
74
|
rapidtide/data/examples/src/testinitdelay,sha256=ts_r5WZBLJDQ3UfPmJ9sfXlO0arO9dhGCQ_Y1wYvjMk,559
|
|
75
75
|
rapidtide/data/examples/src/testlinfit,sha256=oPnkHJ6lcwsuJhnSMMK7Gx3DHSCf6JK7CIYuIMHbyNA,471
|
|
76
76
|
rapidtide/data/examples/src/testlocalflow,sha256=hEwstisbWVuALr_29fBJ2nHETKkEF_9qK8wJ4kzuiJk,596
|
|
@@ -82,7 +82,7 @@ rapidtide/data/examples/src/testpad,sha256=O4bgGWNTMjaitT_yT7UXRKwOl5UFS9nnXjcQT
|
|
|
82
82
|
rapidtide/data/examples/src/testrefineonly,sha256=PyYGqga3b25hgbscX1wrIqvyYDHJ8udD60c5tDPHFTs,595
|
|
83
83
|
rapidtide/data/examples/src/testretro,sha256=y0aDcFr1XGiSe6Tg_gy4e5Fip9aOe2GUSEhNvl7mvo0,2855
|
|
84
84
|
rapidtide/data/examples/src/testretrolagtcs,sha256=IazwDDMSESx1ixF8hyoKYTJYsHwCzI-uIkSah9gkRoo,570
|
|
85
|
-
rapidtide/data/examples/src/testsimdata,sha256=
|
|
85
|
+
rapidtide/data/examples/src/testsimdata,sha256=0tcCHaU5TO3FjI74qV1f98hp4OQSI4IhpujWBhg0R9Y,1509
|
|
86
86
|
rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.png,sha256=LJ1aaEPx3m6MhioK3YN8QZYBhlI0lY0Wb2SAV2SQmYI,24123
|
|
87
87
|
rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.txt,sha256=anU71cFjmYpQvMcMZIPADHWKIfvGxTL6ZZgk6RDWZkg,138
|
|
88
88
|
rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model.keras,sha256=0fyy1Pf1YBb0OubpaUu_I3fAZC8UHG1FOs9kAGJlbIU,298164
|
|
@@ -220,7 +220,7 @@ rapidtide/tests/test_aliasedcorrelate.py,sha256=3387A6Ngo3mbqIiUWxJhtppe6E3AplAC
|
|
|
220
220
|
rapidtide/tests/test_aligntcs.py,sha256=PKkj8JGrHx-8Kpx5LQF5mwhWUFsMR-w2bkhWOREeHsY,1715
|
|
221
221
|
rapidtide/tests/test_calcicc.py,sha256=T3f-9k4ah9JesGFHFEobvQ4BK0oXwXkjCW1cyGjOgfU,1387
|
|
222
222
|
rapidtide/tests/test_cleanregressor.py,sha256=tkVOhJEOwcP_LDqV61qR6gORhAipZjKjeYiEXBjOy1k,6265
|
|
223
|
-
rapidtide/tests/test_congrid.py,sha256=
|
|
223
|
+
rapidtide/tests/test_congrid.py,sha256=sM0qLbT1vKU3YnMDEf99pESE8JCsqYxwggaR1T_2w0k,5610
|
|
224
224
|
rapidtide/tests/test_correlate.py,sha256=SKqLbj0MDQ7wZ1N70j6x07_i-Jok9ySPdJMt8lJ7qq0,2547
|
|
225
225
|
rapidtide/tests/test_corrpass.py,sha256=zoZ5odTxlZ3d_tEvSXOU0qyhbIzCdauoRy4MUkHehHc,7836
|
|
226
226
|
rapidtide/tests/test_delayestimation.py,sha256=CGt-z1mRjKralIeXWqGOCP_8LHS9a0LfhSuRHgwAN-A,13506
|
|
@@ -293,7 +293,7 @@ rapidtide/workflows/atlasaverage.py,sha256=6j5cNWk613R98LFmBAfVDJh6TuTo8Uxa-VW7n
|
|
|
293
293
|
rapidtide/workflows/atlastool.py,sha256=6aMMtr6knETNTyW-laThMeiO8mcdd71F8MSsdYHMeIM,16076
|
|
294
294
|
rapidtide/workflows/calctexticc.py,sha256=9nGGAiqiD2MPg7UiIGR2V7rdtx-jcXQ_Q7uTXCziraQ,10486
|
|
295
295
|
rapidtide/workflows/ccorrica.py,sha256=ZGuBoM4u860Q7WxbNp-yxTxBaHLNozL7Kbx3o3rvaFk,10457
|
|
296
|
-
rapidtide/workflows/cleanregressor.py,sha256=
|
|
296
|
+
rapidtide/workflows/cleanregressor.py,sha256=HYm3T3fH6dzFcgFjlYpf5i0NGCtCK_D739quOLIzUyM,10293
|
|
297
297
|
rapidtide/workflows/delayestimation.py,sha256=cC7d69JXn6vnumSfs9f7gNJuaKqQSzXEoxAi7Td-miM,17647
|
|
298
298
|
rapidtide/workflows/delayvar.py,sha256=s4hOTtj3-jXGirLOlIFId-3QFzvQXJtMRifvcXLlDFQ,40697
|
|
299
299
|
rapidtide/workflows/diffrois.py,sha256=imyKnnO8wnKbVoqsYEpYfJl0oBLllG9_pbV-0D1IdIw,5451
|
|
@@ -303,9 +303,9 @@ rapidtide/workflows/filtnifti.py,sha256=LXQw8yY7xbVCYAWNO5wsJOYHkxOH5I4x_oRaaXsP
|
|
|
303
303
|
rapidtide/workflows/filttc.py,sha256=QHMJ41ZORxB8fG4IcvxKUgSfmOL4X9cFQFpM5px1Uxw,4514
|
|
304
304
|
rapidtide/workflows/fixtr.py,sha256=KYr3veeHDUjozH3IO-0iPhLqNDGEc2NcUvzn6tuxeN8,2025
|
|
305
305
|
rapidtide/workflows/gmscalc.py,sha256=Z-3HV2EU-HuIhpr7s5u4EAPAaW0gXtj2aVZt7386Gr8,6258
|
|
306
|
-
rapidtide/workflows/happy.py,sha256=
|
|
306
|
+
rapidtide/workflows/happy.py,sha256=8iDUnN3j2VoRIdA9G51xvfnT41k76HPuisv25QMxHz0,77220
|
|
307
307
|
rapidtide/workflows/happy2std.py,sha256=6gya9YjfPzPMu15jsMUbu7pLq430-n3b3meiTWhRkAo,8132
|
|
308
|
-
rapidtide/workflows/happy_parser.py,sha256=
|
|
308
|
+
rapidtide/workflows/happy_parser.py,sha256=OQTcUIvB61p0niNpG__9auUINb962PKmp0wz6qj_uN8,27354
|
|
309
309
|
rapidtide/workflows/histnifti.py,sha256=BeABj0osc0mEnmyKonN0Hgeis8L8soO-w-cVaeMKLUI,11197
|
|
310
310
|
rapidtide/workflows/histtc.py,sha256=ZiLLTshdpQBVHja1jEGFiaZ-YVxVhVtFeGv9w5R7HFc,4561
|
|
311
311
|
rapidtide/workflows/linfitfilt.py,sha256=J6_qFZrfEf8Zf7-JA9EMaSXvyV_2ViNIqzju-ugjNGU,10007
|
|
@@ -322,9 +322,9 @@ rapidtide/workflows/plethquality.py,sha256=kTO74C5aSBmomzt59zs1VeiO_C5SPTxvyZZ0v
|
|
|
322
322
|
rapidtide/workflows/polyfitim.py,sha256=bVKBrrFa0WjWZju4Lkrr8_9mFWALqCxkpCX28540GQA,10184
|
|
323
323
|
rapidtide/workflows/proj2flow.py,sha256=SbkYTRZ_SViVfiM0QJjo20RrICtbsQpEd2i9o9XDgPU,7290
|
|
324
324
|
rapidtide/workflows/rankimage.py,sha256=9opJb3OikO69wtN8zgF3XJxgoHy1-erzZiDKs8pDM6U,3482
|
|
325
|
-
rapidtide/workflows/rapidtide.py,sha256=
|
|
325
|
+
rapidtide/workflows/rapidtide.py,sha256=aoRCiZNOqxpIW6dRjh__DGovy5qMZDbvdz8bw11jZvg,154228
|
|
326
326
|
rapidtide/workflows/rapidtide2std.py,sha256=coxEnRAof6NNpeXjjECPazx5Wotf4l1SJCnaVEvmHQY,10483
|
|
327
|
-
rapidtide/workflows/rapidtide_parser.py,sha256=
|
|
327
|
+
rapidtide/workflows/rapidtide_parser.py,sha256=lua4DzNd9Vi7egAbba8z068zbWW5EKuwqxHQyaa-Kps,78457
|
|
328
328
|
rapidtide/workflows/regressfrommaps.py,sha256=GTpqnOkyA1A3Ki0oZ0ugSJrjrYa2gbtIGeKPpF49IxU,5319
|
|
329
329
|
rapidtide/workflows/resamplenifti.py,sha256=GJE7f8bzMRY3QYiMYZOD8bDnga4ah97sp-ZL3yaaIFA,4717
|
|
330
330
|
rapidtide/workflows/resampletc.py,sha256=B4YIKn3qpDaM9dIhYjGwPl-2LtaEhm9fnMBzfBgAUSs,3959
|
|
@@ -332,13 +332,13 @@ rapidtide/workflows/retrolagtcs.py,sha256=ep1Ve1GS9NqqE6Pw9kxeWyw78sEg-M1IV-KuSn
|
|
|
332
332
|
rapidtide/workflows/retroregress.py,sha256=sd7L_ri8av1euINcpKLgokrPGQo7QKQDguf0OWL8xD0,52631
|
|
333
333
|
rapidtide/workflows/roisummarize.py,sha256=gnGcWOXRgRm6USgilj9K9Q3Mt5oUNCaincvJj1_ayPs,6710
|
|
334
334
|
rapidtide/workflows/runqualitycheck.py,sha256=JIA2olhDk66HHSbLvsFrZieQq56YCIpbWpFzz0_ShHM,2434
|
|
335
|
-
rapidtide/workflows/showarbcorr.py,sha256=
|
|
335
|
+
rapidtide/workflows/showarbcorr.py,sha256=FYgc_L8E0IqUeB4XpFZIFXHMuzWYLxQykwyfYTVZ0G8,14115
|
|
336
336
|
rapidtide/workflows/showhist.py,sha256=qP6JOdw4SyuzIcY6OUOkM4zmqLSWvEA8Z9LerqyzFmI,3644
|
|
337
337
|
rapidtide/workflows/showstxcorr.py,sha256=FulltRbjGaBBIIRF9Wc_4oU2bpmMjfc3tZus5TygOlI,17788
|
|
338
338
|
rapidtide/workflows/showtc.py,sha256=mddcdbpRzLXIiTqnutVqQapa9fudAeK3uALBVgM-dDE,18835
|
|
339
339
|
rapidtide/workflows/showxcorrx.py,sha256=6QF2w7T5xxIOgaHIJHKlMWkxb9MBPA56eZk-spW0S-c,31221
|
|
340
340
|
rapidtide/workflows/showxy.py,sha256=p-1pkE5cKVd2zMQ-kSI3-Xk21jHSLiQPa-ql1DIO-vc,10532
|
|
341
|
-
rapidtide/workflows/simdata.py,sha256=
|
|
341
|
+
rapidtide/workflows/simdata.py,sha256=sLW1iu3Gn5zXuXsbAwMS5jdoppkxjhf-ZW17PgDjPFk,17318
|
|
342
342
|
rapidtide/workflows/spatialfit.py,sha256=2p_f7nqYKauLTvwmhyfn7FiJ1BMzFsRxHfCQe2ULoXk,9136
|
|
343
343
|
rapidtide/workflows/spatialmi.py,sha256=_Vvb2lukopzNh9QL9g6XBRvTlartZgq6Fzc2je-sbY8,13407
|
|
344
344
|
rapidtide/workflows/spectrogram.py,sha256=7_CzFgX9ppE_2C4GiSP235BRUoh3YspCR_57_5Lx4HA,6452
|
|
@@ -348,9 +348,9 @@ rapidtide/workflows/tcfrom3col.py,sha256=kV3V-qZ7A7LkD96aHVXabvohA8udsflHXnzsQIw
|
|
|
348
348
|
rapidtide/workflows/tidepool.py,sha256=Cac0zhS2ZT6myY_H2A0dAIox8ZoFyf42iB3flSb0qbw,86612
|
|
349
349
|
rapidtide/workflows/utils.py,sha256=urIN-042oUCRDusVUSjBelVN3Te2JP3svY3ckq-yBMU,5379
|
|
350
350
|
rapidtide/workflows/variabilityizer.py,sha256=h7Hhrxn84MclRfbAvKIZJoNzlcKO-8d9lZ6y6YFStk8,3167
|
|
351
|
-
rapidtide-3.0.
|
|
352
|
-
rapidtide-3.0.
|
|
353
|
-
rapidtide-3.0.
|
|
354
|
-
rapidtide-3.0.
|
|
355
|
-
rapidtide-3.0.
|
|
356
|
-
rapidtide-3.0.
|
|
351
|
+
rapidtide-3.0.7.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
352
|
+
rapidtide-3.0.7.dist-info/METADATA,sha256=oa7HDGqrA2y0sAEhBZR0aeUPcm2u7lHdVmWYXb6D7nE,15688
|
|
353
|
+
rapidtide-3.0.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
354
|
+
rapidtide-3.0.7.dist-info/entry_points.txt,sha256=9NVvZpIx9U6lTWlTFF2ev-wuPAHJxcXI_901_EcGRYA,3323
|
|
355
|
+
rapidtide-3.0.7.dist-info/top_level.txt,sha256=MnNXGfbrIBc9RnAqzBHOWd3GQO-aIUDnRTz4_5VjH5g,16
|
|
356
|
+
rapidtide-3.0.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|