rpipe 0.0.1

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 (104) hide show
  1. data/.document +5 -0
  2. data/.gitignore +23 -0
  3. data/LICENSE +20 -0
  4. data/README +0 -0
  5. data/README.rdoc +33 -0
  6. data/Rakefile +78 -0
  7. data/VERSION +1 -0
  8. data/bin/create_driver.rb +79 -0
  9. data/bin/rpipe +131 -0
  10. data/bin/swallow_batch_run.rb +21 -0
  11. data/lib/core_additions.rb +5 -0
  12. data/lib/custom_methods/JohnsonMerit220Visit1Preproc.m +26 -0
  13. data/lib/custom_methods/JohnsonMerit220Visit1Preproc.rb +43 -0
  14. data/lib/custom_methods/JohnsonMerit220Visit1Preproc_job.m +80 -0
  15. data/lib/custom_methods/JohnsonMerit220Visit1Stats.m +74 -0
  16. data/lib/custom_methods/JohnsonMerit220Visit1Stats.rb +63 -0
  17. data/lib/custom_methods/JohnsonMerit220Visit1Stats_job.m +63 -0
  18. data/lib/custom_methods/JohnsonTbiLongitudinalSnodPreproc.m +26 -0
  19. data/lib/custom_methods/JohnsonTbiLongitudinalSnodPreproc.rb +41 -0
  20. data/lib/custom_methods/JohnsonTbiLongitudinalSnodPreproc_job.m +69 -0
  21. data/lib/custom_methods/JohnsonTbiLongitudinalSnodStats.m +76 -0
  22. data/lib/custom_methods/JohnsonTbiLongitudinalSnodStats.rb +67 -0
  23. data/lib/custom_methods/JohnsonTbiLongitudinalSnodStats_job.m +59 -0
  24. data/lib/custom_methods/ReconWithHello.rb +7 -0
  25. data/lib/default_logger.rb +13 -0
  26. data/lib/default_methods/default_preproc.rb +76 -0
  27. data/lib/default_methods/default_recon.rb +80 -0
  28. data/lib/default_methods/default_stats.rb +94 -0
  29. data/lib/default_methods/recon/physionoise_helper.rb +69 -0
  30. data/lib/default_methods/recon/raw_sequence.rb +109 -0
  31. data/lib/generators/job_generator.rb +36 -0
  32. data/lib/generators/preproc_job_generator.rb +31 -0
  33. data/lib/generators/recon_job_generator.rb +76 -0
  34. data/lib/generators/stats_job_generator.rb +70 -0
  35. data/lib/generators/workflow_generator.rb +128 -0
  36. data/lib/global_additions.rb +18 -0
  37. data/lib/logfile.rb +310 -0
  38. data/lib/matlab_helpers/CreateFunctionalVolumeStruct.m +6 -0
  39. data/lib/matlab_helpers/import_csv.m +32 -0
  40. data/lib/matlab_helpers/matlab_queue.rb +37 -0
  41. data/lib/matlab_helpers/prepare_onsets_xls.m +30 -0
  42. data/lib/rpipe.rb +254 -0
  43. data/rpipe.gemspec +177 -0
  44. data/spec/generators/preproc_job_generator_spec.rb +27 -0
  45. data/spec/generators/recon_job_generator_spec.rb +33 -0
  46. data/spec/generators/stats_job_generator_spec.rb +50 -0
  47. data/spec/generators/workflow_generator_spec.rb +97 -0
  48. data/spec/helper_spec.rb +40 -0
  49. data/spec/integration/johnson.merit220.visit1_spec.rb +47 -0
  50. data/spec/integration/johnson.tbi.longitudinal.snod_spec.rb +48 -0
  51. data/spec/logfile_spec.rb +96 -0
  52. data/spec/matlab_queue_spec.rb +40 -0
  53. data/spec/merit220_stats_spec.rb +81 -0
  54. data/spec/physio_spec.rb +98 -0
  55. data/test/drivers/merit220_workflow_sample.yml +15 -0
  56. data/test/drivers/mrt00000.yml +65 -0
  57. data/test/drivers/mrt00015.yml +62 -0
  58. data/test/drivers/mrt00015_hello.yml +41 -0
  59. data/test/drivers/mrt00015_withphys.yml +81 -0
  60. data/test/drivers/tbi000.yml +129 -0
  61. data/test/drivers/tbi000_separatevisits.yml +137 -0
  62. data/test/drivers/tmp.yml +58 -0
  63. data/test/fixtures/faces3_recognitionA.mat +0 -0
  64. data/test/fixtures/faces3_recognitionA.txt +86 -0
  65. data/test/fixtures/faces3_recognitionA_equal.csv +25 -0
  66. data/test/fixtures/faces3_recognitionA_unequal.csv +21 -0
  67. data/test/fixtures/faces3_recognitionB_incmisses.txt +86 -0
  68. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPd3R_40.txt +13360 -0
  69. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPd3_40.txt +13360 -0
  70. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPttl_40.txt +13360 -0
  71. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTd3R_40.txt +13360 -0
  72. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTd3_40.txt +13360 -0
  73. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTttl_40.txt +13360 -0
  74. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTd3R_40.txt +334 -0
  75. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTd3_40.txt +334 -0
  76. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTttl_40.txt +334 -0
  77. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_RRT_40.txt +334 -0
  78. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_RVT_40.txt +334 -0
  79. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_card_spline_40.txt +334 -0
  80. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_resp_spline_40.txt +334 -0
  81. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_RRT_40.txt +9106 -0
  82. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_RVT_40.txt +9106 -0
  83. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTd3R_40.txt +167 -0
  84. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTd3_40.txt +167 -0
  85. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTttl_40.txt +167 -0
  86. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_RRT_40.txt +167 -0
  87. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_RVT_40.txt +167 -0
  88. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_card_spline_40.txt +167 -0
  89. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_resp_spline_40.txt +167 -0
  90. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_card_spline_40.txt +13360 -0
  91. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_resp_spline_40.txt +9106 -0
  92. data/test/fixtures/physionoise_regressors/EPI__fMRI_Task1_resp_spline_downsampled_40.txt +9106 -0
  93. data/test/fixtures/ruport_summary.yml +123 -0
  94. data/test/fixtures/valid_scans.yaml +35 -0
  95. data/test/helper.rb +10 -0
  96. data/test/test_dynamic_method_inclusion.rb +10 -0
  97. data/test/test_includes.rb +11 -0
  98. data/test/test_integrative_johnson.merit220.visit1.rb +31 -0
  99. data/test/test_preproc.rb +11 -0
  100. data/test/test_recon.rb +11 -0
  101. data/test/test_rpipe.rb +19 -0
  102. data/vendor/output_catcher.rb +93 -0
  103. data/vendor/trollop.rb +781 -0
  104. metadata +260 -0
@@ -0,0 +1,81 @@
1
+ require 'helper_spec'
2
+ require 'rpipe'
3
+
4
+ describe "Unit testing for johnson.merit220.visit1" do
5
+ before(:each) do
6
+ @driver_file = File.join(File.dirname(__FILE__), 'drivers', 'mrt00000.yml')
7
+ @driver = YAML.load_file(@driver_file)
8
+
9
+ @driver['rawdir'] = File.join($MRI_DATA, 'mrt00000', 'dicoms')
10
+ @driver['origdir'] = @origdir = Dir.mktmpdir('orig_')
11
+ @driver['procdir'] = @procdir = Dir.mktmpdir('proc_')
12
+ @driver['statsdir'] = @statsdir = Dir.mktmpdir('stats_')
13
+
14
+ @valid_responses_options = {
15
+ 'directory' => File.join($MRI_DATA, 'responses'),
16
+ 'logfiles' => [
17
+ 'mrt00000_abc_01012010_faces3_recognitionB.txt',
18
+ 'mrt00000_abc_01012010_faces3_recognitionA.txt'
19
+ ]
20
+ }
21
+
22
+ @valid_combine_options = {
23
+ :combined_vector_title => :misses,
24
+ :original_vector_titles => [:new_misses, :old_misses]
25
+ }
26
+
27
+ @pipe = RPipe.new(@driver)
28
+ @job = @pipe.stats_jobs.first
29
+ end
30
+
31
+ it "should convert logfiles into matfiles" do
32
+ conditions = [:new_correct, :new_incorrect, :old_correct, :old_incorrect]
33
+ Dir.mktmpdir do |dir|
34
+ Dir.chdir dir do
35
+ @job.onsetsfiles = @job.create_onsets_files(@valid_responses_options, conditions)
36
+ @job.onsetsfiles.should_not be_nil
37
+ @job.onsetsfiles.should == ["mrt00000_faces3_recognitionB.mat", "mrt00000_faces3_recognitionA.mat"]
38
+ puts Dir.glob('*')
39
+ @job.onsetsfiles.each do |onsetfile|
40
+ File.exist?(onsetfile).should be_true
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ it "should convert logfiles into matfiles including misses as a condition" do
47
+ conditions = [:new_correct, :new_incorrect, :old_correct, :old_incorrect, {:misses => [:new_misses, :old_misses]} ]
48
+ output_conditions = ['new_correct', 'new_incorrect', 'old_correct', 'old_incorrect', 'misses']
49
+
50
+ Dir.mktmpdir do |dir|
51
+ Dir.chdir dir do
52
+ @job.onsetsfiles = @job.create_onsets_files(@valid_responses_options, conditions)
53
+ @job.onsetsfiles.should_not be_nil
54
+ @job.onsetsfiles.should == ["mrt00000_faces3_recognitionB.mat", "mrt00000_faces3_recognitionA.mat"]
55
+ puts Dir.glob('*')
56
+ @job.onsetsfiles.each do |onsetfile|
57
+ File.exist?(onsetfile).should be_true
58
+ csvfile = File.basename(onsetfile, '.mat') + '.csv'
59
+ lines = File.open(csvfile, 'r') {|f| f.readlines }
60
+ header = lines.first.chomp
61
+ missing_conditions = []
62
+ header.split(", ").collect do |output_condition|
63
+ missing_conditions << output_condition unless output_conditions.include?(output_condition)
64
+ end
65
+ missing_conditions.should be_empty
66
+ end
67
+
68
+ end
69
+ end
70
+ end
71
+
72
+ it "should raise a script error if neither log files nor mat files are configured." do
73
+ @job.onsetsfiles = nil
74
+ @job.responses = nil
75
+ lambda { @job.create_or_link_onsets_files }.should raise_error ScriptError, /Condition vectors cannot be created/
76
+ end
77
+
78
+ after(:each) do
79
+ FileUtils.rm_r([@origdir, @procdir, @statsdir])
80
+ end
81
+ end
@@ -0,0 +1,98 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../../physionoise/lib'))
2
+
3
+ require 'helper_spec'
4
+ require 'rpipe'
5
+ require 'physionoise'
6
+
7
+
8
+ describe "Test Phyiosnoise" do
9
+ before(:each) do
10
+ @runs_dir = File.join($MRI_DATA, 'mrt00000', 'dicoms')
11
+ job_params = {
12
+ "scans" => [{
13
+ "label"=>"task1",
14
+ "dir"=>"s07_epi",
15
+ "z_slices"=>36,
16
+ "rep_time"=>2.0,
17
+ "type"=>"func",
18
+ "physio_files"=> {
19
+ :phys_directory => "../cardiac", # Relative to rawdir
20
+ :series_description => "EPI fMRI Task1",
21
+ :respiration_signal => "RESPData_epiRT_0211201009_21_22_80",
22
+ :respiration_trigger => "RESPTrig_epiRT_0211201009_21_22_80",
23
+ :cardiac_signal => "PPGData_epiRT_0211201009_21_22_80",
24
+ :cardiac_trigger => "PPGTrig_epiRT_0211201009_21_22_80"
25
+ },
26
+ "bold_reps"=>167,
27
+ "task"=>"Faces3B"
28
+ }]
29
+ }
30
+
31
+ workflow_spec = {
32
+ "subid"=>"mrt00000",
33
+ "rawdir"=> @runs_dir,
34
+ "origdir"=> Dir.mktmpdir('orig_'),
35
+ "procdir"=> Dir.mktmpdir('proc_'),
36
+ "statsdir"=> Dir.mktmpdir('stats_'),
37
+ "collision"=> "destroy"
38
+ }
39
+
40
+ @valid_physionoise_run_spec = [{
41
+ :run_directory=> @runs_dir,
42
+ :bold_reps=>167, :respiration_signal=>"RESPData_epiRT_0211201009_21_22_80",
43
+ :respiration_trigger=>"RESPTrig_epiRT_0211201009_21_22_80",
44
+ :cardiac_signal=>"PPGData_epiRT_0211201009_21_22_80",
45
+ :cardiac_trigger=>"PPGTrig_epiRT_0211201009_21_22_80",
46
+ :phys_directory=> File.join(@runs_dir, '..', 'cardiac'),
47
+ :rep_time=>2.0,
48
+ :series_description=>"EPI fMRI Task1"
49
+ }]
50
+
51
+ @recon_job = Reconstruction.new(workflow_spec, job_params)
52
+ @scan_spec = @recon_job.scans.first
53
+
54
+ @physionoise_fixture_dir = File.join(File.dirname(__FILE__), 'fixtures', 'physionoise_regressors')
55
+
56
+ end
57
+
58
+ it "should create physionoise regressors from Cardiac and Respiration Data" do
59
+ Dir.chdir @recon_job.origdir do
60
+ @recon_job.create_physiosnoise_regressors(@scan_spec)
61
+ end
62
+
63
+ Dir.compare_directories(@recon_job.origdir, @physionoise_fixture_dir).should be_true
64
+
65
+ end
66
+
67
+ it "should correctly build a spec for passing to physionoise" do
68
+ @recon_job.build_physionoise_run_spec(@scan_spec).should == @valid_physionoise_run_spec
69
+ end
70
+
71
+ it "should correctly build a physionoise python command" do
72
+ @valid_physionoise_run_spec.each do |run|
73
+ puts Physionoise.build_run_cmd(run)
74
+ end
75
+ end
76
+
77
+ it "should build a 3dRetroicor string" do
78
+ valid_cmd = "3dretroicor -prefix ptask1.nii -card #{@runs_dir}/../cardiac/PPGData_epiRT_0211201009_21_22_80 -resp #{@runs_dir}/../cardiac/RESPData_epiRT_0211201009_21_22_80 task1.nii"
79
+ valid_outfile = "p#{@scan_spec['label']}.nii"
80
+ test_cmd, test_outfile = @recon_job.build_retroicor_cmd(@scan_spec['physio_files'], "#{@scan_spec['label']}.nii")
81
+
82
+ valid_cmd.should == test_cmd
83
+ valid_outfile.should == test_outfile
84
+ end
85
+
86
+ it "should raise an error building a 3dRetroicor string if improperly configured" do
87
+ physio_files = @scan_spec['physio_files']
88
+ physio_files.delete(:cardiac_signal)
89
+
90
+ lambda {@recon_job.build_retroicor_cmd(physio_files, "#{@scan_spec['label']}.nii") }.should raise_error ScriptError, /Missing .* cardiac/
91
+ end
92
+
93
+ it "should raise an IOError building a 3dRetroicor string with bad files"
94
+
95
+ after(:each) do
96
+ FileUtils.rm_r([@recon_job.origdir, @recon_job.procdir, @recon_job.statsdir])
97
+ end
98
+ end
@@ -0,0 +1,15 @@
1
+ # Workflow Driver Sample
2
+ # johnson.merit220.visit1
3
+ # 6/15/2010
4
+ study_procedure: johnson.merit220.visit1
5
+ ignore_patterns:
6
+ - /pcasl/i
7
+ - /raw$/i
8
+ directory_formats:
9
+ origdir: /Data/vtrak1/preprocessed/visits/<study_procedure>/<subid>/fmri/images
10
+ procdir: /Data/vtrak1/preprocessed/visits/<study_procedure>/<subid>/fmri/proc
11
+ statsdir: /Data/vtrak1/preprocessed/visits/<study_procedure>/<subid>/fmri/stats_basic
12
+ responses_dir: /Data/vtrak1/raw/test/fixtures/rpipe/responses
13
+ custom_methods:
14
+ preproc: true
15
+ stats: true
@@ -0,0 +1,65 @@
1
+ subid: mrt00000
2
+ rawdir: /Data/vtrak1/raw/test/fixtures/rpipe/johnson.merit220.visit1/mrt00000/dicoms
3
+ origdir: /Data/scratch/mrt00000_orig
4
+ procdir: /Data/scratch/mrt00000_proc
5
+ statsdir: /Data/scratch/mrt00000_stats
6
+ collision: destroy
7
+
8
+ jobs:
9
+ - step: reconstruct
10
+ scans:
11
+ - dir: s07_epi
12
+ type: func
13
+ label: task1
14
+ task: Faces3A
15
+ bold_reps: 167
16
+ volumes_to_skip: 3
17
+ z_slices: 36
18
+ - dir: s08_epi
19
+ type: func
20
+ label: task2
21
+ task: Faces3B
22
+ bold_reps: 167
23
+ volumes_to_skip: 3
24
+ z_slices: 36
25
+ - dir: s09_epi
26
+ type: func
27
+ label: rest
28
+ bold_reps: 167
29
+ volumes_to_skip: 3
30
+ z_slices: 36
31
+
32
+ - step: preprocess
33
+ method: JohnsonMerit220Visit1Preproc
34
+ bold_reps:
35
+ - 164
36
+ - 164
37
+ - 164
38
+
39
+ - step: stats
40
+ method: JohnsonMerit220Visit1Stats
41
+ responses:
42
+ directory: /Data/vtrak1/raw/test/fixtures/rpipe/responses
43
+ logfiles:
44
+ - mrt00000_abc_01012010_faces3_recognitionB.txt
45
+ - mrt00000_abc_01012010_faces3_recognitionA.txt
46
+ # - /Data/scratch/mrt00000/onsets/mrt00015_sep_021110_faces3_recognitionA.txt
47
+ # - /Data/scratch/mrt00000/onsets/mrt00015_sep_021110_faces3_recognitionB.txt
48
+ # This is an ordered list, so put A or B first as appropriate.
49
+ # onsetsfiles:
50
+ # - /Data/scratch/mrt00000/onsets/mrt00015_faces3_recognitionA.mat
51
+ # - /Data/scratch/mrt00000/onsets/mrt00015_faces3_recognitionB.mat
52
+ regressorsfiles:
53
+ - rp_amrt00000_task1.txt
54
+ - rp_amrt00000_task2.txt
55
+ conditions:
56
+ - new_correct
57
+ - new_incorrect
58
+ - old_correct
59
+ - old_incorrect
60
+ - misses:
61
+ - new_misses
62
+ - old_misses
63
+ bold_reps:
64
+ - 164
65
+ - 164
@@ -0,0 +1,62 @@
1
+ subid: mrt00015
2
+ rawdir: /Data/scratch/mrt00015/dicoms
3
+ origdir: /Data/scratch/mrt00015_orig
4
+ procdir: /Data/scratch/mrt00015_proc
5
+ statsdir: /Data/scratch/mrt00015_stats
6
+ collision: destroy
7
+
8
+ jobs:
9
+ - step: reconstruct
10
+ scans:
11
+ - dir: s07_epi
12
+ type: func
13
+ label: task1
14
+ task: Faces3A
15
+ bold_reps: 167
16
+ volumes_to_skip: 3
17
+ z_slices: 36
18
+ - dir: s08_epi
19
+ type: func
20
+ label: task2
21
+ task: Faces3B
22
+ bold_reps: 167
23
+ volumes_to_skip: 3
24
+ z_slices: 36
25
+ - dir: s09_epi
26
+ type: func
27
+ label: rest
28
+ bold_reps: 167
29
+ volumes_to_skip: 3
30
+ z_slices: 36
31
+
32
+ - step: preprocess
33
+ method: Merit220Preproc
34
+ bold_reps:
35
+ - 164
36
+ - 164
37
+ - 164
38
+
39
+ - step: stats
40
+ method: Merit220Stats
41
+ responses:
42
+ directory: rpipe/spec/fixtures/rawdata/responses
43
+ logfiles:
44
+ - mrt00015_faces3_recognitionB.txt
45
+ - mrt00015_faces3_recognitionA.txt
46
+ # - /Data/scratch/mrt00015/onsets/mrt00015_sep_021110_faces3_recognitionA.txt
47
+ # - /Data/scratch/mrt00015/onsets/mrt00015_sep_021110_faces3_recognitionB.txt
48
+ # This is an ordered list, so put A or B first as appropriate.
49
+ # onsetsfiles:
50
+ # - /Data/scratch/mrt00015/onsets/mrt00015_faces3_recognitionA.mat
51
+ # - /Data/scratch/mrt00015/onsets/mrt00015_faces3_recognitionB.mat
52
+ regressorsfiles:
53
+ - rp_amrt00015_task1.txt
54
+ - rp_amrt00015_task2.txt
55
+ conditions:
56
+ - new_correct
57
+ - new_incorrect
58
+ - old_correct
59
+ - old_incorrect
60
+ bold_reps:
61
+ - 164
62
+ - 164
@@ -0,0 +1,41 @@
1
+ subid: mrt00015
2
+ rawdir: /Data/scratch/mrt00015
3
+ origdir: /Data/scratch/mrt00015_orig
4
+ procdir: /Data/scratch/mrt00015_proc
5
+ collision: destroy
6
+
7
+ jobs:
8
+ - step: reconstruct
9
+ method: ReconWithHello
10
+ scans:
11
+ - dir: s07_epi
12
+ type: func
13
+ label: task1
14
+ task: Faces3A
15
+ bold_reps: 167
16
+ z_slices: 36
17
+ - dir: s08_epi
18
+ type: func
19
+ label: task2
20
+ task: Faces3B
21
+ bold_reps: 167
22
+ z_slices: 36
23
+ - dir: s09_epi
24
+ type: func
25
+ label: rest
26
+ bold_reps: 167
27
+ z_slices: 36
28
+
29
+ - step: preprocess
30
+ template_spec:
31
+ job: template_pipetest_spatial_preproc.mat
32
+ subid: Swallow003
33
+
34
+ - step: stats
35
+ onsets_files:
36
+ - Swallow003_v01_sw01_onsets.mat
37
+ - Swallow003_v01_sw02_onsets.mat
38
+ - Swallow003_v01_sw03_onsets.mat
39
+ template_spec:
40
+ job: template_stats.mat
41
+ subid: Swallow003
@@ -0,0 +1,81 @@
1
+ subid: mrt00015
2
+ rawdir: /Data/scratch/mrt00015/dicoms
3
+ origdir: /Data/scratch/mrt00015_withphys_orig
4
+ procdir: /Data/scratch/mrt00015_withphys_proc
5
+ statsdir: /Data/scratch/mrt00015_withphys_stats
6
+ collision: destroy
7
+
8
+ jobs:
9
+ - step: reconstruct
10
+ scans:
11
+ - dir: s07_epi
12
+ type: func
13
+ label: task1
14
+ task: Faces3A
15
+ bold_reps: 167
16
+ z_slices: 36
17
+ rep_time: 2.0
18
+ physio_files:
19
+ :respiration_signal: RESPData_epiRT_0211201009_21_22_80
20
+ :phys_directory: ../cardiac # Relative to raw dir or absolute
21
+ :respiration_trigger: RESPTrig_epiRT_0211201009_21_22_80
22
+ :cardiac_signal: PPGData_epiRT_0211201009_21_22_80
23
+ :series_description: EPI fMRI Task1
24
+ :cardiac_trigger: PPGTrig_epiRT_0211201009_21_22_80
25
+ - dir: s08_epi
26
+ type: func
27
+ label: task2
28
+ task: Faces3B
29
+ bold_reps: 167
30
+ z_slices: 36
31
+ rep_time: 2.0
32
+ physio_files:
33
+ :respiration_signal: RESPData_epiRT_0211201009_28_12_835
34
+ :phys_directory: ../cardiac # Relative to raw dir or absolute
35
+ :respiration_trigger: RESPTrig_epiRT_0211201009_28_12_835
36
+ :cardiac_signal: PPGData_epiRT_0211201009_28_12_835
37
+ :series_description: EPI fMRI Task2
38
+ :cardiac_trigger: PPGTrig_epiRT_0211201009_28_12_835
39
+ - dir: s09_epi
40
+ type: func
41
+ label: rest
42
+ bold_reps: 167
43
+ z_slices: 36
44
+ rep_time: 2.0
45
+ physio_files:
46
+ :respiration_signal: RESPData_epiRT_0211201009_34_39_738
47
+ :phys_directory: ../cardiac # Relative to raw dir or absolute
48
+ :respiration_trigger: RESPTrig_epiRT_0211201009_34_39_738
49
+ :cardiac_signal: PPGData_epiRT_0211201009_34_39_738
50
+ :series_description: EPI Resting fMRI
51
+ :cardiac_trigger: PPGTrig_epiRT_0211201009_34_39_738
52
+
53
+ - step: preprocess
54
+ method: Merit220Preproc
55
+ bold_reps:
56
+ - 164
57
+ - 164
58
+ - 164
59
+
60
+ - step: stats
61
+ method: Merit220Stats
62
+ logresponsefiles:
63
+ - /Volumes/MED-CLUSTER-A.MEDICINE_DATA/team/FMRI/BEHAVIORAL_ANALYSES/CURRENT/johnson.merit220.visit1/Scan/Unprocessed/mrt00015_sep_021110_faces3_recognitionB.txt
64
+ - /Volumes/MED-CLUSTER-A.MEDICINE_DATA/team/FMRI/BEHAVIORAL_ANALYSES/CURRENT/johnson.merit220.visit1/Scan/Unprocessed/mrt00015_sep_021110_faces3_recognitionA.txt
65
+ # - /Data/scratch/mrt00015/onsets/mrt00015_sep_021110_faces3_recognitionA.txt
66
+ # - /Data/scratch/mrt00015/onsets/mrt00015_sep_021110_faces3_recognitionB.txt
67
+ # This is an ordered list, so put A or B first as appropriate.
68
+ # onsetsfiles:
69
+ # - /Data/scratch/mrt00015/onsets/mrt00015_faces3_recognitionA.mat
70
+ # - /Data/scratch/mrt00015/onsets/mrt00015_faces3_recognitionB.mat
71
+ regressorsfiles:
72
+ - rp_apmrt00015_task1.txt
73
+ - rp_apmrt00015_task2.txt
74
+ conditions:
75
+ - new_correct
76
+ - new_incorrect
77
+ - old_correct
78
+ - old_incorrect
79
+ bold_reps:
80
+ - 164
81
+ - 164
@@ -0,0 +1,129 @@
1
+ ---
2
+ subid: tbi000
3
+ origdir: <%= Dir.mktmpdir('orig') %>
4
+ procdir: <%= Dir.mktmpdir('proc') %>
5
+ statsdir: <%= @statsdir = Dir.mktmpdir('stats') %>
6
+ study_procedure: johnson.tbi.longitudinal.snod
7
+ # task_onsets: /Data/vtrak1/analyses/aparna/tbifmrilongitudinal/johnson.tbi.longitudinal.snod/progs/snod_onsets.yml
8
+ collision: overwrite
9
+
10
+ jobs:
11
+ - step: reconstruct
12
+ rawdir: /Data/vtrak1/raw/test/fixtures/rpipe/johnson.tbi.longitudinal.snod/tbi000_1/raw
13
+ scans:
14
+ - label: v1_snodB
15
+ pfile: P38400.7
16
+ type: func
17
+ volumes_to_skip: 3
18
+ bold_reps: 141
19
+ task: snodB
20
+ - label: v1_snodA
21
+ pfile: P38912.7
22
+ type: func
23
+ volumes_to_skip: 3
24
+ bold_reps: 141
25
+ task: snodA
26
+ - step: reconstruct
27
+ rawdir: /Data/vtrak1/raw/test/fixtures/rpipe/johnson.tbi.longitudinal.snod/tbi000_2/raw
28
+ scans:
29
+ - label: v2_snodC
30
+ pfile: P33280.7
31
+ type: func
32
+ volumes_to_skip: 3
33
+ bold_reps: 141
34
+ task: snodC
35
+ - label: v2_snodD
36
+ pfile: P33792.7
37
+ type: func
38
+ volumes_to_skip: 3
39
+ bold_reps: 141
40
+ task: snodD
41
+ - step: reconstruct
42
+ rawdir: /Data/vtrak1/raw/test/fixtures/rpipe/johnson.tbi.longitudinal.snod/tbi000_3/raw
43
+ scans:
44
+ - label: v3_snodB
45
+ pfile: P61440.7
46
+ type: func
47
+ volumes_to_skip: 3
48
+ bold_reps: 141
49
+ task: snodB
50
+ - label: v3_snodA
51
+ pfile: P61952.7
52
+ type: func
53
+ volumes_to_skip: 3
54
+ bold_reps: 141
55
+ task: snodA
56
+
57
+ - step: preprocess
58
+ method: JohnsonTbiLongitudinalSnodPreproc
59
+ scan_labels:
60
+ - v1_snodB
61
+ - v1_snodA
62
+ - v2_snodC
63
+ - v2_snodD
64
+ - v3_snodB
65
+ - v3_snodA
66
+ bold_reps:
67
+ - 138
68
+ - 138
69
+ - 138
70
+ - 138
71
+ - 138
72
+ - 138
73
+
74
+ - step: stats
75
+ statsdir: <%= File.join(@statsdir, 'v1') %>
76
+ method: JohnsonTbiLongitudinalSnodStats
77
+ scan_labels:
78
+ - v1_snodB
79
+ - v1_snodA
80
+ onsetsfiles:
81
+ - /Data/vtrak1/analyses/aparna/tbifmrilongitudinal/johnson.tbi.longitudinal.snod/progs/onsets/snodB_vectors.mat
82
+ - /Data/vtrak1/analyses/aparna/tbifmrilongitudinal/johnson.tbi.longitudinal.snod/progs/onsets/snodA_vectors.mat
83
+ regressorsfiles:
84
+ - rp_atbi000_v1_snodB.txt
85
+ - rp_atbi000_v1_snodA.txt
86
+ bold_reps:
87
+ - 138
88
+ - 138
89
+ conditions:
90
+ - new
91
+ - old
92
+
93
+ - step: stats
94
+ statsdir: <%= File.join(@statsdir, 'v2') %>
95
+ method: JohnsonTbiLongitudinalSnodStats
96
+ scan_labels:
97
+ - v2_snodC
98
+ - v2_snodD
99
+ onsetsfiles:
100
+ - /Data/vtrak1/analyses/aparna/tbifmrilongitudinal/johnson.tbi.longitudinal.snod/progs/onsets/snodC_vectors.mat
101
+ - /Data/vtrak1/analyses/aparna/tbifmrilongitudinal/johnson.tbi.longitudinal.snod/progs/onsets/snodD_vectors.mat
102
+ regressorsfiles:
103
+ - rp_atbi000_v2_snodC.txt
104
+ - rp_atbi000_v2_snodD.txt
105
+ bold_reps:
106
+ - 138
107
+ - 138
108
+ conditions:
109
+ - new
110
+ - old
111
+
112
+ - step: stats
113
+ statsdir: <%= File.join(@statsdir, 'v3') %>
114
+ method: JohnsonTbiLongitudinalSnodStats
115
+ scan_labels:
116
+ - v3_snodB
117
+ - v3_snodA
118
+ onsetsfiles:
119
+ - /Data/vtrak1/analyses/aparna/tbifmrilongitudinal/johnson.tbi.longitudinal.snod/progs/onsets/snodB_vectors.mat
120
+ - /Data/vtrak1/analyses/aparna/tbifmrilongitudinal/johnson.tbi.longitudinal.snod/progs/onsets/snodA_vectors.mat
121
+ regressorsfiles:
122
+ - rp_atbi000_v3_snodB.txt
123
+ - rp_atbi000_v3_snodA.txt
124
+ bold_reps:
125
+ - 138
126
+ - 138
127
+ conditions:
128
+ - new
129
+ - old