finishm 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +19 -19
- data/VERSION +1 -1
- data/finishm.gemspec +631 -0
- data/lib/assembly/graph_generator.rb +0 -1
- data/lib/assembly/probed_graph.rb +0 -1
- metadata +99 -96
- data/bin/assembly_visualiser +0 -106
- data/bin/check_primer_combinations.rb +0 -73
- data/bin/contig_joiner.rb +0 -244
- data/bin/contigs_against_assembly.rb +0 -153
- data/bin/finishm_assembler +0 -55
- data/bin/finishm_gap_closer.rb +0 -241
- data/bin/kmer_abundance_file_tool.rb +0 -49
- data/bin/kmer_pattern_to_assembly.rb +0 -377
- data/bin/kmer_profile_finder.rb +0 -92
- data/bin/kmers_count_parse.d +0 -52
- data/bin/kmers_count_tabulate.d +0 -123
- data/bin/kmers_count_tabulate.rb +0 -84
- data/bin/pcr_result_parser.rb +0 -108
- data/bin/primer_finder.rb +0 -119
- data/bin/read_selection_by_kmer.d +0 -174
- data/bin/scaffold_by_pattern.rb +0 -119
- data/bin/scaffold_connection_possibilities_to_knowns.rb +0 -193
- data/bin/scaffold_end_coverages.rb +0 -69
- data/bin/trail_validator.rb +0 -84
@@ -89,7 +89,6 @@ class Bio::FinishM::ProbedGraph
|
|
89
89
|
# single ended then this method always returns []
|
90
90
|
def paired_nodes(node)
|
91
91
|
to_return_node_ids = Set.new
|
92
|
-
binding.pry
|
93
92
|
log.debug "Found #{node.short_reads.length} short reads associated with node #{node}" if log.debug?
|
94
93
|
node.short_reads.each do |read|
|
95
94
|
pair_read_id = @velvet_sequences.pair_id(read.read_id)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: finishm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben J. Woodcroft
|
@@ -14,104 +14,125 @@ dependencies:
|
|
14
14
|
name: bio-ipcress
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '0.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '0.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bio-logger
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '1.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bio
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.4.3
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '1.4'
|
48
51
|
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
55
|
- - ">="
|
53
56
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
57
|
+
version: 1.4.3
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.4'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: progressbar
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
67
|
+
version: '0.21'
|
62
68
|
type: :runtime
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- - "
|
72
|
+
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
74
|
+
version: '0.21'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: bio-samtools
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
|
-
- - "
|
79
|
+
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
81
|
+
version: '0.6'
|
76
82
|
type: :runtime
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
|
-
- - "
|
86
|
+
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
88
|
+
version: '0.6'
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: ruby-graphviz
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - ">="
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
95
|
+
version: 1.0.9
|
96
|
+
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '1.0'
|
90
99
|
type: :runtime
|
91
100
|
prerelease: false
|
92
101
|
version_requirements: !ruby/object:Gem::Requirement
|
93
102
|
requirements:
|
94
103
|
- - ">="
|
95
104
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
105
|
+
version: 1.0.9
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '1.0'
|
97
109
|
- !ruby/object:Gem::Dependency
|
98
110
|
name: ds
|
99
111
|
requirement: !ruby/object:Gem::Requirement
|
100
112
|
requirements:
|
101
113
|
- - ">="
|
102
114
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
115
|
+
version: 0.0.4
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0.0'
|
104
119
|
type: :runtime
|
105
120
|
prerelease: false
|
106
121
|
version_requirements: !ruby/object:Gem::Requirement
|
107
122
|
requirements:
|
108
123
|
- - ">="
|
109
124
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
125
|
+
version: 0.0.4
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0.0'
|
111
129
|
- !ruby/object:Gem::Dependency
|
112
130
|
name: hopcsv
|
113
131
|
requirement: !ruby/object:Gem::Requirement
|
114
132
|
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: 0.4.3
|
115
136
|
- - "~>"
|
116
137
|
- !ruby/object:Gem::Version
|
117
138
|
version: '0.4'
|
@@ -119,6 +140,9 @@ dependencies:
|
|
119
140
|
prerelease: false
|
120
141
|
version_requirements: !ruby/object:Gem::Requirement
|
121
142
|
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.4.3
|
122
146
|
- - "~>"
|
123
147
|
- !ruby/object:Gem::Version
|
124
148
|
version: '0.4'
|
@@ -156,42 +180,54 @@ dependencies:
|
|
156
180
|
requirements:
|
157
181
|
- - ">="
|
158
182
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
183
|
+
version: 1.4.2
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '1.4'
|
160
187
|
type: :runtime
|
161
188
|
prerelease: false
|
162
189
|
version_requirements: !ruby/object:Gem::Requirement
|
163
190
|
requirements:
|
164
191
|
- - ">="
|
165
192
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
193
|
+
version: 1.4.2
|
194
|
+
- - "~>"
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '1.4'
|
167
197
|
- !ruby/object:Gem::Dependency
|
168
198
|
name: yargraph
|
169
199
|
requirement: !ruby/object:Gem::Requirement
|
170
200
|
requirements:
|
171
|
-
- - "
|
201
|
+
- - ">="
|
172
202
|
- !ruby/object:Gem::Version
|
173
203
|
version: 0.0.4
|
204
|
+
- - "~>"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0.0'
|
174
207
|
type: :runtime
|
175
208
|
prerelease: false
|
176
209
|
version_requirements: !ruby/object:Gem::Requirement
|
177
210
|
requirements:
|
178
|
-
- - "
|
211
|
+
- - ">="
|
179
212
|
- !ruby/object:Gem::Version
|
180
213
|
version: 0.0.4
|
214
|
+
- - "~>"
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0.0'
|
181
217
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
218
|
+
name: pry
|
183
219
|
requirement: !ruby/object:Gem::Requirement
|
184
220
|
requirements:
|
185
|
-
- - "
|
221
|
+
- - "~>"
|
186
222
|
- !ruby/object:Gem::Version
|
187
|
-
version: '0'
|
223
|
+
version: '0.10'
|
188
224
|
type: :runtime
|
189
225
|
prerelease: false
|
190
226
|
version_requirements: !ruby/object:Gem::Requirement
|
191
227
|
requirements:
|
192
|
-
- - "
|
228
|
+
- - "~>"
|
193
229
|
- !ruby/object:Gem::Version
|
194
|
-
version: '0'
|
230
|
+
version: '0.10'
|
195
231
|
- !ruby/object:Gem::Dependency
|
196
232
|
name: rspec
|
197
233
|
requirement: !ruby/object:Gem::Requirement
|
@@ -199,6 +235,9 @@ dependencies:
|
|
199
235
|
- - ">="
|
200
236
|
- !ruby/object:Gem::Version
|
201
237
|
version: 2.8.0
|
238
|
+
- - "~>"
|
239
|
+
- !ruby/object:Gem::Version
|
240
|
+
version: '2.8'
|
202
241
|
type: :development
|
203
242
|
prerelease: false
|
204
243
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -206,32 +245,35 @@ dependencies:
|
|
206
245
|
- - ">="
|
207
246
|
- !ruby/object:Gem::Version
|
208
247
|
version: 2.8.0
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '2.8'
|
209
251
|
- !ruby/object:Gem::Dependency
|
210
252
|
name: yard
|
211
253
|
requirement: !ruby/object:Gem::Requirement
|
212
254
|
requirements:
|
213
|
-
- - "
|
255
|
+
- - "~>"
|
214
256
|
- !ruby/object:Gem::Version
|
215
257
|
version: '0.7'
|
216
258
|
type: :development
|
217
259
|
prerelease: false
|
218
260
|
version_requirements: !ruby/object:Gem::Requirement
|
219
261
|
requirements:
|
220
|
-
- - "
|
262
|
+
- - "~>"
|
221
263
|
- !ruby/object:Gem::Version
|
222
264
|
version: '0.7'
|
223
265
|
- !ruby/object:Gem::Dependency
|
224
266
|
name: rdoc
|
225
267
|
requirement: !ruby/object:Gem::Requirement
|
226
268
|
requirements:
|
227
|
-
- - "
|
269
|
+
- - "~>"
|
228
270
|
- !ruby/object:Gem::Version
|
229
271
|
version: '3.12'
|
230
272
|
type: :development
|
231
273
|
prerelease: false
|
232
274
|
version_requirements: !ruby/object:Gem::Requirement
|
233
275
|
requirements:
|
234
|
-
- - "
|
276
|
+
- - "~>"
|
235
277
|
- !ruby/object:Gem::Version
|
236
278
|
version: '3.12'
|
237
279
|
- !ruby/object:Gem::Dependency
|
@@ -240,80 +282,59 @@ dependencies:
|
|
240
282
|
requirements:
|
241
283
|
- - ">="
|
242
284
|
- !ruby/object:Gem::Version
|
243
|
-
version: 1.
|
285
|
+
version: 1.6.2
|
286
|
+
- - "~>"
|
287
|
+
- !ruby/object:Gem::Version
|
288
|
+
version: '1.6'
|
244
289
|
type: :development
|
245
290
|
prerelease: false
|
246
291
|
version_requirements: !ruby/object:Gem::Requirement
|
247
292
|
requirements:
|
248
293
|
- - ">="
|
249
294
|
- !ruby/object:Gem::Version
|
250
|
-
version: 1.
|
295
|
+
version: 1.6.2
|
296
|
+
- - "~>"
|
297
|
+
- !ruby/object:Gem::Version
|
298
|
+
version: '1.6'
|
251
299
|
- !ruby/object:Gem::Dependency
|
252
300
|
name: jeweler
|
253
301
|
requirement: !ruby/object:Gem::Requirement
|
254
302
|
requirements:
|
255
303
|
- - ">="
|
256
304
|
- !ruby/object:Gem::Version
|
257
|
-
version:
|
258
|
-
|
259
|
-
prerelease: false
|
260
|
-
version_requirements: !ruby/object:Gem::Requirement
|
261
|
-
requirements:
|
262
|
-
- - ">="
|
263
|
-
- !ruby/object:Gem::Version
|
264
|
-
version: '0'
|
265
|
-
- !ruby/object:Gem::Dependency
|
266
|
-
name: bio-commandeer
|
267
|
-
requirement: !ruby/object:Gem::Requirement
|
268
|
-
requirements:
|
269
|
-
- - ">="
|
305
|
+
version: 2.0.1
|
306
|
+
- - "~>"
|
270
307
|
- !ruby/object:Gem::Version
|
271
|
-
version: '0'
|
308
|
+
version: '2.0'
|
272
309
|
type: :development
|
273
310
|
prerelease: false
|
274
311
|
version_requirements: !ruby/object:Gem::Requirement
|
275
312
|
requirements:
|
276
313
|
- - ">="
|
277
314
|
- !ruby/object:Gem::Version
|
278
|
-
version:
|
315
|
+
version: 2.0.1
|
316
|
+
- - "~>"
|
317
|
+
- !ruby/object:Gem::Version
|
318
|
+
version: '2.0'
|
279
319
|
- !ruby/object:Gem::Dependency
|
280
|
-
name:
|
320
|
+
name: bio-commandeer
|
281
321
|
requirement: !ruby/object:Gem::Requirement
|
282
322
|
requirements:
|
283
|
-
- - "
|
323
|
+
- - "~>"
|
284
324
|
- !ruby/object:Gem::Version
|
285
|
-
version: '0'
|
325
|
+
version: '0.1'
|
286
326
|
type: :development
|
287
327
|
prerelease: false
|
288
328
|
version_requirements: !ruby/object:Gem::Requirement
|
289
329
|
requirements:
|
290
|
-
- - "
|
330
|
+
- - "~>"
|
291
331
|
- !ruby/object:Gem::Version
|
292
|
-
version: '0'
|
332
|
+
version: '0.1'
|
293
333
|
description: De-novo assemblies generally only provide draft genomes. FinishM is aimed
|
294
334
|
at improving these draft assemblies.
|
295
335
|
email: donttrustben near gmail.com
|
296
336
|
executables:
|
297
|
-
- assembly_visualiser
|
298
|
-
- check_primer_combinations.rb
|
299
|
-
- contig_joiner.rb
|
300
|
-
- contigs_against_assembly.rb
|
301
337
|
- finishm
|
302
|
-
- finishm_assembler
|
303
|
-
- finishm_gap_closer.rb
|
304
|
-
- kmer_abundance_file_tool.rb
|
305
|
-
- kmer_pattern_to_assembly.rb
|
306
|
-
- kmer_profile_finder.rb
|
307
|
-
- kmers_count_parse.d
|
308
|
-
- kmers_count_tabulate.d
|
309
|
-
- kmers_count_tabulate.rb
|
310
|
-
- pcr_result_parser.rb
|
311
|
-
- primer_finder.rb
|
312
|
-
- read_selection_by_kmer.d
|
313
|
-
- scaffold_by_pattern.rb
|
314
|
-
- scaffold_connection_possibilities_to_knowns.rb
|
315
|
-
- scaffold_end_coverages.rb
|
316
|
-
- trail_validator.rb
|
317
338
|
extensions:
|
318
339
|
- ext/mkrf_conf.rb
|
319
340
|
extra_rdoc_files:
|
@@ -328,26 +349,7 @@ files:
|
|
328
349
|
- README.md
|
329
350
|
- Rakefile
|
330
351
|
- VERSION
|
331
|
-
- bin/assembly_visualiser
|
332
|
-
- bin/check_primer_combinations.rb
|
333
|
-
- bin/contig_joiner.rb
|
334
|
-
- bin/contigs_against_assembly.rb
|
335
352
|
- bin/finishm
|
336
|
-
- bin/finishm_assembler
|
337
|
-
- bin/finishm_gap_closer.rb
|
338
|
-
- bin/kmer_abundance_file_tool.rb
|
339
|
-
- bin/kmer_pattern_to_assembly.rb
|
340
|
-
- bin/kmer_profile_finder.rb
|
341
|
-
- bin/kmers_count_parse.d
|
342
|
-
- bin/kmers_count_tabulate.d
|
343
|
-
- bin/kmers_count_tabulate.rb
|
344
|
-
- bin/pcr_result_parser.rb
|
345
|
-
- bin/primer_finder.rb
|
346
|
-
- bin/read_selection_by_kmer.d
|
347
|
-
- bin/scaffold_by_pattern.rb
|
348
|
-
- bin/scaffold_connection_possibilities_to_knowns.rb
|
349
|
-
- bin/scaffold_end_coverages.rb
|
350
|
-
- bin/trail_validator.rb
|
351
353
|
- ext/mkrf_conf.rb
|
352
354
|
- ext/src/Makefile
|
353
355
|
- ext/src/src/allocArray.c
|
@@ -638,6 +640,7 @@ files:
|
|
638
640
|
- ext/src/third-party/zlib-1.2.3/zutil.c
|
639
641
|
- ext/src/third-party/zlib-1.2.3/zutil.h
|
640
642
|
- ext/src/third-party/zlib-1.2.3/zutil.o
|
643
|
+
- finishm.gemspec
|
641
644
|
- lib/assembly/a_b_visualiser.rb
|
642
645
|
- lib/assembly/acyclic_connection_finder.rb
|
643
646
|
- lib/assembly/all_orfs.rb
|
data/bin/assembly_visualiser
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'optparse'
|
4
|
-
require 'bio-logger'
|
5
|
-
require 'bio-velvet'
|
6
|
-
require 'graphviz'
|
7
|
-
require 'bio'
|
8
|
-
require 'set'
|
9
|
-
|
10
|
-
SCRIPT_NAME = File.basename(__FILE__); LOG_NAME = 'finishm'
|
11
|
-
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
12
|
-
require 'priner'
|
13
|
-
|
14
|
-
# Parse command line options into the options hash
|
15
|
-
options = {
|
16
|
-
:logger => 'stderr',
|
17
|
-
:log_level => 'info',
|
18
|
-
:start_kmers => [],
|
19
|
-
:end_kmers => [],
|
20
|
-
:coverage_cutoff => 0.0,
|
21
|
-
}
|
22
|
-
o = OptionParser.new do |opts|
|
23
|
-
opts.banner = "
|
24
|
-
Usage: #{SCRIPT_NAME} --velvet-graph PreGraphFile [options]
|
25
|
-
|
26
|
-
Take a graph pre-computed with velveth, and output a GraphViz file for visualisation.
|
27
|
-
|
28
|
-
Overlayed on top of this graph can be added information e.g. nodes that contain
|
29
|
-
particular kmers get coloured.
|
30
|
-
\n\n"
|
31
|
-
|
32
|
-
opts.on("--velvet-graph GRAPH_FILE", "PreGraph file output from velveth [required]") do |arg|
|
33
|
-
options[:velvet_pregraph_file] = arg
|
34
|
-
end
|
35
|
-
|
36
|
-
opts.separator "\nOptional arguments:\n\n"
|
37
|
-
opts.on("--dot OUTPUT_DOT_FILENAME", "Output the graph into PNG format [default: not output as DOT]") do |arg|
|
38
|
-
options[:dot_output_file] = arg
|
39
|
-
end
|
40
|
-
opts.on("--png OUTPUT_PNG_FILENAME", "Output the graph into PNG format [default: not output as PNG]") do |arg|
|
41
|
-
options[:neato_png] = arg
|
42
|
-
end
|
43
|
-
opts.on("--start-kmers-file FILE", "Path to file containing newline-separated kmers that are associated with the start of the assembly [default: none]") do |arg|
|
44
|
-
options[:start_kmers] = File.open(arg).read.split(/\s+/)
|
45
|
-
end
|
46
|
-
opts.on("--end-kmers-file FILE", "Path to file containing newline-separated kmers that are associated with the end of the assembly [default: none]") do |arg|
|
47
|
-
options[:end_kmers] = File.open(arg).read.split(/\s+/)
|
48
|
-
end
|
49
|
-
opts.on("--coverage-cutoff NUMBER", "Require at least this much coverage, otherwise the node and associated edges are not shown in the output [default: #{options[:coverage_cutoff]}]") do |arg|
|
50
|
-
options[:coverage_cutoff] = arg.to_f
|
51
|
-
end
|
52
|
-
|
53
|
-
# logger options
|
54
|
-
opts.separator "\nVerbosity:\n\n"
|
55
|
-
opts.on("-q", "--quiet", "Run quietly, set logging to ERROR level [default INFO]") {options[:log_level] = 'error'}
|
56
|
-
opts.on("--logger filename",String,"Log to file [default #{options[:logger]}]") { |name| options[:logger] = name}
|
57
|
-
opts.on("--trace options",String,"Set log level [default INFO]. e.g. '--trace debug' to set logging level to DEBUG"){|s| options[:log_level] = s}
|
58
|
-
end; o.parse!
|
59
|
-
if ARGV.length != 0 or options[:velvet_pregraph_file].nil?
|
60
|
-
$stderr.puts o
|
61
|
-
exit 1
|
62
|
-
end
|
63
|
-
if !(options[:dot_output_file] or options[:neato_png])
|
64
|
-
$stderr.puts "Need to specify an output format with e.g. --png or --dot"
|
65
|
-
exit 1
|
66
|
-
end
|
67
|
-
# Setup logging
|
68
|
-
Bio::Log::CLI.logger(options[:logger]); Bio::Log::CLI.trace(options[:log_level]); log = Bio::Log::LoggerPlus.new(LOG_NAME); Bio::Log::CLI.configure(LOG_NAME)
|
69
|
-
|
70
|
-
|
71
|
-
log.info "Parsing graph from #{options[:velvet_pregraph_file]}"
|
72
|
-
graph = Bio::Velvet::Graph.parse_from_file(options[:velvet_pregraph_file])
|
73
|
-
log.info "Finished parsing graph, found #{graph.nodes.length} nodes and #{graph.arcs.length} arcs"
|
74
|
-
|
75
|
-
if options[:start_kmers].length > 0
|
76
|
-
log.info "Read in #{options[:start_kmers].length} kmers associated with the start of the assembly"
|
77
|
-
end
|
78
|
-
if options[:end_kmers].length > 0
|
79
|
-
log.info "Read in #{options[:end_kmers].length} kmers associated with the end of the assembly"
|
80
|
-
end
|
81
|
-
list_of_start_kmers = options[:start_kmers].collect{|k| [k, Bio::Sequence::NA.new(k).reverse_complement.to_s]}.flatten
|
82
|
-
list_of_end_kmers = options[:end_kmers].collect{|k| [k, Bio::Sequence::NA.new(k).reverse_complement.to_s]}.flatten
|
83
|
-
|
84
|
-
if options[:coverage_cutoff]
|
85
|
-
cutter = Bio::AssemblyGraphAlgorithms::CoverageBasedGraphFilter.new
|
86
|
-
log.info "Removing low coverage (<#{options[:coverage_cutoff]}) nodes"
|
87
|
-
cutter.remove_low_coverage_nodes(graph, options[:coverage_cutoff])
|
88
|
-
log.info "After removing low coverage nodes, there is #{graph.nodes.length} nodes and #{graph.arcs.length} arcs"
|
89
|
-
end
|
90
|
-
|
91
|
-
viser = Bio::Assembly::ABVisualiser.new
|
92
|
-
log.info "Converting assembly to GraphViz format"
|
93
|
-
graphviz = viser.graphviz(graph, {:start_kmers => list_of_start_kmers, :end_kmers => list_of_end_kmers})
|
94
|
-
|
95
|
-
# Print
|
96
|
-
log.info "Printing assembly graph"
|
97
|
-
if options[:dot_output_file]
|
98
|
-
graphviz.output :dot => options[:dot_output_file]
|
99
|
-
end
|
100
|
-
if options[:neato_png]
|
101
|
-
graphviz.output :png => options[:neato_png]
|
102
|
-
end
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|