isoelectric_point 0.0.5 → 0.0.6
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.
- data/README.rdoc +28 -14
- data/lib/isoelectric_point.rb +2 -0
- data/lib/isoelectric_point/aa.rb +8 -8
- data/lib/isoelectric_point/pka_data.rb +2 -2
- data/test/aa_test.rb +7 -6
- metadata +7 -5
data/README.rdoc
CHANGED
@@ -1,32 +1,39 @@
|
|
1
1
|
= isoelectric_point
|
2
|
-
|
3
|
-
It's currently beeing refactored to fit into bioruby.
|
2
|
+
The isoelectric point (pI), sometimes abbreviated to iep, is the pH at which a particular molecule or surface carries no net electrical charge.
|
4
3
|
|
5
|
-
|
6
|
-
|
4
|
+
This library is a ruby implementation for calculating the iep of a protein, based on bioperl's approach.
|
5
|
+
It can be installed as a gem. It is currently been refactored to fit as a bioruby plugin.
|
6
|
+
|
7
|
+
|
8
|
+
== Supported PKA sets
|
9
|
+
Support for the following Pka sets is available
|
7
10
|
* dta_select
|
8
11
|
* emboss
|
9
12
|
* rodwell
|
10
13
|
* wikipedia
|
11
14
|
* sillero
|
12
15
|
|
16
|
+
You can also create a custom Pka set as shown in the example
|
17
|
+
|
13
18
|
== Installation
|
14
|
-
gem install
|
19
|
+
gem install 'bio'
|
20
|
+
gem install 'isoelectric_point'
|
15
21
|
|
16
22
|
== Usage
|
23
|
+
require 'bio'
|
17
24
|
require 'isoelectric_point'
|
18
|
-
|
19
|
-
|
20
|
-
aa = AA.new("KKGFTCGELA")
|
25
|
+
|
26
|
+
protein_seq = Bio::Sequence::AA.new("KKGFTCGELA")
|
21
27
|
|
22
28
|
#what is the protein charge at ph 14?
|
23
|
-
charge =
|
29
|
+
charge = protein_seq.calculate_charge_at(14) #=>-2.999795857467562
|
30
|
+
|
31
|
+
#calculate the ph using dtaselect pka set and round off to 3 decimal places
|
24
32
|
|
25
|
-
|
26
|
-
ph = aa.calculate_iep('dtaselect', 3)
|
33
|
+
isoelectric_point = protein_seq.calculate_iep('dtaselect', 3) #=>8.219
|
27
34
|
|
28
|
-
# calculate the ph with a custom set
|
29
|
-
|
35
|
+
# calculate the iep ph with a custom set
|
36
|
+
custom_pka_set = { "N_TERMINUS" => 8.1,
|
30
37
|
"K" => 10.1,
|
31
38
|
"R" => 12.1,
|
32
39
|
"H" => 6.4,
|
@@ -36,4 +43,11 @@ The available pka sets are:
|
|
36
43
|
"C" => 8.33,
|
37
44
|
"Y" => 9.5
|
38
45
|
}
|
39
|
-
|
46
|
+
iep_ph = protein_seq.calculate_iep(custom, 3) #=> 8.193
|
47
|
+
|
48
|
+
|
49
|
+
== Authors
|
50
|
+
George Githinji -- KEMRI-Wellcome Trust Research program (georgkam@gmail.com)
|
51
|
+
Pascal Betz -- Simplificator GmbH
|
52
|
+
|
53
|
+
Copyright (C) 2010 George Githinji
|
data/lib/isoelectric_point.rb
CHANGED
data/lib/isoelectric_point/aa.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Bio
|
2
|
-
|
3
|
-
class AA
|
2
|
+
class Sequence
|
3
|
+
class AA
|
4
4
|
CHARGED_GROUPS = ['K', 'R', 'H', 'D', 'E', 'C', 'Y']
|
5
5
|
|
6
6
|
def initialize(sequence)
|
@@ -74,11 +74,11 @@ module Bio
|
|
74
74
|
if pka_name_or_set.is_a?(Hash)
|
75
75
|
pka_name_or_set
|
76
76
|
else
|
77
|
-
set = PkaData::PKAS[pka_name_or_set]
|
77
|
+
set = Bio::Sequence::PkaData::PKAS[pka_name_or_set]
|
78
78
|
raise ArgumentError.new("Set '#{pka_name_or_set}' is unknown. Please specify one of #{PkaData::PKAS.keys.join(', ')} or pass a custom set") unless set
|
79
79
|
set
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
80
|
+
end #if
|
81
|
+
end #select_pka
|
82
|
+
end #class AA
|
83
|
+
end #class Sequence
|
84
|
+
end #module Bio
|
data/test/aa_test.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
|
2
|
+
|
3
|
+
# include Bio::Sequence
|
3
4
|
class AATest < Test::Unit::TestCase
|
4
5
|
|
5
6
|
context 'some known sequences' do
|
@@ -26,7 +27,7 @@ class AATest < Test::Unit::TestCase
|
|
26
27
|
should 'calculate iep' do
|
27
28
|
places = 2
|
28
29
|
@known.each do |sequence, expected|
|
29
|
-
actual = AA.new(sequence).calculate_iep('dtaselect', places)
|
30
|
+
actual = Bio::Sequence::AA.new(sequence).calculate_iep('dtaselect', places)
|
30
31
|
assert_equal expected.round_to_places(places), actual, "Expected the iep to be #{expected} but was #{actual} for #{sequence}"
|
31
32
|
end
|
32
33
|
end
|
@@ -34,26 +35,26 @@ class AATest < Test::Unit::TestCase
|
|
34
35
|
|
35
36
|
should "Raise if not sequence given" do
|
36
37
|
assert_raise ArgumentError do
|
37
|
-
AA.new(nil)
|
38
|
+
Bio::Sequence::AA.new(nil)
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
42
|
should "Raise if empty sequence given" do
|
42
43
|
assert_raise ArgumentError do
|
43
|
-
AA.new(' ')
|
44
|
+
Bio::Sequence::AA.new(' ')
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
47
48
|
|
48
49
|
should "Raise if unknown pks used" do
|
49
50
|
assert_raise ArgumentError do
|
50
|
-
AA.new('PG', 'youdontknowme')
|
51
|
+
Bio::Sequence::AA.new('PG', 'youdontknowme')
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
54
55
|
context "a Sequence" do
|
55
56
|
setup do
|
56
|
-
@sequence = AA.new("PGAKAAAKKPKKAAG")
|
57
|
+
@sequence = Bio::Sequence::AA.new("PGAKAAAKKPKKAAG")
|
57
58
|
end
|
58
59
|
|
59
60
|
should "calculates the isolectric point to 0 places" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isoelectric_point
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- GeorgeG
|
@@ -48,7 +48,9 @@ dependencies:
|
|
48
48
|
type: :development
|
49
49
|
version_requirements: *id002
|
50
50
|
description: Calculate the Isoelectric point
|
51
|
-
email:
|
51
|
+
email:
|
52
|
+
- info@simplificator.com
|
53
|
+
- georgkam@gmail.com
|
52
54
|
executables: []
|
53
55
|
|
54
56
|
extensions: []
|
@@ -99,7 +101,7 @@ rubyforge_project:
|
|
99
101
|
rubygems_version: 1.3.7
|
100
102
|
signing_key:
|
101
103
|
specification_version: 3
|
102
|
-
summary: Calculate
|
104
|
+
summary: Calculate the iso-electric point of a protein sequence.
|
103
105
|
test_files:
|
104
106
|
- test/aa_test.rb
|
105
107
|
- test/extensions_test.rb
|