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.
@@ -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
- pf.addreqinputniftifile(
42
- parser, "fmrifilename", addedtext="An exemplar BOLD fMRI file with the target dimensions"
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
- parser.add_argument(
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
- parser.add_argument(
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
- parser.add_argument(
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
- parser.add_argument(
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
- parser.add_argument(
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=("The variance of the voxel specific noise. Default is 0.0"),
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
- fmridims,
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("fmridims:", fmridims)
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
- nim_pct, pctdata, pctheader, pctdims, pctsizes = tide_io.readfromnifti(pctfile)
208
- if not tide_io.checkspacedimmatch(pctdims, fmridims):
209
- print(regressorname, "pct file does not match fmri")
210
- exit()
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, fmridims):
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 * (lfomag / 100.0) * lfowave.yfromx(times - lfodelay)
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 * (respmag / 100.0) * respwave.yfromx(times - respdelay)
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 * (cardiacmag / 100.0) * cardiacwave.yfromx(times - cardiacdelay)
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
- sliceoffsettimes, normalizedtotr, fileisjson = tide_io.getslicetimesfromfile(
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, fmritr * (numtrs - args.numskip), num=(numtrs - args.numskip), endpoint=False
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
- nim_immean,
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
- thedims = fmridims
348
- xsize = thedims[1]
349
- ysize = thedims[2]
350
- numslices = thedims[3]
351
- simdata = np.zeros((xsize, ysize, numslices, len(initial_fmri_x)), dtype="float")
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
- fmridims,
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
- fmridims,
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
- fmridims,
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, fmriheader, args.outputroot)
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.6
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=sccBQf8T9zvOMSHHXG7pwEm-sUyzbyZ4i0rFuWMwj3A,52343
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=UtEXJd46WP8m98PcqQx8gq-8JqTDu8wCnRQgnaX1heQ,497
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=za2lqbYZZGpIHoMC8VOrLH8cP8B3pG2Mh8VFaZf-4aE,36800
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=TfznBv_t4cp5-YZ7ClKyjhAA3ZuMPOL6XMYLzWAcljE,42023
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=0IX6Ais7Fxuz9HfrSpNGkKF7w3xKWm_fTs6yA7X43hk,30592
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=f-LXAPPSRvwJ9nFOZncayLMfS7XuIjFNW7TWoWWS96U,13328
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=gCzWnn2hpwicA814FitZ7GjV-uwt20PtJsUCkn0_08w,473
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=wXhKDIlAB2kusIBwzaTmPaMuPV2cJk-vlQ3sLVW7-n8,1967
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=zqbuBMGMGvwnqfXcmPJoKksC0D4LoykP3s_JktoMyqI,1042
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=pzU6xtQy43QofLYP9KtQIiOyjZBnrXUhKbh4ha_UQV0,5584
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=O9YgBfgNYKgSBY5ZNs2M7W7q5tBC4yMJZ0a3gavrnbo,10261
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=8Y2IsfGVjIGbYLPAnL9Qdh8Kd8iLW-sGKi-rVdt9mBE,75198
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=JXXJRas-fooU_KeZfqJ1l9NbmHYsola8NFb3gSQl9ew,26292
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=mVjIEE3TQbI5PyDwzWsgz_7vEd35zFXu5ywR6y_c1HE,153734
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=8mL7Mcw6oRRxbZNomHlUCgnqN6-Iz9GBz8QQujtYwJg,78242
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=mJpF2wSaMNw_jPZv4ru4x9x-rIOTDAABYZw7ZYesjF8,13606
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=YahDPmVM-lOV1qgpbfkq6QwrS2Pa99IRlfMglNXDQ1I,13827
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.6.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
352
- rapidtide-3.0.6.dist-info/METADATA,sha256=2BoMip86LO1pwQ9sRwr1nBx9_EfgCXwzZMJf6yufC_w,15688
353
- rapidtide-3.0.6.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
354
- rapidtide-3.0.6.dist-info/entry_points.txt,sha256=9NVvZpIx9U6lTWlTFF2ev-wuPAHJxcXI_901_EcGRYA,3323
355
- rapidtide-3.0.6.dist-info/top_level.txt,sha256=MnNXGfbrIBc9RnAqzBHOWd3GQO-aIUDnRTz4_5VjH5g,16
356
- rapidtide-3.0.6.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5