rapidtide 3.0.7.1__tar.gz → 3.0.8__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 (373) hide show
  1. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/CHANGELOG.md +11 -0
  2. {rapidtide-3.0.7.1/rapidtide.egg-info → rapidtide-3.0.8}/PKG-INFO +2 -2
  3. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/pyproject.toml +1 -1
  4. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/_version.py +3 -3
  5. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/calcnullsimfunc.py +1 -3
  6. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/test_findmaxlag.py +1 -1
  7. rapidtide-3.0.8/rapidtide/data/examples/src/testfmri +36 -0
  8. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testnewrefine +0 -23
  9. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/fMRIData_class.py +29 -52
  10. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/fit.py +4 -4
  11. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/happy_supportfuncs.py +1 -1
  12. rapidtide-3.0.8/rapidtide/helper_classes.py +330 -0
  13. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/linfitfiltpass.py +59 -0
  14. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/makelaggedtcs.py +10 -0
  15. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/refinedelay.py +10 -19
  16. rapidtide-3.0.7.1/rapidtide/helper_classes.py → rapidtide-3.0.8/rapidtide/simFuncClasses.py +13 -310
  17. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/simfuncfit.py +30 -30
  18. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/stats.py +5 -2
  19. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/.coveragerc +6 -0
  20. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/cleanposttest +1 -1
  21. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/runlocaltest +2 -2
  22. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_cleanregressor.py +3 -3
  23. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_corrpass.py +3 -3
  24. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_delayestimation.py +8 -7
  25. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_findmaxlag.py +2 -2
  26. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunrapidtide_v3.py +2 -1
  27. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_getparsers.py +14 -6
  28. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_io.py +2 -6
  29. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_nullcorr.py +3 -3
  30. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_refinedelay.py +20 -5
  31. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate_alt.py +1 -1
  32. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/util.py +7 -0
  33. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/voxelData.py +3 -6
  34. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/cleanregressor.py +2 -2
  35. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/delayvar.py +44 -58
  36. rapidtide-3.0.7.1/rapidtide/workflows/delayestimation.py → rapidtide-3.0.8/rapidtide/workflows/estimateDelayMap.py +84 -31
  37. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/rapidtide.py +349 -859
  38. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/rapidtide_parser.py +5 -38
  39. rapidtide-3.0.8/rapidtide/workflows/refineDelayMap.py +138 -0
  40. rapidtide-3.0.7.1/rapidtide/RegressorRefiner.py → rapidtide-3.0.8/rapidtide/workflows/refineRegressor.py +200 -28
  41. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/regressfrommaps.py +35 -27
  42. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/retrolagtcs.py +5 -6
  43. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/retroregress.py +73 -191
  44. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/showarbcorr.py +2 -2
  45. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/showxcorrx.py +5 -5
  46. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/tidepool.py +5 -5
  47. {rapidtide-3.0.7.1 → rapidtide-3.0.8/rapidtide.egg-info}/PKG-INFO +2 -2
  48. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide.egg-info/SOURCES.txt +4 -2
  49. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide.egg-info/requires.txt +1 -1
  50. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/setup.py +2 -1
  51. rapidtide-3.0.7.1/rapidtide/data/examples/src/testfmri +0 -30
  52. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/CODE_OF_CONDUCT.md +0 -0
  53. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/CONTRIBUTING.md +0 -0
  54. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/INSTALL.rst +0 -0
  55. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/LICENSE +0 -0
  56. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/MANIFEST.in +0 -0
  57. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/README.rst +0 -0
  58. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/TODO.md +0 -0
  59. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/USAGE.rst +0 -0
  60. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/download-nda-data +0 -0
  61. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/downloadcmd-auther +0 -0
  62. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/gmscalc-HCPYA +0 -0
  63. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/list-rapidtide-relevant-images +0 -0
  64. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/mount-and-run +0 -0
  65. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/rapidtide-HCPYA +0 -0
  66. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/rapidtide-cloud-test +0 -0
  67. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/cloud/simple-cp-test +0 -0
  68. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/Colortables.py +0 -0
  69. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/OrthoImageItem.py +0 -0
  70. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/RapidtideDataset.py +0 -0
  71. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/__init__.py +0 -0
  72. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/calccoherence.py +0 -0
  73. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/calcsimfunc.py +0 -0
  74. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/correlate.py +0 -0
  75. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/installtestdata +0 -0
  76. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/test_io +0 -0
  77. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/test_mlregressallt.py +0 -0
  78. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/test_rapidtidecompare +0 -0
  79. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testalign +0 -0
  80. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testatlasaverage +0 -0
  81. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testboth +0 -0
  82. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testcifti +0 -0
  83. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testcomplex +0 -0
  84. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testdecomp +0 -0
  85. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testdelayvar +0 -0
  86. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testfileorfloat +0 -0
  87. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testfingerprint +0 -0
  88. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testfmridocker +0 -0
  89. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testfrozen +0 -0
  90. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testfuncs +0 -0
  91. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testglmfilt +0 -0
  92. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testhappy +0 -0
  93. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testinitdelay +0 -0
  94. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testlinfit +0 -0
  95. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testlocalflow +0 -0
  96. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testmodels +0 -0
  97. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testnoiseamp +0 -0
  98. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testoscorr +0 -0
  99. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testpad +0 -0
  100. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testrefineonly +0 -0
  101. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testretro +0 -0
  102. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testretrolagtcs +0 -0
  103. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/examples/src/testsimdata +0 -0
  104. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.png +0 -0
  105. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.txt +0 -0
  106. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model.keras +0 -0
  107. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model_meta.json +0 -0
  108. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_revised_tf2/model.keras +0 -0
  109. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_revised_tf2/model_meta.json +0 -0
  110. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_serdar2_tf2/model.keras +0 -0
  111. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_serdar2_tf2/model_meta.json +0 -0
  112. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_serdar_tf2/model.keras +0 -0
  113. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/models/model_serdar_tf2/model_meta.json +0 -0
  114. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ASPECTS_2mm.nii.gz +0 -0
  115. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ASPECTS_2mm_mask.nii.gz +0 -0
  116. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ASPECTS_3mm.nii.gz +0 -0
  117. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ASPECTS_3mm_mask.nii.gz +0 -0
  118. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ASPECTS_regions.txt +0 -0
  119. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm.nii.gz +0 -0
  120. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm_mask.nii.gz +0 -0
  121. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/ATTbasedFlowTerritories_split_regions.txt +0 -0
  122. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200_binmask_2mm.nii.gz +0 -0
  123. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200_lag_2mm.nii.gz +0 -0
  124. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200_mask_2mm.nii.gz +0 -0
  125. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200_negmask_2mm.nii.gz +0 -0
  126. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200_sigma_2mm.nii.gz +0 -0
  127. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200_strength_2mm.nii.gz +0 -0
  128. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
  129. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
  130. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
  131. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
  132. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_graylaghist.json +0 -0
  133. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
  134. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_laghist.json +0 -0
  135. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
  136. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
  137. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
  138. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
  139. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
  140. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
  141. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
  142. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
  143. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_whitelaghist.json +0 -0
  144. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
  145. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +0 -0
  146. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +0 -0
  147. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  148. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1.xml +0 -0
  149. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_regions.txt +0 -0
  150. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  151. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  152. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2.xml +0 -0
  153. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_regions.txt +0 -0
  154. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  155. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  156. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
  157. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
  158. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
  159. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
  160. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/MNI152_T1_3mm.nii.gz +0 -0
  161. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/MNI152_T1_3mm_brain_mask.nii.gz +0 -0
  162. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/data/reference/slicetimes/HCP-YA_slicetimes.txt +0 -0
  163. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/dlfilter.py +0 -0
  164. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/externaltools.py +0 -0
  165. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/filter.py +0 -0
  166. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/genericmultiproc.py +0 -0
  167. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/io.py +0 -0
  168. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/maskutil.py +0 -0
  169. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/miscmath.py +0 -0
  170. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/multiproc.py +0 -0
  171. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/patchmatch.py +0 -0
  172. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/peakeval.py +0 -0
  173. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/qualitycheck.py +0 -0
  174. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/refineregressor.py +0 -0
  175. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/resample.py +0 -0
  176. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/__init__.py +0 -0
  177. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/adjustoffset.py +0 -0
  178. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/aligntcs.py +0 -0
  179. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/applydlfilter.py +0 -0
  180. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/atlasaverage.py +0 -0
  181. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/atlastool.py +0 -0
  182. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/calcicc.py +0 -0
  183. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/calctexticc.py +0 -0
  184. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/calcttest.py +0 -0
  185. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/ccorrica.py +0 -0
  186. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/delayvar.py +0 -0
  187. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/diffrois.py +0 -0
  188. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/endtidalproc.py +0 -0
  189. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/fdica.py +0 -0
  190. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/filtnifti.py +0 -0
  191. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/filttc.py +0 -0
  192. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/fingerprint.py +0 -0
  193. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/fixtr.py +0 -0
  194. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/gmscalc.py +0 -0
  195. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/happy.py +0 -0
  196. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/happy2std.py +0 -0
  197. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/happywarp.py +0 -0
  198. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/histnifti.py +0 -0
  199. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/histtc.py +0 -0
  200. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/linfitfilt.py +0 -0
  201. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/localflow.py +0 -0
  202. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/mergequality.py +0 -0
  203. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/pairproc.py +0 -0
  204. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/pairwisemergenifti.py +0 -0
  205. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/physiofreq.py +0 -0
  206. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/pixelcomp.py +0 -0
  207. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/plethquality.py +0 -0
  208. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/polyfitim.py +0 -0
  209. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/proj2flow.py +0 -0
  210. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/rankimage.py +0 -0
  211. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/rapidtide.py +0 -0
  212. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/rapidtide2std.py +0 -0
  213. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/resamplenifti.py +0 -0
  214. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/resampletc.py +0 -0
  215. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/retrolagtcs.py +0 -0
  216. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/retroregress.py +0 -0
  217. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/roisummarize.py +0 -0
  218. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/runqualitycheck.py +0 -0
  219. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/showarbcorr.py +0 -0
  220. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/showhist.py +0 -0
  221. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/showstxcorr.py +0 -0
  222. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/showtc.py +0 -0
  223. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/showxcorr_legacy.py +0 -0
  224. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/showxcorrx.py +0 -0
  225. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/showxy.py +0 -0
  226. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/simdata.py +0 -0
  227. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/spatialdecomp.py +0 -0
  228. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/spatialfit.py +0 -0
  229. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/spatialmi.py +0 -0
  230. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/spectrogram.py +0 -0
  231. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/stupidramtricks.py +0 -0
  232. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/synthASL.py +0 -0
  233. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/tcfrom2col.py +0 -0
  234. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/tcfrom3col.py +0 -0
  235. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/temporaldecomp.py +0 -0
  236. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/testhrv.py +0 -0
  237. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/threeD.py +0 -0
  238. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/tidepool.py +0 -0
  239. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/scripts/variabilityizer.py +0 -0
  240. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/__init__.py +0 -0
  241. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/matplotlibrc +0 -0
  242. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/resethappytargets +0 -0
  243. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/resetrapidtidetargets +0 -0
  244. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/resettargets +0 -0
  245. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/showdirectories +0 -0
  246. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/showkernels +0 -0
  247. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_aliasedcorrelate.py +0 -0
  248. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_aligntcs.py +0 -0
  249. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_calcicc.py +0 -0
  250. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_congrid.py +1 -1
  251. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_correlate.py +0 -0
  252. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_doresample.py +0 -0
  253. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_externaltools.py +0 -0
  254. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fastresampler.py +0 -0
  255. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_filter.py +0 -0
  256. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunhappy_v1.py +0 -0
  257. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunhappy_v2.py +0 -0
  258. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunhappy_v3.py +0 -0
  259. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunhappy_v4.py +0 -0
  260. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunhappy_v5.py +0 -0
  261. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunrapidtide_v1.py +0 -0
  262. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunrapidtide_v2.py +0 -0
  263. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunrapidtide_v4.py +0 -0
  264. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunrapidtide_v5.py +0 -0
  265. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunrapidtide_v6.py +0 -0
  266. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_fullrunrapidtide_v7.py +0 -0
  267. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_linfitfiltpass.py +0 -0
  268. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_mi.py +0 -0
  269. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_miscmath.py +0 -0
  270. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_motionregress.py +0 -0
  271. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_padvec.py +0 -0
  272. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_parserfuncs.py +0 -0
  273. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_phaseanalysis.py +0 -0
  274. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_rapidtideparser.py +0 -0
  275. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_runmisc.py +0 -0
  276. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_sharedmem.py +0 -0
  277. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_simulate.py +0 -0
  278. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_stcorrelate.py +0 -0
  279. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_timeshift.py +0 -0
  280. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_valtoindex.py +0 -0
  281. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/test_zRapidtideDataset.py +0 -0
  282. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_25.0Hz.txt +0 -0
  283. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  284. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_info.txt +0 -0
  285. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_25.0Hz.txt +0 -0
  286. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_dlfiltered_25.0Hz.txt +0 -0
  287. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_normpleth_25.0Hz.txt +0 -0
  288. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_pleth_25.0Hz.txt +0 -0
  289. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/100206_REST1_LR_pleth_dlfiltered_25.0Hz.txt +0 -0
  290. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/fmri_globalmean.txt +0 -0
  291. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/happy_phase1target_vesselmask.nii.gz +0 -0
  292. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/happy_phase2output_vesselmask.nii.gz +0 -0
  293. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/happy_target_vesselmask.nii.gz +0 -0
  294. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/lforegressor.txt +0 -0
  295. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/lt_rt.txt +0 -0
  296. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/phasetest.txt +0 -0
  297. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/rapidtide2x_phase1target_reference_fmrires.txt +0 -0
  298. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/stcorrtest_Rvalue.txt +0 -0
  299. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/stcorrtest_delay.txt +0 -0
  300. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/stcorrtest_mask.txt +0 -0
  301. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/stcorrtest_pearson.txt +0 -0
  302. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/stcorrtest_pvalue.txt +0 -0
  303. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/testdata/testfilt.txt +0 -0
  304. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/tmp/.placeholder.txt +0 -0
  305. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/usercustomize.py +0 -0
  306. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tests/utils.py +0 -0
  307. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate.py +0 -0
  308. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate.ui +0 -0
  309. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate_alt.ui +0 -0
  310. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate_alt_qt6.py +0 -0
  311. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate_big.py +0 -0
  312. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate_big.ui +0 -0
  313. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate_big_qt6.py +0 -0
  314. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/tidepoolTemplate_qt6.py +0 -0
  315. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/wiener.py +0 -0
  316. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/wiener2.py +0 -0
  317. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/__init__.py +0 -0
  318. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/adjustoffset.py +0 -0
  319. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/aligntcs.py +0 -0
  320. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/applydlfilter.py +0 -0
  321. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/atlasaverage.py +0 -0
  322. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/atlastool.py +0 -0
  323. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/calctexticc.py +0 -0
  324. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/ccorrica.py +0 -0
  325. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/diffrois.py +0 -0
  326. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/endtidalproc.py +0 -0
  327. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/fdica.py +0 -0
  328. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/filtnifti.py +0 -0
  329. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/filttc.py +0 -0
  330. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/fixtr.py +0 -0
  331. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/gmscalc.py +0 -0
  332. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/happy.py +0 -0
  333. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/happy2std.py +0 -0
  334. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/happy_parser.py +0 -0
  335. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/histnifti.py +0 -0
  336. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/histtc.py +0 -0
  337. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/linfitfilt.py +0 -0
  338. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/localflow.py +0 -0
  339. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/mergequality.py +0 -0
  340. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/niftidecomp.py +0 -0
  341. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/niftistats.py +0 -0
  342. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/pairproc.py +0 -0
  343. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/pairwisemergenifti.py +0 -0
  344. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/parser_funcs.py +0 -0
  345. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/physiofreq.py +0 -0
  346. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/pixelcomp.py +0 -0
  347. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/plethquality.py +0 -0
  348. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/polyfitim.py +0 -0
  349. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/proj2flow.py +0 -0
  350. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/rankimage.py +0 -0
  351. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/rapidtide2std.py +0 -0
  352. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/resamplenifti.py +0 -0
  353. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/resampletc.py +0 -0
  354. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/roisummarize.py +0 -0
  355. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/runqualitycheck.py +0 -0
  356. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/showhist.py +0 -0
  357. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/showstxcorr.py +0 -0
  358. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/showtc.py +0 -0
  359. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/showxy.py +0 -0
  360. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/simdata.py +0 -0
  361. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/spatialfit.py +0 -0
  362. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/spatialmi.py +0 -0
  363. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/spectrogram.py +0 -0
  364. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/synthASL.py +0 -0
  365. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/tcfrom2col.py +0 -0
  366. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/tcfrom3col.py +0 -0
  367. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/utils.py +0 -0
  368. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide/workflows/variabilityizer.py +0 -0
  369. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide.egg-info/dependency_links.txt +0 -0
  370. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide.egg-info/entry_points.txt +0 -0
  371. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/rapidtide.egg-info/top_level.txt +0 -0
  372. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/setup.cfg +0 -0
  373. {rapidtide-3.0.7.1 → rapidtide-3.0.8}/versioneer.py +0 -0
@@ -1,5 +1,16 @@
1
1
  # Release history
2
2
 
3
+ ## Version 3.0.8 (6/26/25)
4
+ * (rapidtide) Fix https://github.com/bbfrederick/rapidtide/issues/213 (thanks to https://github.com/tomosumi for reporting the bug).
5
+ * (rapidtide) Split coarse delay estimation and fitting out into a separate workflow.
6
+ * (rapidtide) Split delay refinement out into a separate workflow.
7
+ * (rapidtide) Split regressor refinement out into a separate workflow.
8
+ * (rapidtide) All this is in preparation for a new, modular workflow with more flexible control of the fitting process. It's not done yet, butthis is getting all internal code blocks ready for it. I want to pause here to make sure I haven't broken anything (all the automated tests pass, but I want to be careful).
9
+ * (docs) Some improvement to the tidepool section.
10
+ * (package) Made a more streamlined and rational interface for allocating shared memory.
11
+ * (package) Resolved incompatibility of statsmodels and scipy>1.15.3.
12
+ * (package) Accepted several dependabot PRs.
13
+
3
14
  ## Version 3.0.7.1 (6/16/25)
4
15
  * (rapidtide) Disabled sLFO filtering by default. Use ``sLFOfiltmask`` to turn it on.
5
16
  * (retroregress) Synced with sLFO filtering changes to rapidtide.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rapidtide
3
- Version: 3.0.7.1
3
+ Version: 3.0.8
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>
@@ -24,7 +24,7 @@ Requires-Python: >=3.9
24
24
  Description-Content-Type: text/x-rst
25
25
  License-File: LICENSE
26
26
  Requires-Dist: numpy
27
- Requires-Dist: scipy
27
+ Requires-Dist: scipy<=1.15.3
28
28
  Requires-Dist: pandas
29
29
  Requires-Dist: pyarrow
30
30
  Requires-Dist: scikit-image
@@ -22,7 +22,7 @@ classifiers = [
22
22
  requires-python = '>=3.9'
23
23
  dependencies = [
24
24
  'numpy',
25
- 'scipy',
25
+ 'scipy<=1.15.3',
26
26
  'pandas',
27
27
  'pyarrow',
28
28
  'scikit-image',
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-06-16T15:12:43-0400",
11
+ "date": "2025-06-26T14:50:59-0400",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "6dead8e554dd0464bdfc65de24889374508f920d",
15
- "version": "3.0.7.1"
14
+ "full-revisionid": "d9a8fd9ab24057e4a74e43dccdc1117e3c6875a2",
15
+ "version": "3.0.8"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -18,13 +18,11 @@
18
18
  #
19
19
  import sys
20
20
 
21
-
22
21
  import numpy as np
23
22
 
24
-
25
23
  import rapidtide.filter as tide_filt
26
- import rapidtide.miscmath as tide_math
27
24
  import rapidtide.genericmultiproc as tide_genericmultiproc
25
+ import rapidtide.miscmath as tide_math
28
26
 
29
27
 
30
28
  # note: rawtimecourse has been filtered, but NOT windowed
@@ -24,8 +24,8 @@ import matplotlib.pyplot as plt
24
24
  import numpy as np
25
25
 
26
26
  import rapidtide.fit as tide_fit
27
- import rapidtide.helper_classes as tide_classes
28
27
  import rapidtide.io as tide_io
28
+ import rapidtide.simFuncClasses as tide_classes
29
29
  from rapidtide.tests.utils import get_examples_path
30
30
 
31
31
 
@@ -0,0 +1,36 @@
1
+ #!/bin/bash
2
+
3
+ #rapidtide \
4
+ # --spatialfilt -1 \
5
+ # --nprocs -1 \
6
+ # --searchrange -5 20 \
7
+ # --simcalcrange 50 -1 \
8
+ # --outputlevel more \
9
+ # --graymattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_GRAY \
10
+ # --brainmask sub-RAPIDTIDETEST_brainmask.nii.gz \
11
+ # --whitemattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_WHITE \
12
+ # --csfmask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_CSF \
13
+ # --cleanrefined \
14
+ # --nofitfilt \
15
+ # --similaritymetric correlation \
16
+ # sub-RAPIDTIDETEST.nii.gz \
17
+ # ../dst/sub-RAPIDTIDETEST
18
+
19
+ rapidtide \
20
+ --spatialfilt 3 \
21
+ --nprocs -1 \
22
+ --searchrange -5 20 \
23
+ --simcalcrange 50 -1 \
24
+ --outputlevel more \
25
+ --graymattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_GRAY \
26
+ --brainmask sub-RAPIDTIDETEST_brainmask.nii.gz \
27
+ --whitemattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_WHITE \
28
+ --csfmask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_CSF \
29
+ --cleanrefined \
30
+ --nofitfilt \
31
+ --refinedelayeachpass \
32
+ --similaritymetric correlation \
33
+ sub-RAPIDTIDETEST.nii.gz \
34
+ ../dst/sub-RAPIDTIDETEST_passrefine
35
+
36
+ tidepool --uistyle big --dataset ../dst/sub-RAPIDTIDETEST_ ../dst/sub-RAPIDTIDETEST_passrefine_
@@ -6,28 +6,15 @@ rapidtide \
6
6
  --searchrange -5 20 \
7
7
  --simcalcrange 50 -1 \
8
8
  --outputlevel max \
9
- --refineregressderivs 1 \
10
9
  sub-RAPIDTIDETEST.nii.gz \
11
10
  ../dst/sub-RAPIDTIDETEST_1deriv
12
11
 
13
- rapidtide \
14
- --spatialfilt -1 \
15
- --nprocs -1 \
16
- --searchrange -5 20 \
17
- --simcalcrange 50 -1 \
18
- --outputlevel max \
19
- --refineregressderivs 2 \
20
- sub-RAPIDTIDETEST.nii.gz \
21
- ../dst/sub-RAPIDTIDETEST_2deriv
22
-
23
-
24
12
  retroregress \
25
13
  sub-RAPIDTIDETEST.nii.gz \
26
14
  ../dst/sub-RAPIDTIDETEST_1deriv \
27
15
  --alternateoutput ../dst/retrotest_1to1 \
28
16
  --nprocs -1 \
29
17
  --regressderivs 0 \
30
- --refineregressderivs 1 \
31
18
  --outputlevel max
32
19
 
33
20
  retroregress \
@@ -36,14 +23,4 @@ retroregress \
36
23
  --alternateoutput ../dst/retrotest_2to1 \
37
24
  --nprocs -1 \
38
25
  --regressderivs 0 \
39
- --refineregressderivs 1 \
40
- --outputlevel max
41
-
42
- retroregress \
43
- sub-RAPIDTIDETEST.nii.gz \
44
- ../dst/sub-RAPIDTIDETEST_1deriv \
45
- --alternateoutput ../dst/retrotest_1to2 \
46
- --nprocs -1 \
47
- --regressderivs 0 \
48
- --refineregressderivs 2 \
49
26
  --outputlevel max
@@ -16,21 +16,9 @@
16
16
  # limitations under the License.
17
17
  #
18
18
  #
19
- import sys
20
- import warnings
21
-
22
- import matplotlib.pyplot as plt
23
19
  import numpy as np
24
- import scipy as sp
25
- from numpy.polynomial import Polynomial
26
- from scipy.optimize import curve_fit
27
- from statsmodels.robust import mad
28
20
 
29
- import rapidtide.correlate as tide_corr
30
- import rapidtide.filter as tide_filt
31
- import rapidtide.fit as tide_fit
32
- import rapidtide.miscmath as tide_math
33
- import rapidtide.util as tide_util
21
+ import rapidtide.io as tide_io
34
22
 
35
23
 
36
24
  class fMRIData:
@@ -42,9 +30,7 @@ class fMRIData:
42
30
  mask = None
43
31
  validvoxels = None
44
32
  filename = None
45
- textio = False
46
- fileiscifti = False
47
- fileisnifti = False
33
+ filetype = None
48
34
 
49
35
  def __init__(
50
36
  self,
@@ -110,53 +96,44 @@ class fMRIData:
110
96
  ####################################################
111
97
  # Read data
112
98
  ####################################################
113
- # open the fmri datafil
99
+ # open the fmri datafile
114
100
  if tide_io.checkiftext(self.filename):
115
- self.textio = True
116
- else:
117
- self.textio = False
118
-
119
- if self.textio:
101
+ self.filetype = "text"
120
102
  self.data = tide_io.readvecs(self.filename)
121
103
  self.header = None
122
104
  theshape = np.shape(nim_data)
123
105
  self.xsize = theshape[0]
124
106
  self.ysize = 1
125
107
  self.numslices = 1
126
- self.fileiscifti = False
127
108
  self.timepoints = theshape[1]
128
109
  self.thesizes = [0, int(self.xsize), 1, 1, int(self.timepoints)]
129
110
  self.numspatiallocs = int(self.xsize)
130
111
  self.nativespaceshape = self.xsize
131
112
  self.cifti_hdr = None
113
+ elif tide_io.checkifcifti(self.filename):
114
+ self.filetype = "cifti"
115
+ (
116
+ cifti,
117
+ cifti_hdr,
118
+ self.data,
119
+ self.header,
120
+ thedims,
121
+ thesizes,
122
+ dummy,
123
+ ) = tide_io.readfromcifti(self.filename)
124
+ self.isgrayordinate = True
125
+ self.timepoints = nim_data.shape[1]
126
+ numspatiallocs = nim_data.shape[0]
127
+ LGR.debug(f"cifti file has {timepoints} timepoints, {numspatiallocs} numspatiallocs")
128
+ slicesize = numspatiallocs
129
+ nativespaceshape = (1, 1, 1, 1, numspatiallocs)
132
130
  else:
133
- self.fileiscifti = tide_io.checkifcifti(self.filename)
134
- if self.fileiscifti:
135
- (
136
- cifti,
137
- cifti_hdr,
138
- self.data,
139
- self.header,
140
- thedims,
141
- thesizes,
142
- dummy,
143
- ) = tide_io.readfromcifti(self.filename)
144
- self.isgrayordinate = True
145
- self.timepoints = nim_data.shape[1]
146
- numspatiallocs = nim_data.shape[0]
147
- LGR.debug(
148
- f"cifti file has {timepoints} timepoints, {numspatiallocs} numspatiallocs"
149
- )
150
- slicesize = numspatiallocs
151
- nativespaceshape = (1, 1, 1, 1, numspatiallocs)
152
- else:
153
- LGR.debug("input file is NIFTI")
154
- nim, self.data, self.header, thedims, thesizes = tide_io.readfromnifti(
155
- fmrifilename
156
- )
157
- optiondict["isgrayordinate"] = False
158
- xsize, ysize, numslices, timepoints = tide_io.parseniftidims(thedims)
159
- numspatiallocs = int(xsize) * int(ysize) * int(numslices)
160
- cifti_hdr = None
161
- nativespaceshape = (xsize, ysize, numslices)
131
+ self.filetype = "nifti"
132
+ LGR.debug("input file is NIFTI")
133
+ nim, self.data, self.header, thedims, thesizes = tide_io.readfromnifti(fmrifilename)
134
+ optiondict["isgrayordinate"] = False
135
+ xsize, ysize, numslices, timepoints = tide_io.parseniftidims(thedims)
136
+ numspatiallocs = int(xsize) * int(ysize) * int(numslices)
137
+ cifti_hdr = None
138
+ nativespaceshape = (xsize, ysize, numslices)
162
139
  xdim, ydim, slicethickness, tr = tide_io.parseniftisizes(thesizes)
@@ -1469,11 +1469,11 @@ def getpeaks(xvals, yvals, xrange=None, bipolar=False, displayplots=False):
1469
1469
  peaks = np.concatenate((peaks, negpeaks))
1470
1470
  procpeaks = []
1471
1471
  if xrange is None:
1472
- lagmin = xvals[0]
1473
- lagmax = xvals[-1]
1472
+ lagmin = xvals[0] + 0.0
1473
+ lagmax = xvals[-1] + 0.0
1474
1474
  else:
1475
- lagmin = xrange[0]
1476
- lagmax = xrange[1]
1475
+ lagmin = xrange[0] + 0.0
1476
+ lagmax = xrange[1] + 0.0
1477
1477
  originloc = tide_util.valtoindex(xvals, 0.0, discrete=False)
1478
1478
  for thepeak in peaks:
1479
1479
  if lagmin <= xvals[thepeak] <= lagmax:
@@ -22,7 +22,7 @@ import warnings
22
22
 
23
23
  import numpy as np
24
24
  from scipy.signal import savgol_filter, welch
25
- from scipy.stats import kurtosis, skew, pearsonr
25
+ from scipy.stats import kurtosis, pearsonr, skew
26
26
  from statsmodels.robust import mad
27
27
  from tqdm import tqdm
28
28
 
@@ -0,0 +1,330 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright 2016-2025 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 sys
20
+ import warnings
21
+
22
+ import matplotlib.pyplot as plt
23
+ import numpy as np
24
+ import scipy as sp
25
+ from numpy.polynomial import Polynomial
26
+ from scipy.optimize import curve_fit
27
+ from statsmodels.robust import mad
28
+
29
+ import rapidtide.correlate as tide_corr
30
+ import rapidtide.filter as tide_filt
31
+ import rapidtide.fit as tide_fit
32
+ import rapidtide.miscmath as tide_math
33
+ import rapidtide.util as tide_util
34
+
35
+
36
+ class fMRIDataset:
37
+ thedata = None
38
+ theshape = None
39
+ xsize = None
40
+ ysize = None
41
+ numslices = None
42
+ realtimepoints = None
43
+ timepoints = None
44
+ slicesize = None
45
+ numvox = None
46
+ numskip = 0
47
+ validvoxels = None
48
+
49
+ def __init__(self, thedata, zerodata=False, copydata=False, numskip=0):
50
+ if zerodata:
51
+ self.thedata = thedata * 0.0
52
+ else:
53
+ if copydata:
54
+ self.thedata = thedata + 0.0
55
+ else:
56
+ self.thedata = thedata
57
+ self.getsizes()
58
+ self.setnumskip(numskip)
59
+
60
+ def getsizes(self):
61
+ self.theshape = self.thedata.shape
62
+ self.xsize = self.theshape[0]
63
+ self.ysize = self.theshape[1]
64
+ self.numslices = self.theshape[2]
65
+ try:
66
+ self.realtimepoints = self.theshape[3]
67
+ except KeyError:
68
+ self.realtimepoints = 1
69
+ self.slicesize = self.xsize * self.ysize
70
+ self.numvox = self.slicesize * self.numslices
71
+
72
+ def setnumskip(self, numskip):
73
+ self.numskip = numskip
74
+ self.timepoints = self.realtimepoints - self.numskip
75
+
76
+ def setvalid(self, validvoxels):
77
+ self.validvoxels = validvoxels
78
+
79
+ def byslice(self):
80
+ return self.thedata[:, :, :, self.numskip :].reshape(
81
+ (self.slicesize, self.numslices, self.timepoints)
82
+ )
83
+
84
+ def byvol(self):
85
+ return self.thedata[:, :, :, self.numskip :].reshape((self.numvox, self.timepoints))
86
+
87
+ def byvox(self):
88
+ return self.thedata[:, :, :, self.numskip :]
89
+
90
+
91
+ class ProbeRegressor:
92
+ inputtimeaxis = None
93
+ inputvec = None
94
+ inputfreq = None
95
+ inputstart = 0.0
96
+ inputoffset = 0.0
97
+ targettimeaxis = None
98
+ targetvec = None
99
+ targetfreq = None
100
+ targetstart = 0.0
101
+ targetoffset = 0.0
102
+
103
+ def __init__(
104
+ self,
105
+ inputvec,
106
+ inputfreq,
107
+ targetperiod,
108
+ targetpoints,
109
+ targetstartpoint,
110
+ targetoversample=1,
111
+ inputstart=0.0,
112
+ inputoffset=0.0,
113
+ targetstart=0.0,
114
+ targetoffset=0.0,
115
+ ):
116
+ self.inputoffset = inputoffset
117
+ self.setinputvec(inputvec, inputfreq, inputstart=inputstart)
118
+ self.targetperiod = targetperiod
119
+ self.makeinputtimeaxis()
120
+ self.targetoversample = targetoversample
121
+ self.targetpoints = targetpoints
122
+ self.targetstartpoint = targetstartpoint
123
+
124
+ def setinputvec(self, inputvec, inputfreq, inputstart=0.0):
125
+ self.inputvec = inputvec
126
+ self.inputfreq = inputfreq
127
+ self.inputstart = inputstart
128
+
129
+ def makeinputtimeaxis(self):
130
+ self.inputtimeaxis = np.linspace(0.0, len(self.inputvec)) / self.inputfreq - (
131
+ self.inputstarttime + self.inputoffset
132
+ )
133
+
134
+ def maketargettimeaxis(self):
135
+ self.targettimeaxis = np.linspace(
136
+ self.targetperiod * self.targetstartpoint,
137
+ self.targetperiod * self.targetstartpoint + self.targetperiod * self.targetpoints,
138
+ num=self.targetpoints,
139
+ endpoint=True,
140
+ )
141
+
142
+
143
+ class Coherer:
144
+ reftc = None
145
+ prepreftc = None
146
+ testtc = None
147
+ preptesttc = None
148
+ freqaxis = None
149
+ similarityfunclen = 0
150
+ datavalid = False
151
+ freqaxisvalid = False
152
+ similarityfuncorigin = 0
153
+ freqmin = None
154
+ freqmax = None
155
+
156
+ def __init__(
157
+ self,
158
+ Fs=0.0,
159
+ freqmin=None,
160
+ freqmax=None,
161
+ ncprefilter=None,
162
+ reftc=None,
163
+ detrendorder=1,
164
+ windowfunc="hamming",
165
+ debug=False,
166
+ ):
167
+ self.Fs = Fs
168
+ self.ncprefilter = ncprefilter
169
+ self.reftc = reftc
170
+ self.windowfunc = windowfunc
171
+ self.detrendorder = detrendorder
172
+ self.debug = debug
173
+ if freqmin is not None:
174
+ self.freqmin = freqmin
175
+ if freqmax is not None:
176
+ self.freqmax = freqmax
177
+ if self.reftc is not None:
178
+ self.setreftc(self.reftc)
179
+ if self.debug:
180
+ print("Coherer init:")
181
+ print("\tFs:", self.Fs)
182
+ print("\twindowfunc:", self.windowfunc)
183
+ print("\tdetrendorder:", self.detrendorder)
184
+ print("\tfreqmin:", self.freqmin)
185
+ print("\tfreqmax:", self.freqmax)
186
+
187
+ def preptc(self, thetc):
188
+ # prepare timecourse by filtering, normalizing, detrending, and applying a window function
189
+ return tide_math.corrnormalize(
190
+ self.ncprefilter.apply(self.Fs, thetc),
191
+ detrendorder=self.detrendorder,
192
+ windowfunc="None",
193
+ )
194
+
195
+ def setlimits(self, freqmin, freqmax):
196
+ self.freqmin = freqmin
197
+ self.freqmax = freqmax
198
+ if self.freqaxisvalid:
199
+ self.freqmininpts = np.max([0, tide_util.valtoindex(self.freqaxis, self.freqmin)])
200
+ self.freqmaxinpts = np.min(
201
+ [
202
+ tide_util.valtoindex(self.freqaxis, self.freqmax),
203
+ len(self.freqaxis) - 1,
204
+ ]
205
+ )
206
+ if self.debug:
207
+ print("setlimits:")
208
+ print("\tfreqmin,freqmax:", self.freqmin, self.freqmax)
209
+ print("\tfreqmininpts,freqmaxinpts:", self.freqmininpts, self.freqmaxinpts)
210
+
211
+ def getaxisinfo(self):
212
+ return (
213
+ self.freqaxis[self.freqmininpts],
214
+ self.freqaxis[self.freqmaxinpts],
215
+ self.freqaxis[1] - self.freqaxis[0],
216
+ self.freqmaxinpts - self.freqmininpts,
217
+ )
218
+
219
+ def setreftc(self, reftc):
220
+ self.reftc = reftc + 0.0
221
+ self.prepreftc = self.preptc(self.reftc)
222
+
223
+ # get frequency axis, etc
224
+ self.freqaxis, self.thecoherence = sp.signal.coherence(
225
+ self.prepreftc, self.prepreftc, fs=self.Fs
226
+ )
227
+ # window=self.windowfunc)'''
228
+ self.similarityfunclen = len(self.thecoherence)
229
+ self.similarityfuncorigin = 0
230
+ self.freqaxisvalid = True
231
+ self.datavalid = False
232
+ if self.freqmin is None or self.freqmax is None:
233
+ self.setlimits(self.freqaxis[0], self.freqaxis[-1])
234
+ self.freqmininpts = tide_util.valtoindex(
235
+ self.freqaxis, self.freqmin, discretization="floor", debug=self.debug
236
+ )
237
+ self.freqmaxinpts = tide_util.valtoindex(
238
+ self.freqaxis, self.freqmax, discretization="ceiling", debug=self.debug
239
+ )
240
+
241
+ def trim(self, vector):
242
+ return vector[self.freqmininpts : self.freqmaxinpts]
243
+
244
+ def run(self, thetc, trim=True, alt=False):
245
+ if len(thetc) != len(self.reftc):
246
+ print(
247
+ "Coherer: timecourses are of different sizes:",
248
+ len(thetc),
249
+ "!=",
250
+ len(self.reftc),
251
+ "- exiting",
252
+ )
253
+ sys.exit()
254
+
255
+ self.testtc = thetc + 0.0
256
+ self.preptesttc = self.preptc(self.testtc)
257
+
258
+ # now actually do the coherence
259
+ if self.debug:
260
+ fig = plt.figure()
261
+ ax = fig.add_subplot(111)
262
+ plt.plot(self.prepreftc, "r")
263
+ plt.plot(self.preptesttc, "b")
264
+ plt.legend(["reference", "test timecourse"])
265
+ plt.show()
266
+
267
+ if not alt:
268
+ self.freqaxis, self.thecoherence = sp.signal.coherence(
269
+ self.prepreftc, self.preptesttc, fs=self.Fs
270
+ )
271
+ else:
272
+ self.freqaxis, self.thecsdxy = sp.signal.csd(
273
+ 10000.0 * self.prepreftc,
274
+ 10000.0 * self.preptesttc,
275
+ fs=self.Fs,
276
+ scaling="spectrum",
277
+ )
278
+ self.freqaxis, self.thecsdxx = sp.signal.csd(
279
+ 10000.0 * self.prepreftc,
280
+ 10000.0 * self.prepreftc,
281
+ fs=self.Fs,
282
+ scaling="spectrum",
283
+ )
284
+ self.freqaxis, self.thecsdyy = sp.signal.csd(
285
+ 10000.0 * self.preptesttc,
286
+ 10000.0 * self.preptesttc,
287
+ fs=self.Fs,
288
+ scaling="spectrum",
289
+ )
290
+ self.thecoherence = np.nan_to_num(
291
+ abs(self.thecsdxy) ** 2 / (abs(self.thecsdxx) * abs(self.thecsdyy))
292
+ )
293
+
294
+ self.similarityfunclen = len(self.thecoherence)
295
+ self.similarityfuncorigin = 0
296
+ self.datavalid = True
297
+
298
+ if trim:
299
+ if alt:
300
+ self.themax = np.argmax(self.thecoherence[self.freqmininpts : self.freqmaxinpts])
301
+ return (
302
+ self.trim(self.thecoherence),
303
+ self.trim(self.freqaxis),
304
+ self.themax,
305
+ self.trim(self.thecsdxx),
306
+ self.trim(self.thecsdyy),
307
+ self.trim(self.thecsdxy),
308
+ )
309
+ else:
310
+ self.themax = np.argmax(self.thecoherence[self.freqmininpts : self.freqmaxinpts])
311
+ return (
312
+ self.trim(self.thecoherence),
313
+ self.trim(self.freqaxis),
314
+ self.themax,
315
+ )
316
+ else:
317
+ if alt:
318
+ self.themax = np.argmax(self.thecoherence)
319
+ return (
320
+ self.thecoherence,
321
+ self.freqaxis,
322
+ self.themax,
323
+ self.thecsdxx,
324
+ self.thecsdyy,
325
+ self.thecsdxy,
326
+ )
327
+
328
+ else:
329
+ self.themax = np.argmax(self.thecoherence)
330
+ return self.thecoherence, self.freqaxis, self.themax