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 +1 -1
- data/VERSION +1 -1
- data/bin/create_driver.rb +16 -9
- data/bin/rpipe +16 -10
- data/lib/default_methods/recon/raw_sequence.rb +14 -6
- data/lib/generators/workflow_generator.rb +1 -1
- data/rpipe.gemspec +5 -2
- metadata +23 -9
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/bin/create_driver.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
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
|
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
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
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
|
-
|
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' => /(
|
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
|
|
data/rpipe.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rpipe}
|
8
|
-
s.version = "0.1.
|
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-
|
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:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
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-
|
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:
|
81
|
-
type: :
|
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:
|
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:
|
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:
|
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:
|