vienna_rna 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/modules/base.rb +11 -7
- data/lib/modules/rnabor.rb +6 -2
- data/lib/modules/utils.rb +12 -4
- data/lib/modules/xbor.rb +21 -1
- data/lib/vienna_rna.rb +0 -6
- metadata +2 -2
data/lib/modules/base.rb
CHANGED
@@ -82,14 +82,18 @@ module ViennaRna
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def run_with_hooks(flags = {})
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
85
|
+
unless @response
|
86
|
+
tap do
|
87
|
+
@runtime = Benchmark.measure do
|
88
|
+
pre_run_check unless respond_to?(:run_command)
|
89
|
+
@response = run_without_hooks(flags)
|
90
|
+
post_process if respond_to?(:post_process)
|
91
|
+
end
|
91
92
|
|
92
|
-
|
93
|
+
debugger { "Total runtime: %.3f sec." % runtime.real }
|
94
|
+
end
|
95
|
+
else
|
96
|
+
self
|
93
97
|
end
|
94
98
|
end
|
95
99
|
|
data/lib/modules/rnabor.rb
CHANGED
@@ -3,12 +3,16 @@ require "bigdecimal"
|
|
3
3
|
|
4
4
|
module ViennaRna
|
5
5
|
class Rnabor < Xbor
|
6
|
+
FLAGS = {
|
7
|
+
nodangle: :empty
|
8
|
+
}
|
9
|
+
|
6
10
|
def partition
|
7
|
-
non_zero_shells.
|
11
|
+
non_zero_shells.inject(&:+)
|
8
12
|
end
|
9
13
|
|
10
14
|
def total_count
|
11
|
-
counts.
|
15
|
+
counts.inject(&:+)
|
12
16
|
end
|
13
17
|
|
14
18
|
def counts
|
data/lib/modules/utils.rb
CHANGED
@@ -34,24 +34,32 @@ module ViennaRna
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def plot(data, options = {})
|
37
|
-
options = { title: "Title", x_label: "X Axis", y_label: "Y Axis" }.merge(options)
|
38
|
-
|
39
37
|
Gnuplot.open do |gnuplot|
|
40
38
|
Gnuplot::Plot.new(gnuplot) do |plot|
|
41
|
-
|
39
|
+
case options[:output]
|
40
|
+
when /file/i then
|
41
|
+
plot.output(options[:filename])
|
42
|
+
plot.terminal("png size 800,600")
|
43
|
+
end
|
44
|
+
|
42
45
|
plot.title(options[:title])
|
43
46
|
plot.xlabel(options[:x_label])
|
44
47
|
plot.ylabel(options[:y_label])
|
45
48
|
|
46
49
|
plot.data = data.map do |data_hash|
|
47
50
|
Gnuplot::DataSet.new([data_hash[:x], data_hash[:y]]) do |dataset|
|
48
|
-
dataset.with = "points"
|
51
|
+
dataset.with = data_hash[:style] || "points"
|
49
52
|
data_hash[:title] ? dataset.title = data_hash[:title] : dataset.notitle
|
50
53
|
end
|
51
54
|
end
|
52
55
|
end
|
53
56
|
end
|
54
57
|
end
|
58
|
+
|
59
|
+
def quick_plot(title, data)
|
60
|
+
# data = [[x_0, y_0], [x_1, y_1], ...]
|
61
|
+
plot([{ x: data.map(&:first), y: data.map(&:last), style: "linespoints" }], title: title)
|
62
|
+
end
|
55
63
|
end
|
56
64
|
end
|
57
65
|
end
|
data/lib/modules/xbor.rb
CHANGED
@@ -3,6 +3,10 @@ require "bigdecimal"
|
|
3
3
|
|
4
4
|
module ViennaRna
|
5
5
|
class Xbor < Base
|
6
|
+
BASE_FLAGS = {
|
7
|
+
E: "/usr/local/bin/energy.par"
|
8
|
+
}
|
9
|
+
|
6
10
|
self.executable_name = -> { name.demodulize.gsub(/^([A-Z].*)bor$/) { |match| $1.upcase + "bor" } }
|
7
11
|
|
8
12
|
def run_command(flags)
|
@@ -11,11 +15,27 @@ module ViennaRna
|
|
11
15
|
file.write("%s\n" % data.safe_structure)
|
12
16
|
file.close
|
13
17
|
|
14
|
-
"%s
|
18
|
+
"%s %s %s" % [
|
19
|
+
exec_name,
|
20
|
+
stringify_flags(BASE_FLAGS.merge(self.class.const_defined?(:FLAGS) ? self.class.const_get(:FLAGS) : {})),
|
21
|
+
file.path
|
22
|
+
]
|
15
23
|
end
|
16
24
|
|
17
25
|
def self.parse(response)
|
18
26
|
response.split(/\n/).select { |line| line =~ /^\d+\t-?\d+/ }.map { |line| line.split(/\t/) }
|
19
27
|
end
|
28
|
+
|
29
|
+
def full_distribution
|
30
|
+
distribution = run.distribution
|
31
|
+
full_distribution = distribution + ([0] * (data.seq.length - distribution.length + 1))
|
32
|
+
end
|
33
|
+
|
34
|
+
def quick_plot
|
35
|
+
ViennaRna::Utils.quick_plot(
|
36
|
+
"%s\\n%s\\n%s" % [self.class.name, data.seq, data.safe_structure],
|
37
|
+
full_distribution.each_with_index.to_a.map(&:reverse)
|
38
|
+
)
|
39
|
+
end
|
20
40
|
end
|
21
41
|
end
|
data/lib/vienna_rna.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vienna_rna
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bio
|