finishm 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,5 @@
1
1
  require 'bio-velvet'
2
2
  require 'bio'
3
- require 'pry'
4
3
 
5
4
  class Bio::FinishM::GraphGenerator
6
5
  include Bio::FinishM::Logging
@@ -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.1
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: files
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.0.0
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.0.0
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: '0'
258
- type: :development
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: '0'
315
+ version: 2.0.1
316
+ - - "~>"
317
+ - !ruby/object:Gem::Version
318
+ version: '2.0'
279
319
  - !ruby/object:Gem::Dependency
280
- name: pry
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
@@ -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
-