finishm 0.0.1 → 0.0.2
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.
- 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
|
-
|