miga-base 0.3.1.1 → 0.3.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b722632a715da6a149257fe83361a009f7d1c965
4
- data.tar.gz: 5e5582682e72ea8cfff97e82c6f72a85de7ab9b4
3
+ metadata.gz: 787c36c0ff7eb3a77d1b6fd4dd73015b4b49850e
4
+ data.tar.gz: 2a4ec0d82f8be2bb8e486d3d5410d909b01f3522
5
5
  SHA512:
6
- metadata.gz: 37f1df3197453259c9a0eec7dcd679378edeb4605d63d98b2c80d57d02a966391829ee08faa8039ff44f431cf144c6e9fc1b4c75ac8bbb1683b92ebd683cbfb8
7
- data.tar.gz: a5a5af7f26b8fce3979669d76c6df85ccdc94da052db2292571b8a00e594144016517226d937a59e9ef5a61d6191d09c92b976ebd6abb5e5ef875fb19e882786
6
+ metadata.gz: 71bf56e6cbfdeb36d3f19c9a4ea4aaac8160537ca3b7a95c6bff44d83e07298f8df3889fd3719eaaf9beae4adf9024b1f53e7a9ff743aadeb802c29664838fed
7
+ data.tar.gz: d351e7f4374a7859b3661a554c967f11406dcc696763da6e3b623025412ed9dcfe8bfe46f6125d22ef5ab341df1e978d93b0e54e222462faa55b7746dca931ef
@@ -3,10 +3,13 @@
3
3
  # @package MiGA
4
4
  # @license Artistic-2.0
5
5
 
6
- o = {q:true}
6
+ o = {q:true, force:false}
7
7
  opts = OptionParser.new do |opt|
8
8
  opt_banner(opt)
9
9
  opt_object(opt, o, [:project, :dataset_opt, :result])
10
+ opt.on("-f", "--force",
11
+ "Forces re-indexing of the result even if it's already registered."
12
+ ){ |v| o[:force]=v }
10
13
  opt_common(opt, o)
11
14
  end.parse!
12
15
 
@@ -19,12 +22,8 @@ p = MiGA::Project.load(o[:project])
19
22
  raise "Impossible to load project: #{o[:project]}" if p.nil?
20
23
 
21
24
  $stderr.puts "Registering result." unless o[:q]
22
- if o[:dataset].nil?
23
- r = p.add_result o[:name].to_sym
24
- else
25
- d = p.dataset(o[:dataset])
26
- r = d.add_result o[:name].to_sym
27
- end
25
+ obj = o[:dataset].nil? ? p : p.dataset(o[:dataset])
26
+ r = obj.add_result(o[:name].to_sym, true, force: o[:force])
28
27
 
29
28
  raise "Cannot add result, incomplete expected files." if r.nil?
30
29
 
data/actions/init.rb CHANGED
@@ -107,7 +107,11 @@ File.open(File.expand_path("utils/requirements.txt", miga), "r") do |fh|
107
107
  $stderr.print "Testing #{r[0]}#{" (#{r[3]})" if r[3]}... "
108
108
  path = nil
109
109
  loop do
110
- d_path = File.dirname(`which "#{r[1]}"`)
110
+ if File.exist? o[:config]
111
+ d_path = File.dirname(`source "#{o[:config]}" && which "#{r[1]}"`)
112
+ else
113
+ d_path = File.dirname(`which "#{r[1]}"`)
114
+ end
111
115
  if o[:ask] or d_path=="."
112
116
  path = ask_user("Where can I find it?", d_path, nil, true)
113
117
  else
@@ -188,67 +192,70 @@ $stderr.puts ""
188
192
 
189
193
  # Configure daemon
190
194
  $stderr.puts "Default daemon configuration:"
191
- v = {created:Time.now.to_s, updated:Time.now.to_s}
192
- v[:type] = ask_user("Please select the type of daemon you want to setup",
193
- o[:dtype], %w(bash qsub msub))
194
- case v[:type]
195
- when "bash"
196
- v[:latency] = ask_user("How long should I sleep? (in seconds)","30").to_i
197
- v[:maxjobs] = ask_user("How many jobs can I launch at once?", "6").to_i
198
- v[:ppn] = ask_user("How many CPUs can I use per job?", "2").to_i
199
- $stderr.puts "Setting up internal daemon defaults."
200
- $stderr.puts "If you don't understand this just leave default values:"
201
- v[:cmd] = ask_user(
202
- "How should I launch tasks?\n %1$s: script path, %2$s: variables, " +
203
- "%3$d: CPUs, %4$s: log file, %5$s: task name.\n",
204
- "%2$s '%1$s' > '%4$s' 2>&1")
205
- v[:var] = ask_user(
206
- "How should I pass variables?\n %1$s: keys, %2$s: values.\n",
207
- "%1$s=%2$s")
208
- v[:varsep] = ask_user("What should I use to separate variables?", " ")
209
- v[:alive] = ask_user(
210
- "How can I know that a process is still alive?\n %1$s: PID, " +
211
- "output should be 1 for running and 0 for non-running.\n",
212
- "ps -p '%1$s'|tail -n+2|wc -l")
213
- v[:kill] = ask_user(
214
- "How should I terminate tasks?\n %s: process ID.", "kill -9 '%s'")
215
- else # [qm]sub
216
- queue = ask_user("What queue should I use?", nil, nil, true)
217
- v[:latency] = ask_user("How long should I sleep? (in seconds)", "150").to_i
218
- v[:maxjobs] = ask_user("How many jobs can I launch at once?", "300").to_i
219
- v[:ppn] = ask_user("How many CPUs can I use per job?", "4").to_i
220
- $stderr.puts "Setting up internal daemon defaults."
221
- $stderr.puts "If you don't understand this just leave default values:"
222
- v[:cmd] = ask_user(
223
- "How should I launch tasks?\n %1$s: script path, %2$s: variables, " +
224
- "%3$d: CPUs, %4$d: log file, %5$s: task name.\n",
225
- "#{v[:type]} -q '#{queue}' -v '%2$s' -l nodes=1:ppn=%3$d %1$s " +
226
- "-j oe -o '%4$s' -N '%5$s' -l mem=9g -l walltime=12:00:00 | grep .")
227
- v[:var] = ask_user(
228
- "How should I pass variables?\n %1$s: keys, %2$s: values.\n",
229
- "%1$s=%2$s")
230
- v[:varsep] = ask_user("What should I use to separate variables?", ",")
231
- if v[:type] == "qsub"
232
- v[:alive] = ask_user(
233
- "How can I know that a process is still alive?\n %1$s: job id, " +
195
+ daemon_f = File.expand_path(".miga_daemon.json", ENV["HOME"])
196
+ unless File.exist?(daemon_f) and ask_user(
197
+ "A template daemon already exists, do you want to preserve it?",
198
+ "yes", %w(yes no))=="yes"
199
+ v = {created:Time.now.to_s, updated:Time.now.to_s}
200
+ v[:type] = ask_user("Please select the type of daemon you want to setup",
201
+ o[:dtype], %w(bash qsub msub))
202
+ case v[:type]
203
+ when "bash"
204
+ v[:latency] = ask_user("How long should I sleep? (in seconds)","30").to_i
205
+ v[:maxjobs] = ask_user("How many jobs can I launch at once?", "6").to_i
206
+ v[:ppn] = ask_user("How many CPUs can I use per job?", "2").to_i
207
+ $stderr.puts "Setting up internal daemon defaults."
208
+ $stderr.puts "If you don't understand this just leave default values:"
209
+ v[:cmd] = ask_user(
210
+ "How should I launch tasks?\n %1$s: script path, %2$s: variables, " +
211
+ "%3$d: CPUs, %4$s: log file, %5$s: task name.\n",
212
+ "%2$s '%1$s' > '%4$s' 2>&1")
213
+ v[:var] = ask_user(
214
+ "How should I pass variables?\n %1$s: keys, %2$s: values.\n",
215
+ "%1$s=%2$s")
216
+ v[:varsep] = ask_user("What should I use to separate variables?", " ")
217
+ v[:alive] = ask_user(
218
+ "How can I know that a process is still alive?\n %1$s: PID, " +
234
219
  "output should be 1 for running and 0 for non-running.\n",
235
- "qstat -f '%1$s'|grep ' job_state ='|perl -pe 's/.*= //'|grep '[^C]'" +
236
- "|tail -n1|wc -l|awk '{print $1}'")
237
- v[:kill] = ask_user(
238
- "How should I terminate tasks?\n %s: process ID.", "qdel '%s'")
239
- else
240
- v[:alive] = ask_user(
241
- "How can I know that a process is still alive?\n %1$s: job id, " +
242
- "output should be 1 for running and 0 for non-running.\n",
243
- "checkjob '%1$s'|grep '^State:'|perl -pe 's/.*: //'" +
244
- "|grep 'Deferred\\|Hold\\|Idle\\|Starting\\|Running\\|Blocked'"+
245
- "|tail -n1|wc -l|awk '{print $1}'")
246
- v[:kill] = ask_user(
247
- "How should I terminate tasks?\n %s: process ID.", "canceljob '%s'")
248
- end
249
- end
250
- File.open(File.expand_path(".miga_daemon.json", ENV["HOME"]), "w") do |fh|
251
- fh.puts JSON.pretty_generate(v)
220
+ "ps -p '%1$s'|tail -n+2|wc -l")
221
+ v[:kill] = ask_user(
222
+ "How should I terminate tasks?\n %s: process ID.", "kill -9 '%s'")
223
+ else # [qm]sub
224
+ queue = ask_user("What queue should I use?", nil, nil, true)
225
+ v[:latency] = ask_user("How long should I sleep? (in seconds)","150").to_i
226
+ v[:maxjobs] = ask_user("How many jobs can I launch at once?", "300").to_i
227
+ v[:ppn] = ask_user("How many CPUs can I use per job?", "4").to_i
228
+ $stderr.puts "Setting up internal daemon defaults."
229
+ $stderr.puts "If you don't understand this just leave default values:"
230
+ v[:cmd] = ask_user(
231
+ "How should I launch tasks?\n %1$s: script path, %2$s: variables, " +
232
+ "%3$d: CPUs, %4$d: log file, %5$s: task name.\n",
233
+ "#{v[:type]} -q '#{queue}' -v '%2$s' -l nodes=1:ppn=%3$d %1$s " +
234
+ "-j oe -o '%4$s' -N '%5$s' -l mem=9g -l walltime=12:00:00 | grep .")
235
+ v[:var] = ask_user(
236
+ "How should I pass variables?\n %1$s: keys, %2$s: values.\n",
237
+ "%1$s=%2$s")
238
+ v[:varsep] = ask_user("What should I use to separate variables?", ",")
239
+ if v[:type] == "qsub"
240
+ v[:alive] = ask_user(
241
+ "How can I know that a process is still alive?\n %1$s: job id, " +
242
+ "output should be 1 for running and 0 for non-running.\n",
243
+ "qstat -f '%1$s'|grep ' job_state ='|perl -pe 's/.*= //'|grep '[^C]'"+
244
+ "|tail -n1|wc -l|awk '{print $1}'")
245
+ v[:kill] = ask_user(
246
+ "How should I terminate tasks?\n %s: process ID.", "qdel '%s'")
247
+ else
248
+ v[:alive] = ask_user(
249
+ "How can I know that a process is still alive?\n %1$s: job id, " +
250
+ "output should be 1 for running and 0 for non-running.\n",
251
+ "checkjob '%1$s'|grep '^State:'|perl -pe 's/.*: //'" +
252
+ "|grep 'Deferred\\|Hold\\|Idle\\|Starting\\|Running\\|Blocked'"+
253
+ "|tail -n1|wc -l|awk '{print $1}'")
254
+ v[:kill] = ask_user(
255
+ "How should I terminate tasks?\n %s: process ID.", "canceljob '%s'")
256
+ end
257
+ end
258
+ File.open(daemon_f, "w"){ |fh| fh.puts JSON.pretty_generate(v) }
252
259
  end
253
260
  $stderr.puts ""
254
261
 
data/actions/stats.rb CHANGED
@@ -43,31 +43,43 @@ if o[:compute]
43
43
  stats = {}
44
44
  case o[:name]
45
45
  when :raw_reads
46
- scr = "awk 'NR%4==2{L+=length($0)} END{print NR/4, L*4/NR}'"
47
46
  if r[:files][:pair1].nil?
48
- s = `#{scr} '#{r.file_path :single}'`.chomp.split(" ")
49
- stats = {reads: s[0].to_i, average_length: [s[1].to_f, "bp"]}
47
+ s = MiGA::MiGA.seqs_length(r.file_path(:single), :fastq, gc: true)
48
+ stats = {reads: s[:n],
49
+ length_average: [s[:avg], "bp"],
50
+ length_standard_deviation: [s[:sd], "bp"],
51
+ g_c_content: [s[:gc], "%"]}
50
52
  else
51
- s1 = `#{scr} '#{r.file_path :pair1}'`.chomp.split(" ")
52
- s2 = `#{scr} '#{r.file_path :pair2}'`.chomp.split(" ")
53
- stats = {read_pairs: s1[0].to_i,
54
- average_length_forward: [s1[1].to_f, "bp"],
55
- average_length_reverse: [s2[1].to_f, "bp"]}
53
+ s1 = MiGA::MiGA.seqs_length(r.file_path(:pair1), :fastq, gc: true)
54
+ s2 = MiGA::MiGA.seqs_length(r.file_path(:pair2), :fastq, gc: true)
55
+ stats = {read_pairs: s1[:n],
56
+ forward_length_average: [s1[:avg], "bp"],
57
+ forward_length_standard_deviation: [s1[:sd], "bp"],
58
+ forward_g_c_content: [s1[:gc], "%"],
59
+ reverse_length_average: [s2[:avg], "bp"],
60
+ reverse_length_standard_deviation: [s2[:sd], "bp"],
61
+ reverse_g_c_content: [s2[:gc], "%"]}
56
62
  end
57
63
  when :trimmed_fasta
58
- scr = "awk '{L+=$2} END{print NR, L/NR}'"
59
64
  f = r[:files][:coupled].nil? ? r.file_path(:single) : r.file_path(:coupled)
60
- s = `FastA.length.pl '#{f}' | #{scr}`.chomp.split(" ")
61
- stats = {reads: s[0].to_i, average_length: [s[1].to_f, "bp"]}
65
+ s = MiGA::MiGA.seqs_length(f, :fasta, gc: true)
66
+ stats = {reads: s[:n],
67
+ length_average: [s[:avg], "bp"],
68
+ length_standard_deviation: [s[:sd], "bp"],
69
+ g_c_content: [s[:gc], "%"]}
62
70
  when :assembly
63
- f = r.file_path :largecontigs
64
- s = `FastA.N50.pl '#{f}'`.chomp.split("\n").map{|i| i.gsub(/.*: /,'').to_i}
65
- stats = {contigs: s[1], n50: [s[0], "bp"], total_length: [s[2], "bp"]}
71
+ s = MiGA::MiGA.seqs_length(r.file_path(:largecontigs), :fasta,
72
+ n50:true, gc:true)
73
+ stats = {contigs: s[:n], n50: [s[:n50], "bp"],
74
+ total_length: [s[:tot], "bp"], g_c_content: [s[:gc], "%"]}
66
75
  when :cds
67
- scr = "awk '{L+=$2} END{print NR, L/NR}'"
68
- f = r.file_path :proteins
69
- s = `FastA.length.pl '#{f}' | #{scr}`.chomp.split(" ")
70
- stats = {predicted_proteins: s[0].to_i, average_length: [s[1].to_f, "aa"]}
76
+ s = MiGA::MiGA.seqs_length(r.file_path(:proteins), :fasta)
77
+ stats = {predicted_proteins: s[:n], average_length: [s[:avg], "aa"]}
78
+ asm = d.add_result(:assembly, false)
79
+ unless asm.nil? or asm[:stats][:total_length].nil?
80
+ stats[:coding_density] =
81
+ [300.0*s[:tot]/asm[:stats][:total_length][0], "%"]
82
+ end
71
83
  when :essential_genes
72
84
  if d.is_multi?
73
85
  stats = {median_copies:0, mean_copies:0}
@@ -118,7 +130,7 @@ end
118
130
 
119
131
  if o[:key].nil?
120
132
  r[:stats].each do |k,v|
121
- puts "#{k.to_s.unmiga_name.capitalize}: #{
133
+ puts "#{k==:g_c_content ? "G+C content" : k.to_s.unmiga_name.capitalize}: #{
122
134
  v.is_a?(Array) ? v.join(" ") : v}."
123
135
  end
124
136
  else
data/lib/miga/common.rb CHANGED
@@ -4,6 +4,7 @@
4
4
  require "miga/version"
5
5
  require "json"
6
6
  require "tempfile"
7
+ require "zlib"
7
8
 
8
9
  ##
9
10
  # Generic class used to handle system-wide information and methods, and parent
@@ -103,6 +104,50 @@ class MiGA::MiGA
103
104
  tmp.unlink
104
105
  end
105
106
  end
107
+
108
+ ##
109
+ # Calculates the average and standard deviation of the sequence lengths in
110
+ # a FastA or FastQ file (supports gzipped files). The +format+ must be a
111
+ # Symbol, one of +:fasta+ or +:fastq+. Additional estimations can be
112
+ # controlled via the +opts+ Hash. Supported options include:
113
+ # - +:n50+: If true, it also returns the N50 and the median (in bp).
114
+ # - +gc+: If true, it also returns the G+C content (in %).
115
+ def self.seqs_length(file, format, opts={})
116
+ fh = (file =~ /\.gz/) ? Zlib::GzipReader.open(file) : File.open(file, "r")
117
+ l = []
118
+ gc = 0
119
+ i = 0 # <- Zlib::GzipReader doesn't set $.
120
+ fh.each_line do |ln|
121
+ i += 1
122
+ if (format==:fasta and ln =~ /^>/) or (format==:fastq and (i % 4)==1)
123
+ l << 0
124
+ elsif format==:fasta or (i % 4)==2
125
+ l[l.size-1] += ln.chomp.size
126
+ gc += ln.scan(/[GCgc]/).count if opts[:gc]
127
+ end
128
+ end
129
+ fh.close
130
+
131
+ o = { n: l.size, tot: l.inject(:+) }
132
+ o[:avg] = o[:tot].to_f/l.size
133
+ o[:var] = l.map{ |a| a ** 2 }.inject(:+).to_f/l.size - o[:avg]**2
134
+ o[:sd] = Math.sqrt o[:var]
135
+ o[:gc] = 100.0*gc/o[:tot] if opts[:gc]
136
+ if opts[:n50]
137
+ l.sort!
138
+ thr = o[:tot]/2
139
+ pos = 0
140
+ l.each do |a|
141
+ pos += a
142
+ o[:n50] = a
143
+ break if pos >= thr
144
+ end
145
+ o[:med] = o[:n].even? ?
146
+ 0.5*( l[o[:n]/2-1,2].inject(:+) ) : l[(o[:n]-1)/2]
147
+ end
148
+ o
149
+ end
150
+
106
151
 
107
152
  ##
108
153
  # Path to a script to be executed for +task+. Supported +opts+ are:
data/lib/miga/dataset.rb CHANGED
@@ -187,16 +187,20 @@ class MiGA::Dataset < MiGA::MiGA
187
187
  ##
188
188
  # Look for the result with symbol key +result_type+ and register it in the
189
189
  # dataset. If +save+ is false, it doesn't register the result, but it still
190
- # returns a result if the expected files are complete. The +opts+ array
190
+ # returns a result if the expected files are complete. The +opts+ hash
191
191
  # controls result creation (if necessary). Supported values include:
192
192
  # - +is_clean+: A Boolean indicating if the input files are clean.
193
+ # - +force+: A Boolean indicating if the result must be re-indexed. If true, it
194
+ # implies save=true.
193
195
  # Returns MiGA::Result or nil.
194
196
  def add_result(result_type, save=true, opts={})
195
197
  dir = @@RESULT_DIRS[result_type]
196
198
  return nil if dir.nil?
197
199
  base = File.expand_path("data/#{dir}/#{name}", project.path)
198
- r_pre = MiGA::Result.load("#{base}.json")
199
- return r_pre if (r_pre.nil? and not save) or not r_pre.nil?
200
+ unless opts[:force]
201
+ r_pre = MiGA::Result.load("#{base}.json")
202
+ return r_pre if (r_pre.nil? and not save) or not r_pre.nil?
203
+ end
200
204
  r = File.exist?("#{base}.done") ?
201
205
  self.send("add_result_#{result_type}", base, opts) : nil
202
206
  r.save unless r.nil?
data/lib/miga/project.rb CHANGED
@@ -269,12 +269,17 @@ class MiGA::Project < MiGA::MiGA
269
269
 
270
270
  ##
271
271
  # Add the result identified by Symbol +name+, and return MiGA::Result. Save
272
- # the result if +save+.
273
- def add_result(name, save=true)
272
+ # the result if +save+. The +opts+ hash controls result creation (if necessary).
273
+ # Supported values include:
274
+ # - +force+: A Boolean indicating if the result must be re-indexed. If true, it
275
+ # implies save=true.
276
+ def add_result(name, save=true, opts={})
274
277
  return nil if @@RESULT_DIRS[name].nil?
275
278
  base = "#{path}/data/#{@@RESULT_DIRS[name]}/miga-project"
276
- r_pre = MiGA::Result.load("#{base}.json")
277
- return r_pre if (r_pre.nil? and not save) or not r_pre.nil?
279
+ unless opts[:force]
280
+ r_pre = MiGA::Result.load("#{base}.json")
281
+ return r_pre if (r_pre.nil? and not save) or not r_pre.nil?
282
+ end
278
283
  r = result_files_exist?(base, ".done") ?
279
284
  send("add_result_#{name}", base) : nil
280
285
  r.save unless r.nil?
data/lib/miga/result.rb CHANGED
@@ -133,22 +133,27 @@ class MiGA::Result < MiGA::MiGA
133
133
  end
134
134
 
135
135
  ##
136
- # Iterate +blk+ for each registered file. If +blk+ calls for one argument, the
137
- # relative path to the file is passed. If it calls for two arguments, the
138
- # symbol describing the file is passed first and the path second. Note that
139
- # multiple files may have the same symbol, since arrays of files are
140
- # supported.
136
+ # Iterate +blk+ for each registered file. Depending on the number of
137
+ # arguments of +blk+ (arity), it's called as:
138
+ # - blk[file_rel]
139
+ # - blk[file_sym, file_rel]
140
+ # - blk[file_sym, file_rel, file_abs]
141
+ # Note that multiple files may have the same symbol (file_sym), since
142
+ # arrays of files are supported.
141
143
  def each_file(&blk)
142
144
  @data[:files] ||= {}
143
145
  self[:files].each do |k,files|
144
146
  files = [files] unless files.kind_of? Array
145
147
  files.each do |file|
146
- if blk.arity==1
148
+ case blk.arity
149
+ when 1
147
150
  blk.call(file)
148
- elsif blk.arity==2
151
+ when 2
149
152
  blk.call(k, file)
153
+ when 3
154
+ blk.call(k, file, File.expand_path(file, dir))
150
155
  else
151
- raise "Wrong number of arguments: #{blk.arity} for one or two"
156
+ raise "Wrong number of arguments: #{blk.arity} for 1..3"
152
157
  end
153
158
  end
154
159
  end
data/lib/miga/version.rb CHANGED
@@ -10,7 +10,7 @@ module MiGA
10
10
  # - Float representing the major.minor version.
11
11
  # - Integer representing gem releases of the current version.
12
12
  # - Integer representing minor changes that require new version number.
13
- VERSION = [0.3, 1, 1]
13
+ VERSION = [0.3, 1, 2]
14
14
 
15
15
  ##
16
16
  # Nickname for the current major.minor version.
@@ -18,7 +18,7 @@ module MiGA
18
18
 
19
19
  ##
20
20
  # Date of the current gem release.
21
- VERSION_DATE = Date.new(2017, 9, 14)
21
+ VERSION_DATE = Date.new(2017, 11, 22)
22
22
 
23
23
  ##
24
24
  # Reference of MiGA.
@@ -36,6 +36,9 @@ else
36
36
  > "$DATASET.ess/log"
37
37
  fi
38
38
 
39
+ # Reduce files
40
+ ( cd "${DATASET}.ess" && tar -zcf proteins.tar.gz *.faa && rm *.faa )
41
+
39
42
  # Finalize
40
43
  miga date > "$DATASET.done"
41
44
  miga add_result -P "$PROJECT" -D "$DATASET" -r "$SCRIPT"
@@ -0,0 +1 @@
1
+ utils/enveomics/Pipelines/assembly.pbs/../../Scripts/FastA.N50.pl
@@ -0,0 +1 @@
1
+ utils/enveomics/Pipelines/assembly.pbs/../../Scripts/FastA.filterN.pl
@@ -0,0 +1 @@
1
+ utils/enveomics/Pipelines/assembly.pbs/../../Scripts/FastA.length.pl
@@ -0,0 +1 @@
1
+ utils/enveomics/Pipelines/blast.pbs/../../Scripts/FastA.split.pl
@@ -0,0 +1 @@
1
+ utils/enveomics/Scripts/lib/../../enveomics.R
metadata CHANGED
@@ -1,109 +1,109 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miga-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1.1
4
+ version: 0.3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis M. Rodriguez-R
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-14 00:00:00.000000000 Z
11
+ date: 2017-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.7'
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
26
  version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: daemons
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.2'
34
- - - '>='
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: 1.2.4
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ~>
41
+ - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '1.2'
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.2.4
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: json
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '>'
51
+ - - ">"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.8'
54
- - - <
54
+ - - "<"
55
55
  - !ruby/object:Gem::Version
56
56
  version: '3'
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>'
61
+ - - ">"
62
62
  - !ruby/object:Gem::Version
63
63
  version: '1.8'
64
- - - <
64
+ - - "<"
65
65
  - !ruby/object:Gem::Version
66
66
  version: '3'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: sqlite3
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ~>
71
+ - - "~>"
72
72
  - !ruby/object:Gem::Version
73
73
  version: '1.3'
74
74
  type: :runtime
75
75
  prerelease: false
76
76
  version_requirements: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - ~>
78
+ - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '1.3'
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rake
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ~>
85
+ - - "~>"
86
86
  - !ruby/object:Gem::Version
87
87
  version: '11'
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ~>
92
+ - - "~>"
93
93
  - !ruby/object:Gem::Version
94
94
  version: '11'
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: test-unit
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - ~>
99
+ - - "~>"
100
100
  - !ruby/object:Gem::Version
101
101
  version: '3'
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - ~>
106
+ - - "~>"
107
107
  - !ruby/object:Gem::Version
108
108
  version: '3'
109
109
  description: Microbial Genomes Atlas
@@ -114,6 +114,34 @@ extensions: []
114
114
  extra_rdoc_files:
115
115
  - README.md
116
116
  files:
117
+ - Gemfile
118
+ - LICENSE
119
+ - README.md
120
+ - Rakefile
121
+ - actions/about.rb
122
+ - actions/add.rb
123
+ - actions/add_result.rb
124
+ - actions/daemon.rb
125
+ - actions/date.rb
126
+ - actions/files.rb
127
+ - actions/find.rb
128
+ - actions/get.rb
129
+ - actions/init.rb
130
+ - actions/ln.rb
131
+ - actions/ls.rb
132
+ - actions/new.rb
133
+ - actions/plugins.rb
134
+ - actions/rm.rb
135
+ - actions/run.rb
136
+ - actions/stats.rb
137
+ - actions/tax_dist.rb
138
+ - actions/tax_index.rb
139
+ - actions/tax_set.rb
140
+ - actions/tax_test.rb
141
+ - bin/miga
142
+ - lib/miga.rb
143
+ - lib/miga/_data/aai-intax.tsv.gz
144
+ - lib/miga/_data/aai-novel.tsv.gz
117
145
  - lib/miga/common.rb
118
146
  - lib/miga/daemon.rb
119
147
  - lib/miga/dataset.rb
@@ -127,18 +155,6 @@ files:
127
155
  - lib/miga/tax_index.rb
128
156
  - lib/miga/taxonomy.rb
129
157
  - lib/miga/version.rb
130
- - lib/miga.rb
131
- - test/common_test.rb
132
- - test/daemon_test.rb
133
- - test/dataset_test.rb
134
- - test/metadata_test.rb
135
- - test/project_test.rb
136
- - test/remote_dataset_test.rb
137
- - test/tax_index_test.rb
138
- - test/taxonomy_test.rb
139
- - test/test_helper.rb
140
- - lib/miga/_data/aai-intax.tsv.gz
141
- - lib/miga/_data/aai-novel.tsv.gz
142
158
  - scripts/_distances_functions.bash
143
159
  - scripts/_distances_noref_nomulti.bash
144
160
  - scripts/_distances_ref_nomulti.bash
@@ -163,75 +179,24 @@ files:
163
179
  - scripts/taxonomy.bash
164
180
  - scripts/trimmed_fasta.bash
165
181
  - scripts/trimmed_reads.bash
182
+ - test/common_test.rb
183
+ - test/daemon_test.rb
184
+ - test/dataset_test.rb
185
+ - test/metadata_test.rb
186
+ - test/project_test.rb
187
+ - test/remote_dataset_test.rb
188
+ - test/tax_index_test.rb
189
+ - test/taxonomy_test.rb
190
+ - test/test_helper.rb
166
191
  - utils/adapters.fa
167
192
  - utils/arch-ess-genes.rb
168
193
  - utils/core-pan-plot.R
169
- - utils/enveomics/build_enveomics_r.bash
170
- - utils/enveomics/enveomics.R/data/growth.curves.rda
171
- - utils/enveomics/enveomics.R/data/phyla.counts.rda
172
- - utils/enveomics/enveomics.R/DESCRIPTION
173
- - utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd
174
- - utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd
175
- - utils/enveomics/enveomics.R/man/enve.__tribs.Rd
176
- - utils/enveomics/enveomics.R/man/enve.barplot.Rd
177
- - utils/enveomics/enveomics.R/man/enve.cliopts.Rd
178
- - utils/enveomics/enveomics.R/man/enve.col.alpha.Rd
179
- - utils/enveomics/enveomics.R/man/enve.col2alpha.Rd
180
- - utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd
181
- - utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd
182
- - utils/enveomics/enveomics.R/man/enve.df2dist.Rd
183
- - utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd
184
- - utils/enveomics/enveomics.R/man/enve.growthcurve.Rd
185
- - utils/enveomics/enveomics.R/man/enve.prune.dist.Rd
186
- - utils/enveomics/enveomics.R/man/enve.recplot.Rd
187
- - utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd
188
- - utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd
189
- - utils/enveomics/enveomics.R/man/enve.recplot2.__findPeak.Rd
190
- - utils/enveomics/enveomics.R/man/enve.recplot2.__findPeaks.Rd
191
- - utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd
192
- - utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd
193
- - utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd
194
- - utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd
195
- - utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd
196
- - utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd
197
- - utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd
198
- - utils/enveomics/enveomics.R/man/enve.recplot2.Rd
199
- - utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd
200
- - utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd
201
- - utils/enveomics/enveomics.R/man/enve.tribs.Rd
202
- - utils/enveomics/enveomics.R/man/enve.tribs.test.Rd
203
- - utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd
204
- - utils/enveomics/enveomics.R/man/enveomics.R-package.Rd
205
- - utils/enveomics/enveomics.R/man/growth.curves.Rd
206
- - utils/enveomics/enveomics.R/man/phyla.counts.Rd
207
- - utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd
208
- - utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd
209
- - utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd
210
- - utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd
211
- - utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd
212
- - utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd
213
- - utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd
214
- - utils/enveomics/enveomics.R/man/z$-methods.Rd
215
- - utils/enveomics/enveomics.R/NAMESPACE
216
- - utils/enveomics/enveomics.R/R/autoprune.R
217
- - utils/enveomics/enveomics.R/R/barplot.R
218
- - utils/enveomics/enveomics.R/R/cliopts.R
219
- - utils/enveomics/enveomics.R/R/df2dist.R
220
- - utils/enveomics/enveomics.R/R/growthcurve.R
221
- - utils/enveomics/enveomics.R/R/recplot.R
222
- - utils/enveomics/enveomics.R/R/recplot2.R
223
- - utils/enveomics/enveomics.R/R/tribs.R
224
- - utils/enveomics/enveomics.R/R/utils.R
225
- - utils/enveomics/enveomics.R/README.md
226
194
  - utils/enveomics/Examples/aai-matrix.bash
227
195
  - utils/enveomics/Examples/ani-matrix.bash
228
196
  - utils/enveomics/Examples/essential-phylogeny.bash
229
197
  - utils/enveomics/Examples/unus-genome-phylogeny.bash
230
- - utils/enveomics/globals.mk
231
198
  - utils/enveomics/LICENSE.txt
232
199
  - utils/enveomics/Makefile
233
- - utils/enveomics/Manifest/categories.json
234
- - utils/enveomics/Manifest/examples.json
235
200
  - utils/enveomics/Manifest/Tasks/aasubs.json
236
201
  - utils/enveomics/Manifest/Tasks/blasttab.json
237
202
  - utils/enveomics/Manifest/Tasks/distances.json
@@ -245,20 +210,21 @@ files:
245
210
  - utils/enveomics/Manifest/Tasks/tables.json
246
211
  - utils/enveomics/Manifest/Tasks/trees.json
247
212
  - utils/enveomics/Manifest/Tasks/variants.json
213
+ - utils/enveomics/Manifest/categories.json
214
+ - utils/enveomics/Manifest/examples.json
248
215
  - utils/enveomics/Manifest/tasks.json
249
- - utils/enveomics/manifest.json
250
216
  - utils/enveomics/Pipelines/assembly.pbs/CONFIG.mock.bash
217
+ - utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl
251
218
  - utils/enveomics/Pipelines/assembly.pbs/FastA.filterN.pl
252
219
  - utils/enveomics/Pipelines/assembly.pbs/FastA.length.pl
253
- - utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl
254
- - utils/enveomics/Pipelines/assembly.pbs/kSelector.R
255
- - utils/enveomics/Pipelines/assembly.pbs/newbler.pbs
256
- - utils/enveomics/Pipelines/assembly.pbs/newbler_preparator.pl
257
220
  - utils/enveomics/Pipelines/assembly.pbs/README.md
258
221
  - utils/enveomics/Pipelines/assembly.pbs/RUNME-2.bash
259
222
  - utils/enveomics/Pipelines/assembly.pbs/RUNME-3.bash
260
223
  - utils/enveomics/Pipelines/assembly.pbs/RUNME-4.bash
261
224
  - utils/enveomics/Pipelines/assembly.pbs/RUNME.bash
225
+ - utils/enveomics/Pipelines/assembly.pbs/kSelector.R
226
+ - utils/enveomics/Pipelines/assembly.pbs/newbler.pbs
227
+ - utils/enveomics/Pipelines/assembly.pbs/newbler_preparator.pl
262
228
  - utils/enveomics/Pipelines/assembly.pbs/soap.pbs
263
229
  - utils/enveomics/Pipelines/assembly.pbs/stats.pbs
264
230
  - utils/enveomics/Pipelines/assembly.pbs/velvet.pbs
@@ -270,25 +236,23 @@ files:
270
236
  - utils/enveomics/Pipelines/blast.pbs/FastA.split.pl
271
237
  - utils/enveomics/Pipelines/blast.pbs/README.md
272
238
  - utils/enveomics/Pipelines/blast.pbs/RUNME.bash
273
- - utils/enveomics/Pipelines/blast.pbs/sentinel.pbs.bash
274
239
  - utils/enveomics/Pipelines/blast.pbs/TASK.check.bash
275
240
  - utils/enveomics/Pipelines/blast.pbs/TASK.dry.bash
276
241
  - utils/enveomics/Pipelines/blast.pbs/TASK.eo.bash
277
242
  - utils/enveomics/Pipelines/blast.pbs/TASK.pause.bash
278
243
  - utils/enveomics/Pipelines/blast.pbs/TASK.run.bash
244
+ - utils/enveomics/Pipelines/blast.pbs/sentinel.pbs.bash
279
245
  - utils/enveomics/Pipelines/idba.pbs/README.md
280
- - utils/enveomics/Pipelines/idba.pbs/run.pbs
281
246
  - utils/enveomics/Pipelines/idba.pbs/RUNME.bash
247
+ - utils/enveomics/Pipelines/idba.pbs/run.pbs
282
248
  - utils/enveomics/Pipelines/trim.pbs/README.md
283
- - utils/enveomics/Pipelines/trim.pbs/run.pbs
284
249
  - utils/enveomics/Pipelines/trim.pbs/RUNME.bash
250
+ - utils/enveomics/Pipelines/trim.pbs/run.pbs
285
251
  - utils/enveomics/README.md
286
- - utils/enveomics/Scripts/aai.rb
287
252
  - utils/enveomics/Scripts/AAsubs.log2ratio.rb
288
253
  - utils/enveomics/Scripts/Aln.cat.rb
289
254
  - utils/enveomics/Scripts/Aln.convert.pl
290
255
  - utils/enveomics/Scripts/AlphaDiversity.pl
291
- - utils/enveomics/Scripts/ani.rb
292
256
  - utils/enveomics/Scripts/BlastPairwise.AAsubs.pl
293
257
  - utils/enveomics/Scripts/BlastTab.addlen.rb
294
258
  - utils/enveomics/Scripts/BlastTab.advance.bash
@@ -301,8 +265,8 @@ files:
301
265
  - utils/enveomics/Scripts/BlastTab.pairedHits.rb
302
266
  - utils/enveomics/Scripts/BlastTab.recplot2.R
303
267
  - utils/enveomics/Scripts/BlastTab.seqdepth.pl
304
- - utils/enveomics/Scripts/BlastTab.seqdepth_nomedian.pl
305
268
  - utils/enveomics/Scripts/BlastTab.seqdepth_ZIP.pl
269
+ - utils/enveomics/Scripts/BlastTab.seqdepth_nomedian.pl
306
270
  - utils/enveomics/Scripts/BlastTab.subsample.pl
307
271
  - utils/enveomics/Scripts/BlastTab.sumPerHit.pl
308
272
  - utils/enveomics/Scripts/BlastTab.taxid2taxrank.pl
@@ -310,6 +274,7 @@ files:
310
274
  - utils/enveomics/Scripts/Chao1.pl
311
275
  - utils/enveomics/Scripts/CharTable.classify.rb
312
276
  - utils/enveomics/Scripts/EBIseq2tax.rb
277
+ - utils/enveomics/Scripts/FastA.N50.pl
313
278
  - utils/enveomics/Scripts/FastA.filter.pl
314
279
  - utils/enveomics/Scripts/FastA.filterLen.pl
315
280
  - utils/enveomics/Scripts/FastA.filterN.pl
@@ -317,7 +282,6 @@ files:
317
282
  - utils/enveomics/Scripts/FastA.gc.pl
318
283
  - utils/enveomics/Scripts/FastA.interpose.pl
319
284
  - utils/enveomics/Scripts/FastA.length.pl
320
- - utils/enveomics/Scripts/FastA.N50.pl
321
285
  - utils/enveomics/Scripts/FastA.per_file.pl
322
286
  - utils/enveomics/Scripts/FastA.qlen.pl
323
287
  - utils/enveomics/Scripts/FastA.rename.pl
@@ -334,36 +298,21 @@ files:
334
298
  - utils/enveomics/Scripts/FastQ.tag.rb
335
299
  - utils/enveomics/Scripts/FastQ.toFastA.awk
336
300
  - utils/enveomics/Scripts/GenBank.add_fields.rb
337
- - utils/enveomics/Scripts/gi2tax.rb
338
301
  - utils/enveomics/Scripts/HMM.essential.rb
339
302
  - utils/enveomics/Scripts/HMMsearch.extractIds.rb
340
- - utils/enveomics/Scripts/in_silico_GA_GI.pl
341
303
  - utils/enveomics/Scripts/JPlace.distances.rb
342
304
  - utils/enveomics/Scripts/JPlace.to_iToL.rb
343
- - utils/enveomics/Scripts/lib/data/essential.hmm.gz
344
- - utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb
345
- - utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb
346
- - utils/enveomics/Scripts/lib/enveomics_rb/og.rb
347
- - utils/enveomics/Scripts/lib/enveomics_rb/remote_data.rb
348
- - utils/enveomics/Scripts/lib/enveomics_rb/seq_range.rb
349
- - utils/enveomics/Scripts/lib/enveomics_rb/stat.rb
350
- - utils/enveomics/Scripts/lib/enveomics_rb/vcf.rb
351
305
  - utils/enveomics/Scripts/M5nr.getSequences.rb
352
306
  - utils/enveomics/Scripts/MeTaxa.distribution.pl
353
307
  - utils/enveomics/Scripts/MyTaxa.fragsByTax.pl
354
308
  - utils/enveomics/Scripts/MyTaxa.seq-taxrank.rb
355
309
  - utils/enveomics/Scripts/NCBIacc2tax.rb
356
310
  - utils/enveomics/Scripts/Newick.autoprune.R
357
- - utils/enveomics/Scripts/ogs.annotate.rb
358
- - utils/enveomics/Scripts/ogs.core-pan.rb
359
- - utils/enveomics/Scripts/ogs.extract.rb
360
- - utils/enveomics/Scripts/ogs.mcl.rb
361
- - utils/enveomics/Scripts/ogs.rb
362
- - utils/enveomics/Scripts/ogs.stats.rb
363
311
  - utils/enveomics/Scripts/RAxML-EPA.to_iToL.pl
364
- - utils/enveomics/Scripts/rbm.rb
365
312
  - utils/enveomics/Scripts/RefSeq.download.bash
366
313
  - utils/enveomics/Scripts/SRA.download.bash
314
+ - utils/enveomics/Scripts/TRIBS.plot-test.R
315
+ - utils/enveomics/Scripts/TRIBS.test.R
367
316
  - utils/enveomics/Scripts/Table.barplot.R
368
317
  - utils/enveomics/Scripts/Table.df2dist.R
369
318
  - utils/enveomics/Scripts/Table.filter.pl
@@ -372,10 +321,37 @@ files:
372
321
  - utils/enveomics/Scripts/Table.round.rb
373
322
  - utils/enveomics/Scripts/Table.split.pl
374
323
  - utils/enveomics/Scripts/Taxonomy.silva2ncbi.rb
375
- - utils/enveomics/Scripts/TRIBS.plot-test.R
376
- - utils/enveomics/Scripts/TRIBS.test.R
377
324
  - utils/enveomics/Scripts/VCF.KaKs.rb
378
325
  - utils/enveomics/Scripts/VCF.SNPs.rb
326
+ - utils/enveomics/Scripts/aai.rb
327
+ - utils/enveomics/Scripts/ani.rb
328
+ - utils/enveomics/Scripts/gi2tax.rb
329
+ - utils/enveomics/Scripts/in_silico_GA_GI.pl
330
+ - utils/enveomics/Scripts/lib/data/essential.hmm.gz
331
+ - utils/enveomics/Scripts/lib/enveomics.R
332
+ - utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb
333
+ - utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb
334
+ - utils/enveomics/Scripts/lib/enveomics_rb/og.rb
335
+ - utils/enveomics/Scripts/lib/enveomics_rb/remote_data.rb
336
+ - utils/enveomics/Scripts/lib/enveomics_rb/seq_range.rb
337
+ - utils/enveomics/Scripts/lib/enveomics_rb/stat.rb
338
+ - utils/enveomics/Scripts/lib/enveomics_rb/vcf.rb
339
+ - utils/enveomics/Scripts/ogs.annotate.rb
340
+ - utils/enveomics/Scripts/ogs.core-pan.rb
341
+ - utils/enveomics/Scripts/ogs.extract.rb
342
+ - utils/enveomics/Scripts/ogs.mcl.rb
343
+ - utils/enveomics/Scripts/ogs.rb
344
+ - utils/enveomics/Scripts/ogs.stats.rb
345
+ - utils/enveomics/Scripts/rbm.rb
346
+ - utils/enveomics/Tests/Makefile
347
+ - utils/enveomics/Tests/Mgen_M2288.faa
348
+ - utils/enveomics/Tests/Mgen_M2288.fna
349
+ - utils/enveomics/Tests/Mgen_M2321.fna
350
+ - utils/enveomics/Tests/Nequ_Kin4M.faa
351
+ - utils/enveomics/Tests/Xanthomonas_oryzae-PilA.tribs.Rdata
352
+ - utils/enveomics/Tests/Xanthomonas_oryzae-PilA.txt
353
+ - utils/enveomics/Tests/Xanthomonas_oryzae.aai-mat.tsv
354
+ - utils/enveomics/Tests/Xanthomonas_oryzae.aai.tsv
379
355
  - utils/enveomics/Tests/a_mg.cds-go.blast.tsv
380
356
  - utils/enveomics/Tests/a_mg.reads-cds.blast.tsv
381
357
  - utils/enveomics/Tests/a_mg.reads-cds.counts.tsv
@@ -388,11 +364,6 @@ files:
388
364
  - utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv
389
365
  - utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.lim
390
366
  - utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.rec
391
- - utils/enveomics/Tests/Makefile
392
- - utils/enveomics/Tests/Mgen_M2288.faa
393
- - utils/enveomics/Tests/Mgen_M2288.fna
394
- - utils/enveomics/Tests/Mgen_M2321.fna
395
- - utils/enveomics/Tests/Nequ_Kin4M.faa
396
367
  - utils/enveomics/Tests/phyla_counts.tsv
397
368
  - utils/enveomics/Tests/primate_lentivirus.ogs
398
369
  - utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv1.rbm
@@ -401,10 +372,65 @@ files:
401
372
  - utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-hiv2.rbm
402
373
  - utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-siv.rbm
403
374
  - utils/enveomics/Tests/primate_lentivirus.rbm/siv-siv.rbm
404
- - utils/enveomics/Tests/Xanthomonas_oryzae-PilA.tribs.Rdata
405
- - utils/enveomics/Tests/Xanthomonas_oryzae-PilA.txt
406
- - utils/enveomics/Tests/Xanthomonas_oryzae.aai-mat.tsv
407
- - utils/enveomics/Tests/Xanthomonas_oryzae.aai.tsv
375
+ - utils/enveomics/build_enveomics_r.bash
376
+ - utils/enveomics/enveomics.R/DESCRIPTION
377
+ - utils/enveomics/enveomics.R/NAMESPACE
378
+ - utils/enveomics/enveomics.R/R/autoprune.R
379
+ - utils/enveomics/enveomics.R/R/barplot.R
380
+ - utils/enveomics/enveomics.R/R/cliopts.R
381
+ - utils/enveomics/enveomics.R/R/df2dist.R
382
+ - utils/enveomics/enveomics.R/R/growthcurve.R
383
+ - utils/enveomics/enveomics.R/R/recplot.R
384
+ - utils/enveomics/enveomics.R/R/recplot2.R
385
+ - utils/enveomics/enveomics.R/R/tribs.R
386
+ - utils/enveomics/enveomics.R/R/utils.R
387
+ - utils/enveomics/enveomics.R/README.md
388
+ - utils/enveomics/enveomics.R/data/growth.curves.rda
389
+ - utils/enveomics/enveomics.R/data/phyla.counts.rda
390
+ - utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd
391
+ - utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd
392
+ - utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd
393
+ - utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd
394
+ - utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd
395
+ - utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd
396
+ - utils/enveomics/enveomics.R/man/enve.__tribs.Rd
397
+ - utils/enveomics/enveomics.R/man/enve.barplot.Rd
398
+ - utils/enveomics/enveomics.R/man/enve.cliopts.Rd
399
+ - utils/enveomics/enveomics.R/man/enve.col.alpha.Rd
400
+ - utils/enveomics/enveomics.R/man/enve.col2alpha.Rd
401
+ - utils/enveomics/enveomics.R/man/enve.df2dist.Rd
402
+ - utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd
403
+ - utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd
404
+ - utils/enveomics/enveomics.R/man/enve.growthcurve.Rd
405
+ - utils/enveomics/enveomics.R/man/enve.prune.dist.Rd
406
+ - utils/enveomics/enveomics.R/man/enve.recplot.Rd
407
+ - utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd
408
+ - utils/enveomics/enveomics.R/man/enve.recplot2.Rd
409
+ - utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd
410
+ - utils/enveomics/enveomics.R/man/enve.recplot2.__findPeak.Rd
411
+ - utils/enveomics/enveomics.R/man/enve.recplot2.__findPeaks.Rd
412
+ - utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd
413
+ - utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd
414
+ - utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd
415
+ - utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd
416
+ - utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd
417
+ - utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd
418
+ - utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd
419
+ - utils/enveomics/enveomics.R/man/enve.tribs.Rd
420
+ - utils/enveomics/enveomics.R/man/enve.tribs.test.Rd
421
+ - utils/enveomics/enveomics.R/man/enveomics.R-package.Rd
422
+ - utils/enveomics/enveomics.R/man/growth.curves.Rd
423
+ - utils/enveomics/enveomics.R/man/phyla.counts.Rd
424
+ - utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd
425
+ - utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd
426
+ - utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd
427
+ - utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd
428
+ - utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd
429
+ - utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd
430
+ - utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd
431
+ - utils/enveomics/enveomics.R/man/z$-methods.Rd
432
+ - utils/enveomics/globals.mk
433
+ - utils/enveomics/manifest.json
408
434
  - utils/index_metadata.rb
409
435
  - utils/mytaxa_scan.R
410
436
  - utils/mytaxa_scan.rb
@@ -414,31 +440,6 @@ files:
414
440
  - utils/subclades-compile.rb
415
441
  - utils/subclades-nj.R
416
442
  - utils/subclades.R
417
- - bin/miga
418
- - actions/about.rb
419
- - actions/add.rb
420
- - actions/add_result.rb
421
- - actions/daemon.rb
422
- - actions/date.rb
423
- - actions/files.rb
424
- - actions/find.rb
425
- - actions/get.rb
426
- - actions/init.rb
427
- - actions/ln.rb
428
- - actions/ls.rb
429
- - actions/new.rb
430
- - actions/plugins.rb
431
- - actions/rm.rb
432
- - actions/run.rb
433
- - actions/stats.rb
434
- - actions/tax_dist.rb
435
- - actions/tax_index.rb
436
- - actions/tax_set.rb
437
- - actions/tax_test.rb
438
- - Gemfile
439
- - Rakefile
440
- - README.md
441
- - LICENSE
442
443
  homepage: http://enve-omics.ce.gatech.edu/miga
443
444
  licenses:
444
445
  - Artistic-2.0
@@ -447,25 +448,25 @@ post_install_message:
447
448
  rdoc_options:
448
449
  - lib
449
450
  - README.md
450
- - --main
451
+ - "--main"
451
452
  - README.md
452
- - --title
453
+ - "--title"
453
454
  - MiGA
454
455
  require_paths:
455
456
  - lib
456
457
  required_ruby_version: !ruby/object:Gem::Requirement
457
458
  requirements:
458
- - - '>='
459
+ - - ">="
459
460
  - !ruby/object:Gem::Version
460
461
  version: '1.9'
461
462
  required_rubygems_version: !ruby/object:Gem::Requirement
462
463
  requirements:
463
- - - '>='
464
+ - - ">="
464
465
  - !ruby/object:Gem::Version
465
466
  version: '0'
466
467
  requirements: []
467
468
  rubyforge_project:
468
- rubygems_version: 2.0.14
469
+ rubygems_version: 2.6.13
469
470
  signing_key:
470
471
  specification_version: 4
471
472
  summary: MiGA
@@ -1,56 +0,0 @@
1
- #!/usr/bin/env perl
2
- #
3
- # @author: Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
- # @update: Oct 07 2015
5
- # @license: artistic license 2.0
6
- #
7
- use strict;
8
- use warnings;
9
- use List::Util qw/sum min max/;
10
-
11
- my ($seqs, $minlen, $n__) = @ARGV;
12
- $seqs or die "
13
- Description:
14
- Calculates the N50 value of a set of sequences. Alternatively, it
15
- can calculate other N** values. It also calculates the total number
16
- of sequences and the total added length.
17
-
18
- Usage:
19
- $0 seqs.fa[ minlen[ **]]
20
-
21
- seqs.fa A FastA file containing the sequences.
22
- minlen (optional) The minimum length to take into consideration.
23
- By default: 0.
24
- ** Value N** to calculate. By default: 50 (N50).
25
- ";
26
- $minlen ||= 0;
27
- $n__ ||= 50;
28
-
29
- my @len = ();
30
- open SEQ, "<", $seqs or die "Cannot open file: $seqs: $!\n";
31
- while(<SEQ>){
32
- if(/^>/){
33
- push @len, 0;
34
- }else{
35
- next if /^;/;
36
- chomp;
37
- s/\W//g;
38
- $len[-1]+=length $_;
39
- }
40
- }
41
- close SEQ;
42
- @len = sort { $a <=> $b } map { $_>=$minlen?$_:() } @len;
43
- my $tot = (sum(@len) || 0);
44
-
45
- my $thr = $n__*$tot/100;
46
- my $pos = 0;
47
- for(@len){
48
- $pos+= $_;
49
- if($pos>=$thr){
50
- print "N$n__: $_\n";
51
- last;
52
- }
53
- }
54
- print "Sequences: ".scalar(@len)."\n";
55
- print "Total length: $tot\n";
56
-
@@ -1,60 +0,0 @@
1
- #!/usr/bin/env perl
2
- #
3
- # @author Luis M. Rodriguez-R
4
- # @update Oct-07-2015
5
- # @license artistic license 2.0
6
- #
7
-
8
- use warnings;
9
- use strict;
10
-
11
- my($file, $content, $stretch) = @ARGV;
12
- $file or die <<HELP
13
-
14
- Description:
15
- Filter sequences by N-content and presence of long homopolymers.
16
- Usage:
17
- $0 sequences.fa [content [stretch]] > filtered.fa
18
- Where:
19
- sequences.fa Input file in FastA format
20
- content A number between 0 and 1 indicating the maximum proportion of Ns
21
- (1 to turn off, 0.5 by default)
22
- stretch A number indicating the maximum number of consecutive identical
23
- nucleotides allowed (0 to turn off, 100 by default)
24
- filtered.fa Filtered set of sequences.
25
-
26
- HELP
27
- ;
28
- ($content ||= 0.5)+=0;
29
- ($stretch ||= 100)+=0;
30
-
31
- my $good = 0;
32
- my $N = 0;
33
-
34
- FASTA: {
35
- local $/ = "\n>";
36
- open FILE, "<", $file or die "I can not open the file: $file: $!\n";
37
- SEQ: while(<FILE>){
38
- $N++;
39
- s/^;.*//gm;
40
- s/>//g;
41
- my($n,$s) = split /\n/, $_, 2;
42
- (my $clean = $s) =~ s/[^ACTGN]//g;
43
- if($content < 1){
44
- (my $Ns = $clean) =~ s/[^N]//g;
45
- next SEQ if length($Ns)>length($clean)*$content;
46
- }
47
- if($stretch > 0){
48
- for my $nuc (qw(A C T G N)){
49
- next SEQ if $clean =~ m/[$nuc]{$stretch}/;
50
- }
51
- }
52
- print ">$n\n$s\n";
53
- $good++;
54
- }
55
- close FILE;
56
- print STDERR "Total sequences: $N\nAfter filtering: $good\n";
57
- }
58
-
59
-
60
-
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env perl
2
- #
3
- # @author Luis M Rodriguez-R
4
- # @update Oct-07-2015
5
- # @license artistic license 2.0
6
- #
7
-
8
- use warnings;
9
- use strict;
10
-
11
- $#ARGV>=0 or die "
12
- Usage:
13
- $0 seqs.fa... > length.txt
14
-
15
- seqs.fa One or more FastA files.
16
- length.txt A table with the lengths of the sequences.
17
-
18
- ";
19
-
20
- for my $fa (@ARGV){
21
- open FA, "<", $fa or die "Cannot open file: $fa: $!\n";
22
- my $def = '';
23
- my $len = 0;
24
- while(<FA>){
25
- next if /^;/;
26
- if(m/^>(\S+)\s?/){
27
- print "$def\t$len\n" if $def;
28
- $def = $1;
29
- $len = 0;
30
- }else{
31
- s/[^A-Za-z]//g;
32
- $len+= length $_;
33
- }
34
- }
35
- print "$def\t$len\n" if $def;
36
- close FA;
37
- }
38
-
@@ -1,55 +0,0 @@
1
- #!/usr/bin/env perl
2
- #
3
- # @author Luis M. Rodriguez-R <lmrodriguezr at gmail dot com>
4
- # @update Oct-13-2015
5
- # @license artistic license 2.0
6
- #
7
-
8
- use warnings;
9
- use strict;
10
- use Symbol;
11
-
12
- my ($file, $base, $outN) = @ARGV;
13
-
14
- $outN ||= 12;
15
- ($file and $base) or die "
16
- Usage
17
- $0 in_file.fa out_base[ no_files]
18
-
19
- in_file.fa Input file in FastA format.
20
- out_base Prefix for the name of the output files. It will
21
- be appended with .<i>.fa, where <i> is a consecutive
22
- number starting in 1.
23
- no_files Number of files to generate. By default: 12.
24
-
25
- ";
26
-
27
-
28
- my @outSym = ();
29
- for my $i (1 .. $outN){
30
- $outSym[$i-1] = gensym;
31
- open $outSym[$i-1], ">", "$base.$i.fa" or
32
- die "I can not create the file: $base.$i.fa: $!\n";
33
- }
34
-
35
-
36
- my($i, $seq) = (-1, '');
37
- open FILE, "<", $file or die "I can not read the file: $file: $!\n";
38
- while(my $ln=<FILE>){
39
- next if $ln=~/^;/;
40
- if($ln =~ m/^>/){
41
- print { $outSym[$i % $outN] } $seq if $seq;
42
- $i++;
43
- $seq = '';
44
- }
45
- $seq.=$ln;
46
- }
47
- print { $outSym[$i % $outN] } $seq if $seq;
48
- close FILE;
49
-
50
- for(my $j=0; $j<$outN; $j++){
51
- close $outSym[$j];
52
- }
53
-
54
- print STDERR "Sequences: ".($i+1)."\nFiles: $outN\n";
55
-