big_simon 0.1.1 → 0.2.0
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/.gitignore +9 -1
- data/Gemfile.lock +3 -1
- data/big_simon.gemspec +1 -0
- data/exe/big_simon +53 -83
- data/lib/big_simon/runners.rb +125 -6
- data/lib/big_simon/utils.rb +2 -1
- data/lib/big_simon/version.rb +1 -1
- data/lib/big_simon.rb +6 -0
- data/vendor/bin/mac/blastn +0 -0
- data/vendor/bin/mac/makeblastdb +0 -0
- data/vendor/bin/mac/prodigal +0 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95ca94aff107e2545dd26ab671c2ed125cb89164
|
4
|
+
data.tar.gz: 8cb9098b4462d6702ecd692e7261abb9c1c7c26a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be890e07e1ca248da8e5b80637b25d00c20185d4710229cc9c72d564abc930d4eb734ad53f42842a479827e64205ee1f53f5691b6527d03b9cc41b9b8656ae85
|
7
|
+
data.tar.gz: ac30f597de91303e3b8040ecfde48f98d56c343aadfa3a1085d77fbb55692fb055569734470812144d716e73ee8c94265c732a07462bd8490c2b937572961062
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
big_simon (0.
|
4
|
+
big_simon (0.2.0)
|
5
|
+
parallel
|
5
6
|
parse_fasta (~> 2.5, >= 2.5.2)
|
6
7
|
rya (~> 0.4.0)
|
7
8
|
trollop (~> 2.1, >= 2.1.3)
|
@@ -11,6 +12,7 @@ GEM
|
|
11
12
|
specs:
|
12
13
|
abort_if (0.2.0)
|
13
14
|
diff-lcs (1.3)
|
15
|
+
parallel (1.12.1)
|
14
16
|
parse_fasta (2.5.2)
|
15
17
|
rake (10.5.0)
|
16
18
|
rspec (3.7.0)
|
data/big_simon.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
27
|
spec.add_development_dependency "rspec", "~> 3.0"
|
28
28
|
|
29
|
+
spec.add_runtime_dependency "parallel"
|
29
30
|
spec.add_runtime_dependency "parse_fasta", "~> 2.5", ">= 2.5.2"
|
30
31
|
spec.add_runtime_dependency "rya", "~> 0.4.0"
|
31
32
|
spec.add_runtime_dependency "trollop", "~> 2.1", ">= 2.1.3"
|
data/exe/big_simon
CHANGED
@@ -54,7 +54,8 @@ Rya::AbortIf.abort_unless opts[:threads] > 0,
|
|
54
54
|
programs = [
|
55
55
|
"WIsH",
|
56
56
|
"VirHostMatcher",
|
57
|
-
"mummer"
|
57
|
+
"mummer",
|
58
|
+
"homology",
|
58
59
|
]
|
59
60
|
|
60
61
|
outdir = opts[:outdir]
|
@@ -71,87 +72,6 @@ tmpdir_host = File.join tmpdir, "host"
|
|
71
72
|
# all_predictions_fname = File.join outdir, "scores_all.txt"
|
72
73
|
mean_scaled_scores_fname = File.join outdir, "scores_scaled.mean.txt"
|
73
74
|
|
74
|
-
# virus_recs, host_recs = [], []
|
75
|
-
|
76
|
-
# Tempfile.open do |vir_f|
|
77
|
-
# Tempfile.open do |host_f|
|
78
|
-
# virus_fnames.each do |fname|
|
79
|
-
# ParseFasta::SeqFile.open(fname).each_record do |rec|
|
80
|
-
# vir_f.puts rec
|
81
|
-
#
|
82
|
-
# vir_f.puts ">#{rec.id}___reverse\n#{rec.seq.reverse}"
|
83
|
-
# end
|
84
|
-
# end
|
85
|
-
#
|
86
|
-
# host_fnames.each do |fname|
|
87
|
-
# ParseFasta::SeqFile.open(fname).each_record do |rec|
|
88
|
-
# host_f.puts rec
|
89
|
-
# host_f.puts ">#{rec.id}___reverse\n#{rec.seq.reverse}"
|
90
|
-
# end
|
91
|
-
# end
|
92
|
-
#
|
93
|
-
# vir_f.fsync
|
94
|
-
# host_f.fsync
|
95
|
-
#
|
96
|
-
# cmd = "mummer -maxmatch -l 15 #{host_f.path} #{vir_f.path} > /Users/moorer/Desktop/mummer.OUT"
|
97
|
-
# Process.run_and_time_it! "MUMMER", cmd
|
98
|
-
# end
|
99
|
-
# end
|
100
|
-
#
|
101
|
-
# header = nil
|
102
|
-
# hits = []
|
103
|
-
# hit_info = {}
|
104
|
-
# virus = nil
|
105
|
-
#
|
106
|
-
# File.open("/Users/moorer/Desktop/mummer.OUT", "rt").each_line.with_index do |line, idx|
|
107
|
-
# if line.start_with? '>'
|
108
|
-
# virus = line.chomp.sub(/^>/, "").sub(/___reverse$/, "").strip
|
109
|
-
#
|
110
|
-
# unless hit_info.has_key? virus
|
111
|
-
# hit_info[virus] = {}
|
112
|
-
# end
|
113
|
-
# else
|
114
|
-
# host, _, _, len = line.chomp.strip.split(" ")
|
115
|
-
# host = host.sub(/___reverse$/, "").strip
|
116
|
-
#
|
117
|
-
# unless hit_info[virus].has_key? host
|
118
|
-
# hit_info[virus][host] = -1
|
119
|
-
# end
|
120
|
-
#
|
121
|
-
# hit_info[virus][host] = len.to_i if len.to_i > hit_info[virus][host]
|
122
|
-
# end
|
123
|
-
# end
|
124
|
-
#
|
125
|
-
# puts
|
126
|
-
#
|
127
|
-
# hh = hit_info.map do |virus, info|
|
128
|
-
# [virus, info.to_a.sort_by {|gen, len| len}.reverse]
|
129
|
-
# end
|
130
|
-
#
|
131
|
-
# pp hh
|
132
|
-
|
133
|
-
# hh = hit_info.map do |virus, info|
|
134
|
-
# [virus, info.to_a.sort_by { |host, hit_len| hit_len }.reverse
|
135
|
-
#
|
136
|
-
# end
|
137
|
-
# p hit_info
|
138
|
-
|
139
|
-
scores_files = {}
|
140
|
-
programs.each do |program|
|
141
|
-
raw_fname = File.join outdir, "scores_raw.#{program}.txt"
|
142
|
-
scaled_fname = File.join outdir, "scores_scaled.#{program}.txt"
|
143
|
-
|
144
|
-
scores_files[program] = {
|
145
|
-
raw: File.open(raw_fname, "w"),
|
146
|
-
scaled: File.open(scaled_fname, "w")
|
147
|
-
}
|
148
|
-
end
|
149
|
-
|
150
|
-
scores_files.each do |program, files|
|
151
|
-
files.each do |name, file|
|
152
|
-
file.puts %w[virus host score].join "\t"
|
153
|
-
end
|
154
|
-
end
|
155
75
|
|
156
76
|
name_map_virus, all_ids_virus = BigSimon::Utils.set_up_tmp_dirs virus_fnames, tmpdir_virus, "virus"
|
157
77
|
name_map_host, all_ids_host = BigSimon::Utils.set_up_tmp_dirs host_fnames, tmpdir_host, "host"
|
@@ -162,12 +82,38 @@ vhm_outf = BigSimon::Runners.vir_host_matcher BigSimon::VHM, tmpdir_virus, tmpd
|
|
162
82
|
# TODO separate the parser from the runner for mummer.
|
163
83
|
host_info_mummer = BigSimon::Runners.mummer BigSimon::MUMMER, tmpdir_virus, tmpdir_host, tmpdir, threads
|
164
84
|
|
85
|
+
puts "mummer"
|
86
|
+
pp host_info_mummer
|
87
|
+
puts
|
88
|
+
|
89
|
+
# TODO separate the parser from the runner for homology
|
90
|
+
host_info_homology = BigSimon::Runners.homology tmpdir_virus, tmpdir_host, tmpdir, threads
|
91
|
+
|
92
|
+
puts "homology"
|
93
|
+
pp host_info_homology
|
94
|
+
puts
|
95
|
+
|
96
|
+
|
97
|
+
|
165
98
|
host_info_wish = BigSimon::Parsers.wish wish_outf
|
166
99
|
host_info_vhm = BigSimon::Parsers.vir_host_matcher vhm_outf
|
167
100
|
|
168
|
-
|
101
|
+
puts "wish"
|
102
|
+
pp host_info_wish
|
103
|
+
puts
|
104
|
+
|
105
|
+
puts "vhm"
|
106
|
+
pp host_info_vhm
|
107
|
+
puts
|
108
|
+
|
109
|
+
|
110
|
+
host_info_simple_names = BigSimon::Pipeline.collate_host_results [host_info_wish, host_info_vhm, host_info_mummer, host_info_homology], programs
|
169
111
|
host_info = BigSimon::Pipeline.map_taxa host_info_simple_names, name_map_virus, name_map_host
|
170
112
|
|
113
|
+
puts
|
114
|
+
pp host_info_simple_names
|
115
|
+
puts
|
116
|
+
|
171
117
|
puts
|
172
118
|
pp host_info
|
173
119
|
puts
|
@@ -176,6 +122,25 @@ puts
|
|
176
122
|
# File.open all_predictions_fname, "w" do |f|
|
177
123
|
# f.puts %w[virus host program score scaled.score].join "\t"
|
178
124
|
|
125
|
+
scores_files = {}
|
126
|
+
programs.each do |program|
|
127
|
+
raw_fname = File.join outdir, "scores_raw.#{program}.txt"
|
128
|
+
scaled_fname = File.join outdir, "scores_scaled.#{program}.txt"
|
129
|
+
|
130
|
+
scores_files[program] = {
|
131
|
+
raw: File.open(raw_fname, "w"),
|
132
|
+
scaled: File.open(scaled_fname, "w")
|
133
|
+
}
|
134
|
+
end
|
135
|
+
|
136
|
+
scores_files.each do |program, files|
|
137
|
+
files.each do |name, file|
|
138
|
+
puts "LALA 3: #{[program, name, file]} #{%w[virus host score].join}"
|
139
|
+
|
140
|
+
file.puts %w[virus host score].join "\t"
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
179
144
|
host_info.each do |virus, h1|
|
180
145
|
h1.each do |host, h2|
|
181
146
|
lines = {}
|
@@ -183,6 +148,8 @@ host_info.each do |virus, h1|
|
|
183
148
|
h2[:scores].each do |program, score|
|
184
149
|
lines[[virus, host, program]] = [score]
|
185
150
|
|
151
|
+
puts "LALA: #{[virus, host, score]}"
|
152
|
+
|
186
153
|
scores_files[program][:raw].puts [virus, host, score].join "\t"
|
187
154
|
end
|
188
155
|
|
@@ -190,6 +157,9 @@ host_info.each do |virus, h1|
|
|
190
157
|
h2[:scaled_scores].each do |program, score|
|
191
158
|
lines[[virus, host, program]] << score
|
192
159
|
|
160
|
+
puts "LALA 2: #{[virus, host, score]}"
|
161
|
+
|
162
|
+
|
193
163
|
scores_files[program][:scaled].puts [virus, host, score].join "\t"
|
194
164
|
end
|
195
165
|
|
data/lib/big_simon/runners.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "tempfile"
|
2
2
|
require "parse_fasta"
|
3
|
+
require "parallel"
|
3
4
|
|
4
5
|
module BigSimon
|
5
6
|
class Runners
|
@@ -52,12 +53,15 @@ module BigSimon
|
|
52
53
|
vir_f.fsync
|
53
54
|
host_f.fsync
|
54
55
|
|
55
|
-
|
56
|
+
# -k 3 index every third position in reference (broken now, bug in mummer)
|
57
|
+
# -n -k 3 -threads 3
|
58
|
+
# -n match only A C T G
|
59
|
+
cmd = "mummer -n -threads #{threads} -qthreads #{threads} -maxmatch -l 15 #{host_f.path} #{vir_f.path} > #{mummer_outfname}"
|
56
60
|
Process.run_and_time_it! "MUMMER", cmd
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
60
|
-
virus
|
64
|
+
virus = nil
|
61
65
|
overall_max_score = 0
|
62
66
|
File.open(mummer_outfname, "rt").each_line.with_index do |line, idx|
|
63
67
|
line.chomp!
|
@@ -75,7 +79,7 @@ module BigSimon
|
|
75
79
|
else
|
76
80
|
ary = line.strip.split " "
|
77
81
|
|
78
|
-
host
|
82
|
+
host = ary[0].sub(/___reverse$/, "").strip
|
79
83
|
score = ary[3].to_i
|
80
84
|
|
81
85
|
Rya::AbortIf.assert hit_table[virus].has_key?(host)
|
@@ -88,7 +92,7 @@ module BigSimon
|
|
88
92
|
hit_table[virus][host] = score if score > hit_table[virus][host]
|
89
93
|
|
90
94
|
# Track the overall max for scaling.
|
91
|
-
overall_max_score
|
95
|
+
overall_max_score = score if score > overall_max_score
|
92
96
|
end
|
93
97
|
end
|
94
98
|
end
|
@@ -203,6 +207,121 @@ module BigSimon
|
|
203
207
|
results
|
204
208
|
end
|
205
209
|
|
210
|
+
# For scoring homology-ness, I just sum the bitscore for all significant hits for all genomes.
|
211
|
+
#
|
212
|
+
# @note I will make the specified outdir if it doesn't exist.
|
213
|
+
# @note Assumes that the files end with *.fa
|
214
|
+
# @note Assumes that the file names match the IDs. This SHOULD be taken care of by the big_simon program.
|
215
|
+
# @todo assert that fname thing matches sequence ID name.
|
216
|
+
def self.homology vir_dir, host_dir, outdir, threads
|
217
|
+
FileUtils.mkdir_p outdir
|
218
|
+
|
219
|
+
host_orfs = File.join outdir, "host_orfs.homology"
|
220
|
+
host_orfs_blast_db = host_orfs + ".blast_db.homology"
|
221
|
+
|
222
|
+
# Call ORFs on Hosts
|
223
|
+
cmd = "cat #{host_dir}/*.fa | #{BigSimon::PRODIGAL} " \
|
224
|
+
"-d #{host_orfs} " \
|
225
|
+
"> /dev/null"
|
226
|
+
|
227
|
+
Process.run_and_time_it! "Predicting host ORFs", cmd
|
228
|
+
|
229
|
+
# Make blast db's for the host genes.
|
230
|
+
cmd = "#{BigSimon::MAKEBLASTDB} " \
|
231
|
+
"-in #{host_orfs} " \
|
232
|
+
"-out #{host_orfs_blast_db} " \
|
233
|
+
"-dbtype nucl"
|
234
|
+
|
235
|
+
Process.run_and_time_it! "Making host blast db", cmd
|
236
|
+
|
237
|
+
vir_genome_fnames = Dir.glob(vir_dir + "/*.fa")
|
238
|
+
|
239
|
+
blast_info = Parallel.map(vir_genome_fnames, in_processes: threads) do |vir_genome_fname|
|
240
|
+
vir_orfs = File.join outdir, File.basename(vir_genome_fname) + ".vir_orfs.homology"
|
241
|
+
blast_results = File.join outdir, File.basename(vir_genome_fname) + ".blast_results.homology"
|
242
|
+
|
243
|
+
# this will be used as a viral ID.
|
244
|
+
vir_simple_fname = File.basename vir_genome_fname, ".fa"
|
245
|
+
blast_table = {}
|
246
|
+
blast_table[vir_simple_fname] = Hash.new 0
|
247
|
+
|
248
|
+
# Call ORFs on the virus.
|
249
|
+
cmd = "#{BigSimon::PRODIGAL} " \
|
250
|
+
"-d #{vir_orfs} -p meta -i #{vir_genome_fname} " \
|
251
|
+
"> /dev/null"
|
252
|
+
|
253
|
+
Process.run_and_time_it! "Predicting ORFs for #{File.basename vir_genome_fname}", cmd
|
254
|
+
|
255
|
+
# Blast the ORFs against genomes.
|
256
|
+
cmd = "#{BigSimon::BLASTN} -query #{vir_orfs} -db #{host_orfs_blast_db} -outfmt 6 -evalue 0.01 -word_size 11 -out #{blast_results}"
|
257
|
+
Process.run_and_time_it! "Blasting ORFs for #{File.basename vir_genome_fname}", cmd
|
258
|
+
|
259
|
+
# Remove ORFs file
|
260
|
+
FileUtils.rm vir_orfs if File.exist? vir_orfs
|
261
|
+
|
262
|
+
Rya::AbortIf.logger.info { "Parsing #{blast_results}" }
|
263
|
+
# Parse the blast.
|
264
|
+
|
265
|
+
File.open(blast_results, "rt").each_line do |line|
|
266
|
+
ary = line.chomp.split "\t"
|
267
|
+
|
268
|
+
# The .sub() is to remove the annotation that prodigal gives.
|
269
|
+
vir_id = ary[0].sub(/_[0-9]+$/, "")
|
270
|
+
host_id = ary[1].sub(/_[0-9]+$/, "")
|
271
|
+
score = ary[11].to_f
|
272
|
+
|
273
|
+
Rya::AbortIf.assert blast_table.has_key?(vir_id), "blast_table: got #{vir_id} should have been #{vir_simple_fname}"
|
274
|
+
|
275
|
+
blast_table[vir_id][host_id] += score
|
276
|
+
end
|
277
|
+
|
278
|
+
# Remove blast file
|
279
|
+
# FileUtils.rm_r blast_results if File.exist? blast_results
|
280
|
+
|
281
|
+
# Again, we're assuming the input is .fa, which the big_simon program SHOULD ensure. TODO check these things with assertions.
|
282
|
+
simple_vir_name = File.basename vir_genome_fname.sub(/.fa$/, "")
|
283
|
+
|
284
|
+
[simple_vir_name, blast_table]
|
285
|
+
end
|
286
|
+
|
287
|
+
collated_blast_table = {}
|
288
|
+
host_simple_names = Dir.glob(host_dir + "/*.fa").map { |fname| File.basename(fname, ".fa") }
|
289
|
+
|
290
|
+
Rya::AbortIf.assert host_simple_names.length == host_simple_names.uniq.length, "host simple names are not unique"
|
291
|
+
|
292
|
+
Rya::AbortIf.logger.info { "Collating blast results" }
|
293
|
+
|
294
|
+
# Get max score
|
295
|
+
max_score = -1
|
296
|
+
blast_info.each do |_, blast_table|
|
297
|
+
blast_table.each do |vir_id, host_scores|
|
298
|
+
this_max = host_scores.values.max || -1 # sometimes there are no hits at all
|
299
|
+
|
300
|
+
max_score = this_max if this_max > max_score
|
301
|
+
end
|
302
|
+
end
|
303
|
+
Rya::AbortIf.assert max_score > -1, "didn't get any scores"
|
304
|
+
|
305
|
+
|
306
|
+
klass = Class.new.extend Rya::CoreExtensions::Math
|
307
|
+
blast_info.each do |simple_vir_name, blast_table|
|
308
|
+
blast_table.each do |vir_id, host_scores|
|
309
|
+
collated_blast_table[vir_id] = []
|
310
|
+
|
311
|
+
host_simple_names.each do |host_id|
|
312
|
+
scaled_score = klass.scale host_scores[host_id], 0, max_score, 1, 0
|
313
|
+
|
314
|
+
host_table = { host: host_id, score: host_scores[host_id], scaled_score: scaled_score }
|
315
|
+
collated_blast_table[vir_id] << host_table
|
316
|
+
end
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
pp collated_blast_table
|
321
|
+
|
322
|
+
collated_blast_table
|
323
|
+
end
|
324
|
+
|
206
325
|
def self.vir_host_matcher exe, vir_dir, host_dir, outdir
|
207
326
|
FileUtils.mkdir_p outdir
|
208
327
|
|
@@ -273,13 +392,13 @@ module BigSimon
|
|
273
392
|
|
274
393
|
out_fname = File.join outdir, "#{basename}.heatmap.pdf"
|
275
394
|
|
276
|
-
[in_fname, out_fname]
|
395
|
+
[File.absolute_path(in_fname), File.absolute_path(out_fname)]
|
277
396
|
end
|
278
397
|
|
279
398
|
|
280
399
|
rcode_str = BigSimon::Utils.rcode fnames
|
281
400
|
|
282
|
-
Object::
|
401
|
+
Object::File.open(File.join(outdir, "RCODE.r"), "w") do |f|
|
283
402
|
f.puts rcode_str
|
284
403
|
f.fsync # ensure no data is buffered
|
285
404
|
|
data/lib/big_simon/utils.rb
CHANGED
@@ -70,6 +70,7 @@ draw.heatmap("#{in_fname}", "#{out_fname}")
|
|
70
70
|
1 - Math.exp(ll)
|
71
71
|
end
|
72
72
|
|
73
|
+
# @note I also rename all the sequences in the tmp fasta files with the new ID.
|
73
74
|
def self.set_up_tmp_dirs fastas, tmpdir, which
|
74
75
|
Object::FileUtils.mkdir_p tmpdir
|
75
76
|
|
@@ -92,7 +93,7 @@ draw.heatmap("#{in_fname}", "#{out_fname}")
|
|
92
93
|
outfname = File.join tmpdir, "#{new_id}.fa"
|
93
94
|
|
94
95
|
File.open(outfname, "w") do |f|
|
95
|
-
f.puts rec
|
96
|
+
f.puts ">#{new_id}\n#{rec.seq}" # TODO HERE
|
96
97
|
end
|
97
98
|
end
|
98
99
|
end
|
data/lib/big_simon/version.rb
CHANGED
data/lib/big_simon.rb
CHANGED
@@ -20,8 +20,14 @@ module BigSimon
|
|
20
20
|
BIN = File.join ROOT, "vendor", "bin", "mac"
|
21
21
|
SPEC = File.join ROOT, "spec"
|
22
22
|
TEST_FILES = File.join SPEC, "test_files"
|
23
|
+
|
24
|
+
# Programs
|
23
25
|
WISH = File.join BIN, "WIsH"
|
24
26
|
VHM = File.join BIN, "vhm.py"
|
25
27
|
MUMMER = File.join BIN, "mummer"
|
26
28
|
RSCRIPT = "Rscript"
|
29
|
+
|
30
|
+
BLASTN = File.join BIN, "blastn"
|
31
|
+
MAKEBLASTDB = File.join BIN, "makeblastdb"
|
32
|
+
PRODIGAL = File.join BIN, "prodigal"
|
27
33
|
end
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: big_simon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Moore
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: parallel
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: parse_fasta
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,10 +151,13 @@ files:
|
|
137
151
|
- lib/big_simon/utils.rb
|
138
152
|
- lib/big_simon/version.rb
|
139
153
|
- vendor/bin/mac/WIsH
|
154
|
+
- vendor/bin/mac/blastn
|
140
155
|
- vendor/bin/mac/computeMeasure.out
|
141
156
|
- vendor/bin/mac/computeMeasure_onlyd2star.out
|
142
157
|
- vendor/bin/mac/countKmer.out
|
158
|
+
- vendor/bin/mac/makeblastdb
|
143
159
|
- vendor/bin/mac/mummer
|
160
|
+
- vendor/bin/mac/prodigal
|
144
161
|
- vendor/bin/mac/vhm.py
|
145
162
|
homepage: https://github.com/mooreryan/big_simon
|
146
163
|
licenses: []
|