macroape 3.3.6 → 3.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/.gitignore +18 -18
  2. data/Gemfile +4 -4
  3. data/LICENSE +21 -21
  4. data/README.md +69 -67
  5. data/TODO.txt +1 -1
  6. data/benchmark/benchmark_helper.rb +5 -0
  7. data/benchmark/similarity_benchmark.rb +1 -4
  8. data/bin/align_motifs +1 -1
  9. data/bin/eval_alignment +1 -1
  10. data/bin/eval_similarity +1 -1
  11. data/bin/find_pvalue +1 -1
  12. data/bin/find_threshold +1 -1
  13. data/bin/preprocess_collection +1 -1
  14. data/bin/scan_collection +1 -1
  15. data/lib/macroape/aligned_pair_intersection.rb +1 -1
  16. data/lib/macroape/cli/align_motifs.rb +4 -4
  17. data/lib/macroape/cli/eval_alignment.rb +9 -6
  18. data/lib/macroape/cli/eval_similarity.rb +9 -6
  19. data/lib/macroape/cli/find_pvalue.rb +3 -3
  20. data/lib/macroape/cli/find_threshold.rb +3 -3
  21. data/lib/macroape/cli/preprocess_collection.rb +37 -13
  22. data/lib/macroape/cli/scan_collection.rb +28 -21
  23. data/lib/macroape/counting.rb +7 -13
  24. data/lib/macroape/pwm_compare.rb +8 -15
  25. data/lib/macroape/pwm_compare_aligned.rb +11 -38
  26. data/lib/macroape/version.rb +1 -1
  27. data/lib/macroape.rb +6 -7
  28. data/macroape.gemspec +1 -1
  29. data/spec/count_distribution_spec.rb +2 -3
  30. data/spec/spec_helper.rb +2 -2
  31. data/test/align_motifs_test.rb +1 -1
  32. data/test/data/KLF4_f2_scan_results_all.txt +4 -4
  33. data/test/data/KLF4_f2_scan_results_precise_mode.txt +4 -4
  34. data/test/data/collection_pcm_without_thresholds.yaml +185 -0
  35. data/test/data/collection_without_thresholds.yaml +185 -0
  36. data/test/data/medium_motif.pat +8 -0
  37. data/test/data/short_motif.pat +7 -0
  38. data/test/data/test_collection.yaml +27 -18
  39. data/test/eval_alignment_test.rb +1 -1
  40. data/test/eval_similarity_test.rb +1 -1
  41. data/test/find_pvalue_test.rb +1 -1
  42. data/test/find_threshold_test.rb +1 -1
  43. data/test/preprocess_collection_test.rb +59 -37
  44. data/test/scan_collection_test.rb +10 -1
  45. data/test/test_helper.rb +13 -9
  46. metadata +15 -6
@@ -1,4 +1,4 @@
1
- require 'macroape'
1
+ require_relative '../../macroape'
2
2
  require 'yaml'
3
3
 
4
4
  module Macroape
@@ -31,7 +31,7 @@ module Macroape
31
31
  cat motifs/KLF4.pat | ruby scan_collection.rb .stdin collection.yaml -p 0.005 --precise 0.03
32
32
  }
33
33
 
34
- if argv.empty? || ['-h', '--h', '-help', '--help'].any?{|help_option| argv.include?(help_option)}
34
+ if ['-h', '--h', '-help', '--help'].any?{|help_option| argv.include?(help_option)}
35
35
  STDERR.puts help_string
36
36
  exit
37
37
  end
@@ -90,34 +90,41 @@ module Macroape
90
90
  end
91
91
 
92
92
  query_pwm = data_model.new(query_input).to_pwm
93
- query_pwm.background(background_query).max_hash_size(max_hash_size)
93
+ query_pwm.set_parameters(background: background_query, max_hash_size: max_hash_size)
94
94
 
95
95
  query_pwm_rough = query_pwm.discrete(collection.parameters.rough_discretization)
96
96
  query_pwm_precise = query_pwm.discrete(collection.parameters.precise_discretization)
97
97
 
98
- query_threshold_rough = query_pwm_rough.threshold(pvalue)
99
- query_threshold_precise = query_pwm_precise.threshold(pvalue)
98
+ query_threshold_rough, query_rough_real_pvalue = query_pwm_rough.threshold_and_real_pvalue(pvalue)
99
+ query_threshold_precise, query_precise_real_pvalue = query_pwm_precise.threshold_and_real_pvalue(pvalue)
100
+
101
+ if query_precise_real_pvalue == 0
102
+ $stderr.puts "Query motif #{query_pwm.name} gives 0 recognized words for a given P-value of #{pvalue} with the precise discretization level of #{collection.parameters.precise_discretization}. It's impossible to scan collection for this motif"
103
+ return
104
+ end
105
+
106
+ if query_rough_real_pvalue == 0
107
+ query_pwm_rough, query_threshold_rough = query_pwm_precise, query_threshold_precise
108
+ $stderr.puts "Query motif #{query_pwm.name} gives 0 recognized words for a given P-value of #{pvalue} with the rough discretization level of #{collection.parameters.rough_discretization}. Forcing precise discretization level of #{collection.parameters.precise_discretization}"
109
+ end
100
110
 
101
111
  similarities = {}
102
112
  precision_file_mode = {}
103
113
 
104
- collection.each do |pwm, pwm_info|
105
- name = pwm.name
106
- pwm.background(collection.parameters.background).max_hash_size(max_hash_size)
107
- pwm_rough = pwm.discrete(collection.parameters.rough_discretization)
108
- pwm_precise = pwm.discrete(collection.parameters.precise_discretization)
109
-
110
- pwm_threshold_rough = pwm_info.rough[pvalue] * collection.parameters.rough_discretization
111
- pwm_threshold_precise = pwm_info.precise[pvalue] * collection.parameters.precise_discretization
112
-
114
+ collection.each do |collection_pwm, pwm_info|
115
+ name = collection_pwm.name
113
116
  STDERR.puts name unless silent
114
- cmp = Macroape::PWMCompare.new(query_pwm_rough, pwm_rough).max_hash_size(max_pair_hash_size)
115
- info = cmp.jaccard(query_threshold_rough, pwm_threshold_rough)
116
- precision_file_mode[name] = :rough
117
-
118
- if precision_mode == :precise and info[:similarity] >= minimal_similarity
119
- cmp = Macroape::PWMCompare.new(query_pwm_precise, pwm_precise).max_hash_size(max_pair_hash_size)
120
- info = cmp.jaccard(query_threshold_precise, pwm_threshold_precise)
117
+ collection_pwm.set_parameters(background: collection.parameters.background, max_hash_size: max_hash_size)
118
+ if pwm_info.rough
119
+ collection_pwm_rough = collection_pwm.discrete(collection.parameters.rough_discretization)
120
+ collection_threshold_rough = pwm_info.rough[pvalue] * collection.parameters.rough_discretization
121
+ info = Macroape::PWMCompare.new(query_pwm_rough, collection_pwm_rough).set_parameters(max_pair_hash_size: max_pair_hash_size).jaccard(query_threshold_rough, collection_threshold_rough)
122
+ precision_file_mode[name] = :rough
123
+ end
124
+ if !pwm_info.rough || (precision_mode == :precise) && (info[:similarity] >= minimal_similarity)
125
+ collection_pwm_precise = collection_pwm.discrete(collection.parameters.precise_discretization)
126
+ collection_threshold_precise = pwm_info.precise[pvalue] * collection.parameters.precise_discretization
127
+ info = Macroape::PWMCompare.new(query_pwm_precise, collection_pwm_precise).set_parameters(max_pair_hash_size: max_pair_hash_size).jaccard(query_threshold_precise, collection_threshold_precise)
121
128
  precision_file_mode[name] = :precise
122
129
  end
123
130
  similarities[name] = info
@@ -1,22 +1,16 @@
1
+ require 'bioinform'
2
+
1
3
  module Bioinform
2
4
  class PWM
3
5
  # sets or gets limit size of calculation hash. It's a defence against overuse CPU resources by non-appropriate data
4
- def max_hash_size!(new_max_hash_size)
5
- @max_hash_size = new_max_hash_size
6
- self
7
- end
8
-
9
- def max_hash_size(*args)
10
- case args.size
11
- when 0 then @max_hash_size
12
- when 1 then max_hash_size!(args.first)
13
- else raise ArgumentError, '#max_hash_size method can get 0 or 1 argument'
14
- end
15
- end
6
+ make_parameters :max_hash_size
16
7
 
17
8
  def threshold(pvalue)
18
9
  thresholds(pvalue){|_, thresh, _| return thresh }
19
10
  end
11
+ def threshold_and_real_pvalue(pvalue)
12
+ thresholds(pvalue){|_, thresh, real_pv| return thresh, real_pv }
13
+ end
20
14
 
21
15
  def thresholds(*pvalues)
22
16
  thresholds_by_pvalues(*pvalues).each do |pvalue,(thresholds, counts)|
@@ -80,7 +74,7 @@ module Bioinform
80
74
  4.times do |letter|
81
75
  new_score = score + column[letter]
82
76
  if new_score >= least_sufficient
83
- new_scores[new_score] += count * @background[letter]
77
+ new_scores[new_score] += count * background[letter]
84
78
  end
85
79
  end
86
80
  end
@@ -1,21 +1,14 @@
1
+ require 'bioinform/support/parameters'
2
+
1
3
  module Macroape
2
4
  class PWMCompare
5
+ include Parameters
3
6
  # sets or gets limit of summary size of calculation hash. It's a defence against overuse CPU resources by non-appropriate data
4
- def max_hash_size!(new_max_hash_size)
5
- @max_hash_size = new_max_hash_size
6
- self
7
- end
8
-
9
- def max_hash_size(*args)
10
- case args.size
11
- when 0 then @max_hash_size
12
- when 1 then max_hash_size!(args.first)
13
- else raise ArgumentError, '#max_hash_size method can get 0 or 1 argument'
14
- end
15
- end
16
-
17
- attr_reader :first, :second
7
+ make_parameters :max_pair_hash_size
8
+
9
+ attr_reader :first, :second, :parameters
18
10
  def initialize(first, second)
11
+ @parameters = OpenStruct.new
19
12
  @first = first
20
13
  @second = second
21
14
  end
@@ -34,7 +27,7 @@ module Macroape
34
27
 
35
28
  def each_alignment
36
29
  (-second.length..first.length).to_a.product([:direct,:revcomp]) do |shift, orientation|
37
- yield PWMCompareAligned.new(first, second, shift, orientation).max_hash_size(max_hash_size)
30
+ yield PWMCompareAligned.new(first, second, shift, orientation).set_parameters(max_pair_hash_size: max_pair_hash_size)
38
31
  end
39
32
  end
40
33
 
@@ -1,9 +1,16 @@
1
- require 'macroape/aligned_pair_intersection'
1
+ require 'bioinform/support/parameters'
2
+ require_relative './aligned_pair_intersection'
2
3
 
3
4
  module Macroape
4
5
  class PWMCompareAligned
5
- attr_reader :first, :second, :length, :shift, :orientation, :first_length, :second_length
6
+ include Parameters
7
+ # sets or gets limit of summary size of calculation hash. It's a defence against overuse CPU resources by non-appropriate data
8
+ make_parameters :max_pair_hash_size
9
+
10
+ attr_reader :first, :second, :length, :shift, :orientation, :first_length, :second_length, :parameters
11
+
6
12
  def initialize(first_unaligned, second_unaligned, shift, orientation)
13
+ @parameters = OpenStruct.new
7
14
  @shift, @orientation = shift, orientation
8
15
 
9
16
  @first_length, @second_length = first_unaligned.length, second_unaligned.length
@@ -21,6 +28,8 @@ module Macroape
21
28
  @first = first.right_augment(@length - first.length)
22
29
  @second = second.right_augment(@length - second.length)
23
30
  end
31
+
32
+
24
33
 
25
34
  def direct?
26
35
  orientation == :direct
@@ -80,26 +89,6 @@ module Macroape
80
89
  end
81
90
  end
82
91
 
83
- =begin
84
- def discrete(rate)
85
- PWMCompareAligned.new(first.discrete(rate), second.discrete(rate))
86
- end
87
-
88
- def sort_pair_of_matrices_by(&block)
89
- mat = first.pwm.zip(second.pwm).sort_by(&block).transpose
90
- PWMCompareAligned.new(SinglePWM(mat[0],first.probabilities), SinglePWM(mat[1], second.probabilities))
91
- end
92
- def sort_decreasing_max
93
- PWMCompareAligned.new(*sort_pair_of_matrices_by{|col_pair| -col_pair[0].max} )
94
- end
95
- def sort_increasing_min
96
- PWMCompareAligned.new(*sort_pair_of_matrices_by{|col_pair| col_pair[0].min} )
97
- end
98
- def permute_columns(permutation_index)
99
- PWMCompareAligned.new(first.permute(permutation_index), second.permute(permutation_index))
100
- end
101
- =end
102
-
103
92
  def jaccard(first_threshold, second_threshold)
104
93
  f = first.counts_by_thresholds(first_threshold).first
105
94
  s = second.counts_by_thresholds(second_threshold).first
@@ -131,22 +120,6 @@ module Macroape
131
120
  [first_len - shift, second_len].max
132
121
  end
133
122
  end
134
-
135
- # sets or gets limit of summary size of calculation hash. It's a defence against overuse CPU resources by non-appropriate data
136
- def max_hash_size!(new_max_hash_size)
137
- @max_hash_size = new_max_hash_size
138
- self
139
- end
140
-
141
- def max_hash_size(*args)
142
- case args.size
143
- when 0 then @max_hash_size
144
- when 1 then max_hash_size!(args.first)
145
- else raise ArgumentError, '#max_hash_size method can get 0 or 1 argument'
146
- end
147
- end
148
-
149
-
150
123
  end
151
124
 
152
125
  end
@@ -1,3 +1,3 @@
1
1
  module Macroape
2
- VERSION = "3.3.6"
2
+ VERSION = "3.3.7"
3
3
  end
data/lib/macroape.rb CHANGED
@@ -1,11 +1,10 @@
1
- require 'macroape/version'
1
+ require_relative 'macroape/version'
2
2
 
3
- require 'bioinform'
4
- require 'macroape/counting'
5
-
6
- require 'macroape/aligned_pair_intersection'
7
- require 'macroape/pwm_compare_aligned'
8
- require 'macroape/pwm_compare'
3
+ require_relative 'macroape/counting'
4
+ require_relative 'macroape/aligned_pair_intersection'
5
+ require_relative 'macroape/pwm_compare_aligned'
6
+ require_relative 'macroape/pwm_compare'
7
+ require_relative 'macroape/cli'
9
8
 
10
9
  module Macroape
11
10
  # Your code goes here...
data/macroape.gemspec CHANGED
@@ -15,5 +15,5 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Macroape::VERSION
17
17
 
18
- gem.add_dependency('bioinform', '>= 0.1.7')
18
+ gem.add_dependency('bioinform', '= 0.1.8')
19
19
  end
@@ -1,6 +1,5 @@
1
- require 'spec_helper'
2
- require 'bioinform'
3
- require 'macroape/counting'
1
+ require_relative 'spec_helper'
2
+ require_relative '../lib/macroape/counting'
4
3
 
5
4
  describe Bioinform::PWM do
6
5
  let :matrix_first do [[1,2,3,4],[10,20,30,40],[100,200,300,400]] end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- $lib_folder = File.dirname(__FILE__) + '/../lib'
2
- $LOAD_PATH.unshift $lib_folder
1
+ $bioinform_folder = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bioinform', 'lib'))
2
+ $LOAD_PATH.unshift $bioinform_folder
3
3
 
4
4
  require 'rspec'
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative 'test_helper'
2
2
 
3
3
  class TestAlignmotifs < Test::Unit::TestCase
4
4
  def test_align_motifs
@@ -1,4 +1,4 @@
1
- #pwm similarity shift overlap orientation
2
- KLF4_f2 1.0 0 10 direct
3
- SP1_f1 0.22754919499105544 -1 10 direct
4
- GABPA_f1 0.00043527658136684877 -8 5 direct
1
+ #pwm similarity shift overlap orientation
2
+ KLF4_f2 1.0 0 10 direct
3
+ SP1_f1 0.22754919499105544 -1 10 direct
4
+ GABPA_f1 0.00043527658136684877 -8 5 direct
@@ -1,4 +1,4 @@
1
- #pwm similarity shift overlap orientation
2
- KLF4_f2 1.0 0 10 direct *
3
- SP1_f1 0.2420758234928527 -1 10 direct *
4
- GABPA_f1 0.00043527658136684877 -8 5 direct
1
+ #pwm similarity shift overlap orientation
2
+ KLF4_f2 1.0 0 10 direct *
3
+ SP1_f1 0.2420758234928527 -1 10 direct *
4
+ GABPA_f1 0.00043527658136684877 -8 5 direct
@@ -0,0 +1,185 @@
1
+ --- &18345276 !ruby/object:Bioinform::Collection
2
+ collection:
3
+ - - !ruby/object:Bioinform::PCM
4
+ parameters: !ruby/object:OpenStruct
5
+ table:
6
+ :name: GABPA_f1
7
+ :tags:
8
+ - *18345276
9
+ :background:
10
+ - 1
11
+ - 1
12
+ - 1
13
+ - 1
14
+ modifiable: true
15
+ matrix:
16
+ - - 615.2572649050138
17
+ - 697.0698715160123
18
+ - 1261.1903440712872
19
+ - 176.43506582414153
20
+ - - 996.4929869323321
21
+ - 805.1878697364007
22
+ - 693.7695793644275
23
+ - 254.5021102832924
24
+ - - 1106.9888035794224
25
+ - 508.19444415177276
26
+ - 1029.8329748714536
27
+ - 104.93632371380718
28
+ - - 143.7121486195701
29
+ - 2086.4279160661263
30
+ - 518.37507049306
31
+ - 1.4374111377025893
32
+ - - 362.9541452731307
33
+ - 2369.473894845734
34
+ - 17.23702397004065
35
+ - 0.2874822275405179
36
+ - - 0.0
37
+ - 0.0
38
+ - 2749.952546316428
39
+ - 0.0
40
+ - - 0.0
41
+ - 0.0
42
+ - 2749.952546316428
43
+ - 0.0
44
+ - - 2748.2567506938462
45
+ - 1.695795622582083
46
+ - 0.0
47
+ - 0.0
48
+ - - 2726.6484322711017
49
+ - 1.1499289101620715
50
+ - 1.1499289101620715
51
+ - 21.00425622500253
52
+ - - 202.05697400573305
53
+ - 28.799402471063658
54
+ - 2518.808687612104
55
+ - 0.2874822275405179
56
+ - - 172.92889618879767
57
+ - 521.1240363384483
58
+ - 106.38197600987633
59
+ - 1949.517637779338
60
+ - - 398.1679460365911
61
+ - 424.20938204069563
62
+ - 1706.4024212088275
63
+ - 221.17279703034018
64
+ - - 764.2587933951809
65
+ - 675.0883944902433
66
+ - 1066.5413633225007
67
+ - 244.06399510852864
68
+ - !ruby/object:OpenStruct
69
+ table: {}
70
+ - - !ruby/object:Bioinform::PCM
71
+ parameters: !ruby/object:OpenStruct
72
+ table:
73
+ :name: KLF4_f2
74
+ :tags:
75
+ - *18345276
76
+ :background:
77
+ - 1
78
+ - 1
79
+ - 1
80
+ - 1
81
+ modifiable: true
82
+ matrix:
83
+ - - 1233.46088405354
84
+ - 93.18173277811673
85
+ - 1036.6014857092885
86
+ - 1258.2948629970272
87
+ - - 263.979242343185
88
+ - 5.314520555872139
89
+ - 3347.5949971525274
90
+ - 4.650205486388122
91
+ - - 76.7700780003465
92
+ - 6.643150694840173
93
+ - 3529.4896409394937
94
+ - 8.636095903292224
95
+ - - 57.86097393406657
96
+ - 18.102585643439472
97
+ - 3520.3342027139347
98
+ - 25.24120324653207
99
+ - - 518.1947904009378
100
+ - 1545.9062946905135
101
+ - 22.396758181071043
102
+ - 1535.0411222654507
103
+ - - 137.98151691820345
104
+ - 9.300410972776241
105
+ - 3456.320530770924
106
+ - 17.936506876068467
107
+ - - 115.27647661640499
108
+ - 81.51802997128804
109
+ - 1861.9425868567278
110
+ - 1562.801872093553
111
+ - - 227.8095486111286
112
+ - 42.84555258785854
113
+ - 3278.6396005325996
114
+ - 72.244263806387
115
+ - - 108.73384179997886
116
+ - 134.47328134862394
117
+ - 3162.880454846513
118
+ - 215.45138754285665
119
+ - - 238.49636899561344
120
+ - 2225.9561104691043
121
+ - 402.40727964384774
122
+ - 754.6792064294074
123
+ - !ruby/object:OpenStruct
124
+ table: {}
125
+ - - !ruby/object:Bioinform::PCM
126
+ parameters: !ruby/object:OpenStruct
127
+ table:
128
+ :name: SP1_f1
129
+ :tags:
130
+ - *18345276
131
+ :background:
132
+ - 1
133
+ - 1
134
+ - 1
135
+ - 1
136
+ modifiable: true
137
+ matrix:
138
+ - - 682.6436366358055
139
+ - 443.1455214015781
140
+ - 2075.655346294993
141
+ - 287.211468117951
142
+ - - 299.8883246804867
143
+ - 103.74338315843572
144
+ - 2613.8927022405364
145
+ - 471.1315623708902
146
+ - - 591.4892493324709
147
+ - 42.631827541794564
148
+ - 2845.1654083148564
149
+ - 9.36948726124641
150
+ - - 7.071084742361592
151
+ - 45.29093411231232
152
+ - 3432.8847704374107
153
+ - 3.409183158303573
154
+ - - 91.308984085713
155
+ - 19.1536481364332
156
+ - 3373.656949880137
157
+ - 4.5363903481026
158
+ - - 809.2082973387932
159
+ - 2246.941954176211
160
+ - 61.30766021687515
161
+ - 371.19806071846244
162
+ - - 120.56476435866055
163
+ - 42.4349244403591
164
+ - 3242.1560628684038
165
+ - 83.50022078295852
166
+ - - 13.72524477409959
167
+ - 35.858220519297525
168
+ - 3332.4066864946167
169
+ - 106.66582066236779
170
+ - - 558.1188080161639
171
+ - 90.0084504200356
172
+ - 2694.854973210736
173
+ - 145.67374080342415
174
+ - - 264.0088462230318
175
+ - 254.7175868081866
176
+ - 2796.88087480315
177
+ - 173.0486646159857
178
+ - - 519.46013914282
179
+ - 1874.9349086474765
180
+ - 654.5411208373813
181
+ - 439.7198038226514
182
+ - !ruby/object:OpenStruct
183
+ table: {}
184
+ parameters: !ruby/object:OpenStruct
185
+ table: {}
@@ -0,0 +1,185 @@
1
+ --- &18740484 !ruby/object:Bioinform::Collection
2
+ collection:
3
+ - - !ruby/object:Bioinform::PWM
4
+ parameters: !ruby/object:OpenStruct
5
+ table:
6
+ :name: GABPA_f1
7
+ :tags:
8
+ - *18740484
9
+ :background:
10
+ - 1
11
+ - 1
12
+ - 1
13
+ - 1
14
+ modifiable: true
15
+ matrix:
16
+ - - -0.1106670158341858
17
+ - 0.013801606113892391
18
+ - 0.6054596108973699
19
+ - -1.3518085041421573
20
+ - - 0.37030668921643345
21
+ - 0.15761121480429963
22
+ - 0.009069314183831202
23
+ - -0.9888619717703562
24
+ - - 0.47526546359546684
25
+ - -0.3011678534572083
26
+ - 0.4031522994412777
27
+ - -1.8638752827041059
28
+ - - -1.5544255540164373
29
+ - 1.1082369687811506
30
+ - -0.2814091552834454
31
+ - -5.30708531823271
32
+ - - -0.6362037835776368
33
+ - 1.235338189985594
34
+ - -3.5801322928552253
35
+ - -5.717323067092849
36
+ - - -5.852906870733575
37
+ - -5.852906870733575
38
+ - 1.3841383838057746
39
+ - -5.852906870733575
40
+ - - -5.852906870733575
41
+ - -5.852906870733575
42
+ - 1.3841383838057746
43
+ - -5.852906870733575
44
+ - - 1.3835219739184708
45
+ - -5.2341956006430985
46
+ - -5.852906870733575
47
+ - -5.852906870733575
48
+ - - 1.3756340514956562
49
+ - -5.394962755562375
50
+ - -5.394962755562375
51
+ - -3.401117964959733
52
+ - - -1.2176198315414444
53
+ - -3.109079898175411
54
+ - 1.2964067931472216
55
+ - -5.717323067092849
56
+ - - -1.3716559438167257
57
+ - -0.2761401935045069
58
+ - -1.8504445165866068
59
+ - 1.0404320473626856
60
+ - - -0.5440863133031895
61
+ - -0.48103682561971345
62
+ - 0.907381908447086
63
+ - -1.1280642594012078
64
+ - - 0.10557340209290218
65
+ - -0.01814819455289191
66
+ - 0.4381106695354074
67
+ - -1.0304105539540915
68
+ - !ruby/object:OpenStruct
69
+ table: {}
70
+ - - !ruby/object:Bioinform::PWM
71
+ parameters: !ruby/object:OpenStruct
72
+ table:
73
+ :name: KLF4_f2
74
+ :tags:
75
+ - *18740484
76
+ :background:
77
+ - 1
78
+ - 1
79
+ - 1
80
+ - 1
81
+ modifiable: true
82
+ matrix:
83
+ - - 0.30861857265872605
84
+ - -2.254321000121579
85
+ - 0.13505703522674192
86
+ - 0.3285194224375633
87
+ - - -1.227018967707036
88
+ - -4.814127713368663
89
+ - 1.3059890687390967
90
+ - -4.908681463544344
91
+ - - -2.443469374521196
92
+ - -4.648238485031404
93
+ - 1.3588686548279805
94
+ - -4.441801801188402
95
+ - - -2.7177827948276123
96
+ - -3.8073538975356565
97
+ - 1.356272809724262
98
+ - -3.504104725510225
99
+ - - -0.5563232977367343
100
+ - 0.5340697765121405
101
+ - -3.61417723090579
102
+ - 0.5270259776377405
103
+ - - -1.8687622060887386
104
+ - -4.381483976582316
105
+ - 1.337932245336098
106
+ - -3.815629658877517
107
+ - - -2.045671123823928
108
+ - -2.384975142213679
109
+ - 0.7198551207724355
110
+ - 0.5449254135616948
111
+ - - -1.373157530374372
112
+ - -3.0063112097748217
113
+ - 1.285188335493552
114
+ - -2.5026044231773543
115
+ - - -2.1030513122772208
116
+ - -1.8941348100402244
117
+ - 1.249265758393991
118
+ - -1.4284210948906104
119
+ - - -1.3277128628152939
120
+ - 0.8982415633049462
121
+ - -0.8080773665408135
122
+ - -0.18161647647456935
123
+ - !ruby/object:OpenStruct
124
+ table: {}
125
+ - - !ruby/object:Bioinform::PWM
126
+ parameters: !ruby/object:OpenStruct
127
+ table:
128
+ :name: SP1_f1
129
+ :tags:
130
+ - *18740484
131
+ :background:
132
+ - 1
133
+ - 1
134
+ - 1
135
+ - 1
136
+ modifiable: true
137
+ matrix:
138
+ - - -0.24435707885585292
139
+ - -0.674823404693731
140
+ - 0.8657012535789866
141
+ - -1.1060188862599287
142
+ - - -1.0631255752097797
143
+ - -2.111925969423868
144
+ - 1.0960627561110403
145
+ - -0.6138563775211977
146
+ - - -0.3872276234760535
147
+ - -2.9739851913218045
148
+ - 1.1807800242010378
149
+ - -4.338927525031566
150
+ - - -4.563896055436894
151
+ - -2.9161633002532277
152
+ - 1.3684371349982638
153
+ - -5.077972423609655
154
+ - - -2.2369752892820083
155
+ - -3.7196436313301846
156
+ - 1.3510439136452734
157
+ - -4.889930670508233
158
+ - - -0.07473964149330865
159
+ - 0.944919654762011
160
+ - -2.6246857648086044
161
+ - -0.8510983487822436
162
+ - - -1.9643526491643322
163
+ - -2.978402770880115
164
+ - 1.3113096718240573
165
+ - -2.324334259499025
166
+ - - -4.0155484139655835
167
+ - -3.1384268078096667
168
+ - 1.3387488589788057
169
+ - -2.084673903537648
170
+ - - -0.44509385828355363
171
+ - -2.2510053061629702
172
+ - 1.1265431574368685
173
+ - -1.7780413702431372
174
+ - - -1.1896356092245048
175
+ - -1.2251832285630027
176
+ - 1.1636760063747527
177
+ - -1.6080243648157353
178
+ - - -0.5166047365590571
179
+ - 0.7641033353626657
180
+ - -0.2862677570028208
181
+ - -0.68254820978656
182
+ - !ruby/object:OpenStruct
183
+ table: {}
184
+ parameters: !ruby/object:OpenStruct
185
+ table: {}
@@ -0,0 +1,8 @@
1
+ medium_motif_name
2
+ 0.30861857265872605 -2.254321000121579 0.13505703522674192 0.3285194224375633
3
+ -1.227018967707036 -4.814127713368663 1.3059890687390967 -4.908681463544344
4
+ -2.443469374521196 -4.648238485031404 1.3588686548279805 -4.441801801188402
5
+ -2.7177827948276123 -3.8073538975356565 1.356272809724262 -3.504104725510225
6
+ -0.5563232977367343 0.5340697765121405 -3.61417723090579 0.5270259776377405
7
+ -1.8687622060887386 -4.381483976582316 1.337932245336098 -3.815629658877517
8
+ -2.045671123823928 -2.384975142213679 0.7198551207724355 0.5449254135616948