miga-base 0.3.1.6 → 0.3.1.7

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/actions/ncbi_get.rb +57 -42
  3. data/lib/miga/result/base.rb +7 -0
  4. data/lib/miga/result/dates.rb +42 -0
  5. data/lib/miga/result.rb +4 -0
  6. data/lib/miga/version.rb +1 -1
  7. data/scripts/essential_genes.bash +5 -4
  8. data/utils/enveomics/Makefile +1 -1
  9. data/utils/enveomics/Manifest/Tasks/aasubs.json +75 -75
  10. data/utils/enveomics/Manifest/Tasks/blasttab.json +194 -185
  11. data/utils/enveomics/Manifest/Tasks/distances.json +130 -130
  12. data/utils/enveomics/Manifest/Tasks/fasta.json +51 -3
  13. data/utils/enveomics/Manifest/Tasks/fastq.json +161 -126
  14. data/utils/enveomics/Manifest/Tasks/graphics.json +111 -111
  15. data/utils/enveomics/Manifest/Tasks/mapping.json +30 -0
  16. data/utils/enveomics/Manifest/Tasks/ogs.json +308 -265
  17. data/utils/enveomics/Manifest/Tasks/other.json +451 -449
  18. data/utils/enveomics/Manifest/Tasks/remote.json +1 -1
  19. data/utils/enveomics/Manifest/Tasks/sequence-identity.json +18 -10
  20. data/utils/enveomics/Manifest/Tasks/tables.json +250 -250
  21. data/utils/enveomics/Manifest/Tasks/trees.json +52 -52
  22. data/utils/enveomics/Manifest/Tasks/variants.json +4 -4
  23. data/utils/enveomics/Manifest/categories.json +12 -4
  24. data/utils/enveomics/Manifest/examples.json +1 -1
  25. data/utils/enveomics/Scripts/BedGraph.tad.rb +71 -0
  26. data/utils/enveomics/Scripts/BlastTab.recplot2.R +23 -22
  27. data/utils/enveomics/Scripts/FastA.split.rb +79 -0
  28. data/utils/enveomics/Scripts/FastQ.test-error.rb +81 -0
  29. data/utils/enveomics/Scripts/JPlace.to_iToL.rb +272 -258
  30. data/utils/enveomics/Scripts/aai.rb +13 -6
  31. data/utils/enveomics/Scripts/ani.rb +2 -2
  32. data/utils/enveomics/Scripts/clust.rand.rb +102 -0
  33. data/utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb +12 -14
  34. data/utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb +2 -2
  35. data/utils/enveomics/Scripts/rbm.rb +23 -14
  36. data/utils/enveomics/enveomics.R/DESCRIPTION +1 -1
  37. data/utils/enveomics/enveomics.R/R/barplot.R +2 -2
  38. metadata +9 -2
@@ -73,7 +73,7 @@ Usage: #{$0} [options]"
73
73
  "Path to the directory containing the binaries of the search program."
74
74
  ){ |v| o[:bin] = v }
75
75
  opts.on("-p", "--program STR",
76
- "Search program to be used. One of: blast+ (default), blast, blat."
76
+ "Search program to be used. One of: blast+ (default), blast, blat, diamond."
77
77
  ){ |v| o[:program] = v }
78
78
  opts.on("-t", "--threads INT",
79
79
  "Number of parallel threads to be used. By default: #{o[:thr]}."
@@ -128,6 +128,7 @@ Usage: #{$0} [options]"
128
128
  end.parse!
129
129
  abort "-1 is mandatory" if o[:seq1].nil?
130
130
  abort "-2 is mandatory" if o[:seq2].nil?
131
+ abort "-p diamond is incompatible with -N" if o[:program]=="diamond" && o[:nucl]
131
132
  abort "SQLite3 requested (-S) but sqlite3 not supported. First install gem " +
132
133
  "sqlite3." unless o[:sqlite3].nil? or has_sqlite3
133
134
  o[:bin] = o[:bin]+"/" if o[:bin].size > 0
@@ -213,7 +214,7 @@ Dir.mktmpdir do |dir|
213
214
  o[ "#{seq}name".to_sym ])
214
215
  else
215
216
  seq_names << ( o[ "#{seq}name".to_sym ].nil? ?
216
- File.basename(o[seq], ".faa") :
217
+ File.basename(o[seq], ".*") :
217
218
  o[ "#{seq}name".to_sym ])
218
219
  end
219
220
  $stderr.puts " Reading FastA file: #{o[seq]}" unless o[:q]
@@ -236,7 +237,7 @@ Dir.mktmpdir do |dir|
236
237
  else
237
238
  fo.puts ln
238
239
  seq_len[seq][seqs] += ln.chomp.gsub(/[^A-Za-z]/,"").length
239
- actg_cnt[seq] += ln.chomp.gsub(/[^ACTGN]/,"").length
240
+ actg_cnt[seq] += ln.chomp.gsub(/[^ACTGNactgn]/,"").length
240
241
  end
241
242
  end
242
243
  fi.close
@@ -251,13 +252,16 @@ Dir.mktmpdir do |dir|
251
252
  minfrg = seqs if minfrg > seqs
252
253
  case o[:program].downcase
253
254
  when "blast"
254
- `"#{o[:bin]}formatdb" -i "#{dir}/#{seq.to_s}.fa" \
255
+ `"#{o[:bin]}formatdb" -i "#{dir}/#{seq}.fa" \
255
256
  -p #{o[:nucl] ? "F" : "T"}`
256
257
  when "blast+"
257
- `"#{o[:bin]}makeblastdb" -in "#{dir}/#{seq.to_s}.fa" \
258
+ `"#{o[:bin]}makeblastdb" -in "#{dir}/#{seq}.fa" \
258
259
  -dbtype #{o[:nucl] ? "nucl" : "prot"}`
259
260
  when "blat"
260
261
  # Nothing to do
262
+ when "diamond"
263
+ `"#{o[:bin]}diamond" makedb --in "#{dir}/#{seq}.fa" \
264
+ --db "#{dir}/#{seq}.fa.dmnd" --threads "#{o[:thr]}"`
261
265
  else
262
266
  abort "Unsupported program: #{o[:program]}."
263
267
  end
@@ -288,9 +292,12 @@ Dir.mktmpdir do |dir|
288
292
  -max_target_seqs 1 -num_threads #{o[:thr]} -outfmt 6 \
289
293
  -out "#{dir}/#{i}.tab"`
290
294
  when "blat"
291
- `#{o[:bin]}blat "#{s}" "#{q}" #{"-prot" unless o[:nucl]} -out=blast8 \
295
+ `"#{o[:bin]}blat" "#{s}" "#{q}" #{"-prot" unless o[:nucl]} -out=blast8 \
292
296
  "#{dir}/#{i}.tab.uns"`
293
297
  `sort -k 1 "#{dir}/#{i}.tab.uns" > "#{dir}/#{i}.tab"`
298
+ when "diamond"
299
+ `"#{o[:bin]}diamond" blastp --threads "#{o[:thr]}" --outfmt 6 \
300
+ --db "#{s}.dmnd" --query "#{q}" --out "#{dir}/#{i}.tab" --more-sensitive`
294
301
  else
295
302
  abort "Unsupported program: #{o[:program]}."
296
303
  end
@@ -193,7 +193,7 @@ Dir.mktmpdir do |dir|
193
193
  "ncbi:#{acc[1]}" : o[ "#{seq}name".to_sym ] )
194
194
  else
195
195
  seq_names << ( o[ "#{seq}name".to_sym ].nil? ?
196
- File.basename(o[seq], ".fna") : o[ "#{seq}name".to_sym ] )
196
+ File.basename(o[seq], ".*") : o[ "#{seq}name".to_sym ] )
197
197
  end
198
198
  $stderr.puts " Reading FastA file: #{o[seq]}" unless o[:q]
199
199
  sqlite_db.execute("delete from regions where seq=?",
@@ -218,7 +218,7 @@ Dir.mktmpdir do |dir|
218
218
  else
219
219
  ln.gsub!(/[^A-Za-z]/, '')
220
220
  seq_len[seq] += ln.length
221
- actg_cnt[seq] += ln.gsub(/[^ACTGN]/,"").length
221
+ actg_cnt[seq] += ln.gsub(/[^ACTGNactgn]/,"").length
222
222
  buffer = buffer + ln
223
223
  while buffer.size > o[:win]
224
224
  seq_i = buffer[0, o[:win]]
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # @author: Luis M. Rodriguez-R
5
+ # @license: artistic license 2.0
6
+ #
7
+
8
+ require "optparse"
9
+
10
+ o = { q:false, prec:6 }
11
+ ARGV << "-h" if ARGV.empty?
12
+ OptionParser.new do |opts|
13
+ opts.banner = "
14
+ Calculates the Rand Index and the Adjusted Rand Index between two clusterings.
15
+
16
+ The clustering format is a raw text file with one cluster per line, each
17
+ defined as comma-delimited members, and a header line (ignored). Note that this
18
+ is equivalent to the OGs format for 1 genome.
19
+
20
+ Usage: #{$0} [options]"
21
+ opts.separator ""
22
+ opts.separator "Mandatory"
23
+ opts.on("-1", "--clust1 FILE", "First input file."){ |v| o[:clust1]=v }
24
+ opts.on("-2", "--clust2 FILE", "Second input file."){ |v| o[:clust2]=v }
25
+ opts.separator ""
26
+ opts.separator "Other options"
27
+ opts.on("-p", "--prec INT",
28
+ "Precision to report. By default: #{o[:prec]}"){ |v| o[:prec]=v.to_i }
29
+ opts.on("-q", "--quiet", "Run quietly (no STDERR output)."){ o[:q] = true }
30
+ opts.on("-h", "--help", "Display this screen.") do
31
+ puts opts
32
+ exit
33
+ end
34
+ opts.separator ""
35
+ end.parse!
36
+ abort "-1 is mandatory" if o[:clust1].nil?
37
+ abort "-2 is mandatory" if o[:clust2].nil?
38
+
39
+ def load_clust(file, q)
40
+ $stderr.puts "Reading clusters in '#{file}'." unless q
41
+ out = []
42
+ File.open(file, "r") do |fh|
43
+ fh.each_line do |ln|
44
+ next if $.==1
45
+ out[$.-2] = ln.chomp.split(",")
46
+ end
47
+ end
48
+ $stderr.puts " Loaded clusters: #{out.size}." unless q
49
+ out
50
+ end
51
+
52
+ def choose_2(n)
53
+ return 0 if n<2
54
+ n*(n-1)/2
55
+ end
56
+
57
+ ##### MAIN:
58
+ begin
59
+ # Read the pre-computed OGs
60
+ clust1 = load_clust(o[:clust1], o[:q])
61
+ clust2 = load_clust(o[:clust2], o[:q])
62
+
63
+ # Contingency table
64
+ $stderr.puts "Estimating the contingency table." unless o[:q]
65
+ cont = []
66
+ b_sums = []
67
+ clust1.each_with_index do |x_i, i|
68
+ cont[i] = []
69
+ clust2.each_with_index do |y_j, j|
70
+ cont[i][j] = (x_i & y_j).size
71
+ b_sums[j]||= 0
72
+ b_sums[j] += cont[i][j]
73
+ end
74
+ end
75
+ a_sums = cont.map{ |i| i.inject(:+) }
76
+
77
+ # Calculate variables
78
+ # - see http://i11www.iti.kit.edu/extra/publications/ww-cco-06.pdf
79
+ $stderr.puts "Estimating indexes." unless o[:q]
80
+ n = clust1.map{ |i| i.size }.inject(:+)
81
+ pairs = choose_2(n)
82
+ n11 = clust1.each_index.map do |i|
83
+ clust2.each_index.map do |j|
84
+ choose_2(cont[i][j])
85
+ end.inject(:+)
86
+ end.inject(:+).to_f
87
+ t1 = a_sums.map{ |a_i| choose_2(a_i) }.inject(:+).to_f
88
+ t2 = b_sums.map{ |b_j| choose_2(b_j) }.inject(:+).to_f
89
+ t3 = 2*t1*t2/(n*(n-1))
90
+ n00 = pairs + n11 - t1 - t2
91
+ r_index = (n11 + n00)/pairs
92
+ r_adjusted = (n11 - t3)/((t1+t2)/2 - t3)
93
+
94
+ # Report
95
+ puts "Rand Index = %.#{o[:prec]}f" % r_index
96
+ puts "Adjusted Rand Index = %.#{o[:prec]}f" % r_adjusted
97
+ rescue => err
98
+ $stderr.puts "Exception: #{err}\n\n"
99
+ err.backtrace.each { |l| $stderr.puts l + "\n" }
100
+ err
101
+ end
102
+
@@ -1,7 +1,6 @@
1
1
 
2
2
  #
3
3
  # @author: Luis M. Rodriguez-R
4
- # @update: Oct-21-2015
5
4
  # @license: artistic license 2.0
6
5
  #
7
6
 
@@ -9,18 +8,17 @@ require "optparse"
9
8
  ARGV << "-h" if ARGV.size==0
10
9
 
11
10
  def use(gems, mandatory=true)
12
- gems = [gems] unless gems.is_a? Array
13
- begin
14
- require "rubygems"
15
- while ! gems.empty?
16
- require gems.first
17
- gems.shift
18
- end
19
- return true
20
- rescue LoadError
21
- abort "\nUnmet requirements, please install required gems:" +
22
- gems.map{ |gem| "\n gem install #{gem}" }.join + "\n\n" if mandatory
23
- return false
24
- end
11
+ gems = [gems] unless gems.is_a? Array
12
+ begin
13
+ require "rubygems"
14
+ while ! gems.empty?
15
+ require gems.shift
16
+ end
17
+ return true
18
+ rescue LoadError
19
+ abort "\nUnmet requirements, please install required gems:" +
20
+ gems.map{ |gem| "\n gem install #{gem}" }.join + "\n\n" if mandatory
21
+ return false
22
+ end
25
23
  end
26
24
 
@@ -124,7 +124,7 @@ module JPlace
124
124
  @nwk = nwk
125
125
  @parent = parent
126
126
  @placements = []
127
- @collapsed = FALSE
127
+ @collapsed = false
128
128
  # Find index
129
129
  index_m = /^(?<pre>.*){(?<idx>[0-9]+)}(?<post>[^\(\),;]*);?$/.match(nwk)
130
130
  if index_m.nil? and parent.nil? and nwk[nwk.length-1]==';'
@@ -239,7 +239,7 @@ module JPlace
239
239
  end
240
240
  end
241
241
  end
242
- @collapsed = TRUE
242
+ @collapsed = true
243
243
  end
244
244
  def add_placement!(placement)
245
245
  @placements << placement
@@ -29,17 +29,17 @@ Usage: #{$0} [options]"
29
29
  "Sequences are assumed to be nucleotides (proteins by default)."
30
30
  ){ |v| o[:nucl] = true }
31
31
  opts.on("-l", "--len INT",
32
- "Minimum alignment length (in residues). By default: #{o[:len].to_s}."
32
+ "Minimum alignment length (in residues). By default: #{o[:len]}."
33
33
  ){ |v| o[:len] = v.to_i }
34
34
  opts.on("-f", "--fract FLOAT",
35
- "Minimum alignment length (as a fraction of the query). If set, " +
36
- "requires BLAST+ (see -p). By default: #{o[:fract].to_s}."
35
+ "Minimum alignment length (as a fraction of the query).",
36
+ "If set, requires BLAST+ or Diamond (see -p). By default: #{o[:fract]}."
37
37
  ){ |v| o[:fract] = v.to_i }
38
38
  opts.on("-i", "--id NUM",
39
39
  "Minimum alignment identity (in %). By default: #{o[:id].to_s}."
40
40
  ){ |v| o[:id] = v.to_f }
41
41
  opts.on("-s", "--score NUM",
42
- "Minimum alignment score (in bits). By default: #{o[:score].to_s}."
42
+ "Minimum alignment score (in bits). By default: #{o[:score]}."
43
43
  ){ |v| o[:score] = v.to_f }
44
44
  opts.separator ""
45
45
  opts.separator "Software Options"
@@ -47,7 +47,7 @@ Usage: #{$0} [options]"
47
47
  "Path to the directory containing the binaries of the search program."
48
48
  ){ |v| o[:bin] = v }
49
49
  opts.on("-p", "--program STR",
50
- "Search program to be used. One of: blast+ (default), blast."
50
+ "Search program to be used. One of: blast+ (default), blast, diamond."
51
51
  ){ |v| o[:program] = v }
52
52
  opts.on("-t", "--threads INT",
53
53
  "Number of parallel threads to be used. By default: #{o[:thr]}."
@@ -63,8 +63,9 @@ Usage: #{$0} [options]"
63
63
  end.parse!
64
64
  abort "-1 is mandatory" if o[:seq1].nil?
65
65
  abort "-2 is mandatory" if o[:seq2].nil?
66
- abort "Argument -f/--fract requires -p blast+" if
67
- o[:fract]>0 and o[:program]!="blast+"
66
+ abort '-p diamond is incompatible with -n' if o[:program]=='diamond' && o[:nucl]
67
+ abort 'Argument -f/--fract requires -p blast+ or -p diamond' if
68
+ o[:fract]>0 and o[:program]!='blast+' and o[:program]!='diamond'
68
69
  o[:bin] = o[:bin]+"/" if o[:bin].size > 0
69
70
 
70
71
  Dir.mktmpdir do |dir|
@@ -74,12 +75,15 @@ Dir.mktmpdir do |dir|
74
75
  $stderr.puts "Creating databases." unless o[:q]
75
76
  [:seq1, :seq2].each do |seq|
76
77
  case o[:program].downcase
77
- when "blast"
78
- `"#{o[:bin]}formatdb" -i "#{o[seq]}" -n "#{dir}/#{seq.to_s}" \
78
+ when 'blast'
79
+ `"#{o[:bin]}formatdb" -i "#{o[seq]}" -n "#{dir}/#{seq}" \
79
80
  -p #{(o[:nucl]?"F":"T")}`
80
- when "blast+"
81
- `"#{o[:bin]}makeblastdb" -in "#{o[seq]}" -out "#{dir}/#{seq.to_s}" \
81
+ when 'blast+'
82
+ `"#{o[:bin]}makeblastdb" -in "#{o[seq]}" -out "#{dir}/#{seq}" \
82
83
  -dbtype #{(o[:nucl]?"nucl":"prot")}`
84
+ when 'diamond'
85
+ `"#{o[:bin]}diamond" makedb --in "#{dir}/#{seq}.fa" \
86
+ --db "#{dir}/#{seq}.fa.dmnd" --threads "#{o[:thr]}"`
83
87
  else
84
88
  abort "Unsupported program: #{o[:program]}."
85
89
  end
@@ -95,14 +99,19 @@ Dir.mktmpdir do |dir|
95
99
  s = "#{dir}/seq#{i==1?2:1}"
96
100
  $stderr.puts " Query: #{q}." unless o[:q]
97
101
  case o[:program].downcase
98
- when "blast"
102
+ when 'blast'
99
103
  `"#{o[:bin]}blastall" -p #{o[:nucl]?"blastn":"blastp"} -d "#{s}" \
100
104
  -i "#{q}" -v 1 -b 1 -a #{o[:thr]} -m 8 -o "#{dir}/#{i}.tab"`
101
- when "blast+"
105
+ when 'blast+'
102
106
  `"#{o[:bin]}#{o[:nucl]?"blastn":"blastp"}" -db "#{s}" -query "#{q}" \
103
107
  -max_target_seqs 1 -num_threads #{o[:thr]} -out "#{dir}/#{i}.tab" \
104
108
  -outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend \
105
109
  sstart send evalue bitscore qlen slen"`
110
+ when 'diamond'
111
+ `"#{o[:bin]}diamond" blastp --threads "#{o[:thr]}" \
112
+ --outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend \
113
+ sstart send evalue bitscore qlen slen" --db "#{s}.dmnd" \
114
+ --query "#{q}" --out "#{dir}/#{i}.tab" --more-sensitive`
106
115
  else
107
116
  abort "Unsupported program: #{o[:program]}."
108
117
  end
@@ -111,7 +120,7 @@ Dir.mktmpdir do |dir|
111
120
  fh.each_line do |ln|
112
121
  ln.chomp!
113
122
  row = ln.split(/\t/)
114
- row[12] = "1" if o[:program]!="blast+"
123
+ row[12] = "1" unless %w[blast+ diamond].include? o[:program]
115
124
  if qry_seen[ row[0] ].nil? and row[3].to_i >= o[:len] and
116
125
  row[2].to_f >= o[:id] and row[11].to_f >= o[:score] and
117
126
  row[3].to_f/row[12].to_i >= o[:fract]
@@ -1,5 +1,5 @@
1
1
  Package: enveomics.R
2
- Version: 1.1.5
2
+ Version: 1.1.6
3
3
  Authors@R: c(person("Luis M.","Rodriguez-R",role=c("aut","cre"),
4
4
  email="lmrodriguezr@gmail.com"))
5
5
  Title: Various Utilities for Microbial Genomics and Metagenomics
@@ -82,7 +82,7 @@ enve.barplot <- structure(function(
82
82
  rainbow(min(colors.per.group*2, top)-colors.per.group, s=3/4, v=3/5))
83
83
  if(top > colors.per.group*2) color.col <- c(color.col,
84
84
  rainbow(top-colors.per.group*2, s=1, v=1.25/4))
85
- }else if(length(col)==1 & col=='coto'){
85
+ }else if(length(col)==1 & col[1]=="coto"){
86
86
  color.col <- c("#5BC0EB","#FDE74C","#9BC53D","#E55934","#FA7921","#EF476F",
87
87
  "#FFD166","#06D6A0","#118AB2","#073B4C","#264653","#2A9D8F",
88
88
  "#E9C46A","#F4A261","#E76F51")
@@ -102,7 +102,7 @@ enve.barplot <- structure(function(
102
102
  col=rev(c(color.col, rep(other.col, nrow(p)-length(color.col)))),
103
103
  border=NA,space=ifelse(add.trend,ifelse(organic.trend,0.75,0.5),0.2), ...)
104
104
  if(add.trend || min.report < max(p)){
105
- color.alpha <- paste(c(substr(color.col, 1, 7), other.col), '40', sep='')
105
+ color.alpha <- enve.col.alpha(c(color.col, other.col), 1/4)
106
106
  if(top < nrow(p)){
107
107
  cf <- colSums(p[1:(nrow(p)-top), ])
108
108
  }else{
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miga-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1.6
4
+ version: 0.3.1.7
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: 2018-01-23 00:00:00.000000000 Z
11
+ date: 2018-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -157,6 +157,8 @@ files:
157
157
  - lib/miga/project/result.rb
158
158
  - lib/miga/remote_dataset.rb
159
159
  - lib/miga/result.rb
160
+ - lib/miga/result/base.rb
161
+ - lib/miga/result/dates.rb
160
162
  - lib/miga/tax_dist.rb
161
163
  - lib/miga/tax_index.rb
162
164
  - lib/miga/taxonomy.rb
@@ -209,6 +211,7 @@ files:
209
211
  - utils/enveomics/Manifest/Tasks/fasta.json
210
212
  - utils/enveomics/Manifest/Tasks/fastq.json
211
213
  - utils/enveomics/Manifest/Tasks/graphics.json
214
+ - utils/enveomics/Manifest/Tasks/mapping.json
212
215
  - utils/enveomics/Manifest/Tasks/ogs.json
213
216
  - utils/enveomics/Manifest/Tasks/other.json
214
217
  - utils/enveomics/Manifest/Tasks/remote.json
@@ -259,6 +262,7 @@ files:
259
262
  - utils/enveomics/Scripts/Aln.cat.rb
260
263
  - utils/enveomics/Scripts/Aln.convert.pl
261
264
  - utils/enveomics/Scripts/AlphaDiversity.pl
265
+ - utils/enveomics/Scripts/BedGraph.tad.rb
262
266
  - utils/enveomics/Scripts/BlastPairwise.AAsubs.pl
263
267
  - utils/enveomics/Scripts/BlastTab.addlen.rb
264
268
  - utils/enveomics/Scripts/BlastTab.advance.bash
@@ -294,6 +298,7 @@ files:
294
298
  - utils/enveomics/Scripts/FastA.revcom.pl
295
299
  - utils/enveomics/Scripts/FastA.slider.pl
296
300
  - utils/enveomics/Scripts/FastA.split.pl
301
+ - utils/enveomics/Scripts/FastA.split.rb
297
302
  - utils/enveomics/Scripts/FastA.subsample.pl
298
303
  - utils/enveomics/Scripts/FastA.tag.rb
299
304
  - utils/enveomics/Scripts/FastA.wrap.rb
@@ -302,6 +307,7 @@ files:
302
307
  - utils/enveomics/Scripts/FastQ.offset.pl
303
308
  - utils/enveomics/Scripts/FastQ.split.pl
304
309
  - utils/enveomics/Scripts/FastQ.tag.rb
310
+ - utils/enveomics/Scripts/FastQ.test-error.rb
305
311
  - utils/enveomics/Scripts/FastQ.toFastA.awk
306
312
  - utils/enveomics/Scripts/GenBank.add_fields.rb
307
313
  - utils/enveomics/Scripts/HMM.essential.rb
@@ -331,6 +337,7 @@ files:
331
337
  - utils/enveomics/Scripts/VCF.SNPs.rb
332
338
  - utils/enveomics/Scripts/aai.rb
333
339
  - utils/enveomics/Scripts/ani.rb
340
+ - utils/enveomics/Scripts/clust.rand.rb
334
341
  - utils/enveomics/Scripts/gi2tax.rb
335
342
  - utils/enveomics/Scripts/in_silico_GA_GI.pl
336
343
  - utils/enveomics/Scripts/lib/data/essential.hmm.gz