bio-velvet_underground 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/lib/bio-velvet_underground/binary_sequence_store.rb +6 -0
- data/lib/bio-velvet_underground/graph.rb +23 -13
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1ae3ddf8e6093e4808984c2a525a633cd6b7a3d
|
4
|
+
data.tar.gz: e36bd5e26e2f89d2f5917e5333e4420d0817e180
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 457377686af6d3344811f1d9acb0b4c3153842dde4bc36b1c1e7f2802ec0577132a1db7c6a0237db73f8ff870d6d2ef0c992d36f4f9c726720e64c0f48e9b0d5
|
7
|
+
data.tar.gz: f59ba0ee02ecc7239c82750c4bc17d1d851a29818a55158f853a337aeb89be23fca20112213a6822434d813e2af0ba10bf91f333448e1d78f1db6e402808e7f7
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
@@ -55,6 +55,12 @@ class Bio::Velvet::Underground
|
|
55
55
|
sequence_id+1
|
56
56
|
end
|
57
57
|
end
|
58
|
+
|
59
|
+
# Return the number of libraries used in this sequence store that were paired-end
|
60
|
+
# e.g.
|
61
|
+
def num_paired_end_readsets
|
62
|
+
Bio::Velvet::Underground.pairedCategories(@readset)
|
63
|
+
end
|
58
64
|
end
|
59
65
|
|
60
66
|
private
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'csv'
|
2
|
+
require 'bio-velvet'
|
2
3
|
|
3
4
|
class Bio::Velvet::Underground
|
4
5
|
|
@@ -34,7 +35,7 @@ class Bio::Velvet::Underground
|
|
34
35
|
end
|
35
36
|
|
36
37
|
def nodes
|
37
|
-
NodeArray.new self
|
38
|
+
@nodes ||= NodeArray.new self #cache node array
|
38
39
|
end
|
39
40
|
|
40
41
|
def node_count
|
@@ -51,6 +52,7 @@ class Bio::Velvet::Underground
|
|
51
52
|
|
52
53
|
def initialize(graph)
|
53
54
|
@graph = graph
|
55
|
+
@node_cache = []
|
54
56
|
end
|
55
57
|
|
56
58
|
def each
|
@@ -64,10 +66,13 @@ class Bio::Velvet::Underground
|
|
64
66
|
end
|
65
67
|
|
66
68
|
def [](node_id)
|
69
|
+
cache = @node_cache[node_id]
|
70
|
+
return cache unless cache.nil?
|
71
|
+
|
67
72
|
return nil if node_id < 1 or node_id > @graph.internal_graph_struct[:nodeCount]
|
68
73
|
pointer = Bio::Velvet::Underground.getNodeInGraph @graph.internal_graph_struct, node_id
|
69
74
|
node_struct = Bio::Velvet::Underground::NodeStruct.new pointer
|
70
|
-
Node.new(@graph, node_struct)
|
75
|
+
@node_cache[node_id] = Node.new(@graph, node_struct)
|
71
76
|
end
|
72
77
|
end
|
73
78
|
|
@@ -80,11 +85,11 @@ class Bio::Velvet::Underground
|
|
80
85
|
end
|
81
86
|
|
82
87
|
def node_id
|
83
|
-
@internal_node_struct[:ID]
|
88
|
+
@node_id ||= @internal_node_struct[:ID]
|
84
89
|
end
|
85
90
|
|
86
91
|
def length_alone
|
87
|
-
@internal_node_struct[:length]
|
92
|
+
@length_alone ||= @internal_node_struct[:length]
|
88
93
|
end
|
89
94
|
|
90
95
|
def coverages
|
@@ -95,13 +100,14 @@ class Bio::Velvet::Underground
|
|
95
100
|
end
|
96
101
|
|
97
102
|
def ends_of_kmers_of_node
|
103
|
+
return @ends_of_kmers_of_node unless @ends_of_kmers_of_node.nil?
|
98
104
|
seq = []
|
99
105
|
key = %w(A C G T)
|
100
106
|
0.upto(length_alone-1) do |i|
|
101
107
|
n = Bio::Velvet::Underground.getNucleotideInNode(@internal_node_struct, i)
|
102
108
|
seq.push key[n]
|
103
109
|
end
|
104
|
-
|
110
|
+
@ends_of_kmers_of_node = seq.join
|
105
111
|
end
|
106
112
|
|
107
113
|
def ends_of_kmers_of_twin_node
|
@@ -123,10 +129,13 @@ class Bio::Velvet::Underground
|
|
123
129
|
array_start_pointer = Bio::Velvet::Underground.getNodeReads @internal_node_struct, @graph.internal_graph_struct
|
124
130
|
num_short_reads = Bio::Velvet::Underground.getNodeReadCount @internal_node_struct, @graph.internal_graph_struct
|
125
131
|
struct_size = Bio::Velvet::Underground::ShortReadMarker.size #calculate once for performance
|
126
|
-
|
132
|
+
|
133
|
+
# Return a hash of read_id => short_read object
|
134
|
+
@short_reads = Bio::Velvet::Graph::NodedReadArray.new
|
135
|
+
0.step(num_short_reads-1, 1).each do |i|
|
127
136
|
# Use the fact that FFI pointers can do pointer arithmetic
|
128
137
|
pointer = array_start_pointer+(i*struct_size)
|
129
|
-
NodedRead.new
|
138
|
+
@short_reads.push(NodedRead.new(Bio::Velvet::Underground::ShortReadMarker.new(pointer), true))
|
130
139
|
end
|
131
140
|
return @short_reads
|
132
141
|
end
|
@@ -136,12 +145,13 @@ class Bio::Velvet::Underground
|
|
136
145
|
end
|
137
146
|
|
138
147
|
def short_reads
|
139
|
-
reads
|
148
|
+
return @reads unless @reads.nil?
|
149
|
+
@reads = fwd_short_reads
|
140
150
|
rev_short_reads.each do |read|
|
141
151
|
read.direction = false
|
142
|
-
reads.push read
|
152
|
+
@reads.push read
|
143
153
|
end
|
144
|
-
return reads
|
154
|
+
return @reads
|
145
155
|
end
|
146
156
|
end
|
147
157
|
|
@@ -165,15 +175,15 @@ class Bio::Velvet::Underground
|
|
165
175
|
end
|
166
176
|
|
167
177
|
def read_id
|
168
|
-
@internal_short_read_struct[:readID]
|
178
|
+
@read_id ||= @internal_short_read_struct[:readID]
|
169
179
|
end
|
170
180
|
|
171
181
|
def offset_from_start_of_node
|
172
|
-
@internal_short_read_struct[:position]
|
182
|
+
@offset_from_start_of_node ||= @internal_short_read_struct[:position]
|
173
183
|
end
|
174
184
|
|
175
185
|
def start_coord
|
176
|
-
@internal_short_read_struct[:offset]
|
186
|
+
@start_coord ||= @internal_short_read_struct[:offset]
|
177
187
|
end
|
178
188
|
end
|
179
189
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bio-velvet_underground
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Woodcroft
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bio-velvet
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.6'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.6'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: pry
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|