rapidtide 3.0a6__tar.gz → 3.0a8__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 (347) hide show
  1. {rapidtide-3.0a6 → rapidtide-3.0a8}/CHANGELOG.md +13 -0
  2. {rapidtide-3.0a6 → rapidtide-3.0a8}/INSTALL.rst +1 -1
  3. {rapidtide-3.0a6/rapidtide.egg-info → rapidtide-3.0a8}/PKG-INFO +3 -2
  4. {rapidtide-3.0a6 → rapidtide-3.0a8}/pyproject.toml +3 -2
  5. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/OrthoImageItem.py +25 -5
  6. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/RapidtideDataset.py +1 -0
  7. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/correlate.py +7 -5
  8. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testfmri +3 -14
  9. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testhappy +7 -2
  10. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/happy_supportfuncs.py +77 -8
  11. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/helper_classes.py +10 -1
  12. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/io.py +4 -2
  13. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/simfuncfit.py +1 -1
  14. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_filter.py +1 -1
  15. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunhappy_v2.py +1 -1
  16. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunhappy_v3.py +1 -1
  17. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunhappy_v4.py +3 -1
  18. rapidtide-3.0a8/rapidtide/tests/test_fullrunhappy_v5.py +56 -0
  19. rapidtide-3.0a8/rapidtide/tidepoolTemplate_big.ui +1888 -0
  20. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/util.py +1 -2
  21. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/happy.py +122 -90
  22. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/happy_parser.py +24 -22
  23. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/simdata.py +3 -1
  24. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/tidepool.py +435 -282
  25. {rapidtide-3.0a6 → rapidtide-3.0a8/rapidtide.egg-info}/PKG-INFO +3 -2
  26. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide.egg-info/SOURCES.txt +2 -0
  27. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide.egg-info/requires.txt +2 -1
  28. {rapidtide-3.0a6 → rapidtide-3.0a8}/CODE_OF_CONDUCT.md +0 -0
  29. {rapidtide-3.0a6 → rapidtide-3.0a8}/CONTRIBUTING.md +0 -0
  30. {rapidtide-3.0a6 → rapidtide-3.0a8}/LICENSE +0 -0
  31. {rapidtide-3.0a6 → rapidtide-3.0a8}/MANIFEST.in +0 -0
  32. {rapidtide-3.0a6 → rapidtide-3.0a8}/README.rst +0 -0
  33. {rapidtide-3.0a6 → rapidtide-3.0a8}/TODO.md +0 -0
  34. {rapidtide-3.0a6 → rapidtide-3.0a8}/USAGE.rst +0 -0
  35. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/download-nda-data +0 -0
  36. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/downloadcmd-auther +0 -0
  37. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/gmscalc-HCPYA +0 -0
  38. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/list-rapidtide-relevant-images +0 -0
  39. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/mount-and-run +0 -0
  40. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/rapidtide-HCPYA +0 -0
  41. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/rapidtide-cloud-test +0 -0
  42. {rapidtide-3.0a6 → rapidtide-3.0a8}/cloud/simple-cp-test +0 -0
  43. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/Colortables.py +0 -0
  44. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/__init__.py +0 -0
  45. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/_version.py +0 -0
  46. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/calcandfitcorrpairs.py +0 -0
  47. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/calccoherence.py +0 -0
  48. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/calcnullsimfunc.py +0 -0
  49. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/calcsimfunc.py +0 -0
  50. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/installtestdata +0 -0
  51. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/test_findmaxlag.py +0 -0
  52. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/test_io +0 -0
  53. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/test_mlregressallt.py +0 -0
  54. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/test_rapidtidecompare +0 -0
  55. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testalign +0 -0
  56. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testatlasaverage +0 -0
  57. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testboth +0 -0
  58. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testcomplex +0 -0
  59. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testdecomp +0 -0
  60. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testfileorfloat +0 -0
  61. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testfingerprint +0 -0
  62. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testfmridocker +0 -0
  63. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testfrozen +0 -0
  64. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testfuncs +0 -0
  65. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testglmfilt +0 -0
  66. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testlinfit +0 -0
  67. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testlocalflow +0 -0
  68. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testnoiseamp +0 -0
  69. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testoscorr +0 -0
  70. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testoutputsize +0 -0
  71. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testpad +0 -0
  72. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testretro +0 -0
  73. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testretrolagtcs +0 -0
  74. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/examples/src/testsimdata +0 -0
  75. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/models/model_revised/model.h5 +0 -0
  76. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/models/model_revised/model_meta.json +0 -0
  77. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/models/model_serdar/model.h5 +0 -0
  78. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/models/model_serdar/model_meta.json +0 -0
  79. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/models/model_serdar2/model.h5 +0 -0
  80. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/models/model_serdar2/model_meta.json +0 -0
  81. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ASPECTS_2mm.nii.gz +0 -0
  82. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ASPECTS_2mm_mask.nii.gz +0 -0
  83. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ASPECTS_3mm.nii.gz +0 -0
  84. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ASPECTS_3mm_mask.nii.gz +0 -0
  85. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ASPECTS_regions.txt +0 -0
  86. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm.nii.gz +0 -0
  87. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm_mask.nii.gz +0 -0
  88. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/ATTbasedFlowTerritories_split_regions.txt +0 -0
  89. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200_binmask_2mm.nii.gz +0 -0
  90. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200_lag_2mm.nii.gz +0 -0
  91. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200_mask_2mm.nii.gz +0 -0
  92. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200_negmask_2mm.nii.gz +0 -0
  93. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200_sigma_2mm.nii.gz +0 -0
  94. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200_strength_2mm.nii.gz +0 -0
  95. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
  96. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
  97. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
  98. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
  99. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_graylaghist.json +0 -0
  100. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
  101. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_laghist.json +0 -0
  102. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
  103. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
  104. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
  105. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
  106. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
  107. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
  108. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
  109. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
  110. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_whitelaghist.json +0 -0
  111. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
  112. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +0 -0
  113. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +0 -0
  114. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  115. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1.xml +0 -0
  116. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_regions.txt +0 -0
  117. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  118. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  119. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2.xml +0 -0
  120. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_regions.txt +0 -0
  121. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  122. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  123. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
  124. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
  125. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
  126. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
  127. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/MNI152_T1_3mm.nii.gz +0 -0
  128. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/MNI152_T1_3mm_brain_mask.nii.gz +0 -0
  129. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/data/reference/slicetimes/HCP-YA_slicetimes.txt +0 -0
  130. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/dlfilter.py +0 -0
  131. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/externaltools.py +0 -0
  132. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/fMRIData_class.py +0 -0
  133. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/filter.py +0 -0
  134. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/fit.py +0 -0
  135. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/glmpass.py +0 -0
  136. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/makelaggedtcs.py +0 -0
  137. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/maskutil.py +0 -0
  138. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/miscmath.py +0 -0
  139. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/multiproc.py +0 -0
  140. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/patchmatch.py +0 -0
  141. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/peakeval.py +0 -0
  142. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/qualitycheck.py +0 -0
  143. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/refinedelay.py +0 -0
  144. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/refineregressor.py +0 -0
  145. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/resample.py +0 -0
  146. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/__init__.py +0 -0
  147. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/adjustoffset.py +0 -0
  148. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/aligntcs.py +0 -0
  149. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/applydlfilter.py +0 -0
  150. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/atlasaverage.py +0 -0
  151. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/atlastool.py +0 -0
  152. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/calcicc.py +0 -0
  153. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/calctexticc.py +0 -0
  154. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/calcttest.py +0 -0
  155. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/ccorrica.py +0 -0
  156. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/diffrois.py +0 -0
  157. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/endtidalproc.py +0 -0
  158. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/fdica.py +0 -0
  159. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/filtnifti.py +0 -0
  160. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/filttc.py +0 -0
  161. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/fingerprint.py +0 -0
  162. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/fixtr.py +0 -0
  163. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/glmfilt.py +0 -0
  164. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/gmscalc.py +0 -0
  165. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/happy.py +0 -0
  166. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/happy2std.py +0 -0
  167. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/happywarp.py +0 -0
  168. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/histnifti.py +0 -0
  169. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/histtc.py +0 -0
  170. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/localflow.py +0 -0
  171. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/mergequality.py +0 -0
  172. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/pairproc.py +0 -0
  173. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/pairwisemergenifti.py +0 -0
  174. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/physiofreq.py +0 -0
  175. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/pixelcomp.py +0 -0
  176. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/plethquality.py +0 -0
  177. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/polyfitim.py +0 -0
  178. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/proj2flow.py +0 -0
  179. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/rankimage.py +0 -0
  180. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/rapidtide.py +0 -0
  181. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/rapidtide2std.py +0 -0
  182. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/resamplenifti.py +0 -0
  183. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/resampletc.py +0 -0
  184. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/retroglm.py +0 -0
  185. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/retrolagtcs.py +0 -0
  186. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/roisummarize.py +0 -0
  187. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/runqualitycheck.py +0 -0
  188. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/showarbcorr.py +0 -0
  189. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/showhist.py +0 -0
  190. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/showstxcorr.py +0 -0
  191. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/showtc.py +0 -0
  192. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/showxcorr_legacy.py +0 -0
  193. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/showxcorrx.py +0 -0
  194. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/showxy.py +0 -0
  195. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/simdata.py +0 -0
  196. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/spatialdecomp.py +0 -0
  197. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/spatialfit.py +0 -0
  198. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/spatialmi.py +0 -0
  199. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/spectrogram.py +0 -0
  200. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/stupidramtricks.py +0 -0
  201. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/synthASL.py +0 -0
  202. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/tcfrom2col.py +0 -0
  203. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/tcfrom3col.py +0 -0
  204. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/temporaldecomp.py +0 -0
  205. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/testhrv.py +0 -0
  206. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/threeD.py +0 -0
  207. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/tidepool.py +0 -0
  208. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/scripts/variabilityizer.py +0 -0
  209. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/stats.py +0 -0
  210. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/.coveragerc +0 -0
  211. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/__init__.py +0 -0
  212. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/matplotlibrc +0 -0
  213. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/resethappytargets +0 -0
  214. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/resetrapidtidetargets +0 -0
  215. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/resettargets +0 -0
  216. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/runlocaltest +0 -0
  217. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/showdirectories +0 -0
  218. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/showkernels +0 -0
  219. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_aliasedcorrelate.py +0 -0
  220. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_aligntcs.py +0 -0
  221. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_calcicc.py +0 -0
  222. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_congrid.py +0 -0
  223. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_correlate.py +0 -0
  224. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_corrpass.py +0 -0
  225. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_delayestimation.py +0 -0
  226. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_doresample.py +0 -0
  227. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fastresampler.py +0 -0
  228. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_findmaxlag.py +0 -0
  229. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunhappy_v1.py +0 -0
  230. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunrapidtide_v1.py +0 -0
  231. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunrapidtide_v2.py +0 -0
  232. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunrapidtide_v3.py +0 -0
  233. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunrapidtide_v4.py +0 -0
  234. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunrapidtide_v5.py +0 -0
  235. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_fullrunrapidtide_v6.py +0 -0
  236. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_glmpass.py +0 -0
  237. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_io.py +0 -0
  238. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_mi.py +0 -0
  239. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_miscmath.py +0 -0
  240. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_motionregress.py +0 -0
  241. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_nullcorr.py +0 -0
  242. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_padvec.py +0 -0
  243. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_phaseanalysis.py +0 -0
  244. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_rapidtideparser.py +0 -0
  245. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_refinedelay.py +0 -0
  246. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_runmisc.py +0 -0
  247. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_sharedmem.py +0 -0
  248. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_simulate.py +0 -0
  249. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_stcorrelate.py +0 -0
  250. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_timeshift.py +0 -0
  251. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_valtoindex.py +0 -0
  252. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/test_zRapidtideDataset.py +0 -0
  253. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_25.0Hz.txt +0 -0
  254. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  255. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_info.txt +0 -0
  256. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_25.0Hz.txt +0 -0
  257. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  258. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_normpleth_25.0Hz.txt +0 -0
  259. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_pleth_25.0Hz.txt +0 -0
  260. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/100206_REST1_LR_pleth_dlfiltered_25.0Hz.txt +0 -0
  261. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/fmri_globalmean.txt +0 -0
  262. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/happy_phase1target_vesselmask.nii.gz +0 -0
  263. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/happy_phase2output_vesselmask.nii.gz +0 -0
  264. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/happy_target_vesselmask.nii.gz +0 -0
  265. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/lforegressor.txt +0 -0
  266. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/lt_rt.txt +0 -0
  267. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/phasetest.txt +0 -0
  268. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/rapidtide2x_phase1target_reference_fmrires.txt +0 -0
  269. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/stcorrtest_Rvalue.txt +0 -0
  270. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/stcorrtest_delay.txt +0 -0
  271. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/stcorrtest_mask.txt +0 -0
  272. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/stcorrtest_pearson.txt +0 -0
  273. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/stcorrtest_pvalue.txt +0 -0
  274. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/testdata/testfilt.txt +0 -0
  275. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/tmp/.placeholder.txt +0 -0
  276. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/usercustomize.py +0 -0
  277. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tests/utils.py +0 -0
  278. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tidepoolTemplate.py +0 -0
  279. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tidepoolTemplate.ui +0 -0
  280. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tidepoolTemplate_alt.py +0 -0
  281. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tidepoolTemplate_alt.ui +0 -0
  282. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tidepoolTemplate_alt_qt6.py +0 -0
  283. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/tidepoolTemplate_qt6.py +0 -0
  284. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/transformerdlfilter.py +0 -0
  285. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/wiener.py +0 -0
  286. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/wiener2.py +0 -0
  287. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/__init__.py +0 -0
  288. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/adjustoffset.py +0 -0
  289. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/aligntcs.py +0 -0
  290. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/applydlfilter.py +0 -0
  291. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/atlasaverage.py +0 -0
  292. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/atlastool.py +0 -0
  293. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/calctexticc.py +0 -0
  294. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/ccorrica.py +0 -0
  295. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/diffrois.py +0 -0
  296. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/endtidalproc.py +0 -0
  297. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/fdica.py +0 -0
  298. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/filtnifti.py +0 -0
  299. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/filttc.py +0 -0
  300. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/fixtr.py +0 -0
  301. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/glmfilt.py +0 -0
  302. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/glmfrommaps.py +0 -0
  303. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/gmscalc.py +0 -0
  304. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/happy2std.py +0 -0
  305. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/histnifti.py +0 -0
  306. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/histtc.py +0 -0
  307. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/localflow.py +0 -0
  308. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/mergequality.py +0 -0
  309. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/niftidecomp.py +0 -0
  310. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/niftistats.py +0 -0
  311. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/pairproc.py +0 -0
  312. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/pairwisemergenifti.py +0 -0
  313. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/parser_funcs.py +0 -0
  314. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/physiofreq.py +0 -0
  315. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/pixelcomp.py +0 -0
  316. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/plethquality.py +0 -0
  317. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/polyfitim.py +0 -0
  318. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/proj2flow.py +0 -0
  319. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/rankimage.py +0 -0
  320. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/rapidtide.py +0 -0
  321. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/rapidtide2std.py +0 -0
  322. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/rapidtide_parser.py +0 -0
  323. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/resamplenifti.py +0 -0
  324. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/resampletc.py +0 -0
  325. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/retroglm.py +0 -0
  326. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/retrolagtcs.py +0 -0
  327. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/roisummarize.py +0 -0
  328. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/runqualitycheck.py +0 -0
  329. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/showarbcorr.py +0 -0
  330. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/showhist.py +0 -0
  331. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/showstxcorr.py +0 -0
  332. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/showtc.py +0 -0
  333. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/showxcorrx.py +0 -0
  334. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/showxy.py +0 -0
  335. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/spatialfit.py +0 -0
  336. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/spatialmi.py +0 -0
  337. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/spectrogram.py +0 -0
  338. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/synthASL.py +0 -0
  339. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/tcfrom2col.py +0 -0
  340. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/tcfrom3col.py +0 -0
  341. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/utils.py +0 -0
  342. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide/workflows/variabilityizer.py +0 -0
  343. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide.egg-info/dependency_links.txt +0 -0
  344. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide.egg-info/entry_points.txt +0 -0
  345. {rapidtide-3.0a6 → rapidtide-3.0a8}/rapidtide.egg-info/top_level.txt +0 -0
  346. {rapidtide-3.0a6 → rapidtide-3.0a8}/setup.cfg +0 -0
  347. {rapidtide-3.0a6 → rapidtide-3.0a8}/versioneer.py +0 -0
@@ -1,5 +1,18 @@
1
1
  # Release history
2
2
 
3
+ ## Version 3.0alpha8 (2/20/25)
4
+ * (rapidtide) Enhanced fit failure reporting.
5
+ * (rapidtide) Fixed map output type for non-float maps.
6
+ * (tidepool) Clarify how you specify the dataset name in the help text.
7
+ * (tidepool) Fixed some typos in outputs.
8
+ * (tidepool) Made some internal changes in preparation for allowing loading multiple files.
9
+
10
+ ## Version 3.0alpha7 (2/11/25)
11
+ * (happy) Trying out some new approaches for aliased correlation.
12
+ * (happy) Put in some initial support for multiecho data.
13
+ * (happy) Updated argument parser.
14
+ * (package) Various modernizations and cleanups.
15
+
3
16
  ## Version 3.0alpha6 (1/28/25)
4
17
  * (happy) Fixed a major bug in motion filtering (thank you to Sukru Demiral for reporting it!)
5
18
 
@@ -103,7 +103,7 @@ directory, and type the following:
103
103
 
104
104
  ::
105
105
 
106
- python setup.py install
106
+ python install .
107
107
 
108
108
 
109
109
  to install all of the tools in the package. You should be able to run
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rapidtide
3
- Version: 3.0a6
3
+ Version: 3.0a8
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>
@@ -38,10 +38,10 @@ Requires-Dist: pyqt6
38
38
  Requires-Dist: requests
39
39
  Requires-Dist: statsmodels
40
40
  Requires-Dist: pywavelets
41
- Requires-Dist: tomlkit
42
41
  Requires-Dist: tensorflow>=2.10.0
43
42
  Requires-Dist: tf-keras
44
43
  Requires-Dist: tqdm
44
+ Requires-Dist: versioneer
45
45
  Provides-Extra: tests
46
46
  Requires-Dist: codecov; extra == "tests"
47
47
  Requires-Dist: coverage; extra == "tests"
@@ -57,6 +57,7 @@ Requires-Dist: sphinx-gallery; extra == "doc"
57
57
  Requires-Dist: myst-parser; extra == "doc"
58
58
  Requires-Dist: numpydoc; extra == "doc"
59
59
  Requires-Dist: sphinxcontrib-bibtex; extra == "doc"
60
+ Requires-Dist: tomlkit; extra == "doc"
60
61
 
61
62
  The rapidtide package
62
63
  =====================
@@ -36,10 +36,10 @@ dependencies = [
36
36
  'requests',
37
37
  'statsmodels',
38
38
  'pywavelets',
39
- 'tomlkit',
40
39
  'tensorflow>=2.10.0',
41
40
  'tf-keras',
42
41
  'tqdm',
42
+ 'versioneer',
43
43
  ]
44
44
  #dynamic = ['version', 'license', 'keywords']
45
45
  dynamic = ['version']
@@ -76,6 +76,7 @@ doc = [
76
76
  'myst-parser',
77
77
  'numpydoc',
78
78
  'sphinxcontrib-bibtex',
79
+ 'tomlkit',
79
80
  ]
80
81
 
81
82
  [project.scripts]
@@ -204,4 +205,4 @@ parentdir_prefix = 'rapidtide-'
204
205
  skip = '.git*,versioneer.py,*.css,exportlist.txt,data,*.bib'
205
206
  check-hidden = true
206
207
  ignore-regex = '\bsubjeT\b'
207
- ignore-words-list = 'thex,normall'
208
+ ignore-words-list = 'TE,thex,normall'
@@ -25,6 +25,7 @@ import os
25
25
 
26
26
  import numpy as np
27
27
  import pyqtgraph as pg
28
+ from more_itertools.more import first
28
29
  from pyqtgraph.Qt import QtCore, QtGui, QtWidgets
29
30
 
30
31
  try:
@@ -68,7 +69,16 @@ def newColorbar(left, top, impixpervoxx, impixpervoxy, imgsize):
68
69
  return thecolorbarfgwin, thecolorbarbgwin, theviewbox, colorbarvals
69
70
 
70
71
 
71
- def newViewWindow(view, left, top, impixpervoxx, impixpervoxy, imgsize, enableMouse=False):
72
+ def setupViewWindow(
73
+ view,
74
+ left,
75
+ top,
76
+ impixpervoxx,
77
+ impixpervoxy,
78
+ imgsize,
79
+ enableMouse=False,
80
+ ):
81
+
72
82
  theviewbox = view.addViewBox(enableMouse=enableMouse, enableMenu=False, lockAspect=1.0)
73
83
  theviewbox.setAspectLocked()
74
84
  theviewbox.setRange(QtCore.QRectF(0, 0, imgsize, imgsize), padding=0.0, disableAutoRange=True)
@@ -146,6 +156,17 @@ class OrthoImageItem(QtWidgets.QWidget):
146
156
  self.offsetx = self.imgsize * (0.5 - self.xfov / (2.0 * self.maxfov))
147
157
  self.offsety = self.imgsize * (0.5 - self.yfov / (2.0 * self.maxfov))
148
158
  self.offsetz = self.imgsize * (0.5 - self.zfov / (2.0 * self.maxfov))
159
+ self.axviewbox = None
160
+ self.corviewbox = None
161
+ self.sagviewbox = None
162
+ self.axviewwin = None
163
+ self.corviewwin = None
164
+ self.sagviewwin = None
165
+ self.axviewbgwin = None
166
+ self.corviewbgwin = None
167
+ self.sagviewbgwin = None
168
+ self.debug = True
169
+ self.arrangement = arrangement
149
170
 
150
171
  if self.verbose > 1:
151
172
  print("OrthoImageItem initialization:")
@@ -162,7 +183,6 @@ class OrthoImageItem(QtWidgets.QWidget):
162
183
  print(" Offsets:", self.offsetx, self.offsety, self.offsetz)
163
184
  self.buttonisdown = False
164
185
 
165
- self.arrangement = arrangement
166
186
  self.axview.setBackground(None)
167
187
  self.axview.setRange(padding=0.0)
168
188
  self.axview.ci.layout.setContentsMargins(0, 0, 0, 0)
@@ -182,7 +202,7 @@ class OrthoImageItem(QtWidgets.QWidget):
182
202
  self.axviewvLine,
183
203
  self.axviewhLine,
184
204
  self.axviewbox,
185
- ) = newViewWindow(
205
+ ) = setupViewWindow(
186
206
  self.axview,
187
207
  self.offsetx,
188
208
  self.offsety,
@@ -197,7 +217,7 @@ class OrthoImageItem(QtWidgets.QWidget):
197
217
  self.corviewvLine,
198
218
  self.corviewhLine,
199
219
  self.corviewbox,
200
- ) = newViewWindow(
220
+ ) = setupViewWindow(
201
221
  self.corview,
202
222
  self.offsetx,
203
223
  self.offsetz,
@@ -212,7 +232,7 @@ class OrthoImageItem(QtWidgets.QWidget):
212
232
  self.sagviewvLine,
213
233
  self.sagviewhLine,
214
234
  self.sagviewbox,
215
- ) = newViewWindow(
235
+ ) = setupViewWindow(
216
236
  self.sagview,
217
237
  self.offsety,
218
238
  self.offsetz,
@@ -432,6 +432,7 @@ class Overlay:
432
432
 
433
433
  class RapidtideDataset:
434
434
  "Store all the data associated with a rapidtide dataset"
435
+ fileroot = None
435
436
  focusregressor = None
436
437
  regressorfilterlimits = None
437
438
  regressorsimcalclimits = None
@@ -703,9 +703,12 @@ class AliasedCorrelator:
703
703
  """
704
704
 
705
705
  def __init__(self, hiressignal, hires_Fs, numsteps):
706
- self.hiressignal = tide_math.corrnormalize(hiressignal)
707
706
  self.hires_Fs = hires_Fs
708
707
  self.numsteps = numsteps
708
+ self.sethiressignal(hiressignal)
709
+
710
+ def sethiressignal(self, hiressignal):
711
+ self.hiressignal = tide_math.corrnormalize(hiressignal)
709
712
  self.corrlen = len(self.hiressignal) * 2 + 1
710
713
  self.corrx = (
711
714
  np.linspace(0.0, self.corrlen, num=self.corrlen) / self.hires_Fs
@@ -735,10 +738,9 @@ class AliasedCorrelator:
735
738
  print(offset, self.numsteps)
736
739
  osvec = self.hiressignal * 0.0
737
740
  osvec[offset :: self.numsteps] = loressignal[:]
738
- corrfunc = (
739
- tide_corr.fastcorrelate(tide_math.corrnormalize(osvec), self.hiressignal)
740
- * self.numsteps
741
- )
741
+ corrfunc = tide_corr.fastcorrelate(
742
+ tide_math.corrnormalize(osvec), self.hiressignal
743
+ ) * np.sqrt(self.numsteps)
742
744
  return corrfunc
743
745
 
744
746
 
@@ -14,29 +14,18 @@ rapidtide \
14
14
  --nprocs -1 \
15
15
  --searchrange -5 20 \
16
16
  --simcalcrange 50 -1 \
17
- --outputlevel min \
18
17
  --refinedelay \
19
18
  sub-RAPIDTIDETEST.nii.gz \
20
- ../dst/sub-RAPIDTIDETEST_refinedelay
19
+ ../dst/sub-RAPIDTIDETEST_filt
21
20
 
22
21
  rapidtide \
23
- --spatialfilt 5 \
22
+ --spatialfilt 0 \
24
23
  --nprocs -1 \
25
24
  --searchrange -5 20 \
26
25
  --simcalcrange 50 -1 \
27
- --outputlevel min \
28
26
  --norefinedelay \
29
27
  sub-RAPIDTIDETEST.nii.gz \
30
- ../dst/sub-RAPIDTIDETEST_norefinedelay
31
-
32
- rapidtide \
33
- --spatialfilt 5 \
34
- --nprocs -1 \
35
- --searchrange -5 20 \
36
- --simcalcrange 50 -1 \
37
- --outputlevel min \
38
- sub-RAPIDTIDETEST.nii.gz \
39
- ../dst/sub-RAPIDTIDETEST_noption
28
+ ../dst/sub-RAPIDTIDETEST_nofilt
40
29
 
41
30
  #rapidtide \
42
31
  # --spatialfilt 5 \
@@ -65,5 +65,10 @@
65
65
  happy \
66
66
  sub-HAPPYTEST.nii.gz \
67
67
  sub-HAPPYTEST.json \
68
- ../dst/happy_motion \
69
- --motionfile sub-HAPPYTEST_mcf.par
68
+ ../dst/happy
69
+
70
+ happy \
71
+ sub-HAPPYTEST.nii.gz \
72
+ sub-HAPPYTEST.json \
73
+ ../dst/happy_aliasedcorrelation \
74
+ --aliasedcorrelation
@@ -134,6 +134,27 @@ def calc_3d_optical_flow(video, projmask, flowhdr, outputroot, window_size=3, de
134
134
  return flow_vectors
135
135
 
136
136
 
137
+ def phasejolt(phaseimage):
138
+
139
+ # Compute the gradient of the window in x, y, and z directions
140
+ grad_x, grad_y, grad_z = np.gradient(phaseimage)
141
+
142
+ # Now compute the second order gradients of the window in x, y, and z directions
143
+ grad_xx, grad_xy, grad_xz = np.gradient(grad_x)
144
+ grad_yx, grad_yy, grad_yz = np.gradient(grad_y)
145
+ grad_zx, grad_zy, grad_zz = np.gradient(grad_z)
146
+
147
+ # Calculate our metrics of interest
148
+ jump = (np.fabs(grad_x) + np.fabs(grad_y) + np.fabs(grad_z)) / 3.0
149
+ jolt = (
150
+ (np.fabs(grad_xx) + np.fabs(grad_xy) + np.fabs(grad_xz))
151
+ + (np.fabs(grad_yx) + np.fabs(grad_yy) + np.fabs(grad_yz))
152
+ + (np.fabs(grad_zx) + np.fabs(grad_zy) + np.fabs(grad_zz))
153
+ ) / 9.0
154
+ laplacian = grad_xx + grad_yy + grad_zz
155
+ return (jump, jolt, laplacian)
156
+
157
+
137
158
  def cardiacsig(thisphase, amps=(1.0, 0.0, 0.0), phases=None, overallphase=0.0):
138
159
  total = 0.0
139
160
  if phases is None:
@@ -145,7 +166,7 @@ def cardiacsig(thisphase, amps=(1.0, 0.0, 0.0), phases=None, overallphase=0.0):
145
166
 
146
167
  def cardiacfromimage(
147
168
  normdata_byslice,
148
- estmask_byslice,
169
+ estweights_byslice,
149
170
  numslices,
150
171
  timepoints,
151
172
  tr,
@@ -182,7 +203,7 @@ def cardiacfromimage(
182
203
 
183
204
  # make sure there is an appflips array
184
205
  if appflips_byslice is None:
185
- appflips_byslice = estmask_byslice * 0.0 + 1.0
206
+ appflips_byslice = estweights_byslice * 0.0 + 1.0
186
207
  else:
187
208
  if arteriesonly:
188
209
  appflips_byslice[np.where(appflips_byslice > 0.0)] = 0.0
@@ -196,22 +217,22 @@ def cardiacfromimage(
196
217
  if not verbose:
197
218
  print("Averaging slices...")
198
219
  if fliparteries:
199
- thismask_byslice = appflips_byslice.astype(np.int64) * estmask_byslice
220
+ theseweights_byslice = appflips_byslice.astype(np.float64) * estweights_byslice
200
221
  else:
201
- thismask_byslice = estmask_byslice
222
+ theseweights_byslice = estweights_byslice
202
223
  for theslice in range(numslices):
203
224
  if verbose:
204
225
  print("Averaging slice", theslice)
205
226
  if usemask:
206
- validestvoxels = np.where(np.abs(thismask_byslice[:, theslice]) > 0)[0]
227
+ validestvoxels = np.where(np.abs(theseweights_byslice[:, theslice]) > 0)[0]
207
228
  else:
208
- validestvoxels = np.where(np.abs(thismask_byslice[:, theslice] >= 0))[0]
229
+ validestvoxels = np.where(np.abs(theseweights_byslice[:, theslice] >= 0))[0]
209
230
  if len(validestvoxels) > 0:
210
231
  if madnorm:
211
232
  sliceavs[theslice, :], slicenorms[theslice] = tide_math.madnormalize(
212
233
  np.mean(
213
234
  normdata_byslice[validestvoxels, theslice, :]
214
- * thismask_byslice[validestvoxels, theslice, np.newaxis],
235
+ * theseweights_byslice[validestvoxels, theslice, np.newaxis],
215
236
  axis=0,
216
237
  ),
217
238
  returnnormfac=True,
@@ -219,7 +240,7 @@ def cardiacfromimage(
219
240
  else:
220
241
  sliceavs[theslice, :] = np.mean(
221
242
  normdata_byslice[validestvoxels, theslice, :]
222
- * thismask_byslice[validestvoxels, theslice, np.newaxis],
243
+ * theseweights_byslice[validestvoxels, theslice, np.newaxis],
223
244
  axis=0,
224
245
  )
225
246
  slicenorms[theslice] = 1.0
@@ -1241,3 +1262,51 @@ def phaseproject(
1241
1262
  normapp_byslice[validlocs, theslice, :] = np.nan_to_num(
1242
1263
  app_byslice[validlocs, theslice, :] / means_byslice[validlocs, theslice, None]
1243
1264
  )
1265
+ return app, rawapp, corrected_rawapp, normapp, weights, cine, derivatives
1266
+
1267
+
1268
+ def upsampleimage(input_data, input_hdr, numsteps, sliceoffsets, slicesamplerate, outputroot):
1269
+ fmri_data = input_data.byvol()
1270
+ timepoints = input_data.timepoints
1271
+ xsize = input_data.xsize
1272
+ ysize = input_data.ysize
1273
+ numslices = input_data.numslices
1274
+
1275
+ # allocate the image
1276
+ print(f"upsampling fmri data by a factor of {numsteps}")
1277
+ upsampleimage = np.zeros((xsize, ysize, numslices, numsteps * timepoints), dtype=float)
1278
+ upsampleimage_byslice = upsampleimage.reshape(xsize * ysize, numslices, numsteps * timepoints)
1279
+
1280
+ # demean the raw data
1281
+ meanfmri = fmri_data.mean(axis=1)
1282
+ demeaned_data = fmri_data - meanfmri[:, None]
1283
+
1284
+ # drop in the raw data
1285
+ for theslice in range(numslices):
1286
+ upsampleimage[
1287
+ :, :, theslice, sliceoffsets[theslice] : timepoints * numsteps : numsteps
1288
+ ] = demeaned_data.reshape((xsize, ysize, numslices, timepoints))[:, :, theslice, :]
1289
+
1290
+ upsampleimage_byslice = upsampleimage.reshape(xsize * ysize, numslices, timepoints * numsteps)
1291
+
1292
+ # interpolate along the slice direction
1293
+ thedstlocs = np.linspace(0, numslices, num=len(sliceoffsets), endpoint=False)
1294
+ print(f"len(destlocst), destlocs: {len(thedstlocs)}, {thedstlocs}")
1295
+ for thetimepoint in range(0, timepoints * numsteps):
1296
+ thestep = thetimepoint % numsteps
1297
+ print(f"interpolating step {thestep}")
1298
+ thesrclocs = np.where(sliceoffsets == thestep)[0]
1299
+ print(f"timepoint: {thetimepoint}, sourcelocs: {thesrclocs}")
1300
+ for thexyvoxel in range(xsize * ysize):
1301
+ theinterps = np.interp(
1302
+ thedstlocs,
1303
+ 1.0 * thesrclocs,
1304
+ upsampleimage_byslice[thexyvoxel, thesrclocs, thetimepoint],
1305
+ )
1306
+ upsampleimage_byslice[thexyvoxel, :, thetimepoint] = 1.0 * theinterps
1307
+
1308
+ theheader = copy.deepcopy(input_hdr)
1309
+ theheader["dim"][4] = timepoints * numsteps
1310
+ theheader["pixdim"][4] = 1.0 / slicesamplerate
1311
+ tide_io.savetonifti(upsampleimage, theheader, outputroot + "_upsampled")
1312
+ print("upsampling complete")
@@ -691,6 +691,7 @@ class SimilarityFunctionFitter:
691
691
  FML_FITWIDTHHIGH = np.uint32(0x0800)
692
692
  FML_FITLAGLOW = np.uint32(0x1000)
693
693
  FML_FITLAGHIGH = np.uint32(0x2000)
694
+ FML_FITALGOFAIL = np.uint32(0x0400)
694
695
  FML_FITFAIL = (
695
696
  FML_FITAMPLOW
696
697
  | FML_FITAMPHIGH
@@ -698,6 +699,7 @@ class SimilarityFunctionFitter:
698
699
  | FML_FITWIDTHHIGH
699
700
  | FML_FITLAGLOW
700
701
  | FML_FITLAGHIGH
702
+ | FML_FITALGOFAIL
701
703
  )
702
704
 
703
705
  def __init__(
@@ -873,6 +875,8 @@ class SimilarityFunctionFitter:
873
875
  reasons.append("Fit Lag too low")
874
876
  if failreason.astype(np.uint32) & self.FML_FITLAGHIGH:
875
877
  reasons.append("Fit Lag too high")
878
+ if failreason.astype(np.uint32) & self.FML_FITALGOFAIL:
879
+ reasons.append("Nonlinear fit failed")
876
880
 
877
881
  if len(reasons) > 0:
878
882
  return ", ".join(reasons)
@@ -1119,6 +1123,7 @@ class SimilarityFunctionFitter:
1119
1123
  maxlag = np.fmod((1.0 * plsq[1]), self.lagmod)
1120
1124
  maxsigma = plsq[2]
1121
1125
  except:
1126
+ failreason |= self.FML_FITALGOFAIL
1122
1127
  maxval = np.float64(0.0)
1123
1128
  maxlag = np.float64(0.0)
1124
1129
  maxsigma = np.float64(0.0)
@@ -1139,6 +1144,7 @@ class SimilarityFunctionFitter:
1139
1144
  maxlag = np.fmod((1.0 * plsq[1]), self.lagmod)
1140
1145
  maxsigma = plsq[2]
1141
1146
  except:
1147
+ failreason |= self.FML_FITALGOFAIL
1142
1148
  maxval = np.float64(0.0)
1143
1149
  maxlag = np.float64(0.0)
1144
1150
  maxsigma = np.float64(0.0)
@@ -1173,6 +1179,7 @@ class SimilarityFunctionFitter:
1173
1179
  print("poly coffs:", a, b, c)
1174
1180
  print("maxlag, maxval, maxsigma:", maxlag, maxval, maxsigma)
1175
1181
  except np.lib.polynomial.RankWarning:
1182
+ failreason |= self.FML_FITALGOFAIL
1176
1183
  maxlag = 0.0
1177
1184
  maxval = 0.0
1178
1185
  maxsigma = 0.0
@@ -1219,6 +1226,7 @@ class SimilarityFunctionFitter:
1219
1226
  # different rules for mutual information peaks
1220
1227
  if ((maxval - baseline) < self.lthreshval * baselinedev) or (maxval < baseline):
1221
1228
  failreason |= self.FML_FITAMPLOW
1229
+ maxval_init = 0.0
1222
1230
  if self.debug:
1223
1231
  if (maxval - baseline) < self.lthreshval * baselinedev:
1224
1232
  print(
@@ -1229,7 +1237,6 @@ class SimilarityFunctionFitter:
1229
1237
  )
1230
1238
  if maxval < baseline:
1231
1239
  print("FITAMPLOW: maxval < baseline:", maxval, baseline)
1232
- maxval_init = 0.0
1233
1240
  if self.debug:
1234
1241
  print("bad fit amp: maxval is lower than lower limit")
1235
1242
  if (self.lagmin > maxlag) or (maxlag > self.lagmax):
@@ -1269,6 +1276,8 @@ class SimilarityFunctionFitter:
1269
1276
  maxsigma = np.float64(maxsigma_init)
1270
1277
  if failreason != self.FML_NOERROR:
1271
1278
  maskval = np.uint16(0)
1279
+ else:
1280
+ maskval = np.uint16(1)
1272
1281
 
1273
1282
  if self.debug or self.displayplots:
1274
1283
  print(
@@ -355,7 +355,7 @@ def savemaplist(
355
355
  themap,
356
356
  internalspaceshape,
357
357
  validvoxels,
358
- outmaparray,
358
+ outmaparray.astype(themap.dtype),
359
359
  debug=False,
360
360
  )
361
361
 
@@ -1160,13 +1160,15 @@ def getslicetimesfromfile(slicetimename):
1160
1160
  for idx, thetime in enumerate(slicetimelist):
1161
1161
  slicetimes[idx] = float(thetime)
1162
1162
  normalizedtotr = False
1163
+ fileisbidsjson = True
1163
1164
  except KeyError:
1164
1165
  print(slicetimename, "is not a valid BIDS sidecar file")
1165
1166
  sys.exit()
1166
1167
  else:
1167
1168
  slicetimes = readvec(slicetimename)
1168
1169
  normalizedtotr = True
1169
- return slicetimes, normalizedtotr
1170
+ fileisbidsjson = False
1171
+ return slicetimes, normalizedtotr, fileisbidsjson
1170
1172
 
1171
1173
 
1172
1174
  def readbidssidecar(inputfilename):
@@ -43,7 +43,7 @@ def onesimfuncfit(
43
43
  ):
44
44
  if initiallag is not None:
45
45
  thefitter.setguess(True, maxguess=initiallag)
46
- widthmax = despeckle_thresh
46
+ thefitter.setrange(-despeckle_thresh/2.0, despeckle_thresh/2.0)
47
47
  else:
48
48
  thefitter.setguess(False)
49
49
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ def test_fullrunhappy_v2(debug=False, displayplots=False):
31
31
  os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
32
  os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
33
  os.path.join(get_test_temp_path(), "happyout2"),
34
- "--estmask",
34
+ "--estweights",
35
35
  os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
36
36
  "--projmask",
37
37
  os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
@@ -31,7 +31,7 @@ def test_fullrunhappy_v3(debug=False, displayplots=False):
31
31
  os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
32
  os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
33
  os.path.join(get_test_temp_path(), "happyout3"),
34
- "--estmask",
34
+ "--estweights",
35
35
  os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
36
36
  "--projmask",
37
37
  os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
@@ -31,7 +31,7 @@ def test_fullrunhappy_v4(debug=False, displayplots=False):
31
31
  os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
32
  os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
33
  os.path.join(get_test_temp_path(), "happyout4"),
34
- "--estmask",
34
+ "--estweights",
35
35
  os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
36
36
  "--projmask",
37
37
  os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
@@ -39,6 +39,8 @@ def test_fullrunhappy_v4(debug=False, displayplots=False):
39
39
  "-1",
40
40
  "--model",
41
41
  "model_revised",
42
+ "--motionfile",
43
+ os.path.join(get_examples_path(), "sub-HAPPYTEST_mcf.par"),
42
44
  ]
43
45
  happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
44
46
 
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright 2016-2024 Blaise Frederick
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ #
19
+ import os
20
+
21
+ import matplotlib as mpl
22
+
23
+ import rapidtide.workflows.happy as happy_workflow
24
+ import rapidtide.workflows.happy_parser as happy_parser
25
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
+
27
+
28
+ def test_fullrunhappy_v4(debug=False, displayplots=False):
29
+ # run happy
30
+ 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(), "happyout5"),
34
+ "--model",
35
+ "model_revised",
36
+ "--motionfile",
37
+ os.path.join(get_examples_path(), "sub-HAPPYTEST_mcf.par"),
38
+ "--nomotderiv",
39
+ "--nomotorthogonalize",
40
+ "--motfiltorder",
41
+ "2",
42
+ "--numskip",
43
+ "5",
44
+ "--motskip",
45
+ "5",
46
+ "--motionhp",
47
+ "0.01",
48
+ "--motionlp",
49
+ "2.0",
50
+ ]
51
+ happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
52
+
53
+
54
+ if __name__ == "__main__":
55
+ mpl.use("TkAgg")
56
+ test_fullrunhappy_v4(debug=True, displayplots=True)