rpipe 0.1.4 → 0.1.6

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.
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