rapidtide 3.0.1__tar.gz → 3.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. {rapidtide-3.0.1 → rapidtide-3.0.2}/CHANGELOG.md +7 -0
  2. {rapidtide-3.0.1 → rapidtide-3.0.2}/INSTALL.rst +1 -1
  3. {rapidtide-3.0.1/rapidtide.egg-info → rapidtide-3.0.2}/PKG-INFO +1 -1
  4. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/DerivativeDelay.py +0 -4
  5. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testretro +9 -13
  6. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/happy_supportfuncs.py +70 -234
  7. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/io.py +19 -23
  8. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/refinedelay.py +4 -7
  9. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/cleanposttest +0 -1
  10. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunrapidtide_v3.py +10 -0
  11. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunrapidtide_v6.py +0 -1
  12. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_refinedelay.py +0 -3
  13. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/voxelData.py +125 -14
  14. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/delayestimation.py +8 -13
  15. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/delayvar.py +11 -13
  16. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/happy.py +72 -179
  17. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/rapidtide.py +99 -226
  18. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/regressfrommaps.py +12 -7
  19. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/retroregress.py +396 -336
  20. {rapidtide-3.0.1 → rapidtide-3.0.2/rapidtide.egg-info}/PKG-INFO +1 -1
  21. {rapidtide-3.0.1 → rapidtide-3.0.2}/CODE_OF_CONDUCT.md +0 -0
  22. {rapidtide-3.0.1 → rapidtide-3.0.2}/CONTRIBUTING.md +0 -0
  23. {rapidtide-3.0.1 → rapidtide-3.0.2}/LICENSE +0 -0
  24. {rapidtide-3.0.1 → rapidtide-3.0.2}/MANIFEST.in +0 -0
  25. {rapidtide-3.0.1 → rapidtide-3.0.2}/README.rst +0 -0
  26. {rapidtide-3.0.1 → rapidtide-3.0.2}/TODO.md +0 -0
  27. {rapidtide-3.0.1 → rapidtide-3.0.2}/USAGE.rst +0 -0
  28. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/download-nda-data +0 -0
  29. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/downloadcmd-auther +0 -0
  30. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/gmscalc-HCPYA +0 -0
  31. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/list-rapidtide-relevant-images +0 -0
  32. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/mount-and-run +0 -0
  33. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/rapidtide-HCPYA +0 -0
  34. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/rapidtide-cloud-test +0 -0
  35. {rapidtide-3.0.1 → rapidtide-3.0.2}/cloud/simple-cp-test +0 -0
  36. {rapidtide-3.0.1 → rapidtide-3.0.2}/pyproject.toml +0 -0
  37. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/Colortables.py +0 -0
  38. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/OrthoImageItem.py +0 -0
  39. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/RapidtideDataset.py +0 -0
  40. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/RegressorRefiner.py +0 -0
  41. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/__init__.py +0 -0
  42. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/_version.py +0 -0
  43. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/calcandfitcorrpairs.py +0 -0
  44. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/calccoherence.py +0 -0
  45. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/calcnullsimfunc.py +0 -0
  46. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/calcsimfunc.py +0 -0
  47. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/correlate.py +0 -0
  48. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/installtestdata +0 -0
  49. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/test_findmaxlag.py +0 -0
  50. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/test_io +0 -0
  51. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/test_mlregressallt.py +0 -0
  52. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/test_rapidtidecompare +0 -0
  53. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testalign +0 -0
  54. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testatlasaverage +0 -0
  55. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testboth +0 -0
  56. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testcifti +0 -0
  57. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testcomplex +0 -0
  58. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testdecomp +0 -0
  59. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testdelayvar +0 -0
  60. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testfileorfloat +0 -0
  61. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testfingerprint +0 -0
  62. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testfmri +0 -0
  63. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testfmridocker +0 -0
  64. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testfrozen +0 -0
  65. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testfuncs +0 -0
  66. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testglmfilt +0 -0
  67. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testhappy +0 -0
  68. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testinitdelay +0 -0
  69. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testlinfit +0 -0
  70. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testlocalflow +0 -0
  71. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testmodels +0 -0
  72. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testnewrefine +0 -0
  73. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testnoiseamp +0 -0
  74. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testoscorr +0 -0
  75. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testpad +0 -0
  76. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testrefineonly +0 -0
  77. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testretrolagtcs +0 -0
  78. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/examples/src/testsimdata +0 -0
  79. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.png +0 -0
  80. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.txt +0 -0
  81. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model.keras +0 -0
  82. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model_meta.json +0 -0
  83. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_revised_tf2/model.keras +0 -0
  84. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_revised_tf2/model_meta.json +0 -0
  85. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_serdar2_tf2/model.keras +0 -0
  86. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_serdar2_tf2/model_meta.json +0 -0
  87. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_serdar_tf2/model.keras +0 -0
  88. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/models/model_serdar_tf2/model_meta.json +0 -0
  89. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ASPECTS_2mm.nii.gz +0 -0
  90. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ASPECTS_2mm_mask.nii.gz +0 -0
  91. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ASPECTS_3mm.nii.gz +0 -0
  92. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ASPECTS_3mm_mask.nii.gz +0 -0
  93. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ASPECTS_regions.txt +0 -0
  94. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm.nii.gz +0 -0
  95. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm_mask.nii.gz +0 -0
  96. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/ATTbasedFlowTerritories_split_regions.txt +0 -0
  97. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200_binmask_2mm.nii.gz +0 -0
  98. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200_lag_2mm.nii.gz +0 -0
  99. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200_mask_2mm.nii.gz +0 -0
  100. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200_negmask_2mm.nii.gz +0 -0
  101. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200_sigma_2mm.nii.gz +0 -0
  102. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200_strength_2mm.nii.gz +0 -0
  103. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
  104. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
  105. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
  106. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
  107. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_graylaghist.json +0 -0
  108. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
  109. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_laghist.json +0 -0
  110. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
  111. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
  112. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
  113. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
  114. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
  115. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
  116. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
  117. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
  118. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_whitelaghist.json +0 -0
  119. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
  120. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +0 -0
  121. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +0 -0
  122. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  123. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1.xml +0 -0
  124. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_regions.txt +0 -0
  125. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  126. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  127. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2.xml +0 -0
  128. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_regions.txt +0 -0
  129. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  130. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  131. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
  132. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
  133. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
  134. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
  135. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/MNI152_T1_3mm.nii.gz +0 -0
  136. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/MNI152_T1_3mm_brain_mask.nii.gz +0 -0
  137. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/data/reference/slicetimes/HCP-YA_slicetimes.txt +0 -0
  138. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/dlfilter.py +0 -0
  139. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/externaltools.py +0 -0
  140. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/fMRIData_class.py +0 -0
  141. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/filter.py +0 -0
  142. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/fit.py +0 -0
  143. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/helper_classes.py +0 -0
  144. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/linfitfiltpass.py +0 -0
  145. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/makelaggedtcs.py +0 -0
  146. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/maskutil.py +0 -0
  147. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/miscmath.py +0 -0
  148. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/multiproc.py +0 -0
  149. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/patchmatch.py +0 -0
  150. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/peakeval.py +0 -0
  151. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/qualitycheck.py +0 -0
  152. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/refineregressor.py +0 -0
  153. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/resample.py +0 -0
  154. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/__init__.py +0 -0
  155. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/adjustoffset.py +0 -0
  156. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/aligntcs.py +0 -0
  157. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/applydlfilter.py +0 -0
  158. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/atlasaverage.py +0 -0
  159. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/atlastool.py +0 -0
  160. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/calcicc.py +0 -0
  161. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/calctexticc.py +0 -0
  162. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/calcttest.py +0 -0
  163. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/ccorrica.py +0 -0
  164. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/delayvar.py +0 -0
  165. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/diffrois.py +0 -0
  166. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/endtidalproc.py +0 -0
  167. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/fdica.py +0 -0
  168. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/filtnifti.py +0 -0
  169. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/filttc.py +0 -0
  170. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/fingerprint.py +0 -0
  171. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/fixtr.py +0 -0
  172. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/gmscalc.py +0 -0
  173. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/happy.py +0 -0
  174. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/happy2std.py +0 -0
  175. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/happywarp.py +0 -0
  176. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/histnifti.py +0 -0
  177. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/histtc.py +0 -0
  178. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/linfitfilt.py +0 -0
  179. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/localflow.py +0 -0
  180. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/mergequality.py +0 -0
  181. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/pairproc.py +0 -0
  182. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/pairwisemergenifti.py +0 -0
  183. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/physiofreq.py +0 -0
  184. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/pixelcomp.py +0 -0
  185. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/plethquality.py +0 -0
  186. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/polyfitim.py +0 -0
  187. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/proj2flow.py +0 -0
  188. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/rankimage.py +0 -0
  189. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/rapidtide.py +0 -0
  190. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/rapidtide2std.py +0 -0
  191. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/resamplenifti.py +0 -0
  192. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/resampletc.py +0 -0
  193. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/retrolagtcs.py +0 -0
  194. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/retroregress.py +0 -0
  195. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/roisummarize.py +0 -0
  196. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/runqualitycheck.py +0 -0
  197. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/showarbcorr.py +0 -0
  198. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/showhist.py +0 -0
  199. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/showstxcorr.py +0 -0
  200. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/showtc.py +0 -0
  201. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/showxcorr_legacy.py +0 -0
  202. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/showxcorrx.py +0 -0
  203. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/showxy.py +0 -0
  204. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/simdata.py +0 -0
  205. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/spatialdecomp.py +0 -0
  206. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/spatialfit.py +0 -0
  207. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/spatialmi.py +0 -0
  208. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/spectrogram.py +0 -0
  209. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/stupidramtricks.py +0 -0
  210. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/synthASL.py +0 -0
  211. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/tcfrom2col.py +0 -0
  212. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/tcfrom3col.py +0 -0
  213. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/temporaldecomp.py +0 -0
  214. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/testhrv.py +0 -0
  215. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/threeD.py +0 -0
  216. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/tidepool.py +0 -0
  217. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/scripts/variabilityizer.py +0 -0
  218. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/simfuncfit.py +0 -0
  219. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/stats.py +0 -0
  220. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/.coveragerc +0 -0
  221. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/__init__.py +0 -0
  222. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/matplotlibrc +0 -0
  223. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/resethappytargets +0 -0
  224. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/resetrapidtidetargets +0 -0
  225. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/resettargets +0 -0
  226. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/runlocaltest +0 -0
  227. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/showdirectories +0 -0
  228. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/showkernels +0 -0
  229. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_aliasedcorrelate.py +0 -0
  230. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_aligntcs.py +0 -0
  231. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_calcicc.py +0 -0
  232. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_congrid.py +0 -0
  233. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_correlate.py +0 -0
  234. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_corrpass.py +0 -0
  235. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_delayestimation.py +0 -0
  236. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_doresample.py +0 -0
  237. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fastresampler.py +0 -0
  238. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_filter.py +0 -0
  239. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_findmaxlag.py +0 -0
  240. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunhappy_v1.py +0 -0
  241. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunhappy_v2.py +0 -0
  242. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunhappy_v3.py +0 -0
  243. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunhappy_v4.py +0 -0
  244. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunhappy_v5.py +0 -0
  245. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunrapidtide_v1.py +0 -0
  246. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunrapidtide_v2.py +0 -0
  247. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunrapidtide_v4.py +0 -0
  248. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_fullrunrapidtide_v5.py +0 -0
  249. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_io.py +0 -0
  250. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_linfitfiltpass.py +0 -0
  251. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_mi.py +0 -0
  252. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_miscmath.py +0 -0
  253. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_motionregress.py +0 -0
  254. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_nullcorr.py +0 -0
  255. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_padvec.py +0 -0
  256. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_phaseanalysis.py +0 -0
  257. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_rapidtideparser.py +0 -0
  258. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_runmisc.py +0 -0
  259. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_sharedmem.py +0 -0
  260. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_simulate.py +0 -0
  261. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_stcorrelate.py +0 -0
  262. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_timeshift.py +0 -0
  263. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_valtoindex.py +0 -0
  264. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/test_zRapidtideDataset.py +0 -0
  265. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_25.0Hz.txt +0 -0
  266. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  267. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_info.txt +0 -0
  268. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_25.0Hz.txt +0 -0
  269. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  270. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_normpleth_25.0Hz.txt +0 -0
  271. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_pleth_25.0Hz.txt +0 -0
  272. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/100206_REST1_LR_pleth_dlfiltered_25.0Hz.txt +0 -0
  273. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/fmri_globalmean.txt +0 -0
  274. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/happy_phase1target_vesselmask.nii.gz +0 -0
  275. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/happy_phase2output_vesselmask.nii.gz +0 -0
  276. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/happy_target_vesselmask.nii.gz +0 -0
  277. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/lforegressor.txt +0 -0
  278. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/lt_rt.txt +0 -0
  279. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/phasetest.txt +0 -0
  280. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/rapidtide2x_phase1target_reference_fmrires.txt +0 -0
  281. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/stcorrtest_Rvalue.txt +0 -0
  282. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/stcorrtest_delay.txt +0 -0
  283. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/stcorrtest_mask.txt +0 -0
  284. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/stcorrtest_pearson.txt +0 -0
  285. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/stcorrtest_pvalue.txt +0 -0
  286. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/testdata/testfilt.txt +0 -0
  287. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/tmp/.placeholder.txt +0 -0
  288. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/usercustomize.py +0 -0
  289. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tests/utils.py +0 -0
  290. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate.py +0 -0
  291. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate.ui +0 -0
  292. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate_alt.py +0 -0
  293. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate_alt.ui +0 -0
  294. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate_alt_qt6.py +0 -0
  295. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate_big.py +0 -0
  296. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate_big.ui +0 -0
  297. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate_big_qt6.py +0 -0
  298. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/tidepoolTemplate_qt6.py +0 -0
  299. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/transformerdlfilter.py +0 -0
  300. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/util.py +0 -0
  301. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/wiener.py +0 -0
  302. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/wiener2.py +0 -0
  303. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/__init__.py +0 -0
  304. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/adjustoffset.py +0 -0
  305. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/aligntcs.py +0 -0
  306. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/applydlfilter.py +0 -0
  307. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/atlasaverage.py +0 -0
  308. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/atlastool.py +0 -0
  309. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/calctexticc.py +0 -0
  310. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/ccorrica.py +0 -0
  311. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/cleanregressor.py +0 -0
  312. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/diffrois.py +0 -0
  313. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/endtidalproc.py +0 -0
  314. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/fdica.py +0 -0
  315. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/filtnifti.py +0 -0
  316. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/filttc.py +0 -0
  317. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/fixtr.py +0 -0
  318. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/gmscalc.py +0 -0
  319. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/happy2std.py +0 -0
  320. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/happy_parser.py +0 -0
  321. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/histnifti.py +0 -0
  322. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/histtc.py +0 -0
  323. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/linfitfilt.py +0 -0
  324. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/localflow.py +0 -0
  325. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/mergequality.py +0 -0
  326. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/niftidecomp.py +0 -0
  327. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/niftistats.py +0 -0
  328. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/pairproc.py +0 -0
  329. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/pairwisemergenifti.py +0 -0
  330. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/parser_funcs.py +0 -0
  331. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/physiofreq.py +0 -0
  332. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/pixelcomp.py +0 -0
  333. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/plethquality.py +0 -0
  334. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/polyfitim.py +0 -0
  335. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/proj2flow.py +0 -0
  336. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/rankimage.py +0 -0
  337. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/rapidtide2std.py +0 -0
  338. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/rapidtide_parser.py +0 -0
  339. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/resamplenifti.py +0 -0
  340. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/resampletc.py +0 -0
  341. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/retrolagtcs.py +0 -0
  342. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/roisummarize.py +0 -0
  343. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/runqualitycheck.py +0 -0
  344. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/showarbcorr.py +0 -0
  345. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/showhist.py +0 -0
  346. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/showstxcorr.py +0 -0
  347. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/showtc.py +0 -0
  348. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/showxcorrx.py +0 -0
  349. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/showxy.py +0 -0
  350. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/simdata.py +0 -0
  351. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/spatialfit.py +0 -0
  352. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/spatialmi.py +0 -0
  353. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/spectrogram.py +0 -0
  354. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/synthASL.py +0 -0
  355. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/tcfrom2col.py +0 -0
  356. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/tcfrom3col.py +0 -0
  357. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/tidepool.py +0 -0
  358. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/utils.py +0 -0
  359. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide/workflows/variabilityizer.py +0 -0
  360. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide.egg-info/SOURCES.txt +0 -0
  361. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide.egg-info/dependency_links.txt +0 -0
  362. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide.egg-info/entry_points.txt +0 -0
  363. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide.egg-info/requires.txt +0 -0
  364. {rapidtide-3.0.1 → rapidtide-3.0.2}/rapidtide.egg-info/top_level.txt +0 -0
  365. {rapidtide-3.0.1 → rapidtide-3.0.2}/setup.cfg +0 -0
  366. {rapidtide-3.0.1 → rapidtide-3.0.2}/versioneer.py +0 -0
@@ -1,5 +1,12 @@
1
1
  # Release history
2
2
 
3
+ ## Version 3.0.2 (4/28/25)
4
+ * (rapidtide) Leaned harder into using the voxelData class, and beefed up its capabilities.
5
+ * (retroregress) Added a new argument to ``--outputlevel``, ``onlyregressors``. When selected, retroregress generates the voxel specific sLFO regressor(s), saves them, and exits. This option exists so that you can use the rapidtide voxel specific sLFO regressors in an external processing routine such as XCP-D without extraneous data storage or processing time.
6
+ * (happy) Updated to use voxelData.
7
+ * (happy) Moved phase projection to an external routine.
8
+ * (documentation) Fixed a few more typos.
9
+
3
10
  ## Version 3.0.1 (4/23/25)
4
11
  * (documentation) I missed a bunch of weird errors in the "Theory of Operation" section. Are you surprised? I'm not surprised. You shouldn't be either. These are now fixed. This doesn't change any code - mostly affects online documentation.
5
12
 
@@ -115,7 +115,7 @@ This will use the most recent version on dockerhub, which is built automatically
115
115
  NOTE: I don't advise doing this unless you're helping debug something -
116
116
  there's no guarantee that "latest" is functional at any given time.
117
117
 
118
- Now that the file is downloaded, you can run and rapidtide command in the Docker container. For example, to run a simple
118
+ Now that the file is downloaded, you can run any rapidtide command in the Docker container. For example, to run a simple
119
119
  rapidtide analysis, you would use the following command (you can do this all in one step - it will just integrate the
120
120
  first pull into the run time if the version you request hasn't already been downloaded).
121
121
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rapidtide
3
- Version: 3.0.1
3
+ Version: 3.0.2
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>
@@ -135,8 +135,6 @@ class DerivativeDelay:
135
135
  (xdim, ydim, slicedim),
136
136
  gausssigma=args.delayoffsetgausssigma,
137
137
  patchthresh=args.delaypatchthresh,
138
- fileiscifti=False,
139
- textio=False,
140
138
  rt_floattype=rt_floattype,
141
139
  debug=args.debug,
142
140
  )
@@ -181,8 +179,6 @@ class DerivativeDelay:
181
179
  (xdim, ydim, slicedim),
182
180
  gausssigma=args.delayoffsetgausssigma,
183
181
  patchthresh=args.delaypatchthresh,
184
- fileiscifti=False,
185
- textio=False,
186
182
  rt_floattype=rt_floattype,
187
183
  debug=args.debug,
188
184
  )
@@ -1,25 +1,21 @@
1
1
  #!/bin/bash
2
2
 
3
- #rapidtide \
4
- # --nprocs -1 \
5
- # --passes 3 \
6
- # --refinetype unweighted_average \
7
- # --numnull 0 \
8
- # --outputlevel max \
9
- # --regressderivs 1 \
10
- # sub-RAPIDTIDETEST.nii.gz \
11
- # ../dst/sub-RAPIDTIDETEST
3
+ rapidtide \
4
+ --nprocs -1 \
5
+ --passes 3 \
6
+ --outputlevel max \
7
+ --regressderivs 1 \
8
+ sub-RAPIDTIDETEST.nii.gz \
9
+ ../dst/sub-RAPIDTIDETEST
12
10
 
13
11
  ##retroregress sub-RAPIDTIDETEST.nii.gz ../dst/sub-RAPIDTIDETEST --alternateoutput ../dst/0deriv --nprocs -1
14
12
 
15
13
  retroregress \
16
14
  sub-RAPIDTIDETEST.nii.gz \
17
15
  ../dst/sub-RAPIDTIDETEST \
18
- --alternateoutput ../dst/wintest \
16
+ --alternateoutput ../dst/specialtest \
19
17
  --nprocs -1 \
20
- --outputlevel max \
21
- --focaldebug \
22
- --delayoffsetspatialfilt -1
18
+ --outputlevel onlyregressors
23
19
 
24
20
  #retroregress sub-RAPIDTIDETEST.nii.gz ../dst/sub-RAPIDTIDETEST --alternateoutput ../dst/0deriv_refined --nprocs -1 --regressderivs 0 --makepseudofile --outputlevel max --refinedelay --nofilterwithrefineddelay
25
21
  #retroregress sub-RAPIDTIDETEST.nii.gz ../dst/sub-RAPIDTIDETEST --alternateoutput ../dst/0deriv_refinedfit --nprocs -1 --regressderivs 0 --makepseudofile --outputlevel max --refinedelay
@@ -999,211 +999,42 @@ def circularderivs(timecourse):
999
999
 
1000
1000
 
1001
1001
  def phaseproject(
1002
- datatoproject,
1003
- means,
1004
- destpoints,
1005
- numsteps,
1006
- timings,
1007
- cardfromfmri_sliceres,
1008
- instantaneous_cardiacphase,
1002
+ input_data,
1003
+ demeandata_byslice,
1004
+ means_byslice,
1005
+ rawapp_byslice,
1006
+ app_byslice,
1007
+ normapp_byslice,
1008
+ weights_byslice,
1009
+ cine_byslice,
1010
+ projmask_byslice,
1011
+ derivatives_byslice,
1012
+ proctrs,
1009
1013
  thispass,
1010
- numpasses,
1011
1014
  args,
1012
- outputroot,
1013
- slicesamplerate,
1014
- pleth_sliceres,
1015
- mrsamplerate,
1016
- projmask_byslice,
1015
+ sliceoffsets,
1017
1016
  cardphasevals,
1018
- thetimes,
1019
- centric=True,
1020
- passstring="",
1021
- badpointlist=None,
1022
- congridbins=3.0,
1023
- gridkernel="kaiser",
1017
+ outphases,
1018
+ appsmoothingfilter,
1019
+ phaseFs,
1020
+ thecorrfunc_byslice,
1021
+ waveamp_byslice,
1022
+ wavedelay_byslice,
1023
+ wavedelayCOM_byslice,
1024
+ corrected_rawapp_byslice,
1025
+ corrstartloc,
1026
+ correndloc,
1027
+ thealiasedcorrx,
1028
+ theAliasedCorrelator,
1024
1029
  ):
1025
- xsize, ysize, numslices, timepoints = datatoproject.shape
1026
- # construct the destination arrays
1027
- tide_util.logmem("before making destination arrays")
1028
- app = np.zeros((xsize, ysize, numslices, destpoints), dtype=np.float64)
1029
- app_byslice = app.reshape((xsize * ysize, numslices, destpoints))
1030
- cine = np.zeros((xsize, ysize, numslices, destpoints), dtype=np.float64)
1031
- cine_byslice = cine.reshape((xsize * ysize, numslices, destpoints))
1032
- rawapp = np.zeros((xsize, ysize, numslices, destpoints), dtype=np.float64)
1033
- rawapp_byslice = rawapp.reshape((xsize * ysize, numslices, destpoints))
1034
- corrected_rawapp = np.zeros((xsize, ysize, numslices, destpoints), dtype=np.float64)
1035
- corrected_rawapp_byslice = rawapp.reshape((xsize * ysize, numslices, destpoints))
1036
- normapp = np.zeros((xsize, ysize, numslices, destpoints), dtype=np.float64)
1037
- normapp_byslice = normapp.reshape((xsize * ysize, numslices, destpoints))
1038
- weights = np.zeros((xsize, ysize, numslices, destpoints), dtype=np.float64)
1039
- weight_byslice = weights.reshape((xsize * ysize, numslices, destpoints))
1040
- derivatives = np.zeros((xsize, ysize, numslices, 4), dtype=np.float64)
1041
- derivatives_byslice = derivatives.reshape((xsize * ysize, numslices, 4))
1042
-
1043
- timings.append(["Output arrays allocated" + passstring, time.time(), None, None])
1044
-
1045
- if centric:
1046
- outphases = np.linspace(-np.pi, np.pi, num=destpoints, endpoint=False)
1047
- else:
1048
- outphases = np.linspace(0.0, 2.0 * np.pi, num=destpoints, endpoint=False)
1049
- phasestep = outphases[1] - outphases[0]
1050
-
1051
- #######################################################################################################
1052
- #
1053
- # now do the phase projection
1054
- #
1055
- #
1056
- datatoproject_byslice = datatoproject.reshape((xsize * ysize, numslices, timepoints))
1057
- means_byslice = means.reshape((xsize * ysize, numslices))
1058
-
1059
- timings.append(["Phase projection to image started" + passstring, time.time(), None, None])
1060
- print("Starting phase projection")
1061
- proctrs = range(timepoints) # proctrs is the list of all fmri trs to be projected
1062
- procpoints = range(
1063
- timepoints * numsteps
1064
- ) # procpoints is the list of all sliceres datapoints to be projected
1065
- if badpointlist is not None:
1066
- censortrs = np.zeros(timepoints, dtype="int")
1067
- censorpoints = np.zeros(timepoints * numsteps, dtype="int")
1068
- censortrs[np.where(badpointlist > 0.0)[0] // numsteps] = 1
1069
- censorpoints[np.where(badpointlist > 0.0)[0]] = 1
1070
- proctrs = np.where(censortrs < 1)[0]
1071
- procpoints = np.where(censorpoints < 1)[0]
1072
-
1073
- # do phase averaging
1074
- app_bypoint = cardiaccycleaverage(
1075
- instantaneous_cardiacphase,
1076
- outphases,
1077
- cardfromfmri_sliceres,
1078
- procpoints,
1079
- congridbins,
1080
- gridkernel,
1081
- centric,
1082
- cyclic=True,
1083
- )
1084
- if thispass == numpasses - 1:
1085
- tide_io.writebidstsv(
1086
- outputroot + "_desc-cardiaccyclefromfmri_timeseries",
1087
- app_bypoint,
1088
- 1.0 / (outphases[1] - outphases[0]),
1089
- starttime=outphases[0],
1090
- columns=["cardiaccyclefromfmri"],
1091
- append=False,
1092
- debug=args.debug,
1093
- )
1094
-
1095
- # now do time averaging
1096
- lookaheadval = int(slicesamplerate / 4.0)
1097
- print("lookaheadval = ", lookaheadval)
1098
- wrappedcardiacphase = tide_math.phasemod(instantaneous_cardiacphase, centric=centric)
1099
- max_peaks, min_peaks = tide_fit.peakdetect(wrappedcardiacphase, lookahead=lookaheadval)
1100
- # start on a maximum
1101
- if max_peaks[0][0] > min_peaks[0][0]:
1102
- min_peaks = min_peaks[1:]
1103
- # work only with pairs
1104
- if len(max_peaks) > len(min_peaks):
1105
- max_peaks = max_peaks[:-1]
1106
-
1107
- zerophaselocs = []
1108
- for idx, peak in enumerate(max_peaks):
1109
- minloc = min_peaks[idx][0]
1110
- maxloc = max_peaks[idx][0]
1111
- minval = min_peaks[idx][1]
1112
- maxval = max_peaks[idx][1]
1113
- if minloc > 0:
1114
- if wrappedcardiacphase[minloc - 1] < wrappedcardiacphase[minloc]:
1115
- minloc -= 1
1116
- minval = wrappedcardiacphase[minloc]
1117
- phasediff = minval - (maxval - 2.0 * np.pi)
1118
- timediff = minloc - maxloc
1119
- zerophaselocs.append(1.0 * minloc - (minval - outphases[0]) * timediff / phasediff)
1120
- # print(idx, [maxloc, maxval], [minloc, minval], phasediff, timediff, zerophaselocs[-1])
1121
- instantaneous_cardiactime = instantaneous_cardiacphase * 0.0
1122
-
1123
- whichpeak = 0
1124
- for t in procpoints:
1125
- if whichpeak < len(zerophaselocs) - 1:
1126
- if t > zerophaselocs[whichpeak + 1]:
1127
- whichpeak += 1
1128
- if t > zerophaselocs[whichpeak]:
1129
- instantaneous_cardiactime[t] = (t - zerophaselocs[whichpeak]) / slicesamplerate
1130
- # print(t, whichpeak, zerophaselocs[whichpeak], instantaneous_cardiactime[t])
1131
- maxtime = (
1132
- np.ceil(
1133
- int(
1134
- 1.02
1135
- * tide_stats.getfracval(instantaneous_cardiactime, 0.98)
1136
- // args.pulsereconstepsize
1137
- )
1138
- )
1139
- * args.pulsereconstepsize
1140
- )
1141
- outtimes = np.linspace(
1142
- 0.0, maxtime, num=int(maxtime / args.pulsereconstepsize), endpoint=False
1143
- )
1144
- atp_bypoint = cardiaccycleaverage(
1145
- instantaneous_cardiactime,
1146
- outtimes,
1147
- cardfromfmri_sliceres,
1148
- procpoints,
1149
- congridbins,
1150
- gridkernel,
1151
- False,
1152
- cyclic=True,
1153
- )
1154
- if thispass == numpasses - 1:
1155
- tide_io.writebidstsv(
1156
- outputroot + "_desc-cardpulsefromfmri_timeseries",
1157
- atp_bypoint,
1158
- 1.0 / (outtimes[1] - outtimes[0]),
1159
- starttime=outtimes[0],
1160
- columns=["pulsefromfmri"],
1161
- append=False,
1162
- debug=args.debug,
1163
- )
1164
-
1165
- if not args.verbose:
1166
- print("Phase projecting...")
1167
-
1168
- # make a lowpass filter for the projected data. Limit frequency to 3 cycles per 2pi (1/6th Fs)
1169
- phaseFs = 1.0 / phasestep
1170
- phaseFc = phaseFs / 6.0
1171
- appsmoothingfilter = tide_filt.NoncausalFilter("arb", cyclic=True, padtime=0.0)
1172
- appsmoothingfilter.setfreqs(0.0, 0.0, phaseFc, phaseFc)
1173
-
1174
- # setup for aliased correlation if we're going to do it
1175
- if args.doaliasedcorrelation and (thispass == numpasses - 1):
1176
- if args.cardiacfilename:
1177
- signal_sliceres = pleth_sliceres
1178
- # signal_stdres = pleth_stdres
1179
- else:
1180
- signal_sliceres = cardfromfmri_sliceres
1181
- # signal_stdres = dlfilteredcard_stdres
1182
- corrsearchvals = (
1183
- np.linspace(0.0, args.aliasedcorrelationwidth, num=args.aliasedcorrelationpts)
1184
- - args.aliasedcorrelationwidth / 2.0
1185
- )
1186
- theAliasedCorrelator = tide_corr.AliasedCorrelator(
1187
- signal_sliceres,
1188
- slicesamplerate,
1189
- numsteps,
1190
- )
1191
- thecorrfunc = np.zeros(
1192
- (xsize, ysize, numslices, args.aliasedcorrelationpts), dtype=np.float64
1193
- )
1194
- thecorrfunc_byslice = thecorrfunc.reshape(
1195
- (xsize * ysize, numslices, args.aliasedcorrelationpts)
1196
- )
1197
- wavedelay = np.zeros((xsize, ysize, numslices), dtype=np.float64)
1198
- wavedelay_byslice = wavedelay.reshape((xsize * ysize, numslices))
1199
- waveamp = np.zeros((xsize, ysize, numslices), dtype=np.float64)
1200
- waveamp_byslice = waveamp.reshape((xsize * ysize, numslices))
1030
+ xsize, ysize, numslices, timepoints = input_data.getdims()
1031
+ fmri_data_byslice = input_data.byslice()
1201
1032
 
1202
- # now project the data
1203
1033
  for theslice in tqdm(
1204
1034
  range(numslices),
1205
1035
  desc="Slice",
1206
1036
  unit="slices",
1037
+ disable=(not args.showprogressbar),
1207
1038
  ):
1208
1039
  if args.verbose:
1209
1040
  print("Phase projecting for slice", theslice)
@@ -1211,33 +1042,31 @@ def phaseproject(
1211
1042
  # indexlist = range(0, len(cardphasevals[theslice, :]))
1212
1043
  if len(validlocs) > 0:
1213
1044
  for t in proctrs:
1214
- filteredmr = -datatoproject_byslice[validlocs, theslice, t]
1215
- cinemr = (
1216
- datatoproject_byslice[validlocs, theslice, t]
1217
- + means_byslice[validlocs, theslice, t]
1218
- )
1045
+ filteredmr = -demeandata_byslice[validlocs, theslice, t]
1046
+ cinemr = fmri_data_byslice[validlocs, theslice, t]
1219
1047
  thevals, theweights, theindices = tide_resample.congrid(
1220
1048
  outphases,
1221
1049
  cardphasevals[theslice, t],
1222
1050
  1.0,
1223
- congridbins,
1224
- kernel=gridkernel,
1051
+ args.congridbins,
1052
+ kernel=args.gridkernel,
1225
1053
  cyclic=True,
1226
1054
  )
1227
1055
  for i in range(len(theindices)):
1228
- weight_byslice[validlocs, theslice, theindices[i]] += theweights[i]
1229
- rawapp_byslice[validlocs, theslice, theindices[i]] += (
1230
- theweights[i] * filteredmr
1231
- )
1056
+ weights_byslice[validlocs, theslice, theindices[i]] += theweights[i]
1057
+ # rawapp_byslice[validlocs, theslice, theindices[i]] += (
1058
+ # theweights[i] * filteredmr
1059
+ # )
1060
+ rawapp_byslice[validlocs, theslice, theindices[i]] += filteredmr
1232
1061
  cine_byslice[validlocs, theslice, theindices[i]] += theweights[i] * cinemr
1233
- for d in range(destpoints):
1234
- if weight_byslice[validlocs[0], theslice, d] == 0.0:
1235
- weight_byslice[validlocs, theslice, d] = 1.0
1062
+ for d in range(args.destpoints):
1063
+ if weights_byslice[validlocs[0], theslice, d] == 0.0:
1064
+ weights_byslice[validlocs, theslice, d] = 1.0
1236
1065
  rawapp_byslice[validlocs, theslice, :] = np.nan_to_num(
1237
- rawapp_byslice[validlocs, theslice, :] / weight_byslice[validlocs, theslice, :]
1066
+ rawapp_byslice[validlocs, theslice, :] / weights_byslice[validlocs, theslice, :]
1238
1067
  )
1239
1068
  cine_byslice[validlocs, theslice, :] = np.nan_to_num(
1240
- cine_byslice[validlocs, theslice, :] / weight_byslice[validlocs, theslice, :]
1069
+ cine_byslice[validlocs, theslice, :] / weights_byslice[validlocs, theslice, :]
1241
1070
  )
1242
1071
  else:
1243
1072
  rawapp_byslice[:, theslice, :] = 0.0
@@ -1260,33 +1089,41 @@ def phaseproject(
1260
1089
  corrected_rawapp_byslice[validlocs, theslice, :] = (
1261
1090
  rawapp_byslice[validlocs, theslice, :] - timecoursemean
1262
1091
  ) * appflips_byslice[validlocs, theslice, None] + timecoursemean
1263
- if args.doaliasedcorrelation and (thispass == numpasses - 1):
1092
+ if args.doaliasedcorrelation and (thispass > 0):
1264
1093
  for theloc in validlocs:
1265
1094
  thecorrfunc_byslice[theloc, theslice, :] = theAliasedCorrelator.apply(
1266
1095
  -appflips_byslice[theloc, theslice]
1267
- * datatoproject_byslice[theloc, theslice, :],
1268
- -thetimes[theslice][0],
1269
- )
1096
+ * demeandata_byslice[theloc, theslice, :],
1097
+ int(sliceoffsets[theslice]),
1098
+ )[corrstartloc : correndloc + 1]
1270
1099
  maxloc = np.argmax(thecorrfunc_byslice[theloc, theslice, :])
1271
- wavedelay_byslice[theloc, theslice] = corrsearchvals[maxloc]
1272
- waveamp_byslice[theloc, theslice] = thecorrfunc_byslice[
1273
- theloc, theslice, maxloc
1274
- ]
1100
+ wavedelay_byslice[theloc, theslice] = (
1101
+ thealiasedcorrx[corrstartloc : correndloc + 1]
1102
+ )[maxloc]
1103
+ waveamp_byslice[theloc, theslice] = np.fabs(
1104
+ thecorrfunc_byslice[theloc, theslice, maxloc]
1105
+ )
1106
+ wavedelayCOM_byslice[theloc, theslice] = theCOM(
1107
+ thealiasedcorrx[corrstartloc : correndloc + 1],
1108
+ np.fabs(thecorrfunc_byslice[theloc, theslice, :]),
1109
+ )
1275
1110
  else:
1276
1111
  corrected_rawapp_byslice[validlocs, theslice, :] = rawapp_byslice[
1277
1112
  validlocs, theslice, :
1278
1113
  ]
1279
- if args.doaliasedcorrelation and (thispass == numpasses - 1):
1114
+ if args.doaliasedcorrelation and (thispass > 0):
1280
1115
  for theloc in validlocs:
1281
1116
  thecorrfunc_byslice[theloc, theslice, :] = theAliasedCorrelator.apply(
1282
- -datatoproject_byslice[theloc, theslice, :],
1283
- -thetimes[theslice][0],
1284
- )
1117
+ -demeandata_byslice[theloc, theslice, :],
1118
+ int(sliceoffsets[theslice]),
1119
+ )[corrstartloc : correndloc + 1]
1285
1120
  maxloc = np.argmax(np.abs(thecorrfunc_byslice[theloc, theslice, :]))
1286
- wavedelay_byslice[theloc, theslice] = corrsearchvals[maxloc]
1287
- waveamp_byslice[theloc, theslice] = thecorrfunc_byslice[
1288
- theloc, theslice, maxloc
1289
- ]
1121
+ wavedelay_byslice[theloc, theslice] = (
1122
+ thealiasedcorrx[corrstartloc : correndloc + 1]
1123
+ )[maxloc]
1124
+ waveamp_byslice[theloc, theslice] = np.fabs(
1125
+ thecorrfunc_byslice[theloc, theslice, maxloc]
1126
+ )
1290
1127
  timecoursemin = np.min(corrected_rawapp_byslice[validlocs, theslice, :], axis=1).reshape(
1291
1128
  (-1, 1)
1292
1129
  )
@@ -1296,10 +1133,10 @@ def phaseproject(
1296
1133
  normapp_byslice[validlocs, theslice, :] = np.nan_to_num(
1297
1134
  app_byslice[validlocs, theslice, :] / means_byslice[validlocs, theslice, None]
1298
1135
  )
1299
- return app, rawapp, corrected_rawapp, normapp, weights, cine, derivatives
1136
+ return appflips_byslice
1300
1137
 
1301
1138
 
1302
- def upsampleimage(input_data, input_hdr, numsteps, sliceoffsets, slicesamplerate, outputroot):
1139
+ def upsampleimage(input_data, numsteps, sliceoffsets, slicesamplerate, outputroot):
1303
1140
  fmri_data = input_data.byvol()
1304
1141
  timepoints = input_data.timepoints
1305
1142
  xsize = input_data.xsize
@@ -1309,7 +1146,6 @@ def upsampleimage(input_data, input_hdr, numsteps, sliceoffsets, slicesamplerate
1309
1146
  # allocate the image
1310
1147
  print(f"upsampling fmri data by a factor of {numsteps}")
1311
1148
  upsampleimage = np.zeros((xsize, ysize, numslices, numsteps * timepoints), dtype=float)
1312
- upsampleimage_byslice = upsampleimage.reshape(xsize * ysize, numslices, numsteps * timepoints)
1313
1149
 
1314
1150
  # demean the raw data
1315
1151
  meanfmri = fmri_data.mean(axis=1)
@@ -1339,8 +1175,8 @@ def upsampleimage(input_data, input_hdr, numsteps, sliceoffsets, slicesamplerate
1339
1175
  )
1340
1176
  upsampleimage_byslice[thexyvoxel, :, thetimepoint] = 1.0 * theinterps
1341
1177
 
1342
- theheader = copy.deepcopy(input_hdr)
1343
- theheader["dim"][4] = timepoints * numsteps
1344
- theheader["pixdim"][4] = 1.0 / slicesamplerate
1178
+ theheader = input_data.copyheader(
1179
+ numtimepoints=(timepoints * numsteps), tr=(1.0 / slicesamplerate)
1180
+ )
1345
1181
  tide_io.savetonifti(upsampleimage, theheader, outputroot + "_upsampled")
1346
1182
  print("upsampling complete")
@@ -139,7 +139,7 @@ def parseniftidims(thedims):
139
139
  nx, ny, nz, nt : int
140
140
  Number of points along each dimension
141
141
  """
142
- return thedims[1], thedims[2], thedims[3], thedims[4]
142
+ return int(thedims[1]), int(thedims[2]), int(thedims[3]), int(thedims[4])
143
143
 
144
144
 
145
145
  # sizes are the mapping between voxels and physical coordinates
@@ -263,32 +263,30 @@ def niftihdrfromarray(data):
263
263
 
264
264
  def makedestarray(
265
265
  destshape,
266
- textio=False,
267
- fileiscifti=False,
266
+ filetype="nifti",
268
267
  rt_floattype="float64",
269
268
  ):
270
- if textio:
269
+ if filetype == "text":
271
270
  try:
272
271
  internalspaceshape = destshape[0]
273
272
  timedim = destshape[1]
274
273
  except TypeError:
275
274
  internalspaceshape = destshape
276
275
  timedim = None
276
+ elif filetype == "cifti":
277
+ spaceindex = len(destshape) - 1
278
+ timeindex = spaceindex - 1
279
+ internalspaceshape = destshape[spaceindex]
280
+ if destshape[timeindex] > 1:
281
+ timedim = destshape[timeindex]
282
+ else:
283
+ timedim = None
277
284
  else:
278
- if fileiscifti:
279
- spaceindex = len(destshape) - 1
280
- timeindex = spaceindex - 1
281
- internalspaceshape = destshape[spaceindex]
282
- if destshape[timeindex] > 1:
283
- timedim = destshape[timeindex]
284
- else:
285
- timedim = None
285
+ internalspaceshape = int(destshape[0]) * int(destshape[1]) * int(destshape[2])
286
+ if len(destshape) == 3:
287
+ timedim = None
286
288
  else:
287
- internalspaceshape = int(destshape[0]) * int(destshape[1]) * int(destshape[2])
288
- if len(destshape) == 3:
289
- timedim = None
290
- else:
291
- timedim = destshape[3]
289
+ timedim = destshape[3]
292
290
  if timedim is None:
293
291
  outmaparray = np.zeros(internalspaceshape, dtype=rt_floattype)
294
292
  else:
@@ -329,8 +327,7 @@ def savemaplist(
329
327
  destshape,
330
328
  theheader,
331
329
  bidsbasedict,
332
- textio=False,
333
- fileiscifti=False,
330
+ filetype="nifti",
334
331
  rt_floattype="float64",
335
332
  cifti_hdr=None,
336
333
  savejson=True,
@@ -338,8 +335,7 @@ def savemaplist(
338
335
  ):
339
336
  outmaparray, internalspaceshape = makedestarray(
340
337
  destshape,
341
- textio=textio,
342
- fileiscifti=fileiscifti,
338
+ filetype=filetype,
343
339
  rt_floattype=rt_floattype,
344
340
  )
345
341
  for themap, mapsuffix, maptype, theunit, thedescription in maplist:
@@ -365,7 +361,7 @@ def savemaplist(
365
361
  bidsdict["Units"] = theunit
366
362
  if thedescription is not None:
367
363
  bidsdict["Description"] = thedescription
368
- if textio:
364
+ if filetype == "text":
369
365
  writenpvecs(
370
366
  outmaparray.reshape(destshape),
371
367
  f"{outputname}_{mapsuffix}.txt",
@@ -374,7 +370,7 @@ def savemaplist(
374
370
  savename = f"{outputname}_desc-{mapsuffix}_{maptype}"
375
371
  if savejson:
376
372
  writedicttojson(bidsdict, savename + ".json")
377
- if not fileiscifti:
373
+ if filetype == "nifti":
378
374
  savetonifti(outmaparray.reshape(destshape), theheader, savename)
379
375
  else:
380
376
  isseries = len(outmaparray.shape) != 1
@@ -110,7 +110,6 @@ def trainratiotooffset(
110
110
  "alwaysmultiproc": False,
111
111
  "focaldebug": debug,
112
112
  "fmrifreq": 1.0 / sampletime,
113
- "textio": False,
114
113
  }
115
114
 
116
115
  if trainlagmax - trainlagmin > 0.0:
@@ -233,7 +232,7 @@ def trainratiotooffset(
233
232
  funcoffsets.append(trainoffsets[whichoffset] + 0.0)
234
233
  maplimits = (xaxis[0], xaxis[-1])
235
234
 
236
- if outputlevel != "min":
235
+ if outputlevel != "min" and outputlevel != "onlyregressors":
237
236
  resampaxis = np.linspace(xaxis[0], xaxis[-1], num=len(xaxis), endpoint=True)
238
237
  outputfuncs = np.zeros((resampaxis.size, numoffsets), dtype=float)
239
238
  colnames = []
@@ -429,8 +428,7 @@ def filterderivratios(
429
428
  thedims,
430
429
  patchthresh=3.0,
431
430
  gausssigma=0,
432
- fileiscifti=False,
433
- textio=False,
431
+ filetype="nifti",
434
432
  rt_floattype="float64",
435
433
  verbose=True,
436
434
  debug=False,
@@ -448,8 +446,7 @@ def filterderivratios(
448
446
  print(f"MAD of regression fit derivative ratios = {themad}")
449
447
  outmaparray, internalspaceshape = tide_io.makedestarray(
450
448
  nativespaceshape,
451
- textio=textio,
452
- fileiscifti=fileiscifti,
449
+ filetype=filetype,
453
450
  rt_floattype=rt_floattype,
454
451
  )
455
452
  mappedregressderivratios = tide_io.populatemap(
@@ -459,7 +456,7 @@ def filterderivratios(
459
456
  outmaparray,
460
457
  debug=debug,
461
458
  )
462
- if textio or fileiscifti:
459
+ if filetype != "nifti":
463
460
  medfilt = regressderivratios
464
461
  filteredarray = regressderivratios
465
462
  else:
@@ -17,5 +17,4 @@
17
17
  #
18
18
 
19
19
  rm tmp/*
20
- #rm testdata/*
21
20
  rm .coveragerc.*
@@ -23,6 +23,7 @@ import matplotlib as mpl
23
23
  import rapidtide.workflows.rapidtide as rapidtide_workflow
24
24
  import rapidtide.workflows.rapidtide_parser as rapidtide_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
+ import rapidtide.workflows.retroregress as rapidtide_retroregress
26
27
 
27
28
 
28
29
  def test_fullrunrapidtide_v3(debug=False, local=False, displayplots=False):
@@ -76,6 +77,15 @@ def test_fullrunrapidtide_v3(debug=False, local=False, displayplots=False):
76
77
  # "--cleanrefined",
77
78
  rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
78
79
 
80
+ inputargs = [
81
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
82
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST3"),
83
+ "--alternateoutput",
84
+ os.path.join(testtemproot, "onlyregressors"),
85
+ "--outputlevel",
86
+ "onlyregressors",
87
+ ]
88
+ rapidtide_retroregress.retroregress(rapidtide_retroregress.process_args(inputargs=inputargs))
79
89
 
80
90
  if __name__ == "__main__":
81
91
  mpl.use("TkAgg")
@@ -17,7 +17,6 @@
17
17
  #
18
18
  #
19
19
  import os
20
- import subprocess
21
20
 
22
21
  import matplotlib as mpl
23
22
 
@@ -153,7 +153,6 @@ def eval_refinedelay(
153
153
  "alwaysmultiproc": False,
154
154
  "focaldebug": debug,
155
155
  "fmrifreq": Fs,
156
- "textio": False,
157
156
  }
158
157
 
159
158
  regressderivratios, regressrvalues = tide_refinedelay.getderivratios(
@@ -186,8 +185,6 @@ def eval_refinedelay(
186
185
  validvoxels,
187
186
  (xdim, ydim, slicedim),
188
187
  patchthresh=3.0,
189
- fileiscifti=False,
190
- textio=False,
191
188
  rt_floattype="float64",
192
189
  debug=debug,
193
190
  )