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.
@@ -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
-