miga-base 0.3.1.1 → 0.3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml 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
-