miga-base 0.7.3.1 → 0.7.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/miga/cli.rb +10 -8
- data/lib/miga/cli/action.rb +2 -3
- data/lib/miga/cli/action/about.rb +5 -6
- data/lib/miga/cli/action/add.rb +18 -12
- data/lib/miga/cli/action/add_result.rb +2 -3
- data/lib/miga/cli/action/archive.rb +1 -2
- data/lib/miga/cli/action/classify_wf.rb +8 -6
- data/lib/miga/cli/action/console.rb +0 -1
- data/lib/miga/cli/action/daemon.rb +7 -7
- data/lib/miga/cli/action/date.rb +0 -1
- data/lib/miga/cli/action/derep_wf.rb +5 -4
- data/lib/miga/cli/action/doctor.rb +71 -82
- data/lib/miga/cli/action/doctor/base.rb +102 -0
- data/lib/miga/cli/action/edit.rb +14 -2
- data/lib/miga/cli/action/files.rb +8 -8
- data/lib/miga/cli/action/find.rb +5 -6
- data/lib/miga/cli/action/generic.rb +7 -7
- data/lib/miga/cli/action/get.rb +20 -17
- data/lib/miga/cli/action/get_db.rb +8 -2
- data/lib/miga/cli/action/index_wf.rb +1 -1
- data/lib/miga/cli/action/init.rb +53 -41
- data/lib/miga/cli/action/init/daemon_helper.rb +65 -43
- data/lib/miga/cli/action/lair.rb +7 -7
- data/lib/miga/cli/action/ln.rb +6 -6
- data/lib/miga/cli/action/ls.rb +1 -2
- data/lib/miga/cli/action/ncbi_get.rb +11 -3
- data/lib/miga/cli/action/new.rb +4 -4
- data/lib/miga/cli/action/next_step.rb +0 -1
- data/lib/miga/cli/action/preproc_wf.rb +3 -3
- data/lib/miga/cli/action/quality_wf.rb +1 -1
- data/lib/miga/cli/action/rm.rb +2 -3
- data/lib/miga/cli/action/run.rb +8 -8
- data/lib/miga/cli/action/stats.rb +8 -4
- data/lib/miga/cli/action/summary.rb +7 -6
- data/lib/miga/cli/action/tax_dist.rb +8 -4
- data/lib/miga/cli/action/tax_index.rb +3 -4
- data/lib/miga/cli/action/tax_set.rb +7 -6
- data/lib/miga/cli/action/tax_test.rb +6 -5
- data/lib/miga/cli/action/wf.rb +25 -19
- data/lib/miga/cli/base.rb +34 -32
- data/lib/miga/cli/objects_helper.rb +27 -18
- data/lib/miga/cli/opt_helper.rb +3 -2
- data/lib/miga/common.rb +2 -5
- data/lib/miga/common/base.rb +15 -16
- data/lib/miga/common/format.rb +8 -5
- data/lib/miga/common/hooks.rb +1 -4
- data/lib/miga/common/path.rb +4 -9
- data/lib/miga/common/with_daemon.rb +5 -2
- data/lib/miga/common/with_daemon_class.rb +1 -1
- data/lib/miga/common/with_result.rb +2 -1
- data/lib/miga/daemon.rb +93 -44
- data/lib/miga/daemon/base.rb +30 -11
- data/lib/miga/dataset.rb +47 -37
- data/lib/miga/dataset/base.rb +52 -37
- data/lib/miga/dataset/hooks.rb +3 -4
- data/lib/miga/dataset/result.rb +17 -1
- data/lib/miga/dataset/status.rb +6 -5
- data/lib/miga/json.rb +5 -7
- data/lib/miga/lair.rb +4 -0
- data/lib/miga/metadata.rb +4 -3
- data/lib/miga/project.rb +29 -20
- data/lib/miga/project/base.rb +52 -37
- data/lib/miga/project/dataset.rb +33 -26
- data/lib/miga/project/hooks.rb +0 -3
- data/lib/miga/project/result.rb +14 -5
- data/lib/miga/remote_dataset.rb +85 -72
- data/lib/miga/remote_dataset/base.rb +11 -13
- data/lib/miga/remote_dataset/download.rb +34 -12
- data/lib/miga/result.rb +48 -53
- data/lib/miga/result/base.rb +0 -2
- data/lib/miga/result/dates.rb +1 -3
- data/lib/miga/result/source.rb +15 -16
- data/lib/miga/result/stats.rb +37 -27
- data/lib/miga/tax_dist.rb +6 -3
- data/lib/miga/tax_index.rb +17 -17
- data/lib/miga/taxonomy.rb +6 -1
- data/lib/miga/taxonomy/base.rb +19 -15
- data/lib/miga/version.rb +19 -16
- data/scripts/project_stats.bash +3 -0
- data/scripts/stats.bash +1 -1
- data/test/common_test.rb +3 -11
- data/test/daemon_helper.rb +38 -0
- data/test/daemon_test.rb +91 -99
- data/test/dataset_test.rb +63 -59
- data/test/format_test.rb +3 -11
- data/test/hook_test.rb +50 -55
- data/test/json_test.rb +7 -8
- data/test/lair_test.rb +22 -28
- data/test/metadata_test.rb +6 -14
- data/test/project_test.rb +33 -40
- data/test/remote_dataset_test.rb +26 -32
- data/test/result_stats_test.rb +17 -27
- data/test/result_test.rb +41 -34
- data/test/tax_dist_test.rb +2 -4
- data/test/tax_index_test.rb +4 -10
- data/test/taxonomy_test.rb +7 -9
- data/test/test_helper.rb +42 -1
- data/test/with_daemon_test.rb +14 -22
- data/utils/adapters.fa +13 -0
- data/utils/cleanup-databases.rb +6 -5
- data/utils/distance/base.rb +0 -1
- data/utils/distance/commands.rb +19 -12
- data/utils/distance/database.rb +24 -21
- data/utils/distance/pipeline.rb +23 -10
- data/utils/distance/runner.rb +20 -16
- data/utils/distance/temporal.rb +1 -3
- data/utils/distances.rb +1 -1
- data/utils/domain-ess-genes.rb +7 -7
- data/utils/index_metadata.rb +5 -4
- data/utils/mytaxa_scan.rb +18 -16
- data/utils/representatives.rb +5 -4
- data/utils/requirements.txt +1 -1
- data/utils/subclade/base.rb +0 -1
- data/utils/subclade/pipeline.rb +7 -6
- data/utils/subclade/runner.rb +9 -9
- data/utils/subclade/temporal.rb +0 -2
- data/utils/subclades-compile.rb +39 -37
- data/utils/subclades.rb +1 -1
- metadata +6 -4
data/test/result_test.rb
CHANGED
@@ -2,62 +2,69 @@ require 'test_helper'
|
|
2
2
|
require 'miga/project'
|
3
3
|
|
4
4
|
class ResultTest < Test::Unit::TestCase
|
5
|
+
include TestHelper
|
5
6
|
|
6
7
|
def setup
|
7
|
-
|
8
|
-
ENV['MIGA_HOME'] = $tmp
|
9
|
-
FileUtils.touch(File.expand_path('.miga_rc', ENV['MIGA_HOME']))
|
10
|
-
FileUtils.touch(File.expand_path('.miga_daemon.json', ENV['MIGA_HOME']))
|
11
|
-
$p1 = MiGA::Project.new(File.expand_path('project1', $tmp))
|
12
|
-
$d1 = $p1.add_dataset('dataset1')
|
8
|
+
initialize_miga_home
|
13
9
|
FileUtils.touch(
|
14
|
-
File.join(
|
10
|
+
File.join(
|
11
|
+
project.path, 'data', '02.trimmed_reads',
|
12
|
+
"#{dataset.name}.1.clipped.fastq"
|
13
|
+
)
|
14
|
+
)
|
15
15
|
FileUtils.touch(
|
16
|
-
File.join(
|
16
|
+
File.join(
|
17
|
+
project.path, 'data', '02.trimmed_reads', "#{dataset.name}.done"
|
18
|
+
)
|
19
|
+
)
|
17
20
|
FileUtils.touch(
|
18
|
-
File.join(
|
21
|
+
File.join(
|
22
|
+
project.path, 'data', '10.clades', '01.find', 'miga-project.empty'
|
23
|
+
)
|
24
|
+
)
|
19
25
|
FileUtils.touch(
|
20
|
-
File.join(
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
FileUtils.rm_rf $tmp
|
25
|
-
ENV['MIGA_HOME'] = nil
|
26
|
+
File.join(
|
27
|
+
project.path, 'data', '10.clades', '01.find', 'miga-project.done'
|
28
|
+
)
|
29
|
+
)
|
26
30
|
end
|
27
31
|
|
28
32
|
def test_add_result
|
29
|
-
r =
|
30
|
-
|
31
|
-
r =
|
33
|
+
r = dataset.add_result(:trimmed_reads)
|
34
|
+
assert_instance_of(MiGA::Result, r)
|
35
|
+
r = dataset.add_result(:asssembly)
|
32
36
|
assert_nil(r)
|
33
|
-
r =
|
34
|
-
|
37
|
+
r = project.add_result(:clade_finding)
|
38
|
+
assert_instance_of(MiGA::Result, r)
|
35
39
|
end
|
36
40
|
|
37
41
|
def test_result_source
|
38
|
-
r =
|
39
|
-
assert_equal(
|
42
|
+
r = dataset.add_result(:trimmed_reads)
|
43
|
+
assert_equal(dataset.name, r.source.name)
|
40
44
|
assert_equal(:trimmed_reads, r.key)
|
41
45
|
assert_equal('data/02.trimmed_reads', r.relative_dir)
|
42
|
-
assert_equal('data/02.trimmed_reads/
|
43
|
-
assert_equal(
|
44
|
-
assert_equal(
|
45
|
-
r =
|
46
|
-
assert_equal(
|
46
|
+
assert_equal('data/02.trimmed_reads/dataset0.json', r.relative_path)
|
47
|
+
assert_equal(project.path, r.project.path)
|
48
|
+
assert_equal(project.path, r.project_path)
|
49
|
+
r = project.add_result(:clade_finding)
|
50
|
+
assert_equal(project.path, r.source.path)
|
47
51
|
end
|
48
52
|
|
49
53
|
def test_dates
|
50
|
-
r =
|
54
|
+
r = dataset.add_result(:trimmed_reads)
|
51
55
|
assert_nil(r.done_at)
|
52
56
|
assert_nil(r.started_at)
|
53
|
-
tf = File.join(
|
54
|
-
|
57
|
+
tf = File.join(
|
58
|
+
project.path, 'data', '02.trimmed_reads', "#{dataset.name}.done"
|
59
|
+
)
|
60
|
+
File.open(tf, 'w') { |fh| fh.puts Time.new(1, 2, 3, 4, 5) }
|
55
61
|
assert_equal(Time, r.done_at.class)
|
56
62
|
assert_nil(r.running_time)
|
57
|
-
tf = File.join(
|
58
|
-
|
59
|
-
|
63
|
+
tf = File.join(
|
64
|
+
project.path, 'data', '02.trimmed_reads', "#{dataset.name}.start"
|
65
|
+
)
|
66
|
+
File.open(tf, 'w') { |fh| fh.puts Time.new(1, 2, 3, 4, 0) }
|
67
|
+
r = dataset.add_result(:trimmed_reads)
|
60
68
|
assert_equal(5.0, r.running_time)
|
61
69
|
end
|
62
|
-
|
63
70
|
end
|
data/test/tax_dist_test.rb
CHANGED
@@ -2,7 +2,6 @@ require 'test_helper'
|
|
2
2
|
require 'miga/tax_dist'
|
3
3
|
|
4
4
|
class TaxDistTest < Test::Unit::TestCase
|
5
|
-
|
6
5
|
def test_aai_path
|
7
6
|
assert_path_exist(MiGA::TaxDist.aai_path(:intax))
|
8
7
|
assert_path_exist(MiGA::TaxDist.aai_path(:novel))
|
@@ -40,12 +39,12 @@ class TaxDistTest < Test::Unit::TestCase
|
|
40
39
|
def test_aai_taxtest
|
41
40
|
distant_intax = MiGA::TaxDist.aai_taxtest(35.0, :intax, engine: :diamond)
|
42
41
|
assert_equal(:root, distant_intax[:most_likely][0])
|
43
|
-
|
42
|
+
assert_equal(:d, distant_intax[:probably][0])
|
44
43
|
assert_nil(distant_intax[:possibly_even])
|
45
44
|
|
46
45
|
distant_intax = MiGA::TaxDist.aai_taxtest(35.0, :intax, engine: :blast)
|
47
46
|
assert_equal(:root, distant_intax[:most_likely][0])
|
48
|
-
|
47
|
+
assert_equal(:d, distant_intax[:probably][0])
|
49
48
|
assert_nil(distant_intax[:possibly_even])
|
50
49
|
|
51
50
|
close_intax = MiGA::TaxDist.aai_taxtest(99.0, :intax, engine: :diamond)
|
@@ -54,5 +53,4 @@ class TaxDistTest < Test::Unit::TestCase
|
|
54
53
|
close_intax = MiGA::TaxDist.aai_taxtest(99.0, :intax, engine: :blast)
|
55
54
|
assert_equal(:s, close_intax[:probably][0])
|
56
55
|
end
|
57
|
-
|
58
56
|
end
|
data/test/tax_index_test.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
require 'miga'
|
2
3
|
require 'miga/tax_index'
|
3
4
|
|
4
5
|
class TaxIndexTest < Test::Unit::TestCase
|
6
|
+
include TestHelper
|
5
7
|
|
6
8
|
def test_initialization
|
7
9
|
ti = MiGA::TaxIndex.new
|
@@ -9,12 +11,8 @@ class TaxIndexTest < Test::Unit::TestCase
|
|
9
11
|
end
|
10
12
|
|
11
13
|
def test_dataset
|
12
|
-
|
13
|
-
|
14
|
-
FileUtils.touch(File.expand_path('.miga_rc', ENV["MIGA_HOME"]))
|
15
|
-
FileUtils.touch(File.expand_path('.miga_daemon.json', ENV["MIGA_HOME"]))
|
16
|
-
p = MiGA::Project.new(File.expand_path('project1', $tmp))
|
17
|
-
d = p.add_dataset('dataset1')
|
14
|
+
initialize_miga_home
|
15
|
+
d = dataset
|
18
16
|
|
19
17
|
ti = MiGA::TaxIndex.new
|
20
18
|
assert_empty(ti.datasets)
|
@@ -24,9 +22,6 @@ class TaxIndexTest < Test::Unit::TestCase
|
|
24
22
|
ti << d
|
25
23
|
assert_equal(1, ti.datasets.size, 'index should have one dataset')
|
26
24
|
assert_equal(1, ti.root.datasets_count)
|
27
|
-
ensure
|
28
|
-
FileUtils.rm_rf $tmp
|
29
|
-
ENV["MIGA_HOME"] = nil
|
30
25
|
end
|
31
26
|
|
32
27
|
def test_to_json
|
@@ -40,5 +35,4 @@ class TaxIndexTest < Test::Unit::TestCase
|
|
40
35
|
ti = MiGA::TaxIndex.new
|
41
36
|
assert_equal("root:biota: 0\n", ti.to_tab)
|
42
37
|
end
|
43
|
-
|
44
38
|
end
|
data/test/taxonomy_test.rb
CHANGED
@@ -2,7 +2,6 @@ require 'test_helper'
|
|
2
2
|
require 'miga/taxonomy'
|
3
3
|
|
4
4
|
class TaxonomyTest < Test::Unit::TestCase
|
5
|
-
|
6
5
|
def test_ranks
|
7
6
|
assert_respond_to(MiGA::Taxonomy, :KNOWN_RANKS)
|
8
7
|
assert_include(MiGA::Taxonomy.KNOWN_RANKS, :s)
|
@@ -14,7 +13,7 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
14
13
|
def test_json
|
15
14
|
txt = 'k:Fantasia f:Dragonaceae s:Dragonia_azura'
|
16
15
|
js = '{"json_class":"MiGA::Taxonomy","str":"' + txt + '"}'
|
17
|
-
tx = JSON.parse(js, {symbolize_names: false, create_additions: true})
|
16
|
+
tx = JSON.parse(js, { symbolize_names: false, create_additions: true })
|
18
17
|
assert_equal(MiGA::Taxonomy, tx.class)
|
19
18
|
assert_equal('Dragonaceae', tx[:f])
|
20
19
|
assert_equal(js, tx.to_json)
|
@@ -25,7 +24,7 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
25
24
|
tx = MiGA::Taxonomy.new(txt)
|
26
25
|
assert_equal(txt, tx.to_s)
|
27
26
|
assert_equal(
|
28
|
-
[[:k, 'Fantasia'],[:f, 'Dragonaceae'],[:s, 'Dragonia azura']],
|
27
|
+
[[:k, 'Fantasia'], [:f, 'Dragonaceae'], [:s, 'Dragonia azura']],
|
29
28
|
tx.sorted_ranks
|
30
29
|
)
|
31
30
|
assert_equal('Irrealis', tx.namespace)
|
@@ -46,7 +45,7 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
46
45
|
end
|
47
46
|
|
48
47
|
def test_init_methods
|
49
|
-
tx = MiGA::Taxonomy.new({k: 'Mascot', c: 'Cereal', s: 'Melvin'})
|
48
|
+
tx = MiGA::Taxonomy.new({ k: 'Mascot', c: 'Cereal', s: 'Melvin' })
|
50
49
|
assert_equal('k:Mascot c:Cereal s:Melvin', tx.to_s)
|
51
50
|
tx = MiGA::Taxonomy.new('Mascot College Buzz', 'k c s')
|
52
51
|
assert_equal('k:Mascot c:College s:Buzz', tx.to_s)
|
@@ -56,7 +55,7 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
56
55
|
end
|
57
56
|
|
58
57
|
def test_rank_order
|
59
|
-
tx = MiGA::Taxonomy.new({k: 'Mascot', s: 'Melvin', c: 'Cereal'})
|
58
|
+
tx = MiGA::Taxonomy.new({ k: 'Mascot', s: 'Melvin', c: 'Cereal' })
|
60
59
|
assert_equal([:d, nil], tx.highest(true))
|
61
60
|
assert_equal([:k, 'Mascot'], tx.highest)
|
62
61
|
assert_equal([:ds, nil], tx.lowest(true))
|
@@ -65,7 +64,7 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
65
64
|
|
66
65
|
def test_alternative
|
67
66
|
tx = MiGA::Taxonomy.new('ns:a s:Arnie', nil,
|
68
|
-
|
67
|
+
['ns:b s:Bernie', 'ns:c s:Cornie', 's:Darnie'])
|
69
68
|
# Fields
|
70
69
|
assert_equal('ns:a s:Arnie', tx.to_s)
|
71
70
|
assert_equal([[:s, 'Arnie']], tx.sorted_ranks)
|
@@ -77,7 +76,7 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
77
76
|
assert_equal(3, tx.alternative.size)
|
78
77
|
# JSON
|
79
78
|
js = tx.to_json
|
80
|
-
tx_js = JSON.parse(js, {symbolize_names: false, create_additions: true})
|
79
|
+
tx_js = JSON.parse(js, { symbolize_names: false, create_additions: true })
|
81
80
|
assert_equal(tx.to_s, tx_js.to_s)
|
82
81
|
assert_equal(tx.alternative(2).to_s, tx_js.alternative(2).to_s)
|
83
82
|
assert_equal(tx.alternative.size, tx_js.alternative.size)
|
@@ -94,7 +93,7 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
94
93
|
|
95
94
|
def test_reset
|
96
95
|
tx = MiGA::Taxonomy.new('ns:Letters d:Latin s:A', nil,
|
97
|
-
|
96
|
+
['ns:Words d:English s:A', 'ns:Music d:Tone s:A'])
|
98
97
|
# Reset
|
99
98
|
assert_equal(2, tx.alternative.size)
|
100
99
|
assert_equal('Letters', tx.namespace)
|
@@ -112,5 +111,4 @@ class TaxonomyTest < Test::Unit::TestCase
|
|
112
111
|
tx.add_alternative(MiGA::Taxonomy.new('ns:Letters d:Unicode s:A'))
|
113
112
|
assert_equal('ns:Letters d:Unicode s:A', tx.to_s)
|
114
113
|
end
|
115
|
-
|
116
114
|
end
|
data/test/test_helper.rb
CHANGED
@@ -11,7 +11,6 @@ require 'stringio'
|
|
11
11
|
# Kernel extensions tp capture +$stdout+ and +$stderr+ based on
|
12
12
|
# http://thinkingdigitally.com/archive/capturing-output-from-puts-in-ruby/
|
13
13
|
module Kernel
|
14
|
-
|
15
14
|
def capture_stdout
|
16
15
|
out = StringIO.new
|
17
16
|
$stdout = out
|
@@ -29,5 +28,47 @@ module Kernel
|
|
29
28
|
ensure
|
30
29
|
$stderr = STDERR
|
31
30
|
end
|
31
|
+
end
|
32
32
|
|
33
|
+
module TestHelper
|
34
|
+
def teardown
|
35
|
+
@tmpdir ||= nil
|
36
|
+
FileUtils.rm_rf tmpdir unless @tmpdir.nil?
|
37
|
+
ENV['MIGA_HOME'] = nil
|
38
|
+
end
|
39
|
+
|
40
|
+
def declare_remote_access
|
41
|
+
omit_if(ENV['REMOTE_TESTS'].nil?, 'Remote access is error-prone')
|
42
|
+
end
|
43
|
+
|
44
|
+
def declare_forks
|
45
|
+
omit_if(!ENV['JRUBY_TESTS'].nil?, 'JRuby doesn\'t implement fork')
|
46
|
+
end
|
47
|
+
|
48
|
+
def tmpdir
|
49
|
+
@tmpdir ||= Dir.mktmpdir
|
50
|
+
end
|
51
|
+
|
52
|
+
def tmpfile(name)
|
53
|
+
File.join(tmpdir, name)
|
54
|
+
end
|
55
|
+
|
56
|
+
def initialize_miga_home(daemon = '{}')
|
57
|
+
ENV['MIGA_HOME'] = tmpdir
|
58
|
+
FileUtils.touch(File.join(ENV['MIGA_HOME'], '.miga_rc'))
|
59
|
+
File.open(File.join(ENV['MIGA_HOME'], '.miga_daemon.json'), 'w') do |fh|
|
60
|
+
fh.puts daemon
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def project(i = 0)
|
65
|
+
@project ||= {}
|
66
|
+
i = "project#{i}" unless i.is_a? String
|
67
|
+
@project[i] ||= MiGA::Project.new(tmpfile(i))
|
68
|
+
end
|
69
|
+
|
70
|
+
def dataset(project_i = 0, n = 0)
|
71
|
+
n = "dataset#{n}" unless n.is_a? String
|
72
|
+
project(project_i).dataset(n) || project(project_i).add_dataset(n)
|
73
|
+
end
|
33
74
|
end
|
data/test/with_daemon_test.rb
CHANGED
@@ -2,15 +2,7 @@ require 'test_helper'
|
|
2
2
|
require 'miga/common/with_daemon'
|
3
3
|
|
4
4
|
class WithDaemonTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def setup
|
7
|
-
$jruby_tests = !ENV['JRUBY_TESTS'].nil?
|
8
|
-
$tmp = Dir.mktmpdir
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
FileUtils.rm_rf $tmp
|
13
|
-
end
|
5
|
+
include TestHelper
|
14
6
|
|
15
7
|
class TestWithDaemon < MiGA::MiGA
|
16
8
|
include MiGA::Common::WithDaemon
|
@@ -40,7 +32,7 @@ class WithDaemonTest < Test::Unit::TestCase
|
|
40
32
|
puts(*o)
|
41
33
|
end
|
42
34
|
end
|
43
|
-
|
35
|
+
|
44
36
|
class TestWithDaemon2 < TestWithDaemon
|
45
37
|
def daemon_loop
|
46
38
|
puts 'I am 2.0!'
|
@@ -54,20 +46,20 @@ class WithDaemonTest < Test::Unit::TestCase
|
|
54
46
|
end
|
55
47
|
|
56
48
|
def test_with_daemon
|
57
|
-
d = TestWithDaemon.new(
|
49
|
+
d = TestWithDaemon.new(tmpdir)
|
58
50
|
assert_respond_to(d, :pid_file)
|
59
51
|
assert_respond_to(d.class, :daemon_home)
|
60
52
|
assert_nil(d.loop_i)
|
61
53
|
end
|
62
54
|
|
63
55
|
def test_daemon_run
|
64
|
-
d = TestWithDaemon2.new(
|
56
|
+
d = TestWithDaemon2.new(tmpdir)
|
65
57
|
capture_stdout { d.run }
|
66
58
|
assert_path_not_exist(d.pid_file)
|
67
59
|
end
|
68
60
|
|
69
61
|
def test_daemmon_status
|
70
|
-
d = TestWithDaemon.new(
|
62
|
+
d = TestWithDaemon.new(tmpdir)
|
71
63
|
out = capture_stdout { d.status }.string
|
72
64
|
assert_match(/Not running/, out)
|
73
65
|
|
@@ -84,11 +76,11 @@ class WithDaemonTest < Test::Unit::TestCase
|
|
84
76
|
end
|
85
77
|
|
86
78
|
def test_daemon_operations
|
87
|
-
d = TestWithDaemon.new(
|
79
|
+
d = TestWithDaemon.new(tmpdir)
|
88
80
|
FileUtils.touch(d.output_file)
|
89
81
|
assert_not_predicate(d, :active?)
|
90
82
|
|
91
|
-
|
83
|
+
declare_forks
|
92
84
|
capture_stdout do
|
93
85
|
pid = d.start
|
94
86
|
assert_gt(pid, 0)
|
@@ -112,7 +104,7 @@ class WithDaemonTest < Test::Unit::TestCase
|
|
112
104
|
end
|
113
105
|
|
114
106
|
def test_termination_file
|
115
|
-
d = TestWithDaemon2.new(
|
107
|
+
d = TestWithDaemon2.new(tmpdir)
|
116
108
|
assert { !d.termination_file?(nil) }
|
117
109
|
FileUtils.touch(d.terminate_file)
|
118
110
|
err = capture_stdout do
|
@@ -124,19 +116,19 @@ class WithDaemonTest < Test::Unit::TestCase
|
|
124
116
|
end
|
125
117
|
|
126
118
|
def test_process_alive
|
127
|
-
d = TestWithDaemon2.new(
|
119
|
+
d = TestWithDaemon2.new(tmpdir)
|
128
120
|
assert { d.process_alive?(Process.pid) }
|
129
121
|
assert { !d.process_alive?(1e9) }
|
130
122
|
end
|
131
123
|
|
132
124
|
def test_declare_alive_loop
|
133
|
-
d = TestWithDaemon.new(
|
125
|
+
d = TestWithDaemon.new(tmpfile('nope'))
|
134
126
|
assert_equal(:no_home, d.declare_alive_loop)
|
135
127
|
|
136
|
-
d = TestWithDaemon.new(
|
128
|
+
d = TestWithDaemon.new(tmpdir)
|
137
129
|
assert_equal(:no_process_alive, d.declare_alive_loop(1e9))
|
138
130
|
|
139
|
-
|
131
|
+
declare_forks
|
140
132
|
FileUtils.touch(d.terminate_file)
|
141
133
|
child = fork { sleep(3) }
|
142
134
|
capture_stdout do
|
@@ -145,12 +137,12 @@ class WithDaemonTest < Test::Unit::TestCase
|
|
145
137
|
end
|
146
138
|
|
147
139
|
def test_write_alive_file
|
148
|
-
d = TestWithDaemon.new(
|
140
|
+
d = TestWithDaemon.new(tmpfile('nope'))
|
149
141
|
assert_not_predicate(d, :active?)
|
150
142
|
assert_raise { d.write_alive_file }
|
151
143
|
assert_not_predicate(d, :active?)
|
152
144
|
|
153
|
-
d = TestWithDaemon.new(
|
145
|
+
d = TestWithDaemon.new(tmpdir)
|
154
146
|
assert_not_predicate(d, :active?)
|
155
147
|
d.write_alive_file
|
156
148
|
assert_predicate(d, :active?)
|
data/utils/adapters.fa
CHANGED
@@ -300,3 +300,16 @@ AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAG
|
|
300
300
|
AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC
|
301
301
|
>TruSeq3_UniversalAdapter
|
302
302
|
AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTA
|
303
|
+
|
304
|
+
>Nextera_PE_PrefixNX/1
|
305
|
+
AGATGTGTATAAGAGACAG
|
306
|
+
>Nextera_PE_PrefixNX/2
|
307
|
+
AGATGTGTATAAGAGACAG
|
308
|
+
>Nextera_PE_Trans1
|
309
|
+
TCGTCGGCAGCGTCAGATGTGTATAAGAGACAG
|
310
|
+
>Nextera_PE_Trans1_rc
|
311
|
+
CTGTCTCTTATACACATCTGACGCTGCCGACGA
|
312
|
+
>Nextera_PE_Trans2
|
313
|
+
GTCTCGTGGGCTCGGAGATGTGTATAAGAGACAG
|
314
|
+
>Nextera_PE_Trans2_rc
|
315
|
+
CTGTCTCTTATACACATCTCCGAGCCCACGAGAC
|
data/utils/cleanup-databases.rb
CHANGED
@@ -10,23 +10,24 @@ p = MiGA::Project.load(ARGV[0])
|
|
10
10
|
ds_names = p.dataset_names
|
11
11
|
thr = ARGV[1].to_i
|
12
12
|
|
13
|
-
pc = [0] + (1
|
14
|
-
$stderr.puts (('.'*9 + '|')*10) + ' 100%'
|
13
|
+
pc = [0] + (1..100).map { |i| ds_names.size * i / 100 }
|
14
|
+
$stderr.puts (('.' * 9 + '|') * 10) + ' 100%'
|
15
15
|
|
16
|
-
(0
|
16
|
+
(0..thr - 1).each do |t|
|
17
17
|
fork do
|
18
18
|
ds_names.each_with_index do |i, idx|
|
19
|
-
while t == 0 and idx+1 > pc.first
|
19
|
+
while t == 0 and idx + 1 > pc.first
|
20
20
|
$stderr.print '#'
|
21
21
|
pc.shift
|
22
22
|
end
|
23
23
|
next unless (idx % thr) == t
|
24
|
+
|
24
25
|
d = p.dataset(i)
|
25
26
|
next unless d.is_ref? and d.is_active?
|
27
|
+
|
26
28
|
d.cleanup_distances!
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
30
32
|
Process.waitall
|
31
33
|
$stderr.puts ' Done'
|
32
|
-
|