rapidtide 3.0a13__tar.gz → 3.0a14__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 (358) hide show
  1. {rapidtide-3.0a13 → rapidtide-3.0a14}/CHANGELOG.md +12 -3
  2. {rapidtide-3.0a13/rapidtide.egg-info → rapidtide-3.0a14}/PKG-INFO +1 -1
  3. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/DerivativeDelay.py +3 -1
  4. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testdelayvar +2 -1
  5. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/linfitfiltpass.py +2 -0
  6. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/makelaggedtcs.py +8 -5
  7. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/multiproc.py +8 -11
  8. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/refinedelay.py +173 -86
  9. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunhappy_v1.py +13 -5
  10. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunhappy_v2.py +16 -8
  11. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunhappy_v3.py +16 -8
  12. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunhappy_v4.py +16 -8
  13. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunhappy_v5.py +14 -6
  14. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunrapidtide_v1.py +18 -10
  15. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunrapidtide_v2.py +21 -13
  16. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunrapidtide_v3.py +14 -6
  17. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunrapidtide_v4.py +14 -7
  18. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunrapidtide_v5.py +12 -4
  19. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fullrunrapidtide_v6.py +23 -15
  20. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_refinedelay.py +3 -1
  21. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/atlasaverage.py +40 -12
  22. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/delayvar.py +121 -33
  23. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/rapidtide.py +12 -8
  24. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/rapidtide_parser.py +13 -15
  25. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/regressfrommaps.py +2 -0
  26. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/retrolagtcs.py +1 -0
  27. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/retroregress.py +25 -1
  28. {rapidtide-3.0a13 → rapidtide-3.0a14/rapidtide.egg-info}/PKG-INFO +1 -1
  29. {rapidtide-3.0a13 → rapidtide-3.0a14}/CODE_OF_CONDUCT.md +0 -0
  30. {rapidtide-3.0a13 → rapidtide-3.0a14}/CONTRIBUTING.md +0 -0
  31. {rapidtide-3.0a13 → rapidtide-3.0a14}/INSTALL.rst +0 -0
  32. {rapidtide-3.0a13 → rapidtide-3.0a14}/LICENSE +0 -0
  33. {rapidtide-3.0a13 → rapidtide-3.0a14}/MANIFEST.in +0 -0
  34. {rapidtide-3.0a13 → rapidtide-3.0a14}/README.rst +0 -0
  35. {rapidtide-3.0a13 → rapidtide-3.0a14}/TODO.md +0 -0
  36. {rapidtide-3.0a13 → rapidtide-3.0a14}/USAGE.rst +0 -0
  37. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/download-nda-data +0 -0
  38. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/downloadcmd-auther +0 -0
  39. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/gmscalc-HCPYA +0 -0
  40. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/list-rapidtide-relevant-images +0 -0
  41. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/mount-and-run +0 -0
  42. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/rapidtide-HCPYA +0 -0
  43. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/rapidtide-cloud-test +0 -0
  44. {rapidtide-3.0a13 → rapidtide-3.0a14}/cloud/simple-cp-test +0 -0
  45. {rapidtide-3.0a13 → rapidtide-3.0a14}/pyproject.toml +0 -0
  46. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/Colortables.py +0 -0
  47. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/OrthoImageItem.py +0 -0
  48. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/RapidtideDataset.py +0 -0
  49. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/RegressorRefiner.py +0 -0
  50. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/__init__.py +0 -0
  51. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/_version.py +0 -0
  52. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/calcandfitcorrpairs.py +0 -0
  53. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/calccoherence.py +0 -0
  54. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/calcnullsimfunc.py +0 -0
  55. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/calcsimfunc.py +0 -0
  56. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/correlate.py +0 -0
  57. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/installtestdata +0 -0
  58. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/test_findmaxlag.py +0 -0
  59. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/test_io +0 -0
  60. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/test_mlregressallt.py +0 -0
  61. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/test_rapidtidecompare +0 -0
  62. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testalign +0 -0
  63. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testatlasaverage +0 -0
  64. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testboth +0 -0
  65. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testcifti +0 -0
  66. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testcomplex +0 -0
  67. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testdecomp +0 -0
  68. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testfileorfloat +0 -0
  69. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testfingerprint +0 -0
  70. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testfmri +0 -0
  71. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testfmridocker +0 -0
  72. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testfrozen +0 -0
  73. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testfuncs +0 -0
  74. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testglmfilt +0 -0
  75. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testhappy +0 -0
  76. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testinitdelay +0 -0
  77. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testlinfit +0 -0
  78. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testlocalflow +0 -0
  79. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testnewrefine +0 -0
  80. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testnoiseamp +0 -0
  81. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testoscorr +0 -0
  82. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testpad +0 -0
  83. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testrefineonly +0 -0
  84. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testretro +0 -0
  85. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testretrolagtcs +0 -0
  86. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/examples/src/testsimdata +0 -0
  87. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/models/model_revised/model.h5 +0 -0
  88. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/models/model_revised/model_meta.json +0 -0
  89. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/models/model_serdar/model.h5 +0 -0
  90. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/models/model_serdar/model_meta.json +0 -0
  91. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/models/model_serdar2/model.h5 +0 -0
  92. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/models/model_serdar2/model_meta.json +0 -0
  93. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ASPECTS_2mm.nii.gz +0 -0
  94. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ASPECTS_2mm_mask.nii.gz +0 -0
  95. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ASPECTS_3mm.nii.gz +0 -0
  96. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ASPECTS_3mm_mask.nii.gz +0 -0
  97. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ASPECTS_regions.txt +0 -0
  98. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm.nii.gz +0 -0
  99. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm_mask.nii.gz +0 -0
  100. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/ATTbasedFlowTerritories_split_regions.txt +0 -0
  101. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200_binmask_2mm.nii.gz +0 -0
  102. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200_lag_2mm.nii.gz +0 -0
  103. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200_mask_2mm.nii.gz +0 -0
  104. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200_negmask_2mm.nii.gz +0 -0
  105. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200_sigma_2mm.nii.gz +0 -0
  106. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200_strength_2mm.nii.gz +0 -0
  107. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
  108. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
  109. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
  110. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
  111. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_graylaghist.json +0 -0
  112. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
  113. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_laghist.json +0 -0
  114. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
  115. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
  116. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
  117. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
  118. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
  119. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
  120. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
  121. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
  122. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_whitelaghist.json +0 -0
  123. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
  124. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +0 -0
  125. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +0 -0
  126. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  127. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1.xml +0 -0
  128. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_regions.txt +0 -0
  129. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  130. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  131. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2.xml +0 -0
  132. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_regions.txt +0 -0
  133. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  134. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  135. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
  136. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
  137. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
  138. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
  139. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/MNI152_T1_3mm.nii.gz +0 -0
  140. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/MNI152_T1_3mm_brain_mask.nii.gz +0 -0
  141. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/data/reference/slicetimes/HCP-YA_slicetimes.txt +0 -0
  142. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/dlfilter.py +0 -0
  143. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/externaltools.py +0 -0
  144. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/fMRIData_class.py +0 -0
  145. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/filter.py +0 -0
  146. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/fit.py +0 -0
  147. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/happy_supportfuncs.py +0 -0
  148. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/helper_classes.py +0 -0
  149. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/io.py +0 -0
  150. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/maskutil.py +0 -0
  151. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/miscmath.py +0 -0
  152. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/patchmatch.py +0 -0
  153. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/peakeval.py +0 -0
  154. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/qualitycheck.py +0 -0
  155. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/refineregressor.py +0 -0
  156. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/resample.py +0 -0
  157. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/__init__.py +0 -0
  158. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/adjustoffset.py +0 -0
  159. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/aligntcs.py +0 -0
  160. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/applydlfilter.py +0 -0
  161. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/atlasaverage.py +0 -0
  162. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/atlastool.py +0 -0
  163. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/calcicc.py +0 -0
  164. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/calctexticc.py +0 -0
  165. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/calcttest.py +0 -0
  166. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/ccorrica.py +0 -0
  167. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/delayvar.py +0 -0
  168. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/diffrois.py +0 -0
  169. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/endtidalproc.py +0 -0
  170. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/fdica.py +0 -0
  171. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/filtnifti.py +0 -0
  172. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/filttc.py +0 -0
  173. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/fingerprint.py +0 -0
  174. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/fixtr.py +0 -0
  175. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/gmscalc.py +0 -0
  176. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/happy.py +0 -0
  177. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/happy2std.py +0 -0
  178. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/happywarp.py +0 -0
  179. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/histnifti.py +0 -0
  180. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/histtc.py +0 -0
  181. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/linfitfilt.py +0 -0
  182. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/localflow.py +0 -0
  183. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/mergequality.py +0 -0
  184. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/pairproc.py +0 -0
  185. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/pairwisemergenifti.py +0 -0
  186. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/physiofreq.py +0 -0
  187. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/pixelcomp.py +0 -0
  188. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/plethquality.py +0 -0
  189. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/polyfitim.py +0 -0
  190. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/proj2flow.py +0 -0
  191. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/rankimage.py +0 -0
  192. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/rapidtide.py +0 -0
  193. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/rapidtide2std.py +0 -0
  194. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/resamplenifti.py +0 -0
  195. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/resampletc.py +0 -0
  196. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/retrolagtcs.py +0 -0
  197. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/retroregress.py +0 -0
  198. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/roisummarize.py +0 -0
  199. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/runqualitycheck.py +0 -0
  200. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/showarbcorr.py +0 -0
  201. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/showhist.py +0 -0
  202. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/showstxcorr.py +0 -0
  203. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/showtc.py +0 -0
  204. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/showxcorr_legacy.py +0 -0
  205. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/showxcorrx.py +0 -0
  206. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/showxy.py +0 -0
  207. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/simdata.py +0 -0
  208. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/spatialdecomp.py +0 -0
  209. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/spatialfit.py +0 -0
  210. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/spatialmi.py +0 -0
  211. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/spectrogram.py +0 -0
  212. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/stupidramtricks.py +0 -0
  213. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/synthASL.py +0 -0
  214. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/tcfrom2col.py +0 -0
  215. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/tcfrom3col.py +0 -0
  216. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/temporaldecomp.py +0 -0
  217. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/testhrv.py +0 -0
  218. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/threeD.py +0 -0
  219. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/tidepool.py +0 -0
  220. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/scripts/variabilityizer.py +0 -0
  221. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/simfuncfit.py +0 -0
  222. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/stats.py +0 -0
  223. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/.coveragerc +0 -0
  224. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/__init__.py +0 -0
  225. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/cleanposttest +0 -0
  226. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/matplotlibrc +0 -0
  227. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/resethappytargets +0 -0
  228. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/resetrapidtidetargets +0 -0
  229. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/resettargets +0 -0
  230. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/runlocaltest +0 -0
  231. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/showdirectories +0 -0
  232. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/showkernels +0 -0
  233. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_aliasedcorrelate.py +0 -0
  234. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_aligntcs.py +0 -0
  235. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_calcicc.py +0 -0
  236. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_congrid.py +0 -0
  237. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_correlate.py +0 -0
  238. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_corrpass.py +0 -0
  239. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_delayestimation.py +0 -0
  240. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_doresample.py +0 -0
  241. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_fastresampler.py +0 -0
  242. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_filter.py +0 -0
  243. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_findmaxlag.py +0 -0
  244. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_io.py +0 -0
  245. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_linfitfiltpass.py +0 -0
  246. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_mi.py +0 -0
  247. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_miscmath.py +0 -0
  248. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_motionregress.py +0 -0
  249. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_nullcorr.py +0 -0
  250. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_padvec.py +0 -0
  251. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_phaseanalysis.py +0 -0
  252. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_rapidtideparser.py +0 -0
  253. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_runmisc.py +0 -0
  254. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_sharedmem.py +0 -0
  255. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_simulate.py +0 -0
  256. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_stcorrelate.py +0 -0
  257. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_timeshift.py +0 -0
  258. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_valtoindex.py +0 -0
  259. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/test_zRapidtideDataset.py +0 -0
  260. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_25.0Hz.txt +0 -0
  261. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  262. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_info.txt +0 -0
  263. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_25.0Hz.txt +0 -0
  264. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  265. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_normpleth_25.0Hz.txt +0 -0
  266. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_pleth_25.0Hz.txt +0 -0
  267. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/100206_REST1_LR_pleth_dlfiltered_25.0Hz.txt +0 -0
  268. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/fmri_globalmean.txt +0 -0
  269. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/happy_phase1target_vesselmask.nii.gz +0 -0
  270. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/happy_phase2output_vesselmask.nii.gz +0 -0
  271. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/happy_target_vesselmask.nii.gz +0 -0
  272. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/lforegressor.txt +0 -0
  273. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/lt_rt.txt +0 -0
  274. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/phasetest.txt +0 -0
  275. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/rapidtide2x_phase1target_reference_fmrires.txt +0 -0
  276. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/stcorrtest_Rvalue.txt +0 -0
  277. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/stcorrtest_delay.txt +0 -0
  278. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/stcorrtest_mask.txt +0 -0
  279. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/stcorrtest_pearson.txt +0 -0
  280. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/stcorrtest_pvalue.txt +0 -0
  281. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/testdata/testfilt.txt +0 -0
  282. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/tmp/.placeholder.txt +0 -0
  283. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/usercustomize.py +0 -0
  284. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tests/utils.py +0 -0
  285. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate.py +0 -0
  286. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate.ui +0 -0
  287. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate_alt.py +0 -0
  288. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate_alt.ui +0 -0
  289. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate_alt_qt6.py +0 -0
  290. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate_big.py +0 -0
  291. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate_big.ui +0 -0
  292. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate_big_qt6.py +0 -0
  293. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/tidepoolTemplate_qt6.py +0 -0
  294. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/transformerdlfilter.py +0 -0
  295. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/util.py +0 -0
  296. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/wiener.py +0 -0
  297. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/wiener2.py +0 -0
  298. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/__init__.py +0 -0
  299. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/adjustoffset.py +0 -0
  300. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/aligntcs.py +0 -0
  301. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/applydlfilter.py +0 -0
  302. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/atlastool.py +0 -0
  303. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/calctexticc.py +0 -0
  304. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/ccorrica.py +0 -0
  305. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/diffrois.py +0 -0
  306. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/endtidalproc.py +0 -0
  307. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/fdica.py +0 -0
  308. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/filtnifti.py +0 -0
  309. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/filttc.py +0 -0
  310. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/fixtr.py +0 -0
  311. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/gmscalc.py +0 -0
  312. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/happy.py +0 -0
  313. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/happy2std.py +0 -0
  314. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/happy_parser.py +0 -0
  315. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/histnifti.py +0 -0
  316. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/histtc.py +0 -0
  317. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/linfitfilt.py +0 -0
  318. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/localflow.py +0 -0
  319. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/mergequality.py +0 -0
  320. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/niftidecomp.py +0 -0
  321. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/niftistats.py +0 -0
  322. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/pairproc.py +0 -0
  323. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/pairwisemergenifti.py +0 -0
  324. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/parser_funcs.py +0 -0
  325. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/physiofreq.py +0 -0
  326. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/pixelcomp.py +0 -0
  327. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/plethquality.py +0 -0
  328. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/polyfitim.py +0 -0
  329. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/proj2flow.py +0 -0
  330. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/rankimage.py +0 -0
  331. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/rapidtide2std.py +0 -0
  332. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/resamplenifti.py +0 -0
  333. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/resampletc.py +0 -0
  334. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/roisummarize.py +0 -0
  335. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/runqualitycheck.py +0 -0
  336. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/showarbcorr.py +0 -0
  337. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/showhist.py +0 -0
  338. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/showstxcorr.py +0 -0
  339. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/showtc.py +0 -0
  340. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/showxcorrx.py +0 -0
  341. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/showxy.py +0 -0
  342. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/simdata.py +0 -0
  343. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/spatialfit.py +0 -0
  344. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/spatialmi.py +0 -0
  345. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/spectrogram.py +0 -0
  346. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/synthASL.py +0 -0
  347. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/tcfrom2col.py +0 -0
  348. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/tcfrom3col.py +0 -0
  349. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/tidepool.py +0 -0
  350. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/utils.py +0 -0
  351. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide/workflows/variabilityizer.py +0 -0
  352. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide.egg-info/SOURCES.txt +0 -0
  353. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide.egg-info/dependency_links.txt +0 -0
  354. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide.egg-info/entry_points.txt +0 -0
  355. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide.egg-info/requires.txt +0 -0
  356. {rapidtide-3.0a13 → rapidtide-3.0a14}/rapidtide.egg-info/top_level.txt +0 -0
  357. {rapidtide-3.0a13 → rapidtide-3.0a14}/setup.cfg +0 -0
  358. {rapidtide-3.0a13 → rapidtide-3.0a14}/versioneer.py +0 -0
@@ -1,10 +1,19 @@
1
1
  # Release history
2
2
 
3
+ ## Version 3.0alpha14 (4/8/25)
4
+ * (rapidtide) Rationalized handling of zero-mean data - now use the ``--dataiszeromean`` argument to tell rapidtide how to make masks. ``--globalmaskmethod`` no longer exists.
5
+ * (retroregress) Some bugfixes.
6
+ * (atlasaverage) 4D file timecourse output is now a BIDS compliant json/tsv.gz pair, with timecourse labels, if desired.
7
+ * (delayvar) Secret bugfixes.
8
+ * (package) Fixed definition of ``APARC_WHITE`` to add cerebral white matter (oops!).
9
+ * (package) Made it easier to run local tests.
10
+ * (docs) Expanded theory of operation section.
11
+
3
12
  ## Version 3.0alpha13 (3/31/27)
4
- * (rapidtide, retroglm) Preserve the sign of the GLM fit R value (it might be useful for distinguishing arterial blood).
13
+ * (rapidtide, retroregress) Preserve the sign of the sLFO filter fit R value (it might be useful for distinguishing arterial blood).
5
14
  * (rapidtide) Fixed a bug with --dofinalrefine - now the shiftedtcs file IS written.
6
- * (delayvar) New secret program, for secret purposes, to satisfy a question I had. More later.
7
- * (package) Clarified that the final sLFO removal filter does NOT use a GLM (the current filter is an OLS filter)
15
+ * (delayvar) New secret program, for secret purposes, to satisfy a secret question I had. More later.
16
+ * (package) Clarified that the final sLFO removal filter does NOT use a GLM (the current filter is an OLS filter) by renaming routines and command line options.
8
17
 
9
18
  ## Version 3.0alpha12 (3/19/25)
10
19
  * (rapidtide) Added option to perform regressor refinement on last pass.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rapidtide
3
- Version: 3.0a13
3
+ Version: 3.0a14
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>
@@ -161,7 +161,9 @@ class DerivativeDelay:
161
161
  if args.focaldebug:
162
162
  print(f"calculating delayoffsets for {filteredregressderivratios.shape[0]} voxels")
163
163
  for i in range(filteredregressderivratios.shape[0]):
164
- delayoffset[i] = tide_refinedelay.ratiotodelay(filteredregressderivratios[i])
164
+ delayoffset[i], closestoffset = tide_refinedelay.ratiotodelay(
165
+ filteredregressderivratios[i]
166
+ )
165
167
  refinedvoxelstoreport = filteredregressderivratios.shape[0]
166
168
  else:
167
169
  medfiltregressderivratios = np.zeros_like(regressderivratios)
@@ -5,8 +5,9 @@ delayvar \
5
5
  ../dst/sub-RAPIDTIDETEST \
6
6
  --alternateoutput ../dst/delayvartest \
7
7
  --nprocs -1 \
8
- --windowsize 20 \
8
+ --windowsize 30 \
9
9
  --systemicfittype pca \
10
+ --trainrange -999 -999 \
10
11
  --pcacomponents 0.8 \
11
12
  --outputlevel max \
12
13
  --focaldebug \
@@ -97,6 +97,7 @@ def linfitfiltpass(
97
97
  mp_chunksize=1000,
98
98
  rt_floatset=np.float64,
99
99
  rt_floattype="float64",
100
+ verbose=True,
100
101
  debug=False,
101
102
  ):
102
103
  inputshape = np.shape(fmri_data)
@@ -184,6 +185,7 @@ def linfitfiltpass(
184
185
  GLM_consumer,
185
186
  inputshape,
186
187
  themask,
188
+ verbose=verbose,
187
189
  nprocs=nprocs,
188
190
  procbyvoxel=procbyvoxel,
189
191
  showprogressbar=showprogressbar,
@@ -24,8 +24,6 @@ from tqdm import tqdm
24
24
 
25
25
  import rapidtide.multiproc as tide_multiproc
26
26
 
27
- LGR = logging.getLogger("GENERAL")
28
-
29
27
 
30
28
  def _procOneVoxelMakelagtc(
31
29
  vox,
@@ -51,6 +49,7 @@ def makelaggedtcs(
51
49
  lagmask,
52
50
  lagtimes,
53
51
  lagtc,
52
+ LGR=None,
54
53
  nprocs=1,
55
54
  alwaysmultiproc=False,
56
55
  showprogressbar=True,
@@ -90,6 +89,7 @@ def makelaggedtcs(
90
89
  makelagtc_consumer,
91
90
  inputshape,
92
91
  lagmask,
92
+ verbose=(LGR is not None),
93
93
  nprocs=nprocs,
94
94
  showprogressbar=showprogressbar,
95
95
  chunksize=chunksize,
@@ -127,13 +127,16 @@ def makelaggedtcs(
127
127
  )
128
128
  volumetotal += 1
129
129
 
130
- LGR.info(f"\nLagged timecourses created for {volumetotal} voxels")
130
+ if LGR is not None:
131
+ LGR.info(f"\nLagged timecourses created for {volumetotal} voxels")
131
132
 
132
133
  # garbage collect
133
134
  uncollected = gc.collect()
134
135
  if uncollected != 0:
135
- LGR.info(f"garbage collected - unable to collect {uncollected} objects")
136
+ if LGR is not None:
137
+ LGR.info(f"garbage collected - unable to collect {uncollected} objects")
136
138
  else:
137
- LGR.info("garbage collected")
139
+ if LGR is not None:
140
+ LGR.info("garbage collected")
138
141
 
139
142
  return volumetotal
@@ -77,8 +77,8 @@ def _process_data(data_in, inQ, outQ, showprogressbar=True, reportstep=1000, chu
77
77
  pbar.update(1)
78
78
  if numreturned > remainder - 1:
79
79
  break
80
-
81
- print()
80
+ if showprogressbar:
81
+ print()
82
82
 
83
83
  return data_out
84
84
 
@@ -88,6 +88,7 @@ def run_multiproc(
88
88
  inputshape,
89
89
  maskarray,
90
90
  nprocs=1,
91
+ verbose=True,
91
92
  procbyvoxel=True,
92
93
  showprogressbar=True,
93
94
  chunksize=1000,
@@ -105,13 +106,6 @@ def run_multiproc(
105
106
  workers = [ctx.Process(target=consumerfunc, args=(inQ, outQ)) for i in range(n_workers)]
106
107
  # signal.signal(signal.SIGINT, original_sigint_handler)
107
108
  else:
108
- """# try adding this magic incantation to get coverage to record multiprocessing properly
109
- # This fails for python 3.8 and above
110
- try:
111
- from pytest_cov.embed import cleanup
112
- except ImportError:
113
- cleanup = None
114
- """
115
109
  cleanup = None # just disable this for now
116
110
  inQ = mp.Queue()
117
111
  outQ = mp.Queue()
@@ -141,7 +135,8 @@ def run_multiproc(
141
135
  data_in.append(d)
142
136
  elif maskarray[d] > 0.5:
143
137
  data_in.append(d)
144
- print("processing", len(data_in), procunit + " with", n_workers, "processes")
138
+ if verbose:
139
+ print("processing", len(data_in), procunit + " with", n_workers, "processes")
145
140
  data_out = _process_data(
146
141
  data_in, inQ, outQ, showprogressbar=showprogressbar, chunksize=chunksize
147
142
  )
@@ -162,6 +157,7 @@ def run_multithread(
162
157
  consumerfunc,
163
158
  inputshape,
164
159
  maskarray,
160
+ verbose=True,
165
161
  nprocs=1,
166
162
  procbyvoxel=True,
167
163
  showprogressbar=True,
@@ -197,7 +193,8 @@ def run_multithread(
197
193
  data_in.append(d)
198
194
  elif maskarray[d] > 0:
199
195
  data_in.append(d)
200
- print("processing", len(data_in), procunit + " with", n_workers, "threads")
196
+ if verbose:
197
+ print("processing", len(data_in), procunit + " with", n_workers, "threads")
201
198
  data_out = _process_data(
202
199
  data_in, inQ, outQ, showprogressbar=showprogressbar, chunksize=chunksize
203
200
  )
@@ -26,7 +26,7 @@ import rapidtide.filter as tide_filt
26
26
  import rapidtide.io as tide_io
27
27
  import rapidtide.workflows.regressfrommaps as tide_regressfrommaps
28
28
 
29
- global ratiotooffsetfunc, maplimits
29
+ global ratiotooffsetfunc, funcoffsets, maplimits
30
30
 
31
31
 
32
32
  def smooth(y, box_pts):
@@ -40,37 +40,39 @@ def trainratiotooffset(
40
40
  timeaxis,
41
41
  outputname,
42
42
  outputlevel,
43
- trainwidth=0.0,
44
- trainstep=0.5,
43
+ trainlagmin=0.0,
44
+ trainlagmax=0.0,
45
+ trainlagstep=0.5,
45
46
  mindelay=-3.0,
46
47
  maxdelay=3.0,
47
48
  numpoints=501,
48
49
  smoothpts=3,
49
50
  edgepad=5,
50
51
  regressderivs=1,
52
+ LGR=None,
53
+ TimingLGR=None,
54
+ verbose=False,
51
55
  debug=False,
52
56
  ):
53
- global ratiotooffsetfunc, maplimits
57
+ global ratiotooffsetfunc, funcoffsets, maplimits
54
58
 
55
59
  if debug:
56
60
  print("ratiotooffsetfunc:")
57
61
  lagtcgenerator.info(prefix="\t")
58
62
  print("\ttimeaxis:", timeaxis)
59
63
  print("\toutputname:", outputname)
60
- print("\ttrainwidth:", trainwidth)
61
- print("\ttrainstep:", trainstep)
64
+ print("\ttrainlagmin:", trainlagmin)
65
+ print("\ttrainlagmax:", trainlagmax)
66
+ print("\ttrainlagstep:", trainlagstep)
62
67
  print("\tmindelay:", mindelay)
63
68
  print("\tmaxdelay:", maxdelay)
64
69
  print("\tsmoothpts:", smoothpts)
65
70
  print("\tedgepad:", edgepad)
66
71
  print("\tregressderivs:", regressderivs)
67
72
  print("\tlagtcgenerator:", lagtcgenerator)
73
+
68
74
  # make a delay map
69
75
  delaystep = (maxdelay - mindelay) / (numpoints - 1)
70
- if debug:
71
- print(f"{delaystep=}")
72
- print(f"{mindelay=}")
73
- print(f"{maxdelay=}")
74
76
  lagtimes = np.linspace(
75
77
  mindelay - edgepad * delaystep,
76
78
  maxdelay + edgepad * delaystep,
@@ -80,6 +82,7 @@ def trainratiotooffset(
80
82
  if debug:
81
83
  print(f"{mindelay=}")
82
84
  print(f"{maxdelay=}")
85
+ print(f"{delaystep=}")
83
86
  print("lagtimes=", lagtimes)
84
87
 
85
88
  # set up for getratioderivs call
@@ -111,103 +114,142 @@ def trainratiotooffset(
111
114
  "textio": False,
112
115
  }
113
116
 
114
- if trainwidth > 0.0:
115
- numsteps = int(trainwidth / trainstep)
116
- numsteps += 1 - numsteps % 2 # force numsteps to be odd
117
- numsteps = np.max((numsteps, 3)) # ensure at least 1 positive and 1 negative step
117
+ if trainlagmax - trainlagmin > 0.0:
118
+ numnegoffsets = np.max((-int(np.round(trainlagmin / trainlagstep, 0)), 1))
119
+ numposoffsets = np.max((int(np.round(trainlagmax / trainlagstep, 0)), 1))
120
+ numoffsets = numnegoffsets + 1 + numposoffsets
118
121
  trainoffsets = (
119
- np.linspace(0, numsteps * trainstep, numsteps, endpoint=True)
120
- - (numsteps // 2) * trainstep
122
+ np.linspace(0, (numoffsets - 1) * trainlagstep, numoffsets, endpoint=True)
123
+ - numnegoffsets * trainlagstep
121
124
  )
122
125
  else:
123
126
  trainoffsets = np.array([0.0], dtype=float)
127
+ numoffsets = 1
124
128
  if debug:
125
129
  print("trainoffsets:", trainoffsets)
130
+ allsmoothregressderivratios = np.zeros(
131
+ (numpoints + 2 * edgepad, numoffsets), dtype=rt_floattype
132
+ )
133
+ theEVs = np.zeros((numoffsets, timeaxis.shape[0]), dtype=float)
126
134
 
127
- for i in range(len(trainoffsets)):
128
- pass
135
+ if verbose and (LGR is not None):
136
+ thisLGR = LGR
137
+ thisTimingLGR = TimingLGR
138
+ else:
139
+ thisLGR = None
140
+ thisTimingLGR = None
129
141
 
130
- # now make synthetic fMRI data
131
- for i in range(numpoints + 2 * edgepad):
132
- fmridata[i, :] = lagtcgenerator.yfromx(timeaxis - lagtimes[i])
142
+ for whichoffset in range(numoffsets):
143
+ thisoffset = trainoffsets[whichoffset]
133
144
 
134
- regressderivratios, regressrvalues = getderivratios(
135
- fmridata,
136
- validvoxels,
137
- timeaxis,
138
- 0.0 * lagtimes,
139
- fmrimask,
140
- lagtcgenerator,
141
- "glm",
142
- "refinedelaytest",
143
- sampletime,
144
- sLFOfitmean,
145
- rvalue,
146
- r2value,
147
- fitNorm[:, :2],
148
- fitcoeff[:, :2],
149
- movingsignal,
150
- lagtc,
151
- filtereddata,
152
- None,
153
- None,
154
- optiondict,
155
- regressderivs=regressderivs,
156
- debug=debug,
157
- )
158
- if debug:
159
- print("before trimming")
160
- print(f"{regressderivratios.shape=}")
161
- print(f"{lagtimes.shape=}")
162
- if regressderivs == 1:
163
- smoothregressderivratios = tide_filt.unpadvec(
164
- smooth(tide_filt.padvec(regressderivratios, padlen=20, padtype="constant"), smoothpts),
165
- padlen=20,
145
+ # now make synthetic fMRI data
146
+ for i in range(numpoints + 2 * edgepad):
147
+ fmridata[i, :] = lagtcgenerator.yfromx(timeaxis - lagtimes[i] + thisoffset)
148
+
149
+ theEVs[whichoffset, :] = lagtcgenerator.yfromx(timeaxis + thisoffset)
150
+
151
+ regressderivratios, regressrvalues = getderivratios(
152
+ fmridata,
153
+ validvoxels,
154
+ timeaxis + thisoffset,
155
+ 0.0 * lagtimes,
156
+ fmrimask,
157
+ lagtcgenerator,
158
+ "glm",
159
+ "refinedelaytest",
160
+ sampletime,
161
+ sLFOfitmean,
162
+ rvalue,
163
+ r2value,
164
+ fitNorm[:, :2],
165
+ fitcoeff[:, :2],
166
+ movingsignal,
167
+ lagtc,
168
+ filtereddata,
169
+ thisLGR,
170
+ thisTimingLGR,
171
+ optiondict,
172
+ regressderivs=regressderivs,
173
+ debug=debug,
166
174
  )
167
- regressderivratios = regressderivratios[edgepad:-edgepad]
168
- smoothregressderivratios = smoothregressderivratios[edgepad:-edgepad]
169
- else:
170
- smoothregressderivratios = np.zeros_like(regressderivratios)
171
- for i in range(regressderivs):
172
- smoothregressderivratios[i, :] = tide_filt.unpadvec(
175
+ if debug:
176
+ print("before trimming")
177
+ print(f"{regressderivratios.shape=}")
178
+ print(f"{lagtimes.shape=}")
179
+ if regressderivs == 1:
180
+ smoothregressderivratios = tide_filt.unpadvec(
173
181
  smooth(
174
- tide_filt.padvec(regressderivratios[i, :], padlen=20, padtype="constant"),
175
- smoothpts,
182
+ tide_filt.padvec(regressderivratios, padlen=20, padtype="constant"), smoothpts
176
183
  ),
177
184
  padlen=20,
178
185
  )
179
- regressderivratios = regressderivratios[:, edgepad:-edgepad]
180
- smoothregressderivratios = smoothregressderivratios[:, edgepad:-edgepad]
186
+ # regressderivratios = regressderivratios[edgepad:-edgepad]
187
+ allsmoothregressderivratios[:, whichoffset] = smoothregressderivratios + 0.0
188
+ else:
189
+ smoothregressderivratios = np.zeros_like(regressderivratios)
190
+ for i in range(regressderivs):
191
+ allsmoothregressderivratios[i, :] = tide_filt.unpadvec(
192
+ smooth(
193
+ tide_filt.padvec(regressderivratios[i, :], padlen=20, padtype="constant"),
194
+ smoothpts,
195
+ ),
196
+ padlen=20,
197
+ )
198
+ # regressderivratios = regressderivratios[:, edgepad:-edgepad]
199
+ allsmoothregressderivratios = smoothregressderivratios + 0.0
200
+
201
+ allsmoothregressderivratios = allsmoothregressderivratios[edgepad:-edgepad, :]
181
202
  lagtimes = lagtimes[edgepad:-edgepad]
182
203
  if debug:
183
204
  print("after trimming")
184
205
  print(f"{regressderivratios.shape=}")
185
- print(f"{smoothregressderivratios.shape=}")
206
+ print(f"{allsmoothregressderivratios.shape=}")
186
207
  print(f"{lagtimes.shape=}")
187
208
 
188
- # make sure the mapping function is legal
189
- xaxis = smoothregressderivratios[::-1]
190
- yaxis = lagtimes[::-1]
191
- midpoint = int(len(xaxis) // 2)
192
- lowerlim = midpoint + 0
193
- while (lowerlim > 1) and xaxis[lowerlim] > xaxis[lowerlim - 1]:
194
- lowerlim -= 1
195
- upperlim = midpoint + 0
196
- while (upperlim < len(xaxis) - 2) and xaxis[upperlim] < xaxis[upperlim + 1]:
197
- upperlim += 1
198
- xaxis = xaxis[lowerlim : upperlim + 1]
199
- yaxis = yaxis[lowerlim : upperlim + 1]
200
- ratiotooffsetfunc = CubicSpline(xaxis, yaxis)
209
+ # find the minimum legal limits of the mapping function
210
+ highestlowerlim = 0
211
+ lowestupperlim = numpoints
212
+ for whichoffset in range(numoffsets):
213
+ xaxis = allsmoothregressderivratios[::-1, whichoffset]
214
+ midpoint = int(len(xaxis) // 2)
215
+ lowerlim = midpoint + 0
216
+ while (lowerlim > 1) and xaxis[lowerlim] > xaxis[lowerlim - 1]:
217
+ lowerlim -= 1
218
+ upperlim = midpoint + 0
219
+ while (upperlim < len(xaxis) - 2) and xaxis[upperlim] < xaxis[upperlim + 1]:
220
+ upperlim += 1
221
+ if lowerlim > highestlowerlim:
222
+ highestlowerlim = lowerlim
223
+ if upperlim < lowestupperlim:
224
+ lowestupperlim = upperlim
225
+
226
+ ratiotooffsetfunc = []
227
+ funcoffsets = []
228
+ for whichoffset in range(numoffsets):
229
+ xaxis = allsmoothregressderivratios[::-1, whichoffset]
230
+ yaxis = lagtimes[::-1]
231
+ xaxis = xaxis[highestlowerlim : lowestupperlim + 1]
232
+ yaxis = yaxis[highestlowerlim : lowestupperlim + 1]
233
+ ratiotooffsetfunc.append(CubicSpline(xaxis, yaxis))
234
+ funcoffsets.append(trainoffsets[whichoffset] + 0.0)
201
235
  maplimits = (xaxis[0], xaxis[-1])
202
236
 
203
237
  if outputlevel != "min":
204
238
  resampaxis = np.linspace(xaxis[0], xaxis[-1], num=len(xaxis), endpoint=True)
239
+ outputfuncs = np.zeros((resampaxis.size, numoffsets), dtype=float)
240
+ colnames = []
241
+ for whichoffset in range(numoffsets):
242
+ colnames.append(f"{funcoffsets[whichoffset]}")
243
+ outputfuncs[:, whichoffset] = ratiotooffsetfunc[whichoffset](resampaxis)
244
+ if debug:
245
+ print(f"{colnames=}")
246
+ print(f"{outputfuncs.shape=}")
205
247
  tide_io.writebidstsv(
206
248
  f"{outputname}_desc-ratiotodelayfunc_timeseries",
207
- ratiotooffsetfunc(resampaxis),
249
+ np.transpose(outputfuncs),
208
250
  1.0 / (resampaxis[1] - resampaxis[0]),
209
251
  starttime=resampaxis[0],
210
- columns=["delay"],
252
+ columns=colnames,
211
253
  extraheaderinfo={
212
254
  "Description": "The function mapping derivative ratio to delay",
213
255
  "minratio": f"{resampaxis[0]}",
@@ -217,16 +259,59 @@ def trainratiotooffset(
217
259
  yaxislabel="time",
218
260
  append=False,
219
261
  )
262
+ if numoffsets > 1:
263
+ print(f"{theEVs.shape=}, {numoffsets=}, {(numoffsets>1)=}")
264
+ tide_io.writebidstsv(
265
+ f"{outputname}_desc-trainratioEV_timeseries",
266
+ theEVs,
267
+ 1.0 / (timeaxis[1] - timeaxis[0]),
268
+ starttime=timeaxis[0],
269
+ columns=colnames,
270
+ extraheaderinfo={"Description": f"EVs used for each offset"},
271
+ append=False,
272
+ )
273
+
220
274
 
275
+ def ratiotodelay(theratio, offset=0.0, debug=False):
276
+ global ratiotooffsetfunc, funcoffsets, maplimits
277
+
278
+ # find the closest calculated offset
279
+ closestindex = 0
280
+ for offsetindex in range(1, len(funcoffsets)):
281
+ if np.fabs(funcoffsets[offsetindex] - offset) < np.fabs(
282
+ funcoffsets[closestindex] - offset
283
+ ):
284
+ closestindex = offsetindex
285
+ closestoffset = funcoffsets[closestindex]
286
+ distance = np.fabs(funcoffsets[closestindex] - offset)
287
+ """if (maplimits[0] < theratio < maplimits[1]) and (
288
+ distance < (funcoffsets[1] - funcoffsets[0]) / 2
289
+ ):
290
+ return (
291
+ ratiotooffsetfunc[closestindex](theratio) + (offset - closestoffset),
292
+ closestoffset,
293
+ )
294
+ else:
295
+ return (
296
+ 0.0,
297
+ closestoffset,
298
+ )"""
221
299
 
222
- def ratiotodelay(theratio):
223
- global ratiotooffsetfunc, maplimits
224
300
  if theratio < maplimits[0]:
225
- return ratiotooffsetfunc(maplimits[0])
301
+ return (
302
+ ratiotooffsetfunc[closestindex](maplimits[0]) + (offset - closestoffset),
303
+ closestoffset,
304
+ )
226
305
  elif theratio > maplimits[1]:
227
- return ratiotooffsetfunc(maplimits[1])
306
+ return (
307
+ ratiotooffsetfunc[closestindex](maplimits[1]),
308
+ closestoffset,
309
+ )
228
310
  else:
229
- return ratiotooffsetfunc(theratio)
311
+ return (
312
+ ratiotooffsetfunc[closestindex](theratio),
313
+ closestoffset,
314
+ )
230
315
 
231
316
 
232
317
  def coffstodelay(thecoffs, mindelay=-3.0, maxdelay=3.0, debug=False):
@@ -316,7 +401,7 @@ def getderivratios(
316
401
  LGR,
317
402
  TimingLGR,
318
403
  optiondict["regressfiltthreshval"],
319
- optiondict["saveminimumsLFOfiltfiles"],
404
+ False,
320
405
  nprocs_makelaggedtcs=optiondict["nprocs_makelaggedtcs"],
321
406
  nprocs_regressionfilt=optiondict["nprocs_regressionfilt"],
322
407
  regressderivs=regressderivs,
@@ -349,6 +434,7 @@ def filterderivratios(
349
434
  fileiscifti=False,
350
435
  textio=False,
351
436
  rt_floattype="float64",
437
+ verbose=True,
352
438
  debug=False,
353
439
  ):
354
440
 
@@ -360,7 +446,8 @@ def filterderivratios(
360
446
 
361
447
  # filter the ratio to find weird values
362
448
  themad = mad(regressderivratios).astype(np.float64)
363
- print(f"MAD of regression fit derivative ratios = {themad}")
449
+ if verbose:
450
+ print(f"MAD of regression fit derivative ratios = {themad}")
364
451
  outmaparray, internalspaceshape = tide_io.makedestarray(
365
452
  nativespaceshape,
366
453
  textio=textio,
@@ -25,12 +25,20 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import create_dir, get_examples_path, get_test_temp_path, mse
26
26
 
27
27
 
28
- def test_fullrunhappy_v1(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v1(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout1"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout1"),
34
42
  "--mklthreads",
35
43
  "-1",
36
44
  "--spatialregression",
@@ -42,4 +50,4 @@ def test_fullrunhappy_v1(debug=False, displayplots=False):
42
50
 
43
51
  if __name__ == "__main__":
44
52
  mpl.use("TkAgg")
45
- test_fullrunhappy_v1(debug=True, displayplots=True)
53
+ test_fullrunhappy_v1(debug=True, local=True, displayplots=True)
@@ -25,16 +25,24 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunhappy_v2(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v2(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout2"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout2"),
34
42
  "--estweights",
35
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
43
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
36
44
  "--projmask",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
45
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
38
46
  "--mklthreads",
39
47
  "-1",
40
48
  "--model",
@@ -43,7 +51,7 @@ def test_fullrunhappy_v2(debug=False, displayplots=False):
43
51
  "--temporalregression",
44
52
  "--cardiacfile",
45
53
  os.path.join(
46
- get_examples_path(),
54
+ exampleroot,
47
55
  "sub-HAPPYTEST_desc-slicerescardfromfmri_timeseries.json:cardiacfromfmri_dlfiltered",
48
56
  ),
49
57
  "--increaseoutputlevel",
@@ -54,4 +62,4 @@ def test_fullrunhappy_v2(debug=False, displayplots=False):
54
62
 
55
63
  if __name__ == "__main__":
56
64
  mpl.use("TkAgg")
57
- test_fullrunhappy_v2(debug=True, displayplots=True)
65
+ test_fullrunhappy_v2(debug=True, local=True, displayplots=True)
@@ -25,16 +25,24 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunhappy_v3(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v3(debug=False, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout3"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout3"),
34
42
  "--estweights",
35
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
43
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
36
44
  "--projmask",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
45
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
38
46
  "--mklthreads",
39
47
  "-1",
40
48
  "--model",
@@ -42,10 +50,10 @@ def test_fullrunhappy_v3(debug=False, displayplots=False):
42
50
  "--cardcalconly",
43
51
  ]
44
52
  # "--motionfile",
45
- # os.path.join(get_examples_path(), "sub-HAPPYTEST_mcf.par"),
53
+ # os.path.join(exampleroot, "sub-HAPPYTEST_mcf.par"),
46
54
  happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
47
55
 
48
56
 
49
57
  if __name__ == "__main__":
50
58
  mpl.use("TkAgg")
51
- test_fullrunhappy_v3(debug=True, displayplots=True)
59
+ test_fullrunhappy_v3(debug=True, local=True, displayplots=True)