bioinform 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41bb8dd19247a6f1b8e7643e5fbf1d0e03b823de
4
- data.tar.gz: 7dbd3f01dbea7fe1ed3125bef775cc72e5dccf8e
3
+ metadata.gz: 70e322a8657abaa2fb242f0b7774dfc3b38a1e83
4
+ data.tar.gz: 65e5cdc14dec4d99cb0266d8d4bf589ef44efb99
5
5
  SHA512:
6
- metadata.gz: a3e5c829bf134e07c7a03a56de61017ca9f3c7237e1c6a18e49d0cf57cdf1a3054c7501541070e85a756ae12231a84c6d04a6f94384b5d7dd57f93ceaf335e11
7
- data.tar.gz: 84d64628b85fd7b5e757637de51c074baeb98ebd8053c83c4af4b77bcf7e843fca10e545b472e7fda781cc9b3fba4ccb9b8bd8055e254b5f7a1f83d1575f672f
6
+ metadata.gz: 10a503972ed0e5ec8f9aba819230991d9ef33704ff587e47a6b310b98f3429aa580245499b13e17f59d5023213764887cf8bf92834aed28717746acbd8a2c6ad
7
+ data.tar.gz: bce479c347c8f439c6e133e14f1379b75ed855b26553059c85f2e04a04344f3c2885b44f35ac146128ecb75054b35d0267801509f21719afecc922be999b5639
data/TODO.txt CHANGED
@@ -1,3 +1,5 @@
1
+ PCM2PWM не имеет возможности вычислить псевдокаунт для матриц с разными каунтами в столбцах. Может быть брать логарифм и корень максимума. Или конкретной колонки?
2
+
1
3
  сделать работу с ValidationError
2
4
  сделать ошибки тэгированными
3
5
  обобщить модели фона на разные алфавиты
@@ -28,4 +30,6 @@ Decide:
28
30
  -- Whether to cache suffices: cache :best_suffix, obsolete: [:discrete!, :background!, ...]
29
31
 
30
32
  Specs
31
- -- PWM#probabilities, #score_variance, #gauss_estimation
33
+ -- PWM#probabilities, #score_variance, #gauss_estimation
34
+
35
+ background#to_s and WordwiseBackground#to_s
@@ -11,9 +11,14 @@ module Bioinform
11
11
  Bioinform::Background::Uniform
12
12
  end
13
13
 
14
+ def self.from_frequencies(frequencies)
15
+ Frequencies.new(frequencies)
16
+ end
17
+
14
18
  def self.from_gc_content(gc_content)
15
- p_at = (1.0 - gc_content) / 2.0;
16
- p_cg = gc_content / 2.0;
19
+ raise Error, 'GC-content should be withing range [0;1]' unless (0..1).include?(gc_content)
20
+ p_at = (1.0 - gc_content) / 2.0
21
+ p_cg = gc_content / 2.0
17
22
  Frequencies.new([p_at, p_cg, p_cg, p_at])
18
23
  end
19
24
 
@@ -79,7 +84,7 @@ module Bioinform
79
84
  end
80
85
 
81
86
  def to_s
82
- counts.join(',')
87
+ 'wordwise'
83
88
  end
84
89
  end
85
90
 
@@ -17,7 +17,7 @@ module Bioinform
17
17
  # and by lines which will be retained.
18
18
  #
19
19
  class MotifSplitter
20
- attr_reader :start_motif_pattern, :spliiter
20
+ attr_reader :start_motif_pattern, :splitter_pattern
21
21
 
22
22
  def initialize(options={})
23
23
  @start_motif_pattern = options.fetch(:start_motif_pattern, /^\s*([^-+\s\d.]+|>.*)/)
@@ -1,3 +1,3 @@
1
1
  module Bioinform
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/bioinform.rb CHANGED
@@ -11,65 +11,4 @@ require_relative 'bioinform/background'
11
11
  require_relative 'bioinform/alphabet'
12
12
 
13
13
  module Bioinform
14
- def self.get_model(data_model, matrix, name)
15
- Bioinform::MotifModel.const_get(data_model).new(matrix).named(name)
16
- end
17
-
18
- def self.get_model_from_string(data_model, matrix_string)
19
- motif_infos = MatrixParser.new.parse(matrix_string)
20
- get_model(data_model, motif_infos.matrix, name)
21
- end
22
-
23
- def self.get_pwm(data_model, matrix, background, pseudocount, effective_count)
24
- input_model = get_model_from_string(data_model, matrix)
25
- case input_model
26
- when MotifModel::PPM
27
- ppm2pcm_converter = ConversionAlgorithms::PPM2PCM.new(count: effective_count)
28
- pcm2pwm_converter = ConversionAlgorithms::PCM2PWM.new(background: background, pseudocount: pseudocount)
29
- pcm2pwm_converter.convert(ppm2pcm_converter.convert(input_model))
30
- when MotifModel::PCM
31
- pcm2pwm_converter = ConversionAlgorithms::PCM2PWM.new(background: background, pseudocount: pseudocount)
32
- pcm2pwm_converter.convert(input_model)
33
- when MotifModel::PWM
34
- input_model
35
- else
36
- raise Error, "Unknown input `#{input_model}`"
37
- end
38
- rescue => e
39
- raise Error, "PWM creation failed (#{e})"
40
- end
41
-
42
- def self.get_pcm(data_model, matrix, effective_count)
43
- input_model = get_model_from_string(data_model, matrix)
44
- case input_model
45
- when MotifModel::PPM
46
- ppm2pcm_converter = ConversionAlgorithms::PPM2PCM.new(count: effective_count)
47
- ppm2pcm_converter.convert(input_model)
48
- when MotifModel::PCM
49
- input_model
50
- when MotifModel::PWM
51
- raise Error, 'Conversion PWM-->PCM not yet implemented'
52
- else
53
- raise Error, "Unknown input `#{input_model}`"
54
- end
55
- rescue => e
56
- raise Error, "PCM creation failed (#{e})"
57
- end
58
-
59
- def self.get_ppm(data_model, matrix)
60
- input_model = get_model_from_string(data_model, matrix)
61
- case input_model
62
- when MotifModel::PPM
63
- input_model
64
- when MotifModel::PCM
65
- pcm2ppm_converter = ConversionAlgorithms::PCM2PPM.new
66
- pcm2ppm_converter.convert(input_model)
67
- when MotifModel::PWM
68
- raise Error, 'Conversion PWM-->PPM not yet implemented'
69
- else
70
- raise Error, "Unknown input `#{input_model}`"
71
- end
72
- rescue => e
73
- raise Error, "PPM creation failed (#{e})"
74
- end
75
14
  end
@@ -30,6 +30,8 @@ describe Bioinform::MotifSplitter do
30
30
 
31
31
  context 'with specified pattern' do
32
32
  let(:motif_splitter) { Bioinform::MotifSplitter.new(start_motif_pattern: /^NA\s+\w+$/, splitter_pattern: /^\/\/\s$/) }
33
+ specify{ expect(motif_splitter.splitter_pattern).to eq(/^\/\/\s$/) }
34
+ specify{ expect(motif_splitter.start_motif_pattern).to eq(/^NA\s+\w+$/) }
33
35
 
34
36
  let(:input_1) {
35
37
  "NA motif_1\n" +
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bioinform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Vorontsov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-14 00:00:00.000000000 Z
11
+ date: 2014-07-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A bunch of useful classes for bioinformatics
14
14
  email:
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project:
123
- rubygems_version: 2.3.0
123
+ rubygems_version: 2.4.1
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Classes for work with different input formats of positional matrices and