miga-base 0.3.7.0 → 0.3.7.1
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 +5 -5
- data/actions/init.rb +115 -85
- data/lib/miga/version.rb +1 -1
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl +1 -0
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.filterN.pl +1 -0
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.length.pl +1 -0
- data/utils/enveomics/Pipelines/blast.pbs/FastA.split.pl +1 -0
- data/utils/enveomics/Scripts/lib/enveomics.R +1 -0
- metadata +179 -179
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl +0 -56
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.filterN.pl +0 -60
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.length.pl +0 -38
- data/utils/enveomics/Pipelines/blast.pbs/FastA.split.pl +0 -55
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: aeb46208fbfdb522754876da59589895784fb72de06afdded9000066f34c569d
|
4
|
+
data.tar.gz: 61d2afe7e630ebc4635b38f3ee72ba89e7faebfaec502f130bb9bcadc970b951
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ce52a87fa8f5fa8609546b6d98d9f8e49c139ad8894f45954cede0b3ce2dea7a7035dbdf308a0fb0478ea630e51d86476cc67102182091151e21fc6e6c698f3
|
7
|
+
data.tar.gz: e108be9b315fe8315278e2ff22fbf86e3896c01e132dedb0f0e2183e0415626beece1ea4d82318b5365b4b84a60294a9728171ef37efff2650b8f39c062f28cc
|
data/actions/init.rb
CHANGED
@@ -3,41 +3,44 @@
|
|
3
3
|
# @package MiGA
|
4
4
|
# @license Artistic-2.0
|
5
5
|
|
6
|
-
require
|
6
|
+
require 'shellwords'
|
7
7
|
|
8
|
-
o = {q:true, mytaxa:nil,
|
9
|
-
|
8
|
+
o = {q: true, mytaxa: nil,
|
9
|
+
config: File.expand_path('.miga_modules', ENV['HOME']),
|
10
|
+
ask: false, auto: false, dtype: 'bash'}
|
10
11
|
OptionParser.new do |opt|
|
11
12
|
opt_banner(opt)
|
12
|
-
opt.on(
|
13
|
-
|
13
|
+
opt.on('-c', '--config PATH',
|
14
|
+
'Path to the Bash configuration file.',
|
14
15
|
"By default: #{o[:config]}."){ |v| o[:config] = v }
|
15
|
-
opt.on(
|
16
|
-
|
16
|
+
opt.on('--[no-]mytaxa',
|
17
|
+
'Should I try setting up MyTaxa its dependencies?',
|
18
|
+
'By default: interactive (true if --auto).'
|
17
19
|
){ |v| o[:mytaxa] = v }
|
18
|
-
opt.on(
|
19
|
-
|
20
|
-
"By default: #{o[:dtype]}."
|
21
|
-
|
22
|
-
|
20
|
+
opt.on('--daemon-type STRING',
|
21
|
+
'Type of daemon launcher, one of: bash, qsub, msub, slurm.',
|
22
|
+
"By default: interactive (#{o[:dtype]} if --auto)."
|
23
|
+
){ |v| o[:dtype]=v }
|
24
|
+
opt.on('--ask-all', 'If set, asks for the location of all software.',
|
25
|
+
'By default, only the locations missing in PATH are requested.'
|
23
26
|
){ |v| o[:ask] = v }
|
24
|
-
opt.on(
|
27
|
+
opt.on('--auto', 'If set, accepts all defaults as answers.'
|
25
28
|
){ |v| o[:auto] = v }
|
26
29
|
opt_common(opt, o)
|
27
30
|
end.parse!
|
28
31
|
$auto_answer = o[:auto]
|
29
32
|
|
30
|
-
def ask_user(q, d=nil, ans=nil, force=false)
|
33
|
+
def ask_user(q, d = nil, ans = nil, force = false)
|
31
34
|
$stderr.print "#{q}#{" (#{ans.join(" / ")})" unless ans.nil?}" +
|
32
35
|
"#{" [#{d}]" unless d.nil?} > "
|
33
36
|
if $auto_answer and not force
|
34
|
-
$stderr.puts
|
37
|
+
$stderr.puts ''
|
35
38
|
else
|
36
39
|
o = gets.chomp
|
37
40
|
end
|
38
41
|
o = d if o.nil? or o.empty?
|
39
42
|
unless ans.nil? or ans.include? o
|
40
|
-
$stderr.puts
|
43
|
+
$stderr.puts 'Answer not recognized.'
|
41
44
|
return ask_user(q, d, ans)
|
42
45
|
end
|
43
46
|
o
|
@@ -55,23 +58,23 @@ make sure you have all the requirements for MiGA data processing.
|
|
55
58
|
BANNER
|
56
59
|
|
57
60
|
if ask_user(
|
58
|
-
|
59
|
-
|
60
|
-
File.open(File.expand_path(
|
61
|
+
'Would you like to see all the requirements before starting?',
|
62
|
+
'no', %w(yes no)) == 'yes'
|
63
|
+
File.open(File.expand_path('utils/requirements.txt', miga), 'r') do |fh|
|
61
64
|
fh.each_line{ |ln| $stderr.puts ln }
|
62
65
|
end
|
63
66
|
end
|
64
67
|
|
65
|
-
rc_path = File.expand_path(
|
68
|
+
rc_path = File.expand_path('.miga_rc', ENV['HOME'])
|
66
69
|
if File.exist? rc_path
|
67
70
|
if ask_user(
|
68
|
-
|
69
|
-
|
70
|
-
$stderr.puts
|
71
|
+
'I found a previous configuration. Do you want to continue?',
|
72
|
+
'yes', %w(yes no)) == 'no'
|
73
|
+
$stderr.puts 'OK, see you soon!'
|
71
74
|
exit 0
|
72
75
|
end
|
73
76
|
end
|
74
|
-
rc_fh = File.open(rc_path,
|
77
|
+
rc_fh = File.open(rc_path, 'w')
|
75
78
|
rc_fh.puts <<BASH
|
76
79
|
#!/bin/bash
|
77
80
|
# `miga init` made this on #{Time.now}
|
@@ -81,25 +84,26 @@ BASH
|
|
81
84
|
# Check bash configuration file
|
82
85
|
unless File.exist? o[:config]
|
83
86
|
o[:config] = ask_user(
|
84
|
-
|
87
|
+
'Is there a script I need to load at startup?', o[:config])
|
85
88
|
end
|
86
89
|
if File.exist? o[:config]
|
87
90
|
o[:config] = File.expand_path o[:config]
|
88
91
|
$stderr.puts "Found bash configuration script: #{o[:config]}."
|
89
92
|
rc_fh.puts "MIGA_STARTUP='#{o[:config]}'"
|
90
|
-
rc_fh.puts
|
93
|
+
rc_fh.puts '. "$MIGA_STARTUP"'
|
91
94
|
end
|
92
|
-
$stderr.puts
|
95
|
+
$stderr.puts ''
|
93
96
|
|
94
97
|
# Check for software requirements
|
95
|
-
$stderr.puts
|
98
|
+
$stderr.puts 'Looking for requirements:'
|
96
99
|
if o[:mytaxa].nil?
|
97
100
|
o[:mytaxa] = ask_user(
|
98
|
-
|
101
|
+
'Should I include MyTaxa modules?', 'yes', %w(yes no)) == 'yes'
|
99
102
|
end
|
100
|
-
rc_fh.puts
|
103
|
+
rc_fh.puts 'export MIGA_MYTAXA="no"' unless o[:mytaxa]
|
101
104
|
paths = {}
|
102
|
-
|
105
|
+
rc_fh.puts 'MIGA_PATH=""'
|
106
|
+
File.open(File.expand_path('utils/requirements.txt', miga), 'r') do |fh|
|
103
107
|
fh.each_line do |ln|
|
104
108
|
next if $. < 3
|
105
109
|
r = ln.chomp.split(/\t+/)
|
@@ -112,8 +116,8 @@ File.open(File.expand_path("utils/requirements.txt", miga), "r") do |fh|
|
|
112
116
|
else
|
113
117
|
d_path = File.dirname(`which "#{r[1]}"`)
|
114
118
|
end
|
115
|
-
if o[:ask] or d_path==
|
116
|
-
path = ask_user(
|
119
|
+
if o[:ask] or d_path == '.'
|
120
|
+
path = ask_user('Where can I find it?', d_path, nil, true)
|
117
121
|
else
|
118
122
|
path = d_path
|
119
123
|
$stderr.puts path
|
@@ -129,104 +133,130 @@ File.open(File.expand_path("utils/requirements.txt", miga), "r") do |fh|
|
|
129
133
|
paths[r[1]] = File.expand_path(r[1], path).shellescape
|
130
134
|
end
|
131
135
|
end
|
132
|
-
rc_fh.puts
|
133
|
-
$stderr.puts
|
136
|
+
rc_fh.puts 'export PATH="$MIGA_PATH$PATH"'
|
137
|
+
$stderr.puts ''
|
134
138
|
|
135
139
|
# Check for other files
|
136
140
|
if o[:mytaxa]
|
137
|
-
$stderr.puts
|
141
|
+
$stderr.puts 'Looking for MyTaxa databases:'
|
138
142
|
mt = File.dirname paths["MyTaxa"]
|
139
|
-
$stderr.print
|
140
|
-
unless Dir.exist? File.expand_path(
|
141
|
-
$stderr.puts "no.\nExecute '
|
143
|
+
$stderr.print 'Looking for scores... '
|
144
|
+
unless Dir.exist? File.expand_path('db', mt)
|
145
|
+
$stderr.puts "no.\nExecute 'python2 #{mt}/utils/download_db.py'."
|
142
146
|
exit 1
|
143
147
|
end
|
144
|
-
$stderr.puts
|
145
|
-
$stderr.print
|
146
|
-
unless File.exist? File.expand_path(
|
148
|
+
$stderr.puts 'yes.'
|
149
|
+
$stderr.print 'Looking for diamond db... '
|
150
|
+
unless File.exist? File.expand_path('AllGenomes.faa.dmnd', mt)
|
147
151
|
$stderr.puts "no.\nDownload " +
|
148
152
|
"'http://enve-omics.ce.gatech.edu/data/public_mytaxa/" +
|
149
153
|
"AllGenomes.faa.dmnd' into #{mt}."
|
150
154
|
exit 1
|
151
155
|
end
|
152
|
-
$stderr.puts
|
156
|
+
$stderr.puts ''
|
153
157
|
end
|
154
158
|
|
155
159
|
# Check for R packages
|
156
|
-
$stderr.puts
|
160
|
+
$stderr.puts 'Looking for R packages:'
|
157
161
|
%w(enveomics.R ape cluster vegan).each do |pkg|
|
158
162
|
$stderr.print "Testing #{pkg}... "
|
159
163
|
`echo "library('#{pkg}')" | #{paths["R"].shellescape} --vanilla -q 2>&1`
|
160
164
|
if $?.success?
|
161
|
-
$stderr.puts
|
165
|
+
$stderr.puts 'yes.'
|
162
166
|
else
|
163
|
-
$stderr.puts
|
164
|
-
$stderr.print
|
167
|
+
$stderr.puts 'no, installing.'
|
168
|
+
$stderr.print '' +
|
165
169
|
`echo "install.packages('#{pkg}', repos='http://cran.rstudio.com/')" \
|
166
170
|
| #{paths["R"].shellescape} --vanilla -q 2>&1`
|
167
171
|
`echo "library('#{pkg}')" | #{paths["R"].shellescape} --vanilla -q 2>&1`
|
168
172
|
raise "Unable to auto-install R package #{pkg}." unless $?.success?
|
169
173
|
end
|
170
174
|
end
|
171
|
-
$stderr.puts
|
175
|
+
$stderr.puts ''
|
172
176
|
|
173
177
|
# Check for Ruby gems
|
174
|
-
$stderr.puts
|
178
|
+
$stderr.puts 'Looking for Ruby gems:'
|
175
179
|
%w(sqlite3 daemons json).each do |pkg|
|
176
180
|
$stderr.print "Testing #{pkg}... "
|
177
181
|
`#{paths["ruby"].shellescape} -r "#{pkg}" -e "" 2>/dev/null`
|
178
182
|
if $?.success?
|
179
|
-
$stderr.puts
|
183
|
+
$stderr.puts 'yes.'
|
180
184
|
else
|
181
|
-
$stderr.puts
|
185
|
+
$stderr.puts 'no, installing.'
|
182
186
|
# This hackey mess is meant to ensure the test and installation are done
|
183
187
|
# on the configuration Ruby, not on the Ruby currently executing the init
|
184
188
|
# action
|
185
|
-
$stderr.print `#{paths[
|
189
|
+
$stderr.print `#{paths['ruby'].shellescape} \
|
186
190
|
-r rubygems -r rubygems/gem_runner \
|
187
191
|
-e "Gem::GemRunner.new.run %w(install --user #{pkg})" 2>&1`
|
188
192
|
raise "Unable to auto-install Ruby gem #{pkg}." unless $?.success?
|
189
193
|
end
|
190
194
|
end
|
191
|
-
$stderr.puts
|
195
|
+
$stderr.puts ''
|
192
196
|
|
193
197
|
# Configure daemon
|
194
|
-
$stderr.puts
|
195
|
-
daemon_f = File.expand_path(
|
198
|
+
$stderr.puts 'Default daemon configuration:'
|
199
|
+
daemon_f = File.expand_path('.miga_daemon.json', ENV['HOME'])
|
196
200
|
unless File.exist?(daemon_f) and ask_user(
|
197
|
-
|
198
|
-
|
201
|
+
'A template daemon already exists, do you want to preserve it?',
|
202
|
+
'yes', %w(yes no)) == 'yes'
|
199
203
|
v = {created:Time.now.to_s, updated:Time.now.to_s}
|
200
|
-
v[:type] = ask_user(
|
201
|
-
o[:dtype], %w(bash qsub msub))
|
204
|
+
v[:type] = ask_user('Please select the type of daemon you want to setup',
|
205
|
+
o[:dtype], %w(bash qsub msub slurm))
|
202
206
|
case v[:type]
|
203
|
-
when
|
204
|
-
v[:latency] = ask_user(
|
205
|
-
v[:maxjobs] = ask_user(
|
206
|
-
v[:ppn] = ask_user(
|
207
|
-
$stderr.puts
|
208
|
-
$stderr.puts
|
209
|
-
v[:cmd]
|
207
|
+
when 'bash'
|
208
|
+
v[:latency] = ask_user('How long should I sleep? (in seconds)', '30').to_i
|
209
|
+
v[:maxjobs] = ask_user('How many jobs can I launch at once?', '6').to_i
|
210
|
+
v[:ppn] = ask_user('How many CPUs can I use per job?', '2').to_i
|
211
|
+
$stderr.puts 'Setting up internal daemon defaults.'
|
212
|
+
$stderr.puts 'If you don\'t understand this just leave default values:'
|
213
|
+
v[:cmd] = ask_user(
|
210
214
|
"How should I launch tasks?\n %1$s: script path, %2$s: variables, " +
|
211
215
|
"%3$d: CPUs, %4$s: log file, %5$s: task name.\n",
|
212
216
|
"%2$s '%1$s' > '%4$s' 2>&1")
|
213
|
-
v[:var]
|
217
|
+
v[:var] = ask_user(
|
214
218
|
"How should I pass variables?\n %1$s: keys, %2$s: values.\n",
|
215
219
|
"%1$s=%2$s")
|
216
|
-
v[:varsep]
|
217
|
-
v[:alive]
|
220
|
+
v[:varsep] = ask_user('What should I use to separate variables?', ' ')
|
221
|
+
v[:alive] = ask_user(
|
218
222
|
"How can I know that a process is still alive?\n %1$s: PID, " +
|
219
223
|
"output should be 1 for running and 0 for non-running.\n",
|
220
224
|
"ps -p '%1$s'|tail -n+2|wc -l")
|
221
225
|
v[:kill] = ask_user(
|
222
226
|
"How should I terminate tasks?\n %s: process ID.", "kill -9 '%s'")
|
227
|
+
when 'slurm'
|
228
|
+
queue = ask_user('What queue should I use?', nil, nil, true)
|
229
|
+
v[:latency] = ask_user(
|
230
|
+
'How long should I sleep? (in seconds)', '150').to_i
|
231
|
+
v[:maxjobs] = ask_user('How many jobs can I launch at once?', '300').to_i
|
232
|
+
v[:ppn] = ask_user('How many CPUs can I use per job?', '4').to_i
|
233
|
+
$stderr.puts 'Setting up internal daemon defaults.'
|
234
|
+
$stderr.puts 'If you don\'t understand this just leave default values:'
|
235
|
+
v[:cmd] = ask_user(
|
236
|
+
"How should I launch tasks?\n %1$s: script path, %2$s: variables, " +
|
237
|
+
"%3$d: CPUs, %4$d: log file, %5$s: task name.\n",
|
238
|
+
"%2$s sbatch --partition='#{queue}' --export=ALL " +
|
239
|
+
"--nodes=1 --ntasks-per-node=%3$d --output='%4$s' --job-name='%5$s' " +
|
240
|
+
"--mem=9G --time=12:00:00 %1$s | perl -pe 's/.* //'")
|
241
|
+
v[:var] = ask_user(
|
242
|
+
"How should I pass variables?\n %1$s: keys, %2$s: values.\n",
|
243
|
+
"%1$s=%2$s")
|
244
|
+
v[:varsep] = ask_user('What should I use to separate variables?', ' ')
|
245
|
+
v[:alive] = ask_user(
|
246
|
+
"How can I know that a process is still alive?\n %1$s: job id, " +
|
247
|
+
"output should be 1 for running and 0 for non-running.\n",
|
248
|
+
"squeue -h -o %t -j '%1$s' | grep '^PD\|R\|CF\|CG$' " +
|
249
|
+
"| tail -n 1 | wc -l")
|
250
|
+
v[:kill] = ask_user(
|
251
|
+
"How should I terminate tasks?\n %s: process ID.", "scancel '%s'")
|
223
252
|
else # [qm]sub
|
224
|
-
queue = ask_user(
|
225
|
-
v[:latency] = ask_user(
|
226
|
-
|
227
|
-
v[:
|
228
|
-
|
229
|
-
$stderr.puts
|
253
|
+
queue = ask_user('What queue should I use?', nil, nil, true)
|
254
|
+
v[:latency] = ask_user(
|
255
|
+
'How long should I sleep? (in seconds)', '150').to_i
|
256
|
+
v[:maxjobs] = ask_user('How many jobs can I launch at once?', '300').to_i
|
257
|
+
v[:ppn] = ask_user('How many CPUs can I use per job?', '4').to_i
|
258
|
+
$stderr.puts 'Setting up internal daemon defaults.'
|
259
|
+
$stderr.puts 'If you don\'t understand this just leave default values:'
|
230
260
|
v[:cmd] = ask_user(
|
231
261
|
"How should I launch tasks?\n %1$s: script path, %2$s: variables, " +
|
232
262
|
"%3$d: CPUs, %4$d: log file, %5$s: task name.\n",
|
@@ -235,15 +265,15 @@ unless File.exist?(daemon_f) and ask_user(
|
|
235
265
|
v[:var] = ask_user(
|
236
266
|
"How should I pass variables?\n %1$s: keys, %2$s: values.\n",
|
237
267
|
"%1$s=%2$s")
|
238
|
-
v[:varsep] = ask_user(
|
239
|
-
if v[:type] ==
|
268
|
+
v[:varsep] = ask_user('What should I use to separate variables?', ',')
|
269
|
+
if v[:type] == 'qsub'
|
240
270
|
v[:alive] = ask_user(
|
241
271
|
"How can I know that a process is still alive?\n %1$s: job id, " +
|
242
272
|
"output should be 1 for running and 0 for non-running.\n",
|
243
273
|
"qstat -f '%1$s'|grep ' job_state ='|perl -pe 's/.*= //'|grep '[^C]'"+
|
244
274
|
"|tail -n1|wc -l|awk '{print $1}'")
|
245
|
-
|
246
|
-
|
275
|
+
v[:kill] = ask_user(
|
276
|
+
"How should I terminate tasks?\n %s: process ID.", "qdel '%s'")
|
247
277
|
else
|
248
278
|
v[:alive] = ask_user(
|
249
279
|
"How can I know that a process is still alive?\n %1$s: job id, " +
|
@@ -251,13 +281,13 @@ unless File.exist?(daemon_f) and ask_user(
|
|
251
281
|
"checkjob '%1$s'|grep '^State:'|perl -pe 's/.*: //'" +
|
252
282
|
"|grep 'Deferred\\|Hold\\|Idle\\|Starting\\|Running\\|Blocked'"+
|
253
283
|
"|tail -n1|wc -l|awk '{print $1}'")
|
254
|
-
|
255
|
-
|
284
|
+
v[:kill] = ask_user(
|
285
|
+
"How should I terminate tasks?\n %s: process ID.", "canceljob '%s'")
|
256
286
|
end
|
257
287
|
end
|
258
|
-
File.open(daemon_f,
|
288
|
+
File.open(daemon_f, 'w'){ |fh| fh.puts JSON.pretty_generate(v) }
|
259
289
|
end
|
260
|
-
$stderr.puts
|
290
|
+
$stderr.puts ''
|
261
291
|
|
262
292
|
rc_fh.puts <<FOOT
|
263
293
|
|
@@ -267,5 +297,5 @@ MIGA_CONFIG_DATE='#{Time.now}'
|
|
267
297
|
|
268
298
|
FOOT
|
269
299
|
|
270
|
-
$stderr.puts
|
271
|
-
$stderr.puts
|
300
|
+
$stderr.puts 'Configuration complete. MiGA is ready to work!'
|
301
|
+
$stderr.puts ''
|
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, 7,
|
13
|
+
VERSION = [0.3, 7, 1]
|
14
14
|
|
15
15
|
##
|
16
16
|
# Nickname for the current major.minor version.
|
@@ -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,95 +1,95 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miga-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.7.
|
4
|
+
version: 0.3.7.1
|
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: 2019-02-
|
11
|
+
date: 2019-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: daemons
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.2'
|
20
|
-
- -
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 1.2.4
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - ~>
|
27
|
+
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '1.2'
|
30
|
-
- -
|
30
|
+
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.2.4
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: json
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ">"
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '1.8'
|
40
|
-
- - <
|
40
|
+
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '3'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ">"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '1.8'
|
50
|
-
- - <
|
50
|
+
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '3'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: sqlite3
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - ~>
|
57
|
+
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: '1.3'
|
60
60
|
type: :runtime
|
61
61
|
prerelease: false
|
62
62
|
version_requirements: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
|
-
- - ~>
|
64
|
+
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '1.3'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: rake
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- - ~>
|
71
|
+
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: '11'
|
74
74
|
type: :development
|
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: '11'
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: test-unit
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- - ~>
|
85
|
+
- - "~>"
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '3'
|
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: '3'
|
95
95
|
description: Microbial Genomes Atlas
|
@@ -100,43 +100,62 @@ extensions: []
|
|
100
100
|
extra_rdoc_files:
|
101
101
|
- README.md
|
102
102
|
files:
|
103
|
+
- Gemfile
|
104
|
+
- LICENSE
|
105
|
+
- README.md
|
106
|
+
- Rakefile
|
107
|
+
- actions/about.rb
|
108
|
+
- actions/add.rb
|
109
|
+
- actions/add_result.rb
|
110
|
+
- actions/daemon.rb
|
111
|
+
- actions/date.rb
|
112
|
+
- actions/doctor.rb
|
113
|
+
- actions/files.rb
|
114
|
+
- actions/find.rb
|
115
|
+
- actions/get.rb
|
116
|
+
- actions/init.rb
|
117
|
+
- actions/ln.rb
|
118
|
+
- actions/ls.rb
|
119
|
+
- actions/ncbi_get.rb
|
120
|
+
- actions/new.rb
|
121
|
+
- actions/plugins.rb
|
122
|
+
- actions/rm.rb
|
123
|
+
- actions/run.rb
|
124
|
+
- actions/stats.rb
|
125
|
+
- actions/summary.rb
|
126
|
+
- actions/tax_dist.rb
|
127
|
+
- actions/tax_index.rb
|
128
|
+
- actions/tax_set.rb
|
129
|
+
- actions/tax_test.rb
|
130
|
+
- bin/miga
|
131
|
+
- lib/miga.rb
|
132
|
+
- lib/miga/_data/aai-intax.tsv.gz
|
133
|
+
- lib/miga/_data/aai-novel.tsv.gz
|
134
|
+
- lib/miga/common.rb
|
103
135
|
- lib/miga/common/base.rb
|
104
136
|
- lib/miga/common/format.rb
|
105
137
|
- lib/miga/common/path.rb
|
106
|
-
- lib/miga/common.rb
|
107
|
-
- lib/miga/daemon/base.rb
|
108
138
|
- lib/miga/daemon.rb
|
139
|
+
- lib/miga/daemon/base.rb
|
140
|
+
- lib/miga/dataset.rb
|
109
141
|
- lib/miga/dataset/base.rb
|
110
142
|
- lib/miga/dataset/result.rb
|
111
|
-
- lib/miga/dataset.rb
|
112
143
|
- lib/miga/metadata.rb
|
144
|
+
- lib/miga/project.rb
|
113
145
|
- lib/miga/project/base.rb
|
114
146
|
- lib/miga/project/dataset.rb
|
115
147
|
- lib/miga/project/plugins.rb
|
116
148
|
- lib/miga/project/result.rb
|
117
|
-
- lib/miga/
|
149
|
+
- lib/miga/remote_dataset.rb
|
118
150
|
- lib/miga/remote_dataset/base.rb
|
119
151
|
- lib/miga/remote_dataset/download.rb
|
120
|
-
- lib/miga/
|
152
|
+
- lib/miga/result.rb
|
121
153
|
- lib/miga/result/base.rb
|
122
154
|
- lib/miga/result/dates.rb
|
123
|
-
- lib/miga/result.rb
|
124
155
|
- lib/miga/tax_dist.rb
|
125
156
|
- lib/miga/tax_index.rb
|
126
157
|
- lib/miga/taxonomy.rb
|
127
158
|
- lib/miga/version.rb
|
128
|
-
- lib/miga.rb
|
129
|
-
- test/common_test.rb
|
130
|
-
- test/daemon_test.rb
|
131
|
-
- test/dataset_test.rb
|
132
|
-
- test/metadata_test.rb
|
133
|
-
- test/project_test.rb
|
134
|
-
- test/remote_dataset_test.rb
|
135
|
-
- test/tax_index_test.rb
|
136
|
-
- test/taxonomy_test.rb
|
137
|
-
- test/test_helper.rb
|
138
|
-
- lib/miga/_data/aai-intax.tsv.gz
|
139
|
-
- lib/miga/_data/aai-novel.tsv.gz
|
140
159
|
- scripts/aai_distances.bash
|
141
160
|
- scripts/ani_distances.bash
|
142
161
|
- scripts/assembly.bash
|
@@ -158,6 +177,15 @@ files:
|
|
158
177
|
- scripts/taxonomy.bash
|
159
178
|
- scripts/trimmed_fasta.bash
|
160
179
|
- scripts/trimmed_reads.bash
|
180
|
+
- test/common_test.rb
|
181
|
+
- test/daemon_test.rb
|
182
|
+
- test/dataset_test.rb
|
183
|
+
- test/metadata_test.rb
|
184
|
+
- test/project_test.rb
|
185
|
+
- test/remote_dataset_test.rb
|
186
|
+
- test/tax_index_test.rb
|
187
|
+
- test/taxonomy_test.rb
|
188
|
+
- test/test_helper.rb
|
161
189
|
- utils/adapters.fa
|
162
190
|
- utils/arch-ess-genes.rb
|
163
191
|
- utils/cleanup-databases.rb
|
@@ -169,83 +197,13 @@ files:
|
|
169
197
|
- utils/distance/runner.rb
|
170
198
|
- utils/distance/temporal.rb
|
171
199
|
- utils/distances.rb
|
172
|
-
- utils/enveomics/build_enveomics_r.bash
|
173
200
|
- utils/enveomics/Docs/recplot2.md
|
174
|
-
- utils/enveomics/enveomics.R/data/growth.curves.rda
|
175
|
-
- utils/enveomics/enveomics.R/data/phyla.counts.rda
|
176
|
-
- utils/enveomics/enveomics.R/DESCRIPTION
|
177
|
-
- utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd
|
178
|
-
- utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd
|
179
|
-
- utils/enveomics/enveomics.R/man/enve.__tribs.Rd
|
180
|
-
- utils/enveomics/enveomics.R/man/enve.barplot.Rd
|
181
|
-
- utils/enveomics/enveomics.R/man/enve.cliopts.Rd
|
182
|
-
- utils/enveomics/enveomics.R/man/enve.col.alpha.Rd
|
183
|
-
- utils/enveomics/enveomics.R/man/enve.col2alpha.Rd
|
184
|
-
- utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd
|
185
|
-
- utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd
|
186
|
-
- utils/enveomics/enveomics.R/man/enve.df2dist.Rd
|
187
|
-
- utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd
|
188
|
-
- utils/enveomics/enveomics.R/man/enve.growthcurve.Rd
|
189
|
-
- utils/enveomics/enveomics.R/man/enve.prune.dist.Rd
|
190
|
-
- utils/enveomics/enveomics.R/man/enve.recplot.Rd
|
191
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd
|
192
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd
|
193
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd
|
194
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd
|
195
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.ANIr.Rd
|
196
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd
|
197
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.compareIdentities.Rd
|
198
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.coordinates.Rd
|
199
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd
|
200
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd
|
201
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_e.Rd
|
202
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_m.Rd
|
203
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__emauto_one.Rd
|
204
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mow_one.Rd
|
205
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mower.Rd
|
206
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.em.Rd
|
207
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.emauto.Rd
|
208
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.mower.Rd
|
209
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd
|
210
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd
|
211
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.Rd
|
212
|
-
- utils/enveomics/enveomics.R/man/enve.recplot2.seqdepth.Rd
|
213
|
-
- utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd
|
214
|
-
- utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd
|
215
|
-
- utils/enveomics/enveomics.R/man/enve.tribs.Rd
|
216
|
-
- utils/enveomics/enveomics.R/man/enve.tribs.test.Rd
|
217
|
-
- utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd
|
218
|
-
- utils/enveomics/enveomics.R/man/enveomics.R-package.Rd
|
219
|
-
- utils/enveomics/enveomics.R/man/growth.curves.Rd
|
220
|
-
- utils/enveomics/enveomics.R/man/phyla.counts.Rd
|
221
|
-
- utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd
|
222
|
-
- utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd
|
223
|
-
- utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd
|
224
|
-
- utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd
|
225
|
-
- utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd
|
226
|
-
- utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd
|
227
|
-
- utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd
|
228
|
-
- utils/enveomics/enveomics.R/man/z$-methods.Rd
|
229
|
-
- utils/enveomics/enveomics.R/NAMESPACE
|
230
|
-
- utils/enveomics/enveomics.R/R/autoprune.R
|
231
|
-
- utils/enveomics/enveomics.R/R/barplot.R
|
232
|
-
- utils/enveomics/enveomics.R/R/cliopts.R
|
233
|
-
- utils/enveomics/enveomics.R/R/df2dist.R
|
234
|
-
- utils/enveomics/enveomics.R/R/growthcurve.R
|
235
|
-
- utils/enveomics/enveomics.R/R/recplot.R
|
236
|
-
- utils/enveomics/enveomics.R/R/recplot2.R
|
237
|
-
- utils/enveomics/enveomics.R/R/tribs.R
|
238
|
-
- utils/enveomics/enveomics.R/R/utils.R
|
239
|
-
- utils/enveomics/enveomics.R/README.md
|
240
201
|
- utils/enveomics/Examples/aai-matrix.bash
|
241
202
|
- utils/enveomics/Examples/ani-matrix.bash
|
242
203
|
- utils/enveomics/Examples/essential-phylogeny.bash
|
243
204
|
- utils/enveomics/Examples/unus-genome-phylogeny.bash
|
244
|
-
- utils/enveomics/globals.mk
|
245
205
|
- utils/enveomics/LICENSE.txt
|
246
206
|
- utils/enveomics/Makefile
|
247
|
-
- utils/enveomics/Manifest/categories.json
|
248
|
-
- utils/enveomics/Manifest/examples.json
|
249
207
|
- utils/enveomics/Manifest/Tasks/aasubs.json
|
250
208
|
- utils/enveomics/Manifest/Tasks/blasttab.json
|
251
209
|
- utils/enveomics/Manifest/Tasks/distances.json
|
@@ -260,20 +218,21 @@ files:
|
|
260
218
|
- utils/enveomics/Manifest/Tasks/tables.json
|
261
219
|
- utils/enveomics/Manifest/Tasks/trees.json
|
262
220
|
- utils/enveomics/Manifest/Tasks/variants.json
|
221
|
+
- utils/enveomics/Manifest/categories.json
|
222
|
+
- utils/enveomics/Manifest/examples.json
|
263
223
|
- utils/enveomics/Manifest/tasks.json
|
264
|
-
- utils/enveomics/manifest.json
|
265
224
|
- utils/enveomics/Pipelines/assembly.pbs/CONFIG.mock.bash
|
225
|
+
- utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl
|
266
226
|
- utils/enveomics/Pipelines/assembly.pbs/FastA.filterN.pl
|
267
227
|
- utils/enveomics/Pipelines/assembly.pbs/FastA.length.pl
|
268
|
-
- utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl
|
269
|
-
- utils/enveomics/Pipelines/assembly.pbs/kSelector.R
|
270
|
-
- utils/enveomics/Pipelines/assembly.pbs/newbler.pbs
|
271
|
-
- utils/enveomics/Pipelines/assembly.pbs/newbler_preparator.pl
|
272
228
|
- utils/enveomics/Pipelines/assembly.pbs/README.md
|
273
229
|
- utils/enveomics/Pipelines/assembly.pbs/RUNME-2.bash
|
274
230
|
- utils/enveomics/Pipelines/assembly.pbs/RUNME-3.bash
|
275
231
|
- utils/enveomics/Pipelines/assembly.pbs/RUNME-4.bash
|
276
232
|
- utils/enveomics/Pipelines/assembly.pbs/RUNME.bash
|
233
|
+
- utils/enveomics/Pipelines/assembly.pbs/kSelector.R
|
234
|
+
- utils/enveomics/Pipelines/assembly.pbs/newbler.pbs
|
235
|
+
- utils/enveomics/Pipelines/assembly.pbs/newbler_preparator.pl
|
277
236
|
- utils/enveomics/Pipelines/assembly.pbs/soap.pbs
|
278
237
|
- utils/enveomics/Pipelines/assembly.pbs/stats.pbs
|
279
238
|
- utils/enveomics/Pipelines/assembly.pbs/velvet.pbs
|
@@ -285,25 +244,23 @@ files:
|
|
285
244
|
- utils/enveomics/Pipelines/blast.pbs/FastA.split.pl
|
286
245
|
- utils/enveomics/Pipelines/blast.pbs/README.md
|
287
246
|
- utils/enveomics/Pipelines/blast.pbs/RUNME.bash
|
288
|
-
- utils/enveomics/Pipelines/blast.pbs/sentinel.pbs.bash
|
289
247
|
- utils/enveomics/Pipelines/blast.pbs/TASK.check.bash
|
290
248
|
- utils/enveomics/Pipelines/blast.pbs/TASK.dry.bash
|
291
249
|
- utils/enveomics/Pipelines/blast.pbs/TASK.eo.bash
|
292
250
|
- utils/enveomics/Pipelines/blast.pbs/TASK.pause.bash
|
293
251
|
- utils/enveomics/Pipelines/blast.pbs/TASK.run.bash
|
252
|
+
- utils/enveomics/Pipelines/blast.pbs/sentinel.pbs.bash
|
294
253
|
- utils/enveomics/Pipelines/idba.pbs/README.md
|
295
|
-
- utils/enveomics/Pipelines/idba.pbs/run.pbs
|
296
254
|
- utils/enveomics/Pipelines/idba.pbs/RUNME.bash
|
255
|
+
- utils/enveomics/Pipelines/idba.pbs/run.pbs
|
297
256
|
- utils/enveomics/Pipelines/trim.pbs/README.md
|
298
|
-
- utils/enveomics/Pipelines/trim.pbs/run.pbs
|
299
257
|
- utils/enveomics/Pipelines/trim.pbs/RUNME.bash
|
258
|
+
- utils/enveomics/Pipelines/trim.pbs/run.pbs
|
300
259
|
- utils/enveomics/README.md
|
301
|
-
- utils/enveomics/Scripts/aai.rb
|
302
260
|
- utils/enveomics/Scripts/AAsubs.log2ratio.rb
|
303
261
|
- utils/enveomics/Scripts/Aln.cat.rb
|
304
262
|
- utils/enveomics/Scripts/Aln.convert.pl
|
305
263
|
- utils/enveomics/Scripts/AlphaDiversity.pl
|
306
|
-
- utils/enveomics/Scripts/ani.rb
|
307
264
|
- utils/enveomics/Scripts/BedGraph.tad.rb
|
308
265
|
- utils/enveomics/Scripts/BedGraph.window.rb
|
309
266
|
- utils/enveomics/Scripts/BlastPairwise.AAsubs.pl
|
@@ -318,16 +275,16 @@ files:
|
|
318
275
|
- utils/enveomics/Scripts/BlastTab.pairedHits.rb
|
319
276
|
- utils/enveomics/Scripts/BlastTab.recplot2.R
|
320
277
|
- utils/enveomics/Scripts/BlastTab.seqdepth.pl
|
321
|
-
- utils/enveomics/Scripts/BlastTab.seqdepth_nomedian.pl
|
322
278
|
- utils/enveomics/Scripts/BlastTab.seqdepth_ZIP.pl
|
279
|
+
- utils/enveomics/Scripts/BlastTab.seqdepth_nomedian.pl
|
323
280
|
- utils/enveomics/Scripts/BlastTab.subsample.pl
|
324
281
|
- utils/enveomics/Scripts/BlastTab.sumPerHit.pl
|
325
282
|
- utils/enveomics/Scripts/BlastTab.taxid2taxrank.pl
|
326
283
|
- utils/enveomics/Scripts/BlastTab.topHits_sorted.rb
|
327
284
|
- utils/enveomics/Scripts/Chao1.pl
|
328
285
|
- utils/enveomics/Scripts/CharTable.classify.rb
|
329
|
-
- utils/enveomics/Scripts/clust.rand.rb
|
330
286
|
- utils/enveomics/Scripts/EBIseq2tax.rb
|
287
|
+
- utils/enveomics/Scripts/FastA.N50.pl
|
331
288
|
- utils/enveomics/Scripts/FastA.filter.pl
|
332
289
|
- utils/enveomics/Scripts/FastA.filterLen.pl
|
333
290
|
- utils/enveomics/Scripts/FastA.filterN.pl
|
@@ -335,7 +292,6 @@ files:
|
|
335
292
|
- utils/enveomics/Scripts/FastA.gc.pl
|
336
293
|
- utils/enveomics/Scripts/FastA.interpose.pl
|
337
294
|
- utils/enveomics/Scripts/FastA.length.pl
|
338
|
-
- utils/enveomics/Scripts/FastA.N50.pl
|
339
295
|
- utils/enveomics/Scripts/FastA.per_file.pl
|
340
296
|
- utils/enveomics/Scripts/FastA.qlen.pl
|
341
297
|
- utils/enveomics/Scripts/FastA.rename.pl
|
@@ -354,37 +310,22 @@ files:
|
|
354
310
|
- utils/enveomics/Scripts/FastQ.test-error.rb
|
355
311
|
- utils/enveomics/Scripts/FastQ.toFastA.awk
|
356
312
|
- utils/enveomics/Scripts/GenBank.add_fields.rb
|
357
|
-
- utils/enveomics/Scripts/gi2tax.rb
|
358
313
|
- utils/enveomics/Scripts/HMM.essential.rb
|
359
314
|
- utils/enveomics/Scripts/HMMsearch.extractIds.rb
|
360
|
-
- utils/enveomics/Scripts/in_silico_GA_GI.pl
|
361
315
|
- utils/enveomics/Scripts/JPlace.distances.rb
|
362
316
|
- utils/enveomics/Scripts/JPlace.to_iToL.rb
|
363
|
-
- utils/enveomics/Scripts/lib/data/essential.hmm.gz
|
364
|
-
- utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb
|
365
|
-
- utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb
|
366
|
-
- utils/enveomics/Scripts/lib/enveomics_rb/og.rb
|
367
|
-
- utils/enveomics/Scripts/lib/enveomics_rb/remote_data.rb
|
368
|
-
- utils/enveomics/Scripts/lib/enveomics_rb/seq_range.rb
|
369
|
-
- utils/enveomics/Scripts/lib/enveomics_rb/stat.rb
|
370
|
-
- utils/enveomics/Scripts/lib/enveomics_rb/vcf.rb
|
371
317
|
- utils/enveomics/Scripts/M5nr.getSequences.rb
|
372
318
|
- utils/enveomics/Scripts/MeTaxa.distribution.pl
|
373
319
|
- utils/enveomics/Scripts/MyTaxa.fragsByTax.pl
|
374
320
|
- utils/enveomics/Scripts/MyTaxa.seq-taxrank.rb
|
375
321
|
- utils/enveomics/Scripts/NCBIacc2tax.rb
|
376
322
|
- utils/enveomics/Scripts/Newick.autoprune.R
|
377
|
-
- utils/enveomics/Scripts/ogs.annotate.rb
|
378
|
-
- utils/enveomics/Scripts/ogs.core-pan.rb
|
379
|
-
- utils/enveomics/Scripts/ogs.extract.rb
|
380
|
-
- utils/enveomics/Scripts/ogs.mcl.rb
|
381
|
-
- utils/enveomics/Scripts/ogs.rb
|
382
|
-
- utils/enveomics/Scripts/ogs.stats.rb
|
383
323
|
- utils/enveomics/Scripts/RAxML-EPA.to_iToL.pl
|
384
|
-
- utils/enveomics/Scripts/rbm.rb
|
385
324
|
- utils/enveomics/Scripts/RecPlot2.compareIdentities.R
|
386
325
|
- utils/enveomics/Scripts/RefSeq.download.bash
|
387
326
|
- utils/enveomics/Scripts/SRA.download.bash
|
327
|
+
- utils/enveomics/Scripts/TRIBS.plot-test.R
|
328
|
+
- utils/enveomics/Scripts/TRIBS.test.R
|
388
329
|
- utils/enveomics/Scripts/Table.barplot.R
|
389
330
|
- utils/enveomics/Scripts/Table.df2dist.R
|
390
331
|
- utils/enveomics/Scripts/Table.filter.pl
|
@@ -393,10 +334,38 @@ files:
|
|
393
334
|
- utils/enveomics/Scripts/Table.round.rb
|
394
335
|
- utils/enveomics/Scripts/Table.split.pl
|
395
336
|
- utils/enveomics/Scripts/Taxonomy.silva2ncbi.rb
|
396
|
-
- utils/enveomics/Scripts/TRIBS.plot-test.R
|
397
|
-
- utils/enveomics/Scripts/TRIBS.test.R
|
398
337
|
- utils/enveomics/Scripts/VCF.KaKs.rb
|
399
338
|
- utils/enveomics/Scripts/VCF.SNPs.rb
|
339
|
+
- utils/enveomics/Scripts/aai.rb
|
340
|
+
- utils/enveomics/Scripts/ani.rb
|
341
|
+
- utils/enveomics/Scripts/clust.rand.rb
|
342
|
+
- utils/enveomics/Scripts/gi2tax.rb
|
343
|
+
- utils/enveomics/Scripts/in_silico_GA_GI.pl
|
344
|
+
- utils/enveomics/Scripts/lib/data/essential.hmm.gz
|
345
|
+
- utils/enveomics/Scripts/lib/enveomics.R
|
346
|
+
- utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb
|
347
|
+
- utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb
|
348
|
+
- utils/enveomics/Scripts/lib/enveomics_rb/og.rb
|
349
|
+
- utils/enveomics/Scripts/lib/enveomics_rb/remote_data.rb
|
350
|
+
- utils/enveomics/Scripts/lib/enveomics_rb/seq_range.rb
|
351
|
+
- utils/enveomics/Scripts/lib/enveomics_rb/stat.rb
|
352
|
+
- utils/enveomics/Scripts/lib/enveomics_rb/vcf.rb
|
353
|
+
- utils/enveomics/Scripts/ogs.annotate.rb
|
354
|
+
- utils/enveomics/Scripts/ogs.core-pan.rb
|
355
|
+
- utils/enveomics/Scripts/ogs.extract.rb
|
356
|
+
- utils/enveomics/Scripts/ogs.mcl.rb
|
357
|
+
- utils/enveomics/Scripts/ogs.rb
|
358
|
+
- utils/enveomics/Scripts/ogs.stats.rb
|
359
|
+
- utils/enveomics/Scripts/rbm.rb
|
360
|
+
- utils/enveomics/Tests/Makefile
|
361
|
+
- utils/enveomics/Tests/Mgen_M2288.faa
|
362
|
+
- utils/enveomics/Tests/Mgen_M2288.fna
|
363
|
+
- utils/enveomics/Tests/Mgen_M2321.fna
|
364
|
+
- utils/enveomics/Tests/Nequ_Kin4M.faa
|
365
|
+
- utils/enveomics/Tests/Xanthomonas_oryzae-PilA.tribs.Rdata
|
366
|
+
- utils/enveomics/Tests/Xanthomonas_oryzae-PilA.txt
|
367
|
+
- utils/enveomics/Tests/Xanthomonas_oryzae.aai-mat.tsv
|
368
|
+
- utils/enveomics/Tests/Xanthomonas_oryzae.aai.tsv
|
400
369
|
- utils/enveomics/Tests/a_mg.cds-go.blast.tsv
|
401
370
|
- utils/enveomics/Tests/a_mg.reads-cds.blast.tsv
|
402
371
|
- utils/enveomics/Tests/a_mg.reads-cds.counts.tsv
|
@@ -409,11 +378,6 @@ files:
|
|
409
378
|
- utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv
|
410
379
|
- utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.lim
|
411
380
|
- utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.rec
|
412
|
-
- utils/enveomics/Tests/Makefile
|
413
|
-
- utils/enveomics/Tests/Mgen_M2288.faa
|
414
|
-
- utils/enveomics/Tests/Mgen_M2288.fna
|
415
|
-
- utils/enveomics/Tests/Mgen_M2321.fna
|
416
|
-
- utils/enveomics/Tests/Nequ_Kin4M.faa
|
417
381
|
- utils/enveomics/Tests/phyla_counts.tsv
|
418
382
|
- utils/enveomics/Tests/primate_lentivirus.ogs
|
419
383
|
- utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv1.rbm
|
@@ -422,10 +386,75 @@ files:
|
|
422
386
|
- utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-hiv2.rbm
|
423
387
|
- utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-siv.rbm
|
424
388
|
- utils/enveomics/Tests/primate_lentivirus.rbm/siv-siv.rbm
|
425
|
-
- utils/enveomics/
|
426
|
-
- utils/enveomics/
|
427
|
-
- utils/enveomics/
|
428
|
-
- utils/enveomics/
|
389
|
+
- utils/enveomics/build_enveomics_r.bash
|
390
|
+
- utils/enveomics/enveomics.R/DESCRIPTION
|
391
|
+
- utils/enveomics/enveomics.R/NAMESPACE
|
392
|
+
- utils/enveomics/enveomics.R/R/autoprune.R
|
393
|
+
- utils/enveomics/enveomics.R/R/barplot.R
|
394
|
+
- utils/enveomics/enveomics.R/R/cliopts.R
|
395
|
+
- utils/enveomics/enveomics.R/R/df2dist.R
|
396
|
+
- utils/enveomics/enveomics.R/R/growthcurve.R
|
397
|
+
- utils/enveomics/enveomics.R/R/recplot.R
|
398
|
+
- utils/enveomics/enveomics.R/R/recplot2.R
|
399
|
+
- utils/enveomics/enveomics.R/R/tribs.R
|
400
|
+
- utils/enveomics/enveomics.R/R/utils.R
|
401
|
+
- utils/enveomics/enveomics.R/README.md
|
402
|
+
- utils/enveomics/enveomics.R/data/growth.curves.rda
|
403
|
+
- utils/enveomics/enveomics.R/data/phyla.counts.rda
|
404
|
+
- utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd
|
405
|
+
- utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd
|
406
|
+
- utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd
|
407
|
+
- utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd
|
408
|
+
- utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd
|
409
|
+
- utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd
|
410
|
+
- utils/enveomics/enveomics.R/man/enve.__tribs.Rd
|
411
|
+
- utils/enveomics/enveomics.R/man/enve.barplot.Rd
|
412
|
+
- utils/enveomics/enveomics.R/man/enve.cliopts.Rd
|
413
|
+
- utils/enveomics/enveomics.R/man/enve.col.alpha.Rd
|
414
|
+
- utils/enveomics/enveomics.R/man/enve.col2alpha.Rd
|
415
|
+
- utils/enveomics/enveomics.R/man/enve.df2dist.Rd
|
416
|
+
- utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd
|
417
|
+
- utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd
|
418
|
+
- utils/enveomics/enveomics.R/man/enve.growthcurve.Rd
|
419
|
+
- utils/enveomics/enveomics.R/man/enve.prune.dist.Rd
|
420
|
+
- utils/enveomics/enveomics.R/man/enve.recplot.Rd
|
421
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd
|
422
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.ANIr.Rd
|
423
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.Rd
|
424
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd
|
425
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd
|
426
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd
|
427
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd
|
428
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.compareIdentities.Rd
|
429
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.coordinates.Rd
|
430
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd
|
431
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd
|
432
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd
|
433
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_e.Rd
|
434
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_m.Rd
|
435
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__emauto_one.Rd
|
436
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mow_one.Rd
|
437
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mower.Rd
|
438
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.em.Rd
|
439
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.emauto.Rd
|
440
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.mower.Rd
|
441
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd
|
442
|
+
- utils/enveomics/enveomics.R/man/enve.recplot2.seqdepth.Rd
|
443
|
+
- utils/enveomics/enveomics.R/man/enve.tribs.Rd
|
444
|
+
- utils/enveomics/enveomics.R/man/enve.tribs.test.Rd
|
445
|
+
- utils/enveomics/enveomics.R/man/enveomics.R-package.Rd
|
446
|
+
- utils/enveomics/enveomics.R/man/growth.curves.Rd
|
447
|
+
- utils/enveomics/enveomics.R/man/phyla.counts.Rd
|
448
|
+
- utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd
|
449
|
+
- utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd
|
450
|
+
- utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd
|
451
|
+
- utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd
|
452
|
+
- utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd
|
453
|
+
- utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd
|
454
|
+
- utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd
|
455
|
+
- utils/enveomics/enveomics.R/man/z$-methods.Rd
|
456
|
+
- utils/enveomics/globals.mk
|
457
|
+
- utils/enveomics/manifest.json
|
429
458
|
- utils/find-medoid.R
|
430
459
|
- utils/index_metadata.rb
|
431
460
|
- utils/mytaxa_scan.R
|
@@ -442,34 +471,6 @@ files:
|
|
442
471
|
- utils/subclades-nj.R
|
443
472
|
- utils/subclades.R
|
444
473
|
- utils/subclades.rb
|
445
|
-
- bin/miga
|
446
|
-
- actions/about.rb
|
447
|
-
- actions/add.rb
|
448
|
-
- actions/add_result.rb
|
449
|
-
- actions/daemon.rb
|
450
|
-
- actions/date.rb
|
451
|
-
- actions/doctor.rb
|
452
|
-
- actions/files.rb
|
453
|
-
- actions/find.rb
|
454
|
-
- actions/get.rb
|
455
|
-
- actions/init.rb
|
456
|
-
- actions/ln.rb
|
457
|
-
- actions/ls.rb
|
458
|
-
- actions/ncbi_get.rb
|
459
|
-
- actions/new.rb
|
460
|
-
- actions/plugins.rb
|
461
|
-
- actions/rm.rb
|
462
|
-
- actions/run.rb
|
463
|
-
- actions/stats.rb
|
464
|
-
- actions/summary.rb
|
465
|
-
- actions/tax_dist.rb
|
466
|
-
- actions/tax_index.rb
|
467
|
-
- actions/tax_set.rb
|
468
|
-
- actions/tax_test.rb
|
469
|
-
- Gemfile
|
470
|
-
- Rakefile
|
471
|
-
- README.md
|
472
|
-
- LICENSE
|
473
474
|
homepage: http://enve-omics.ce.gatech.edu/miga
|
474
475
|
licenses:
|
475
476
|
- Artistic-2.0
|
@@ -478,27 +479,26 @@ post_install_message:
|
|
478
479
|
rdoc_options:
|
479
480
|
- lib
|
480
481
|
- README.md
|
481
|
-
- --main
|
482
|
+
- "--main"
|
482
483
|
- README.md
|
483
|
-
- --title
|
484
|
+
- "--title"
|
484
485
|
- MiGA
|
485
486
|
require_paths:
|
486
487
|
- lib
|
487
488
|
required_ruby_version: !ruby/object:Gem::Requirement
|
488
489
|
requirements:
|
489
|
-
- -
|
490
|
+
- - ">="
|
490
491
|
- !ruby/object:Gem::Version
|
491
492
|
version: '1.9'
|
492
493
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
493
494
|
requirements:
|
494
|
-
- -
|
495
|
+
- - ">="
|
495
496
|
- !ruby/object:Gem::Version
|
496
497
|
version: '0'
|
497
498
|
requirements: []
|
498
499
|
rubyforge_project:
|
499
|
-
rubygems_version: 2.
|
500
|
+
rubygems_version: 2.7.7
|
500
501
|
signing_key:
|
501
502
|
specification_version: 4
|
502
503
|
summary: MiGA
|
503
504
|
test_files: []
|
504
|
-
has_rdoc:
|
@@ -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
|
-
|