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