macroape 4.0.2 → 4.1.0

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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -17
  3. data/Gemfile +4 -4
  4. data/LICENSE +22 -22
  5. data/README.md +70 -70
  6. data/Rakefile.rb +49 -49
  7. data/TODO.txt +46 -46
  8. data/benchmark/benchmark_helper.rb +4 -4
  9. data/benchmark/similarity_benchmark.rb +52 -52
  10. data/bin/align_motifs +4 -4
  11. data/bin/eval_alignment +4 -4
  12. data/bin/eval_similarity +4 -4
  13. data/bin/find_pvalue +4 -4
  14. data/bin/find_threshold +4 -4
  15. data/bin/preprocess_collection +4 -4
  16. data/bin/scan_collection +4 -4
  17. data/lib/macroape.rb +14 -11
  18. data/lib/macroape/aligned_pair_intersection.rb +61 -62
  19. data/lib/macroape/cli.rb +191 -188
  20. data/lib/macroape/cli/align_motifs.rb +120 -100
  21. data/lib/macroape/cli/eval_alignment.rb +157 -156
  22. data/lib/macroape/cli/eval_similarity.rb +138 -137
  23. data/lib/macroape/cli/find_pvalue.rb +93 -87
  24. data/lib/macroape/cli/find_threshold.rb +103 -96
  25. data/lib/macroape/cli/preprocess_collection.rb +169 -161
  26. data/lib/macroape/cli/scan_collection.rb +171 -163
  27. data/lib/macroape/collection.rb +29 -0
  28. data/lib/macroape/motif_with_thresholds.rb +18 -0
  29. data/lib/macroape/pwm_compare.rb +39 -44
  30. data/lib/macroape/pwm_compare_aligned.rb +139 -130
  31. data/lib/macroape/{counting.rb → pwm_counting.rb} +175 -121
  32. data/lib/macroape/support/inverf.rb +13 -0
  33. data/lib/macroape/support/partial_sums.rb +17 -0
  34. data/lib/macroape/version.rb +4 -4
  35. data/macroape.gemspec +19 -19
  36. data/spec/count_distribution_spec.rb +112 -109
  37. data/spec/inverf_spec.rb +23 -0
  38. data/spec/partial_sums_spec.rb +28 -0
  39. data/spec/spec_helper.rb +11 -11
  40. data/test/align_motifs_test.rb +42 -43
  41. data/test/data/AHR_si.pwm +10 -10
  42. data/test/data/KLF3_f1.pcm +16 -16
  43. data/test/data/KLF3_f1.pwm +16 -16
  44. data/test/data/KLF4_f2.pcm +11 -11
  45. data/test/data/KLF4_f2.pwm +11 -11
  46. data/test/data/KLF4_f2_scan_results_all.txt +2 -2
  47. data/test/data/KLF4_f2_scan_results_default_cutoff.txt +1 -1
  48. data/test/data/KLF4_f2_scan_results_precise_mode.txt +2 -2
  49. data/test/data/SP1_f1.pcm +12 -12
  50. data/test/data/SP1_f1.pwm +12 -12
  51. data/test/data/SP1_f1_revcomp.pcm +12 -12
  52. data/test/data/SP1_f1_revcomp.pwm +12 -12
  53. data/test/data/medium_motif.pwm +8 -8
  54. data/test/data/short_motif.pwm +7 -7
  55. data/test/data/test_collection.yaml +231 -214
  56. data/test/data/test_collection/GABPA_f1.pwm +14 -14
  57. data/test/data/test_collection/KLF4_f2.pwm +10 -10
  58. data/test/data/test_collection/SP1_f1.pwm +12 -12
  59. data/test/data/test_collection_pcm/GABPA_f1.pcm +14 -14
  60. data/test/data/test_collection_pcm/KLF4_f2.pcm +11 -11
  61. data/test/data/test_collection_pcm/SP1_f1.pcm +12 -12
  62. data/test/data/test_collection_single_file.txt +38 -38
  63. data/test/data/test_collection_single_file_pcm.txt +37 -37
  64. data/test/data/test_collection_weak.yaml +231 -214
  65. data/test/eval_alignment_test.rb +90 -111
  66. data/test/eval_similarity_test.rb +105 -123
  67. data/test/find_pvalue_test.rb +34 -39
  68. data/test/find_threshold_test.rb +87 -91
  69. data/test/preprocess_collection_test.rb +56 -65
  70. data/test/scan_collection_test.rb +42 -48
  71. data/test/test_helper.rb +159 -160
  72. metadata +14 -10
  73. data/test/data/collection_pcm_without_thresholds.yaml +0 -188
  74. data/test/data/collection_without_thresholds.yaml +0 -188
@@ -1,111 +1,90 @@
1
- require_relative 'test_helper'
2
-
3
- class TestEvalAlignment < Test::Unit::TestCase
4
- include Helpers
5
- def setup
6
- @start_dir = Dir.pwd
7
- Dir.chdir File.join(File.dirname(__FILE__), 'data')
8
- end
9
- def teardown
10
- Dir.chdir(@start_dir)
11
- end
12
-
13
- def test_process_weak_threshold
14
- assert_similarity_info_output({similarity: 0.24382446963092125,
15
- distance: 0.7561755303690787,
16
- length: 11,
17
- shift: -1,
18
- orientation: 'direct',
19
- words_recognized_by_both: 839.0,
20
- threshold_first: 5.8,
21
- words_recognized_by_first: 2104.0,
22
- pvalue_recognized_by_first: 0.0005016326904296875,
23
- threshold_second: 5.6,
24
- words_recognized_by_second: 2176.0,
25
- pvalue_recognized_by_second: 0.000518798828125,
26
- matrix_first_alignment: '.>>>>>>>>>>',
27
- matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
28
- },
29
- Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct'))
30
- end
31
-
32
-
33
- def test_process_strong_threshold
34
- assert_similarity_info_output({similarity: 0.2420758234928527,
35
- distance: 0.7579241765071473,
36
- length: 11,
37
- shift: -1,
38
- orientation: 'direct',
39
- words_recognized_by_both: 779.0,
40
- threshold_first: 5.8100000000000005,
41
- words_recognized_by_first: 1964.0,
42
- pvalue_recognized_by_first: 0.00046825408935546875,
43
- threshold_second: 5.61,
44
- words_recognized_by_second: 2033.0,
45
- pvalue_recognized_by_second: 0.00048470497131347656,
46
- matrix_first_alignment: '.>>>>>>>>>>',
47
- matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
48
- },
49
- Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct --boundary lower'))
50
- end
51
-
52
- def test_process_custom_thresholds
53
- assert_similarity_info_output({similarity: 0.28505023241865346,
54
- words_recognized_by_both: 1901.0,
55
- words_recognized_by_first: 4348.0,
56
- words_recognized_by_second: 4222.0,
57
- # threshold_first: 4.7,
58
- # threshold_second: 4.6
59
- },
60
- Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct --first-threshold 4.7 --second-threshold 4.6'))
61
- end
62
- def test_process_not_optimal_alignment
63
- assert_similarity_info_output({similarity: 0.004517983923018248,
64
- length: 12,
65
- words_recognized_by_both: 77.0,
66
- words_recognized_by_first: 8416.0,
67
- words_recognized_by_second: 8704.0,
68
- matrix_first_alignment: '>>>>>>>>>>..',
69
- matrix_second_alignment: '.>>>>>>>>>>>',
70
- shift: 1,
71
- orientation: 'direct'},
72
- Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm 1 direct'))
73
- end
74
-
75
- def test_process_at_optimal_alignment_reversed
76
- assert_similarity_info_output({similarity: 0.0,
77
- words_recognized_by_both: 0.0,
78
- length: 11,
79
- matrix_first_alignment: '.>>>>>>>>>>',
80
- matrix_second_alignment:'<<<<<<<<<<<',
81
- shift: -1,
82
- orientation: 'revcomp'},
83
- Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 revcomp'))
84
- end
85
-
86
- def test_process_pcm_files
87
- assert_equal( Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct'),
88
- Helpers.eval_alignment_output('KLF4_f2.pcm SP1_f1.pcm -1 direct --pcm'))
89
- end
90
-
91
- def test_process_alignment_first_motif_from_stdin
92
- result = Helpers.provide_stdin(File.read('KLF4_f2.pwm')) {
93
- Helpers.eval_alignment_output('.stdin SP1_f1.pwm 0 direct') }
94
- assert_equal( Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm 0 direct'),
95
- result )
96
- end
97
-
98
- def test_process_alignment_second_motif_from_stdin
99
- result = Helpers.provide_stdin(File.read('SP1_f1.pwm')) {
100
- Helpers.eval_alignment_output('KLF4_f2.pwm .stdin 0 direct') }
101
- assert_equal( Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm 0 direct'),
102
- result )
103
- end
104
-
105
- def test_process_alignment_both_motifs_from_stdin
106
- result = Helpers.provide_stdin(File.read('KLF4_f2.pwm') + File.read('SP1_f1.pwm')) {
107
- Helpers.eval_alignment_output('.stdin .stdin 0 direct') }
108
- assert_equal( Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm 0 direct'),
109
- result )
110
- end
111
- end
1
+ require_relative 'test_helper'
2
+
3
+ class TestEvalAlignment < Test::Unit::TestCase
4
+ include Helpers
5
+ def setup
6
+ @start_dir = Dir.pwd
7
+ Dir.chdir File.join(File.dirname(__FILE__), 'data')
8
+ end
9
+ def teardown
10
+ Dir.chdir(@start_dir)
11
+ end
12
+
13
+ def test_process_weak_threshold
14
+ assert_similarity_info_output({similarity: 0.24382446963092125,
15
+ distance: 0.7561755303690787,
16
+ length: 11,
17
+ shift: -1,
18
+ orientation: 'direct',
19
+ words_recognized_by_both: 839.0,
20
+ threshold_first: 5.8,
21
+ words_recognized_by_first: 2104.0,
22
+ pvalue_recognized_by_first: 0.0005016326904296875,
23
+ threshold_second: 5.6,
24
+ words_recognized_by_second: 2176.0,
25
+ pvalue_recognized_by_second: 0.000518798828125,
26
+ matrix_first_alignment: '.>>>>>>>>>>',
27
+ matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
28
+ },
29
+ Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct'))
30
+ end
31
+
32
+
33
+ def test_process_strong_threshold
34
+ assert_similarity_info_output({similarity: 0.2420758234928527,
35
+ distance: 0.7579241765071473,
36
+ length: 11,
37
+ shift: -1,
38
+ orientation: 'direct',
39
+ words_recognized_by_both: 779.0,
40
+ threshold_first: 5.8100000000000005,
41
+ words_recognized_by_first: 1964.0,
42
+ pvalue_recognized_by_first: 0.00046825408935546875,
43
+ threshold_second: 5.61,
44
+ words_recognized_by_second: 2033.0,
45
+ pvalue_recognized_by_second: 0.00048470497131347656,
46
+ matrix_first_alignment: '.>>>>>>>>>>',
47
+ matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
48
+ },
49
+ Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct --boundary lower'))
50
+ end
51
+
52
+ def test_process_custom_thresholds
53
+ assert_similarity_info_output({similarity: 0.28505023241865346,
54
+ words_recognized_by_both: 1901.0,
55
+ words_recognized_by_first: 4348.0,
56
+ words_recognized_by_second: 4222.0,
57
+ # threshold_first: 4.7,
58
+ # threshold_second: 4.6
59
+ },
60
+ Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct --first-threshold 4.7 --second-threshold 4.6'))
61
+ end
62
+ def test_process_not_optimal_alignment
63
+ assert_similarity_info_output({similarity: 0.004517983923018248,
64
+ length: 12,
65
+ words_recognized_by_both: 77.0,
66
+ words_recognized_by_first: 8416.0,
67
+ words_recognized_by_second: 8704.0,
68
+ matrix_first_alignment: '>>>>>>>>>>..',
69
+ matrix_second_alignment: '.>>>>>>>>>>>',
70
+ shift: 1,
71
+ orientation: 'direct'},
72
+ Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm 1 direct'))
73
+ end
74
+
75
+ def test_process_at_optimal_alignment_reversed
76
+ assert_similarity_info_output({similarity: 0.0,
77
+ words_recognized_by_both: 0.0,
78
+ length: 11,
79
+ matrix_first_alignment: '.>>>>>>>>>>',
80
+ matrix_second_alignment:'<<<<<<<<<<<',
81
+ shift: -1,
82
+ orientation: 'revcomp'},
83
+ Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 revcomp'))
84
+ end
85
+
86
+ def test_process_pcm_files
87
+ assert_equal( Helpers.eval_alignment_output('KLF4_f2.pwm SP1_f1.pwm -1 direct'),
88
+ Helpers.eval_alignment_output('KLF4_f2.pcm SP1_f1.pcm -1 direct --pcm'))
89
+ end
90
+ end
@@ -1,123 +1,105 @@
1
- require_relative 'test_helper'
2
-
3
- class TestEvalSimilarity < Test::Unit::TestCase
4
- include Helpers
5
- def setup
6
- @start_dir = Dir.pwd
7
- Dir.chdir File.join(File.dirname(__FILE__), 'data')
8
- end
9
- def teardown
10
- Dir.chdir(@start_dir)
11
- end
12
-
13
- def test_process_strong_thresholds
14
- assert_similarity_info_output({similarity: 0.2420758234928527,
15
- distance: 0.7579241765071473,
16
- length: 11,
17
- shift: -1,
18
- orientation: 'direct',
19
- words_recognized_by_both: 779.0,
20
- threshold_first: 5.8100000000000005,
21
- words_recognized_by_first: 1964.0,
22
- pvalue_recognized_by_first: 0.00046825408935546875,
23
- threshold_second: 5.61,
24
- words_recognized_by_second: 2033.0,
25
- pvalue_recognized_by_second: 0.00048470497131347656,
26
- matrix_first_alignment: '.>>>>>>>>>>',
27
- matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
28
- },
29
- Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm --boundary lower'))
30
- end
31
-
32
- def test_process_weak_thresholds
33
- assert_similarity_info_output({similarity: 0.24382446963092125,
34
- distance: 0.7561755303690787,
35
- length: 11,
36
- shift: -1,
37
- orientation: 'direct',
38
- words_recognized_by_both: 839.0,
39
- threshold_first: 5.8,
40
- words_recognized_by_first: 2104.0,
41
- pvalue_recognized_by_first: 0.0005016326904296875,
42
- threshold_second: 5.6,
43
- words_recognized_by_second: 2176.0,
44
- pvalue_recognized_by_second: 0.000518798828125,
45
- matrix_first_alignment: '.>>>>>>>>>>',
46
- matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
47
- },
48
- Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm'))
49
- end
50
- def test_process_custom_threshold
51
- assert_similarity_info_output({similarity: 0.28505023241865346,
52
- words_recognized_by_both: 1901.0,
53
- words_recognized_by_first: 4348.0,
54
- words_recognized_by_second: 4222.0,
55
- # threshold_first: 4.7,
56
- # threshold_second: 4.6
57
- },
58
- Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm --first-threshold 4.7 --second-threshold 4.6'))
59
- end
60
-
61
- def test_process_dissimilar_pair_of_pwms
62
- assert_similarity_info_output({similarity: 0.0037332005973120955,
63
- words_recognized_by_both: 15.0,
64
- words_recognized_by_first: 2033.0,
65
- words_recognized_by_second: 2000.0,
66
- length: 11,
67
- matrix_first_alignment: '>>>>>>>>>>>',
68
- matrix_second_alignment: '.>>>>>>>>>.',
69
- shift: 1,
70
- orientation: 'direct'},
71
- Helpers.eval_similarity_output('SP1_f1.pwm AHR_si.pwm --boundary lower'))
72
- end
73
-
74
- def test_recognize_orientation_of_alignment
75
- assert_similarity_info_output({similarity: 1.0,
76
- words_recognized_by_both: 2176.0,
77
- words_recognized_by_first: 2176.0,
78
- words_recognized_by_second: 2176.0,
79
- length: 11,
80
- matrix_first_alignment: '>>>>>>>>>>>',
81
- matrix_second_alignment: '<<<<<<<<<<<',
82
- shift: 0,
83
- orientation: 'revcomp'},
84
- Helpers.eval_similarity_output('SP1_f1_revcomp.pwm SP1_f1.pwm'))
85
- end
86
-
87
- def test_process_custom_discretization
88
- assert_similarity_info_output({similarity: 0.2580456407255705,
89
- words_recognized_by_both: 1323.0,
90
- words_recognized_by_first: 3554.0,
91
- words_recognized_by_second: 2896.0,
92
- length: 11,
93
- matrix_first_alignment: '>>>>>>>>>>>',
94
- matrix_second_alignment: '.>>>>>>>>>>',
95
- shift: 1,
96
- orientation: 'direct' #, discretization: 1.0
97
- },
98
- Helpers.eval_similarity_output('SP1_f1.pwm KLF4_f2.pwm -d 1'))
99
- end
100
-
101
- def test_process_pcm_files
102
- assert_equal( Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm'),
103
- Helpers.eval_similarity_output('KLF4_f2.pcm SP1_f1.pcm --pcm'))
104
- end
105
-
106
- def test_process_first_motif_from_stdin
107
- result = Helpers.provide_stdin(File.read('KLF4_f2.pwm')){
108
- Helpers.eval_similarity_output('.stdin SP1_f1.pwm') }
109
- assert_equal(Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm'), result)
110
- end
111
-
112
- def test_process_second_motif_from_stdin
113
- result = Helpers.provide_stdin(File.read('SP1_f1.pwm')){
114
- Helpers.eval_similarity_output('KLF4_f2.pwm .stdin') }
115
- assert_equal(Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm'), result)
116
- end
117
-
118
- def test_process_both_motifs_from_stdin
119
- result = Helpers.provide_stdin(File.read('KLF4_f2.pwm') + File.read('SP1_f1.pwm')){
120
- Helpers.eval_similarity_output('.stdin .stdin') }
121
- assert_equal(Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm'), result)
122
- end
123
- end
1
+ require_relative 'test_helper'
2
+
3
+ class TestEvalSimilarity < Test::Unit::TestCase
4
+ include Helpers
5
+ def setup
6
+ @start_dir = Dir.pwd
7
+ Dir.chdir File.join(File.dirname(__FILE__), 'data')
8
+ end
9
+ def teardown
10
+ Dir.chdir(@start_dir)
11
+ end
12
+
13
+ def test_process_strong_thresholds
14
+ assert_similarity_info_output({similarity: 0.2420758234928527,
15
+ distance: 0.7579241765071473,
16
+ length: 11,
17
+ shift: -1,
18
+ orientation: 'direct',
19
+ words_recognized_by_both: 779.0,
20
+ threshold_first: 5.8100000000000005,
21
+ words_recognized_by_first: 1964.0,
22
+ pvalue_recognized_by_first: 0.00046825408935546875,
23
+ threshold_second: 5.61,
24
+ words_recognized_by_second: 2033.0,
25
+ pvalue_recognized_by_second: 0.00048470497131347656,
26
+ matrix_first_alignment: '.>>>>>>>>>>',
27
+ matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
28
+ },
29
+ Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm --boundary lower'))
30
+ end
31
+
32
+ def test_process_weak_thresholds
33
+ assert_similarity_info_output({similarity: 0.24382446963092125,
34
+ distance: 0.7561755303690787,
35
+ length: 11,
36
+ shift: -1,
37
+ orientation: 'direct',
38
+ words_recognized_by_both: 839.0,
39
+ threshold_first: 5.8,
40
+ words_recognized_by_first: 2104.0,
41
+ pvalue_recognized_by_first: 0.0005016326904296875,
42
+ threshold_second: 5.6,
43
+ words_recognized_by_second: 2176.0,
44
+ pvalue_recognized_by_second: 0.000518798828125,
45
+ matrix_first_alignment: '.>>>>>>>>>>',
46
+ matrix_second_alignment: '>>>>>>>>>>>' #, discretization: 10.0
47
+ },
48
+ Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm'))
49
+ end
50
+ def test_process_custom_threshold
51
+ assert_similarity_info_output({similarity: 0.28505023241865346,
52
+ words_recognized_by_both: 1901.0,
53
+ words_recognized_by_first: 4348.0,
54
+ words_recognized_by_second: 4222.0,
55
+ # threshold_first: 4.7,
56
+ # threshold_second: 4.6
57
+ },
58
+ Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm --first-threshold 4.7 --second-threshold 4.6'))
59
+ end
60
+
61
+ def test_process_dissimilar_pair_of_pwms
62
+ assert_similarity_info_output({similarity: 0.0037332005973120955,
63
+ words_recognized_by_both: 15.0,
64
+ words_recognized_by_first: 2033.0,
65
+ words_recognized_by_second: 2000.0,
66
+ length: 11,
67
+ matrix_first_alignment: '>>>>>>>>>>>',
68
+ matrix_second_alignment: '.>>>>>>>>>.',
69
+ shift: 1,
70
+ orientation: 'direct'},
71
+ Helpers.eval_similarity_output('SP1_f1.pwm AHR_si.pwm --boundary lower'))
72
+ end
73
+
74
+ def test_recognize_orientation_of_alignment
75
+ assert_similarity_info_output({similarity: 1.0,
76
+ words_recognized_by_both: 2176.0,
77
+ words_recognized_by_first: 2176.0,
78
+ words_recognized_by_second: 2176.0,
79
+ length: 11,
80
+ matrix_first_alignment: '>>>>>>>>>>>',
81
+ matrix_second_alignment: '<<<<<<<<<<<',
82
+ shift: 0,
83
+ orientation: 'revcomp'},
84
+ Helpers.eval_similarity_output('SP1_f1_revcomp.pwm SP1_f1.pwm'))
85
+ end
86
+
87
+ def test_process_custom_discretization
88
+ assert_similarity_info_output({similarity: 0.2580456407255705,
89
+ words_recognized_by_both: 1323.0,
90
+ words_recognized_by_first: 3554.0,
91
+ words_recognized_by_second: 2896.0,
92
+ length: 11,
93
+ matrix_first_alignment: '>>>>>>>>>>>',
94
+ matrix_second_alignment: '.>>>>>>>>>>',
95
+ shift: 1,
96
+ orientation: 'direct' #, discretization: 1.0
97
+ },
98
+ Helpers.eval_similarity_output('SP1_f1.pwm KLF4_f2.pwm -d 1'))
99
+ end
100
+
101
+ def test_process_pcm_files
102
+ assert_equal( Helpers.eval_similarity_output('KLF4_f2.pwm SP1_f1.pwm'),
103
+ Helpers.eval_similarity_output('KLF4_f2.pcm SP1_f1.pcm --pcm'))
104
+ end
105
+ end
@@ -1,39 +1,34 @@
1
- require_relative 'test_helper'
2
-
3
- class FindPvalueTest < Test::Unit::TestCase
4
- def setup
5
- @start_dir = Dir.pwd
6
- Dir.chdir File.join(File.dirname(__FILE__), 'data')
7
- end
8
- def teardown
9
- Dir.chdir(@start_dir)
10
- end
11
- def test_process_pcm
12
- assert_equal [%w[4.1719 1048.0 0.00099945068359375]], Helpers.find_pvalue_output('KLF4_f2.pcm 4.1719 --pcm')
13
- end
14
- def test_process_one_threshold
15
- assert_equal [%w[4.1719 1048.0 0.00099945068359375]], Helpers.find_pvalue_output('KLF4_f2.pwm 4.1719')
16
- end
17
- def test_process_several_thresholds
18
- assert_equal [%w[4.1719 1048.0 0.00099945068359375],
19
- %w[5.2403 524.0 0.000499725341796875]], Helpers.find_pvalue_output('KLF4_f2.pwm 4.1719 5.2403')
20
- end
21
- def test_process_several_thresholds_result_is_ordered
22
- assert_equal [%w[5.2403 524.0 0.000499725341796875],
23
- %w[4.1719 1048.0 0.00099945068359375]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 4.1719')
24
- end
25
- def test_custom_discretization
26
- assert_equal [%w[5.2403 527.0 0.0005025863647460938]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 -d 100')
27
- end
28
- def test_probability_wise_backgrond
29
- assert_equal [%w[5.2403 0.0005025863647460938]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 -d 100 -b 0.25,0.25,0.25,0.25')
30
- end
31
- def test_custom_background
32
- assert_equal [%w[5.2403 6.815000000000001e-06]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 -b 0.4,0.1,0.1,0.4')
33
- end
34
- def test_process_pwm_from_stdin
35
- assert_equal Helpers.find_pvalue_output('KLF4_f2.pwm 1'),
36
- Helpers.provide_stdin(File.read 'KLF4_f2.pwm'){ Helpers.find_pvalue_output('.stdin 1') }
37
- end
38
- end
39
-
1
+ require_relative 'test_helper'
2
+
3
+ class FindPvalueTest < Test::Unit::TestCase
4
+ def setup
5
+ @start_dir = Dir.pwd
6
+ Dir.chdir File.join(File.dirname(__FILE__), 'data')
7
+ end
8
+ def teardown
9
+ Dir.chdir(@start_dir)
10
+ end
11
+ def test_process_pcm
12
+ assert_equal [%w[4.1719 1048.0 0.00099945068359375]], Helpers.find_pvalue_output('KLF4_f2.pcm 4.1719 --pcm')
13
+ end
14
+ def test_process_one_threshold
15
+ assert_equal [%w[4.1719 1048.0 0.00099945068359375]], Helpers.find_pvalue_output('KLF4_f2.pwm 4.1719')
16
+ end
17
+ def test_process_several_thresholds
18
+ assert_equal [%w[4.1719 1048.0 0.00099945068359375],
19
+ %w[5.2403 524.0 0.000499725341796875]], Helpers.find_pvalue_output('KLF4_f2.pwm 4.1719 5.2403')
20
+ end
21
+ def test_process_several_thresholds_result_is_ordered
22
+ assert_equal [%w[5.2403 524.0 0.000499725341796875],
23
+ %w[4.1719 1048.0 0.00099945068359375]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 4.1719')
24
+ end
25
+ def test_custom_discretization
26
+ assert_equal [%w[5.2403 527.0 0.0005025863647460938]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 -d 100')
27
+ end
28
+ def test_probability_wise_backgrond
29
+ assert_equal [%w[5.2403 0.0005025863647460938]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 -d 100 -b 0.25,0.25,0.25,0.25')
30
+ end
31
+ def test_custom_background
32
+ assert_equal [%w[5.2403 6.815000000000001e-06]], Helpers.find_pvalue_output('KLF4_f2.pwm 5.2403 -b 0.4,0.1,0.1,0.4')
33
+ end
34
+ end