rpipe 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in ruby-nifti.gemspec
3
+ # Specify your gem's dependencies in rpipe.gemspec
4
4
  gemspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -16,15 +16,21 @@ def create!
16
16
  workflow_options = workflow_options_defaults.merge(spec_options).merge(cli_options[:config])
17
17
 
18
18
  # Create a Workflow Generator and use it to create configure job.
19
- rawdir = ARGV.pop
20
- workflow = WorkflowGenerator.new(rawdir, workflow_options)
21
- if cli_options[:dry_run]
22
- pp workflow.build
23
- else
19
+ while ARGV.size >= 1
24
20
  begin
25
- puts write_driver_hash workflow.build, :cli_options => cli_options
26
- rescue IOError => e
27
- puts e
21
+ rawdir = ARGV.shift
22
+ workflow = WorkflowGenerator.new(rawdir, workflow_options)
23
+ if cli_options[:dry_run]
24
+ pp workflow.build
25
+ else
26
+ begin
27
+ puts write_driver_hash workflow.build, :cli_options => cli_options
28
+ rescue IOError => e
29
+ puts e
30
+ end
31
+ end
32
+ rescue StandardError => e
33
+ puts "Problem creating driver for #{rawdir}"
28
34
  end
29
35
  end
30
36
  end
@@ -58,7 +64,7 @@ end
58
64
  def parse_options
59
65
  options = { :config => {} }
60
66
  parser = OptionParser.new do |opts|
61
- opts.banner = "Usage: #{File.basename(__FILE__)} [options] RAWDIR"
67
+ opts.banner = "Usage: #{File.basename(__FILE__)} [options] RAWDIR(S)"
62
68
 
63
69
  opts.on('-s', '--spec SPEC', "Spec File for common study parameters") do |spec_file|
64
70
  options[:spec_file] = spec_file
@@ -78,6 +84,7 @@ def parse_options
78
84
 
79
85
  opts.on_tail('-h', '--help', "Show this message") { puts(parser); exit }
80
86
  opts.on_tail("Example: #{File.basename(__FILE__)} mrt00001")
87
+ opts.on_tail("Example: #{File.basename(__FILE__)} raw/johnson.merit220.visit1/mri/mrt*")
81
88
  end
82
89
  parser.parse!(ARGV)
83
90
 
data/bin/rpipe CHANGED
@@ -19,18 +19,26 @@ VERSION_LINE = "rpipe %s WADRC Imaging Core" % VERSION_NUMBER
19
19
  BANNER = <<-EOS
20
20
  A utility for running neuroimaging rpipe jobs.
21
21
 
22
- Usage: rpipe [options] <driver>
22
+ Usage:\trpipe [options] <driver(s)>
23
+
23
24
  EOS
24
25
 
25
26
  # Main Function for the CLI runner.
26
27
  def run!
27
- options, driver = setup_options
28
- run_with_logging File.basename(driver, File.extname(driver)), options do
29
- $Log.info "Begin Pipelining #{driver} | #{Etc.getlogin} on #{`hostname`}"
30
- run_pipe(options, driver)
31
- $Log.info "Finished Pipelining #{driver}"
28
+ options = setup_options
29
+ drivers = ARGV
30
+ while drivers.size >= 1
31
+ driver = drivers.shift
32
+ run_with_logging File.basename(driver, File.extname(driver)), options do
33
+ begin
34
+ $Log.info "Begin Pipelining #{driver} | #{Etc.getlogin} on #{`hostname`}"
35
+ run_pipe(options, driver)
36
+ $Log.info "Finished Pipelining #{driver}"
37
+ rescue StandardError => e
38
+ $Log.error e
39
+ end
40
+ end
32
41
  end
33
-
34
42
  end
35
43
 
36
44
  # Perform Each of the Jobs in a Pipe
@@ -72,12 +80,10 @@ def setup_options
72
80
  end
73
81
 
74
82
  Trollop::die "Driver file not given" if (ARGV.size < 1)
75
- driver = ARGV.shift
76
- Trollop::die "Driver file #{driver} does not exist. Check the path to that file and try again" unless File.exist?(driver)
77
83
 
78
84
  pp opts if opts[:debug]
79
85
 
80
- return opts, driver
86
+ return opts
81
87
  end
82
88
 
83
89
  # Setup Tee IO's for Out and Error and start logs for them.
@@ -14,9 +14,9 @@ module DefaultRecon
14
14
  class DicomRawSequence < RawSequence
15
15
  # Locally copy and unzip a folder of Raw Dicoms and call convert_sequence on them
16
16
  def prepare_and_convert_sequence(outfile)
17
- scandir = File.join(@rawdir, @scan_spec['dir'])
18
- $Log.info "Dicom Reconstruction: #{scandir}"
19
- Pathname.new(scandir).all_dicoms do |dicoms|
17
+ @scandir = File.join(@rawdir, @scan_spec['dir'])
18
+ $Log.info "Dicom Reconstruction: #{@scandir}"
19
+ Pathname.new(@scandir).all_dicoms do |dicoms|
20
20
  convert_sequence(dicoms, outfile)
21
21
  end
22
22
  end
@@ -28,15 +28,23 @@ module DefaultRecon
28
28
  # Convert a folder of unzipped Dicom files to outfile
29
29
  def convert_sequence(dicoms, outfile)
30
30
  local_scandir = File.dirname(dicoms.first)
31
- second_file = Dir.glob( File.join(local_scandir, "*0002*") )
32
- wildcard = File.join(local_scandir, "*.[0-9]*")
31
+ second_file = Dir.glob( File.join(local_scandir, "*0002*") ).first
32
+ glob = case second_file
33
+ when /.*\.dcm$/
34
+ "*.dcm"
35
+ else
36
+ "*.[0-9]*"
37
+ end
38
+ wildcard = File.join(local_scandir, glob)
39
+
40
+
33
41
 
34
42
  recon_cmd_format = 'to3d -skip_outliers %s -prefix tmp.nii "%s"'
35
43
 
36
44
  timing_opts = timing_options(@scan_spec, second_file)
37
45
 
38
46
  unless run(recon_cmd_format % [timing_opts, wildcard])
39
- raise(IOError,"Failed to reconstruct scan: #{scandir}")
47
+ raise(IOError,"Failed to reconstruct scan: #{@scandir}")
40
48
  end
41
49
  end
42
50
 
@@ -44,7 +44,7 @@ class WorkflowGenerator < JobGenerator
44
44
  jobs = []
45
45
 
46
46
  # Recon
47
- recon_options = {'rawdir' => @rawdir, 'epi_pattern' => /(Resting|Task)/i, }
47
+ recon_options = {'rawdir' => @rawdir, 'epi_pattern' => /(Rest|Task)/i, }
48
48
  config_step_method(recon_options, 'recon') if @config['custom_methods']
49
49
  jobs << ReconJobGenerator.new(recon_options).build
50
50
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rpipe}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristopher Kosmatka", "Erik Kastman"]
12
- s.date = %q{2011-03-24}
12
+ s.date = %q{2011-03-31}
13
13
  s.description = %q{Neuroimaging preprocessing the Ruby way}
14
14
  s.email = %q{kjkosmatka@gmail.com}
15
15
  s.executables = ["swallow_batch_run.rb", "rpipe", "summarize_responses.rb", "create_driver.rb"]
@@ -157,6 +157,7 @@ Gem::Specification.new do |s|
157
157
  s.add_development_dependency(%q<shoulda>, [">= 0"])
158
158
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
159
159
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
160
+ s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
160
161
  s.add_runtime_dependency(%q<metamri>, [">= 0"])
161
162
  s.add_runtime_dependency(%q<log4r>, [">= 0"])
162
163
  s.add_runtime_dependency(%q<POpen4>, [">= 0"])
@@ -166,6 +167,7 @@ Gem::Specification.new do |s|
166
167
  s.add_dependency(%q<shoulda>, [">= 0"])
167
168
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
168
169
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
170
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
169
171
  s.add_dependency(%q<metamri>, [">= 0"])
170
172
  s.add_dependency(%q<log4r>, [">= 0"])
171
173
  s.add_dependency(%q<POpen4>, [">= 0"])
@@ -176,6 +178,7 @@ Gem::Specification.new do |s|
176
178
  s.add_dependency(%q<shoulda>, [">= 0"])
177
179
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
178
180
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
181
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
179
182
  s.add_dependency(%q<metamri>, [">= 0"])
180
183
  s.add_dependency(%q<log4r>, [">= 0"])
181
184
  s.add_dependency(%q<POpen4>, [">= 0"])
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: 29
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kristopher Kosmatka
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-03-24 00:00:00 -05:00
19
+ date: 2011-03-31 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -77,8 +77,8 @@ dependencies:
77
77
  requirement: *id004
78
78
  - !ruby/object:Gem::Dependency
79
79
  prerelease: false
80
- name: metamri
81
- type: :runtime
80
+ name: thoughtbot-shoulda
81
+ type: :development
82
82
  version_requirements: &id005 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
@@ -91,7 +91,7 @@ dependencies:
91
91
  requirement: *id005
92
92
  - !ruby/object:Gem::Dependency
93
93
  prerelease: false
94
- name: log4r
94
+ name: metamri
95
95
  type: :runtime
96
96
  version_requirements: &id006 !ruby/object:Gem::Requirement
97
97
  none: false
@@ -105,7 +105,7 @@ dependencies:
105
105
  requirement: *id006
106
106
  - !ruby/object:Gem::Dependency
107
107
  prerelease: false
108
- name: POpen4
108
+ name: log4r
109
109
  type: :runtime
110
110
  version_requirements: &id007 !ruby/object:Gem::Requirement
111
111
  none: false
@@ -119,7 +119,7 @@ dependencies:
119
119
  requirement: *id007
120
120
  - !ruby/object:Gem::Dependency
121
121
  prerelease: false
122
- name: ruport
122
+ name: POpen4
123
123
  type: :runtime
124
124
  version_requirements: &id008 !ruby/object:Gem::Requirement
125
125
  none: false
@@ -131,6 +131,20 @@ dependencies:
131
131
  - 0
132
132
  version: "0"
133
133
  requirement: *id008
134
+ - !ruby/object:Gem::Dependency
135
+ prerelease: false
136
+ name: ruport
137
+ type: :runtime
138
+ version_requirements: &id009 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
146
+ version: "0"
147
+ requirement: *id009
134
148
  description: Neuroimaging preprocessing the Ruby way
135
149
  email: kjkosmatka@gmail.com
136
150
  executables: