rbfam 0.0.2 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +4 -0
- data/lib/rbfam.rb +4 -5
- data/lib/{modules → rbfam/modules}/alignment.rb +1 -1
- data/lib/{modules → rbfam/modules}/family.rb +1 -1
- data/lib/{modules → rbfam/modules}/sequence.rb +5 -3
- data/lib/{modules → rbfam/modules}/utils.rb +6 -2
- data/lib/{scripts → rbfam/scripts}/sequences_in_mysql.rb +7 -3
- metadata +9 -8
data/README.md
ADDED
data/lib/rbfam.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
require "bio"
|
2
2
|
require "vienna_rna"
|
3
|
+
require "entrez"
|
3
4
|
require "httparty"
|
4
5
|
require "active_support/inflector"
|
5
6
|
|
7
|
+
Dir[File.join(File.dirname(__FILE__), "rbfam", "modules", "*.rb")].each { |name| require "rbfam/modules/#{File.basename(name, '.rb')}" }
|
8
|
+
|
6
9
|
module Rbfam
|
7
|
-
Dir[File.join(File.dirname(__FILE__), "/modules/*")].each do |file|
|
8
|
-
autoload File.basename(file, ".rb").camelize.to_sym, file
|
9
|
-
end
|
10
|
-
|
11
10
|
def self.script(name)
|
12
|
-
require
|
11
|
+
require "rbfam/scripts/#{File.basename(name, '.rb')}"
|
13
12
|
end
|
14
13
|
end
|
@@ -54,7 +54,7 @@ module Rbfam
|
|
54
54
|
def parse_line(line)
|
55
55
|
line_match = line.match(LINE_REGEXP)
|
56
56
|
|
57
|
-
Rbfam::Sequence.new(family, line_match[1], line_match[2].to_i, line_match[3].to_i, autoload:
|
57
|
+
Rbfam::Sequence.new(family, line_match[1], line_match[2].to_i, line_match[3].to_i, autoload: true)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
@@ -54,7 +54,7 @@ module Rbfam
|
|
54
54
|
def parse_line(line)
|
55
55
|
split_line = line.split(/\t/)
|
56
56
|
|
57
|
-
Rbfam::Sequence.new(self, split_line[0], split_line[2].to_i, split_line[3].to_i, autoload:
|
57
|
+
Rbfam::Sequence.new(self, split_line[0], split_line[2].to_i, split_line[3].to_i, autoload: true)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
@@ -6,7 +6,7 @@ module Rbfam
|
|
6
6
|
@family, @accession, @from, @to = family, accession, from, to
|
7
7
|
|
8
8
|
if options[:sequence]
|
9
|
-
@raw_sequence = options[:sequence]
|
9
|
+
@raw_sequence = (options[:sequence].is_a?(String) ? Bio::Sequence::NA.new(options[:sequence]) : options[:sequence])
|
10
10
|
end
|
11
11
|
|
12
12
|
if options[:autoload]
|
@@ -24,8 +24,8 @@ module Rbfam
|
|
24
24
|
sequence_length: sequence.length,
|
25
25
|
from: from,
|
26
26
|
to: to,
|
27
|
-
seq_from: up_coord + coord_window(
|
28
|
-
seq_to: up_coord + coord_window(
|
27
|
+
seq_from: up_coord + coord_window(options[:coord_window] || {}).min,
|
28
|
+
seq_to: up_coord + coord_window(options[:coord_window] || {}).max,
|
29
29
|
seed: options[:seed]
|
30
30
|
})
|
31
31
|
end
|
@@ -66,6 +66,8 @@ module Rbfam
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def coord_window(options = {})
|
69
|
+
# Ex: { length: 300, extend: 3 }
|
70
|
+
|
69
71
|
range = 0..(down_coord - up_coord)
|
70
72
|
|
71
73
|
if options[:length] && options[:extend]
|
@@ -1,8 +1,12 @@
|
|
1
|
-
require "entrez"
|
2
|
-
|
3
1
|
module Rbfam
|
4
2
|
module Utils
|
5
3
|
class << self
|
4
|
+
def simple_rna_sequence(id, from, to)
|
5
|
+
sequence = rna_sequence_from_entrez(id, [from, to].min, 0..((to - from).abs))
|
6
|
+
|
7
|
+
to < from ? sequence.complement : sequence
|
8
|
+
end
|
9
|
+
|
6
10
|
def rna_sequence_from_entrez(id, position, window, buffer_size = 0)
|
7
11
|
na_sequence_from_entrez(id, position, window, buffer_size).rna
|
8
12
|
end
|
@@ -6,7 +6,7 @@ class Object; def this; self; end; end
|
|
6
6
|
class SequenceTable < ActiveRecord::Base
|
7
7
|
self.table_name = "sequences"
|
8
8
|
|
9
|
-
validates_uniqueness_of :accession, scope: [:
|
9
|
+
validates_uniqueness_of :accession, scope: [:sequence, :structure]
|
10
10
|
|
11
11
|
def self.connect
|
12
12
|
ActiveRecord::Base.establish_connection(config = { adapter: "mysql2", username: "root", reconnect: true })
|
@@ -20,8 +20,12 @@ class SequenceTable < ActiveRecord::Base
|
|
20
20
|
inline_rails if defined?(inline_rails)
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
|
23
|
+
def clean_description
|
24
|
+
("%s %s %s" % [accession, seq_from, seq_to]).gsub(/[^A-Za-z0-9]/, "_")
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_rbfam_sequence(family = nil)
|
28
|
+
Rbfam::Sequence.new(family || Rbfam::Family.new(family), accession, from, to, sequence: sequence)
|
25
29
|
end
|
26
30
|
end
|
27
31
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbfam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
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-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bio
|
@@ -81,12 +81,13 @@ executables: []
|
|
81
81
|
extensions: []
|
82
82
|
extra_rdoc_files: []
|
83
83
|
files:
|
84
|
-
-
|
85
|
-
-
|
86
|
-
-
|
87
|
-
-
|
88
|
-
-
|
89
|
-
-
|
84
|
+
- lib/rbfam/modules/alignment.rb
|
85
|
+
- lib/rbfam/modules/family.rb
|
86
|
+
- lib/rbfam/modules/sequence.rb
|
87
|
+
- lib/rbfam/modules/utils.rb
|
88
|
+
- lib/rbfam/scripts/sequences_in_mysql.rb
|
89
|
+
- lib/rbfam.rb
|
90
|
+
- README.md
|
90
91
|
homepage: http://rubygems.org/gems/rbfam
|
91
92
|
licenses: []
|
92
93
|
post_install_message:
|