rpipe 0.1.3 → 0.1.4

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/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: