miga-base 0.3.1.6 → 0.3.1.7

Sign up to get free protection for your applications and to get access to all the features.
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