rpipe 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,24 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ ._*
6
+ *.tmproj
7
+ tmtags
8
+
9
+ ## EMACS
10
+ *~
11
+ \#*
12
+ .\#*
13
+
14
+ ## VIM
15
+ *.swp
16
+
17
+ ## PROJECT::GENERAL
18
+ coverage
19
+ rdoc
20
+ pkg
21
+ Gemfile.lock
22
+
23
+ ## PROJECT::SPECIFIC
24
+ doc
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
+ # gem 'metamri', :path => '~/code/metamri'
4
+
3
5
  # Specify your gem's dependencies in rpipe.gemspec
4
6
  gemspec
data/Rakefile CHANGED
@@ -1,26 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "rpipe"
8
- gem.summary = %Q{Neuroimaging preprocessing the Ruby way}
9
- gem.description = %Q{Neuroimaging preprocessing the Ruby way}
10
- gem.email = "kjkosmatka@gmail.com"
11
- gem.homepage = "http://github.com/brainmap/rpipe"
12
- gem.authors = ["Kristopher Kosmatka", "Erik Kastman"]
13
- gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
14
- gem.add_dependency "metamri"
15
- gem.add_dependency "log4r"
16
- gem.add_dependency "POpen4"
17
- gem.add_dependency "ruport"
18
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
19
- end
20
- Jeweler::GemcutterTasks.new
21
- rescue LoadError
22
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
23
- end
3
+ require 'bundler/gem_tasks'
24
4
 
25
5
  require 'rake/testtask'
26
6
  Rake::TestTask.new(:test) do |test|
@@ -66,8 +46,8 @@ begin
66
46
  rescue LoadError
67
47
  "Not using darkfish."
68
48
  end
69
- require 'rake/rdoctask'
70
- Rake::RDocTask.new do |rdoc|
49
+ require 'rdoc/task'
50
+ RDoc::Task.new do |rdoc|
71
51
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
72
52
 
73
53
  rdoc.rdoc_dir = 'rdoc'
data/bin/create_driver.rb CHANGED
@@ -31,6 +31,8 @@ def create!
31
31
  end
32
32
  rescue StandardError => e
33
33
  puts "Problem creating driver for #{rawdir}"
34
+ puts e
35
+ puts e.backtrace if cli_options[:verbose]
34
36
  end
35
37
  end
36
38
  end
@@ -81,6 +83,10 @@ def parse_options
81
83
  opts.on('-f', '--force', "Overwrite drivers if they exist.") do
82
84
  options[:force] = true
83
85
  end
86
+
87
+ opts.on('-v', '--verbose', "Print extra info.") do
88
+ options[:verbose] = true
89
+ end
84
90
 
85
91
  opts.on_tail('-h', '--help', "Show this message") { puts(parser); exit }
86
92
  opts.on_tail("Example: #{File.basename(__FILE__)} mrt00001")
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
3
+ require 'rubygems'
4
+ require 'optparse'
5
+ require 'logfile'
6
+ require 'pathname'
7
+
8
+ def create!
9
+ # Parse CLI Options and Spec File
10
+ cli_options = parse_options
11
+
12
+ # Extract Onsets Files from Log Text Files
13
+ while ARGV.size >= 1
14
+ begin
15
+ filename = ARGV.shift
16
+ basename = File.basename(filename)
17
+
18
+ log = Logfile.new(filename, *cli_options[:conditions])
19
+ puts log.to_csv
20
+ log.write_csv(basename + '.csv')
21
+ log.write_mat(filename)
22
+ rescue StandardError => e
23
+ puts "Problem creating onsets for #{filename}"
24
+ puts e
25
+ puts e.backtrace if cli_options[:verbose]
26
+ end
27
+ end
28
+
29
+ end
30
+
31
+
32
+ def parse_options
33
+ options = { :config => {} }
34
+ parser = OptionParser.new do |opts|
35
+ opts.banner = "Usage: #{File.basename(__FILE__)} [options] RAWDIR(S)"
36
+
37
+ opts.on('-f', '--files FILES', "Logfiles to Extract onsets from") do |files|
38
+ options[:logfiles] = files.gsub(" ", "").split(',')
39
+ end
40
+
41
+ opts.on('-c', '--conditions CONDITIONS', "Conditions to extract onsets for") do |conditions_arg|
42
+ options[:conditions] = conditions_arg.gsub(" ", "").split(",").collect(&:to_sym)
43
+ end
44
+
45
+ opts.on('-f', '--force', "Overwrite onsets files if they exist.") do
46
+ options[:force] = true
47
+ end
48
+
49
+ opts.on('-v', '--verbose', "Print extra info.") do
50
+ options[:verbose] = true
51
+ end
52
+
53
+
54
+
55
+ opts.on_tail('-h', '--help', "Show this message") { puts(parser); exit }
56
+ opts.on_tail("Example: #{File.basename(__FILE__)} -c 'old, new' pdt00020_bac_081910_faces3_recognitionA.txt pdt00045_lms_112210_faces3_recognitionB.txt")
57
+ end
58
+ parser.parse!(ARGV)
59
+
60
+ if ARGV.size == 0
61
+ puts "Problem with arguments - Missing Logfiles to extract!"
62
+ puts(parser); exit
63
+ end
64
+
65
+ if options[:conditions].empty?
66
+ puts "Missing conditions - specify them with -c 'new, old' "
67
+ puts(parser); exit
68
+ end
69
+
70
+ return options
71
+ end
72
+
73
+ # All that for this.
74
+ create!
@@ -37,6 +37,15 @@ def parse_options
37
37
  end
38
38
  parser.parse!(ARGV)
39
39
 
40
+ unless ARGV.size == 0
41
+ puts parser, "\n"
42
+
43
+ puts "Sorry, didn't recognize #{ARGV.join(' or ')}"
44
+ puts "Maybe add -f or -d?", "\n"
45
+
46
+ exit
47
+ end
48
+
40
49
  return options
41
50
  end
42
51
 
@@ -1,3 +1,4 @@
1
+ # Shared preprocessing routines for rpipe
1
2
  module DefaultPreproc
2
3
 
3
4
  # Runs the preprocessing job, including spm job customization, run spm job, and handling motion issues.
@@ -24,7 +24,7 @@ module DefaultRecon
24
24
  # outfile = run_retroicor(scan_spec['physio_files'], outfile)
25
25
  # end
26
26
 
27
- slice_time_correct(outfile)
27
+ slice_time_correct(outfile, scan_spec['alt_direction'] ||= 'alt+z')
28
28
  else
29
29
  File.copy('tmp.nii', outfile)
30
30
  end
@@ -43,6 +43,7 @@ module DefaultRecon
43
43
  def reconstruct_scan(scan_spec, outfile)
44
44
  if scan_spec['dir']
45
45
  sequence = DicomRawSequence.new(scan_spec, @rawdir)
46
+ File.delete('tmp.nii') if File.exist? 'tmp.nii'
46
47
  sequence.prepare('tmp.nii')
47
48
  strip_leading_volumes('tmp.nii', outfile, @volume_skip, scan_spec['bold_reps'])
48
49
  elsif scan_spec['pfile']
@@ -66,9 +67,9 @@ module DefaultRecon
66
67
  end
67
68
 
68
69
  # Uses to3d to slice time correct a 4D functional nifti file. Writes result in the current working directory.
69
- def slice_time_correct(infile)
70
+ def slice_time_correct(infile, alt_direction = "alt+z")
70
71
  $Log.info "Slice Timing Correction: #{infile}"
71
- cmd = "3dTshift -tzero 0 -tpattern alt+z -prefix a#{infile} #{infile}"
72
+ cmd = "3dTshift -tzero 0 -tpattern #{alt_direction} -prefix a#{infile} #{infile}"
72
73
  unless run(cmd)
73
74
  raise ScriptError, "Failed to slice time correct: #{cmd}"
74
75
  end
@@ -55,10 +55,11 @@ module DefaultRecon
55
55
  def timing_options(scan_spec, second_file)
56
56
  return "" if scan_spec['type'] == "anat"
57
57
  instance_offset = scan_spec['z_slices'] + 1
58
+ alt_direction = scan_spec['alt_direction'] ||= 'alt+z'
58
59
  if system("dicom_hdr #{second_file} | grep .*REL.Instance.*#{instance_offset}")
59
- return "-epan -time:tz #{scan_spec['bold_reps']} #{scan_spec['z_slices']} 2000 alt+z"
60
+ return "-epan -time:tz %s %s 2000 %s" % [scan_spec['bold_reps'], scan_spec['z_slices'], alt_direction]
60
61
  else
61
- return "-epan -time:zt #{scan_spec['z_slices']} #{scan_spec['bold_reps']} 2000 alt+z"
62
+ return "-epan -time:zt %s %s 2000 %s" % [scan_spec['z_slices'], scan_spec['bold_reps'], alt_direction]
62
63
  end
63
64
  end
64
65
  end
data/lib/logfile.rb CHANGED
@@ -99,20 +99,31 @@ class Logfile
99
99
  File.stat(@textfile).mtime <=> File.stat(other_logfile.textfile).mtime
100
100
  end
101
101
 
102
+ # Write a summary table of logfiles to a CSV
103
+ # Arguments:
104
+ # * filename : String. Output Filename for CSV
105
+ # * directory : String. Directory to summarize (defaults to pwd).
106
+ # * grouping : String. Table attribute to group responses by. (defaults to 'version')
102
107
  def self.write_summary(filename = nil, directory = nil, grouping = nil)
103
108
  # One usage for this method is from the summarize_responses.rb executible,
104
109
  # which doesn't allow for ordered arguments on the fly. Therefore,
105
110
  # assign defaults within the method itself, not the signature.
106
- filename ||= 'tmp.csv'
111
+ filename ||= "logfile_summary.csv"
107
112
  directory ||= Dir.pwd
108
113
  grouping ||= 'version'
109
114
 
110
115
  table = self.summarize_directory(directory)
116
+
111
117
  File.open(filename, 'w') do |f|
112
118
  f.puts Ruport::Data::Grouping(table, :by => grouping).to_csv
113
119
  end
114
120
  end
115
-
121
+
122
+ # Create a Ruport::Data::Table containing summary data for a group of Behavioral logfiles.
123
+ # Arguments:
124
+ # * directory : String. Path to a directory to summarize.
125
+ #
126
+ # Raises an IO Error if no logfiles were successfully summarized.
116
127
  def self.summarize_directory(directory)
117
128
  table = Ruport::Data::Table.new
118
129
  Dir.glob(File.join(directory, '*.txt')).each do |logfile|
@@ -121,6 +132,10 @@ class Logfile
121
132
  table << lf.ruport_summary
122
133
  table.column_names = lf.summary_attributes if table.column_names.empty?
123
134
  end
135
+
136
+ # Ensure that at least some logfiles were found and summarized.
137
+ raise IOError, "Couldn't find any logfiles in #{directory}" unless table.length >= 1
138
+
124
139
  return table
125
140
  end
126
141
 
@@ -0,0 +1,3 @@
1
+ module Rpipe
2
+ VERSION = "0.1.6"
3
+ end
data/lib/rpipe.rb CHANGED
@@ -19,6 +19,10 @@ ENV['FSLOUTPUTTYPE'] = 'NIFTI'
19
19
  require 'default_logger'
20
20
  require 'global_additions'
21
21
 
22
+ # Initial Definition of Rpipe Module for Bundler-style gemspec management.
23
+ # TODO: Namespace this gem!
24
+ module Rpipe; end
25
+
22
26
  class JobStep
23
27
 
24
28
  COLLISION_POLICY = :panic # options -- :panic, :destroy, :overwrite
data/rpipe.gemspec CHANGED
@@ -1,188 +1,27 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "rpipe/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
6
  s.name = %q{rpipe}
8
- s.version = "0.1.4"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
7
+ s.version = Rpipe::VERSION
8
+
9
+ s.summary = %Q{Neuroimaging preprocessing the Ruby way}
10
+ s.description = %Q{Functional MRI Processing Pipeline for the WADRC}
11
11
  s.authors = ["Kristopher Kosmatka", "Erik Kastman"]
12
- s.date = %q{2011-03-31}
13
- s.description = %q{Neuroimaging preprocessing the Ruby way}
14
- s.email = %q{kjkosmatka@gmail.com}
15
- s.executables = ["swallow_batch_run.rb", "rpipe", "summarize_responses.rb", "create_driver.rb"]
16
- s.extra_rdoc_files = [
17
- "LICENSE",
18
- "README",
19
- "README.rdoc"
20
- ]
21
- s.files = [
22
- ".document",
23
- "Gemfile",
24
- "LICENSE",
25
- "README",
26
- "README.rdoc",
27
- "Rakefile",
28
- "VERSION",
29
- "bin/create_driver.rb",
30
- "bin/rpipe",
31
- "bin/summarize_responses.rb",
32
- "bin/swallow_batch_run.rb",
33
- "lib/core_additions.rb",
34
- "lib/custom_methods/JohnsonMerit220Visit1Preproc.m",
35
- "lib/custom_methods/JohnsonMerit220Visit1Preproc.rb",
36
- "lib/custom_methods/JohnsonMerit220Visit1Preproc_job.m",
37
- "lib/custom_methods/JohnsonMerit220Visit1Stats.m",
38
- "lib/custom_methods/JohnsonMerit220Visit1Stats.rb",
39
- "lib/custom_methods/JohnsonMerit220Visit1Stats_job.m",
40
- "lib/custom_methods/JohnsonTbiLongitudinalSnodPreproc.m",
41
- "lib/custom_methods/JohnsonTbiLongitudinalSnodPreproc.rb",
42
- "lib/custom_methods/JohnsonTbiLongitudinalSnodPreproc_job.m",
43
- "lib/custom_methods/JohnsonTbiLongitudinalSnodStats.m",
44
- "lib/custom_methods/JohnsonTbiLongitudinalSnodStats.rb",
45
- "lib/custom_methods/JohnsonTbiLongitudinalSnodStats_job.m",
46
- "lib/custom_methods/ReconWithHello.rb",
47
- "lib/default_logger.rb",
48
- "lib/default_methods/default_preproc.rb",
49
- "lib/default_methods/default_recon.rb",
50
- "lib/default_methods/default_stats.rb",
51
- "lib/default_methods/recon/physionoise_helper.rb",
52
- "lib/default_methods/recon/raw_sequence.rb",
53
- "lib/generators/job_generator.rb",
54
- "lib/generators/preproc_job_generator.rb",
55
- "lib/generators/recon_job_generator.rb",
56
- "lib/generators/stats_job_generator.rb",
57
- "lib/generators/workflow_generator.rb",
58
- "lib/global_additions.rb",
59
- "lib/logfile.rb",
60
- "lib/matlab_helpers/CreateFunctionalVolumeStruct.m",
61
- "lib/matlab_helpers/import_csv.m",
62
- "lib/matlab_helpers/matlab_queue.rb",
63
- "lib/matlab_helpers/prepare_onsets.m",
64
- "lib/rpipe.rb",
65
- "rpipe.gemspec",
66
- "spec/generators/preproc_job_generator_spec.rb",
67
- "spec/generators/recon_job_generator_spec.rb",
68
- "spec/generators/stats_job_generator_spec.rb",
69
- "spec/generators/workflow_generator_spec.rb",
70
- "spec/helper_spec.rb",
71
- "spec/integration/johnson.merit220.visit1_spec.rb",
72
- "spec/integration/johnson.tbi.longitudinal.snod_spec.rb",
73
- "spec/logfile_spec.rb",
74
- "spec/matlab_queue_spec.rb",
75
- "spec/merit220_stats_spec.rb",
76
- "spec/physio_spec.rb",
77
- "test/drivers/merit220_workflow_sample.yml",
78
- "test/drivers/mrt00000.yml",
79
- "test/drivers/mrt00015.yml",
80
- "test/drivers/mrt00015_hello.yml",
81
- "test/drivers/mrt00015_withphys.yml",
82
- "test/drivers/tbi000.yml",
83
- "test/drivers/tbi000_separatevisits.yml",
84
- "test/drivers/tmp.yml",
85
- "test/fixtures/faces3_recognitionA.mat",
86
- "test/fixtures/faces3_recognitionA.txt",
87
- "test/fixtures/faces3_recognitionA_equal.csv",
88
- "test/fixtures/faces3_recognitionA_unequal.csv",
89
- "test/fixtures/faces3_recognitionB_incmisses.txt",
90
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPd3R_40.txt",
91
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPd3_40.txt",
92
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPttl_40.txt",
93
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTd3R_40.txt",
94
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTd3_40.txt",
95
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTttl_40.txt",
96
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTd3R_40.txt",
97
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTd3_40.txt",
98
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTttl_40.txt",
99
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_RRT_40.txt",
100
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_RVT_40.txt",
101
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_card_spline_40.txt",
102
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_resp_spline_40.txt",
103
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_RRT_40.txt",
104
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_RVT_40.txt",
105
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTd3R_40.txt",
106
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTd3_40.txt",
107
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTttl_40.txt",
108
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_RRT_40.txt",
109
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_RVT_40.txt",
110
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_card_spline_40.txt",
111
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_resp_spline_40.txt",
112
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_card_spline_40.txt",
113
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_resp_spline_40.txt",
114
- "test/fixtures/physionoise_regressors/EPI__fMRI_Task1_resp_spline_downsampled_40.txt",
115
- "test/fixtures/ruport_summary.yml",
116
- "test/fixtures/valid_scans.yaml",
117
- "test/helper.rb",
118
- "test/test_dynamic_method_inclusion.rb",
119
- "test/test_includes.rb",
120
- "test/test_integrative_johnson.merit220.visit1.rb",
121
- "test/test_preproc.rb",
122
- "test/test_recon.rb",
123
- "test/test_rpipe.rb",
124
- "vendor/output_catcher.rb",
125
- "vendor/trollop.rb"
126
- ]
127
- s.homepage = %q{http://github.com/brainmap/rpipe}
128
- s.require_paths = ["lib"]
129
- s.rubygems_version = %q{1.4.2}
130
- s.summary = %q{Neuroimaging preprocessing the Ruby way}
131
- s.test_files = [
132
- "spec/generators/preproc_job_generator_spec.rb",
133
- "spec/generators/recon_job_generator_spec.rb",
134
- "spec/generators/stats_job_generator_spec.rb",
135
- "spec/generators/workflow_generator_spec.rb",
136
- "spec/helper_spec.rb",
137
- "spec/integration/johnson.merit220.visit1_spec.rb",
138
- "spec/integration/johnson.tbi.longitudinal.snod_spec.rb",
139
- "spec/logfile_spec.rb",
140
- "spec/matlab_queue_spec.rb",
141
- "spec/merit220_stats_spec.rb",
142
- "spec/physio_spec.rb",
143
- "test/helper.rb",
144
- "test/test_dynamic_method_inclusion.rb",
145
- "test/test_includes.rb",
146
- "test/test_integrative_johnson.merit220.visit1.rb",
147
- "test/test_preproc.rb",
148
- "test/test_recon.rb",
149
- "test/test_rpipe.rb"
150
- ]
12
+ s.email = "ekk@medicine.wisc.edu"
13
+ s.homepage = "http://github.com/brainmap/rpipe"
151
14
 
152
- if s.respond_to? :specification_version then
153
- s.specification_version = 3
154
-
155
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
156
- s.add_runtime_dependency(%q<rpipe>, [">= 0"])
157
- s.add_development_dependency(%q<shoulda>, [">= 0"])
158
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
159
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
160
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
161
- s.add_runtime_dependency(%q<metamri>, [">= 0"])
162
- s.add_runtime_dependency(%q<log4r>, [">= 0"])
163
- s.add_runtime_dependency(%q<POpen4>, [">= 0"])
164
- s.add_runtime_dependency(%q<ruport>, [">= 0"])
165
- else
166
- s.add_dependency(%q<rpipe>, [">= 0"])
167
- s.add_dependency(%q<shoulda>, [">= 0"])
168
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
169
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
170
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
171
- s.add_dependency(%q<metamri>, [">= 0"])
172
- s.add_dependency(%q<log4r>, [">= 0"])
173
- s.add_dependency(%q<POpen4>, [">= 0"])
174
- s.add_dependency(%q<ruport>, [">= 0"])
175
- end
176
- else
177
- s.add_dependency(%q<rpipe>, [">= 0"])
178
- s.add_dependency(%q<shoulda>, [">= 0"])
179
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
180
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
181
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
182
- s.add_dependency(%q<metamri>, [">= 0"])
183
- s.add_dependency(%q<log4r>, [">= 0"])
184
- s.add_dependency(%q<POpen4>, [">= 0"])
185
- s.add_dependency(%q<ruport>, [">= 0"])
186
- end
15
+ s.add_development_dependency "thoughtbot-shoulda", ">= 0"
16
+ s.add_dependency "metamri", '~>0.2.9'
17
+ s.add_dependency "log4r", '~>1.1.9'
18
+ s.add_dependency "POpen4", '~>0.1.4'
19
+ s.add_dependency "ruport", '~>1.6.3'
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+
187
26
  end
188
27
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpipe
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 6
10
+ version: 0.1.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kristopher Kosmatka
@@ -16,14 +16,13 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-03-31 00:00:00 -05:00
19
+ date: 2011-08-18 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
+ name: thoughtbot-shoulda
23
24
  prerelease: false
24
- name: rpipe
25
- type: :runtime
26
- version_requirements: &id001 !ruby/object:Gem::Requirement
25
+ requirement: &id001 !ruby/object:Gem::Requirement
27
26
  none: false
28
27
  requirements:
29
28
  - - ">="
@@ -32,134 +31,87 @@ dependencies:
32
31
  segments:
33
32
  - 0
34
33
  version: "0"
35
- requirement: *id001
36
- - !ruby/object:Gem::Dependency
37
- prerelease: false
38
- name: shoulda
39
34
  type: :development
40
- version_requirements: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
49
- requirement: *id002
50
- - !ruby/object:Gem::Dependency
51
- prerelease: false
52
- name: thoughtbot-shoulda
53
- type: :development
54
- version_requirements: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
- requirement: *id003
35
+ version_requirements: *id001
64
36
  - !ruby/object:Gem::Dependency
37
+ name: metamri
65
38
  prerelease: false
66
- name: thoughtbot-shoulda
67
- type: :development
68
- version_requirements: &id004 !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
69
40
  none: false
70
41
  requirements:
71
- - - ">="
42
+ - - ~>
72
43
  - !ruby/object:Gem::Version
73
- hash: 3
44
+ hash: 5
74
45
  segments:
75
46
  - 0
76
- version: "0"
77
- requirement: *id004
47
+ - 2
48
+ - 9
49
+ version: 0.2.9
50
+ type: :runtime
51
+ version_requirements: *id002
78
52
  - !ruby/object:Gem::Dependency
53
+ name: log4r
79
54
  prerelease: false
80
- name: thoughtbot-shoulda
81
- type: :development
82
- version_requirements: &id005 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
83
56
  none: false
84
57
  requirements:
85
- - - ">="
58
+ - - ~>
86
59
  - !ruby/object:Gem::Version
87
- hash: 3
60
+ hash: 1
88
61
  segments:
89
- - 0
90
- version: "0"
91
- requirement: *id005
92
- - !ruby/object:Gem::Dependency
93
- prerelease: false
94
- name: metamri
62
+ - 1
63
+ - 1
64
+ - 9
65
+ version: 1.1.9
95
66
  type: :runtime
96
- version_requirements: &id006 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
105
- requirement: *id006
67
+ version_requirements: *id003
106
68
  - !ruby/object:Gem::Dependency
69
+ name: POpen4
107
70
  prerelease: false
108
- name: log4r
109
- type: :runtime
110
- version_requirements: &id007 !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
111
72
  none: false
112
73
  requirements:
113
- - - ">="
74
+ - - ~>
114
75
  - !ruby/object:Gem::Version
115
- hash: 3
76
+ hash: 19
116
77
  segments:
117
78
  - 0
118
- version: "0"
119
- requirement: *id007
120
- - !ruby/object:Gem::Dependency
121
- prerelease: false
122
- name: POpen4
79
+ - 1
80
+ - 4
81
+ version: 0.1.4
123
82
  type: :runtime
124
- version_requirements: &id008 !ruby/object:Gem::Requirement
125
- none: false
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- hash: 3
130
- segments:
131
- - 0
132
- version: "0"
133
- requirement: *id008
83
+ version_requirements: *id004
134
84
  - !ruby/object:Gem::Dependency
135
- prerelease: false
136
85
  name: ruport
137
- type: :runtime
138
- version_requirements: &id009 !ruby/object:Gem::Requirement
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
139
88
  none: false
140
89
  requirements:
141
- - - ">="
90
+ - - ~>
142
91
  - !ruby/object:Gem::Version
143
- hash: 3
92
+ hash: 9
144
93
  segments:
145
- - 0
146
- version: "0"
147
- requirement: *id009
148
- description: Neuroimaging preprocessing the Ruby way
149
- email: kjkosmatka@gmail.com
94
+ - 1
95
+ - 6
96
+ - 3
97
+ version: 1.6.3
98
+ type: :runtime
99
+ version_requirements: *id005
100
+ description: Functional MRI Processing Pipeline for the WADRC
101
+ email: ekk@medicine.wisc.edu
150
102
  executables:
151
- - swallow_batch_run.rb
103
+ - create_driver.rb
104
+ - create_onsets_files.rb
152
105
  - rpipe
153
106
  - summarize_responses.rb
154
- - create_driver.rb
107
+ - swallow_batch_run.rb
155
108
  extensions: []
156
109
 
157
- extra_rdoc_files:
158
- - LICENSE
159
- - README
160
- - README.rdoc
110
+ extra_rdoc_files: []
111
+
161
112
  files:
162
113
  - .document
114
+ - .gitignore
163
115
  - Gemfile
164
116
  - LICENSE
165
117
  - README
@@ -167,6 +119,7 @@ files:
167
119
  - Rakefile
168
120
  - VERSION
169
121
  - bin/create_driver.rb
122
+ - bin/create_onsets_files.rb
170
123
  - bin/rpipe
171
124
  - bin/summarize_responses.rb
172
125
  - bin/swallow_batch_run.rb
@@ -202,6 +155,7 @@ files:
202
155
  - lib/matlab_helpers/matlab_queue.rb
203
156
  - lib/matlab_helpers/prepare_onsets.m
204
157
  - lib/rpipe.rb
158
+ - lib/rpipe/version.rb
205
159
  - rpipe.gemspec
206
160
  - spec/generators/preproc_job_generator_spec.rb
207
161
  - spec/generators/recon_job_generator_spec.rb
@@ -309,6 +263,46 @@ test_files:
309
263
  - spec/matlab_queue_spec.rb
310
264
  - spec/merit220_stats_spec.rb
311
265
  - spec/physio_spec.rb
266
+ - test/drivers/merit220_workflow_sample.yml
267
+ - test/drivers/mrt00000.yml
268
+ - test/drivers/mrt00015.yml
269
+ - test/drivers/mrt00015_hello.yml
270
+ - test/drivers/mrt00015_withphys.yml
271
+ - test/drivers/tbi000.yml
272
+ - test/drivers/tbi000_separatevisits.yml
273
+ - test/drivers/tmp.yml
274
+ - test/fixtures/faces3_recognitionA.mat
275
+ - test/fixtures/faces3_recognitionA.txt
276
+ - test/fixtures/faces3_recognitionA_equal.csv
277
+ - test/fixtures/faces3_recognitionA_unequal.csv
278
+ - test/fixtures/faces3_recognitionB_incmisses.txt
279
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPd3R_40.txt
280
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPd3_40.txt
281
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CPttl_40.txt
282
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTd3R_40.txt
283
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTd3_40.txt
284
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_CRTttl_40.txt
285
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTd3R_40.txt
286
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTd3_40.txt
287
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_CRTttl_40.txt
288
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_RRT_40.txt
289
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_RVT_40.txt
290
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_card_spline_40.txt
291
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_HalfTR_resp_spline_40.txt
292
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_RRT_40.txt
293
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_RVT_40.txt
294
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTd3R_40.txt
295
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTd3_40.txt
296
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_CRTttl_40.txt
297
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_RRT_40.txt
298
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_RVT_40.txt
299
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_card_spline_40.txt
300
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_TR_resp_spline_40.txt
301
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_card_spline_40.txt
302
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_resp_spline_40.txt
303
+ - test/fixtures/physionoise_regressors/EPI__fMRI_Task1_resp_spline_downsampled_40.txt
304
+ - test/fixtures/ruport_summary.yml
305
+ - test/fixtures/valid_scans.yaml
312
306
  - test/helper.rb
313
307
  - test/test_dynamic_method_inclusion.rb
314
308
  - test/test_includes.rb