Guest User

Untitled

a guest
Jan 16th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. import re
  2. from itertools import groupby
  3.  
  4. multi_echo_ses = {'data': ['sub-01_ses-01_task-view_run-01_echo-1_bold.nii.gz',
  5. 'sub-01_ses-01_task-view_run-01_echo-2_bold.nii.gz',
  6. 'sub-01_ses-01_task-view_run-01_echo-3_bold.nii.gz',
  7. 'sub-01_ses-01_task-view_run-02_echo-1_bold.nii.gz',
  8. 'sub-01_ses-01_task-view_run-02_echo-2_bold.nii.gz',
  9. 'sub-01_ses-01_task-view_run-02_echo-3_bold.nii.gz',
  10. 'sub-01_ses-01_task-rest_run-01_bold.nii.gz',
  11. 'sub-01_ses-02_task-rest_run-01_bold.nii.gz'],
  12. 'grouping': [['sub-01_ses-01_task-view_run-01_echo-1_bold.nii.gz',
  13. 'sub-01_ses-01_task-view_run-01_echo-2_bold.nii.gz',
  14. 'sub-01_ses-01_task-view_run-01_echo-3_bold.nii.gz'],
  15. ['sub-01_ses-01_task-view_run-02_echo-1_bold.nii.gz',
  16. 'sub-01_ses-01_task-view_run-02_echo-2_bold.nii.gz',
  17. 'sub-01_ses-01_task-view_run-02_echo-3_bold.nii.gz'],
  18. 'sub-01_ses-01_task-rest_run-01_bold.nii.gz',
  19. 'sub-01_ses-02_task-rest_run-01_bold.nii.gz']}
  20.  
  21. ds000205 = {'data': ['sub-07_task-functionallocalizer_run-01_bold.nii.gz',
  22. 'sub-07_task-view_run-01_bold.nii.gz',
  23. 'sub-07_task-view_run-02_bold.nii.gz'],
  24. 'grouping': ['sub-07_task-functionallocalizer_run-01_bold.nii.gz',
  25. 'sub-07_task-view_run-01_bold.nii.gz',
  26. 'sub-07_task-view_run-02_bold.nii.gz']}
  27.  
  28. ds000210 = {'data': ['sub-02_task-cuedSGT_run-01_echo-1_bold.nii.gz',
  29. 'sub-02_task-cuedSGT_run-01_echo-2_bold.nii.gz',
  30. 'sub-02_task-cuedSGT_run-01_echo-3_bold.nii.gz',
  31. 'sub-02_task-cuedSGT_run-02_echo-1_bold.nii.gz',
  32. 'sub-02_task-cuedSGT_run-02_echo-2_bold.nii.gz',
  33. 'sub-02_task-cuedSGT_run-02_echo-3_bold.nii.gz',
  34. 'sub-02_task-cuedSGT_run-03_echo-1_bold.nii.gz',
  35. 'sub-02_task-cuedSGT_run-03_echo-2_bold.nii.gz',
  36. 'sub-02_task-cuedSGT_run-03_echo-3_bold.nii.gz',
  37. 'sub-02_task-cuedSGT_run-04_echo-1_bold.nii.gz',
  38. 'sub-02_task-cuedSGT_run-04_echo-2_bold.nii.gz',
  39. 'sub-02_task-cuedSGT_run-04_echo-3_bold.nii.gz',
  40. 'sub-02_task-rest_run-01_echo-1_bold.nii.gz',
  41. 'sub-02_task-rest_run-01_echo-2_bold.nii.gz',
  42. 'sub-02_task-rest_run-01_echo-3_bold.nii.gz'],
  43. 'grouping': [['sub-02_task-cuedSGT_run-01_echo-1_bold.nii.gz',
  44. 'sub-02_task-cuedSGT_run-01_echo-2_bold.nii.gz',
  45. 'sub-02_task-cuedSGT_run-01_echo-3_bold.nii.gz'],
  46. ['sub-02_task-cuedSGT_run-02_echo-1_bold.nii.gz',
  47. 'sub-02_task-cuedSGT_run-02_echo-2_bold.nii.gz',
  48. 'sub-02_task-cuedSGT_run-02_echo-3_bold.nii.gz'],
  49. ['sub-02_task-cuedSGT_run-03_echo-1_bold.nii.gz',
  50. 'sub-02_task-cuedSGT_run-03_echo-2_bold.nii.gz',
  51. 'sub-02_task-cuedSGT_run-03_echo-3_bold.nii.gz'],
  52. ['sub-02_task-cuedSGT_run-04_echo-1_bold.nii.gz',
  53. 'sub-02_task-cuedSGT_run-04_echo-2_bold.nii.gz',
  54. 'sub-02_task-cuedSGT_run-04_echo-3_bold.nii.gz'],
  55. ['sub-02_task-rest_run-01_echo-1_bold.nii.gz',
  56. 'sub-02_task-rest_run-01_echo-2_bold.nii.gz',
  57. 'sub-02_task-rest_run-01_echo-3_bold.nii.gz']]}
  58.  
  59.  
  60. def _grp_echos(x):
  61. if '_echo-' not in x:
  62. return x
  63. echo = re.search("_echo-\\d*", x).group(0)
  64. return x.replace(echo, "_echo-?")
  65.  
  66.  
  67. # mockup a subject_data dictionary
  68. for mock_data in [multi_echo_ses, ds000205, ds000210]:
  69. subj_data = {'bold': mock_data['data']}
  70.  
  71. if subj_data["bold"] is not []:
  72. bold_sess = subj_data["bold"]
  73.  
  74. if any(['_echo-' in bold for bold in bold_sess]):
  75. ses_uids = [list(bold) for _, bold in groupby(bold_sess, key=_grp_echos)]
  76. ses_uids = list(map(lambda x: x[0] if len(x) == 1 else x, ses_uids))
  77. else:
  78. ses_uids = bold_sess
  79.  
  80. subj_data.update({"bold": ses_uids})
  81. assert subj_data['bold'] == mock_data['grouping']
Add Comment
Please, Sign In to add comment