diadem 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/lib/diadem/calculator.rb +3 -2
- data/lib/diadem/cubic/commandline.rb +3 -1
- data/lib/diadem/cubic.rb +5 -1
- data/lib/diadem/version.rb +1 -1
- data/spec/diadem/cubic_spec.rb +2 -2
- data/spec/testfiles/input.csv +1 -1
- data/spec/testfiles/input.cubic.csv +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f637d86e13f2cadb95b2eae228c4a2ac4e7a9aa
|
4
|
+
data.tar.gz: c44c5804cb1b5d1120e50be0f794a5f4bb0d8a19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da3ae2d0577b036c0ce57a1283ff4a5b1ad8d11b2b2c5f1349480c4222276e78c83344adc1a452e4e7d9855a3cb9d0fec8f34ff9707361bfc77adbceda901036
|
7
|
+
data.tar.gz: c027bbb920cb02cbb01e7301e084a61b45317217a99162c484cf25e8e4644b6a7e3eb52cbcd03c43d05a36845acd825e6db14c496c6cd99a248cfa948fdf2764
|
data/lib/diadem/calculator.rb
CHANGED
@@ -34,12 +34,13 @@ module Diadem
|
|
34
34
|
STATIC_MATCH_BLOCK = lambda {|match| match }
|
35
35
|
|
36
36
|
MF = Mspire::MolecularFormula
|
37
|
-
OXIDIZED_METHIONINE = Modification.new('m', MF['O'], &VAR_MATCH_BLOCK)
|
37
|
+
OXIDIZED_METHIONINE = Modification.new('m', MF['O'], true, false, &VAR_MATCH_BLOCK)
|
38
|
+
PYROGLUTAMATE_Q = Modification.new('q', MF['NH3'], false, false, &VAR_MATCH_BLOCK)
|
38
39
|
# aka methylcarboxamido
|
39
40
|
CARBAMIDOMETHYL = Modification.new('C', MF['C2H3NO'])
|
40
41
|
|
41
42
|
DEFAULT_STATIC_MODS = [CARBAMIDOMETHYL]
|
42
|
-
DEFAULT_VAR_MODS = [OXIDIZED_METHIONINE]
|
43
|
+
DEFAULT_VAR_MODS = [OXIDIZED_METHIONINE, PYROGLUTAMATE_Q]
|
43
44
|
DEFAULT_MODS = DEFAULT_STATIC_MODS + DEFAULT_VAR_MODS
|
44
45
|
end
|
45
46
|
|
@@ -15,6 +15,7 @@ module Diadem
|
|
15
15
|
opt = OpenStruct.new( {
|
16
16
|
carbamidomethyl: true,
|
17
17
|
oxidized_met: true,
|
18
|
+
pyroglutamate_from_glutamine: true,
|
18
19
|
element: :H,
|
19
20
|
mass_number: 2,
|
20
21
|
range: make_range[ start, stop, step ],
|
@@ -27,7 +28,8 @@ module Diadem
|
|
27
28
|
prog = File.basename($0)
|
28
29
|
op.banner = "usage: #{prog} <AASEQ> ..."
|
29
30
|
op.separator " or: #{prog} <aaseqs>.csv"
|
30
|
-
op.separator " <aaseqs>.csv is a single column of AA sequences
|
31
|
+
op.separator " <aaseqs>.csv is a single column of AA sequences"
|
32
|
+
op.separator " (csv file should have no header; blank lines will be ignored)"
|
31
33
|
op.separator ""
|
32
34
|
op.separator "output: tab delimited to stdout if AASEQ"
|
33
35
|
op.separator " <aaseqs>#{Diadem::Cubic::FILE_EXT} if csv input"
|
data/lib/diadem/cubic.rb
CHANGED
@@ -38,6 +38,8 @@ module Diadem
|
|
38
38
|
out.puts cats.join(opt.delim)
|
39
39
|
end
|
40
40
|
|
41
|
+
aaseqs.compact! # ignore blank lines
|
42
|
+
|
41
43
|
aaseqs.each do |aaseq|
|
42
44
|
# we cannot ensure the base 0% has been included in the range, so
|
43
45
|
# calculate it separately
|
@@ -48,7 +50,9 @@ module Diadem
|
|
48
50
|
if opt.oxidized_met
|
49
51
|
mods << Diadem::Calculator::Modification::OXIDIZED_METHIONINE
|
50
52
|
end
|
51
|
-
|
53
|
+
if opt.pyroglutamate_from_glutamine
|
54
|
+
mods << Diadem::Calculator::Modification::PYROGLUTAMATE_Q
|
55
|
+
end
|
52
56
|
|
53
57
|
(distributions, info) = calc.calculate_isotope_distributions(aaseq, opt.range.dup, mods: mods)
|
54
58
|
polynomials = Diadem::Calculator.distributions_to_polynomials(opt.range.to_a, distributions, opt.num_isotopomers, opt.degree)
|
data/lib/diadem/version.rb
CHANGED
data/spec/diadem/cubic_spec.rb
CHANGED
@@ -12,13 +12,13 @@ describe Diadem::Cubic do
|
|
12
12
|
rows.size.should == 4
|
13
13
|
lrow = rows.last
|
14
14
|
# these are verified
|
15
|
-
lrow[0,10].should == ["
|
15
|
+
lrow[0,10].should == ["qEVHCmLGQSTCEMIR", "C:+C2H3NO C:+C2H3NO m:+O q:-H3N", "C78H128N24O28S4", "1976.821274", "34.620000000000005", "0.289882", "0.292743", "0.215357", "0.117551", "0.053498"]
|
16
16
|
# the below values are not verified for complete accuracy, but are frozen.
|
17
17
|
# I *have* verified that my polyfit gives exactly the same as numpy.polyfit
|
18
18
|
# I *have* verified that my fits give nearly the identical result when the
|
19
19
|
# formula is used to calculate the function and compared with the raw
|
20
20
|
# data.
|
21
|
-
coeff_exp = ["-
|
21
|
+
coeff_exp = ["-421.06267678409387", "101.55583060246754", "-8.74184647393767", "0.2846017318740318", "255.13376040316183", "-26.207563393269137", "-2.5009206278495983", "0.30193493201897365", "393.62982958471537", "-79.40850743514103", "2.7886588615718955", "0.21604781660342917", "149.4201526179288", "-54.33441042414497", "4.230023348103629", "0.11408203229437128", "-115.19983206905863", "-4.686811308294118", "2.826941989880497", "0.0505824649152385"]
|
22
22
|
lrow[10..-1].zip( coeff_exp ) do |mine, csv|
|
23
23
|
mine.to_f.should be_within(1e-5).of(csv.to_f)
|
24
24
|
end
|
data/spec/testfiles/input.csv
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
sequence,mods,formula,mass,n,M0,M1,M2,M3,M4,M0_coeff_3,M0_coeff_2,M0_coeff_1,M0_coeff_0,M1_coeff_3,M1_coeff_2,M1_coeff_1,M1_coeff_0,M2_coeff_3,M2_coeff_2,M2_coeff_1,M2_coeff_0,M3_coeff_3,M3_coeff_2,M3_coeff_1,M3_coeff_0,M4_coeff_3,M4_coeff_2,M4_coeff_1,M4_coeff_0
|
2
|
-
LGADmEDLR,m:+O,C41H70N12O17S,1034.47026,19.540000000000003,0.
|
3
|
-
NEVHTMLGQSTEEIR,,C71H118N22O27S,1742.825748,32.35,0.
|
4
|
-
|
2
|
+
LGADmEDLR,m:+O,C41H70N12O17S,1034.47026,19.540000000000003,0.550348,0.286741,0.117269,0.034957,0.008548,-268.83806038271666,82.91209935775052,-10.344772514162356,0.5485912003693671,439.1046288256501,-93.61414288987667,4.01202160888605,0.29153216780815266,11.667817052328587,-29.403940089540477,4.1306887602663505,0.11404937487110747,-140.54572999460447,14.642401129440309,1.7320310779134869,0.03420353623576916,-78.23289185014181,17.216398341654156,0.388147708929765,0.009063964446250627
|
3
|
+
NEVHTMLGQSTEEIR,,C71H118N22O27S,1742.825748,32.35,0.370025,0.332821,0.185167,0.076668,0.025712,-480.49281579799424,118.74513294949665,-10.615440747086659,0.364452198949101,379.51708494205866,-50.34313707648543,-1.5425165552673892,0.34351966982503457,462.31697038148707,-103.36201724420621,5.133747206428021,0.18491762830342748,34.56524075782778,-40.68019904822784,4.753888268873721,0.07141097606116147,-223.30372416112442,18.0658089615334,2.075005867067416,0.02337635300850256
|
4
|
+
qEVHCmLGQSTCEMIR,C:+C2H3NO C:+C2H3NO m:+O q:-H3N,C78H128N24O28S4,1976.821274,34.620000000000005,0.289882,0.292743,0.215357,0.117551,0.053498,-421.06267678409387,101.55583060246754,-8.74184647393767,0.2846017318740318,255.13376040316183,-26.207563393269137,-2.5009206278495983,0.30193493201897365,393.62982958471537,-79.40850743514103,2.7886588615718955,0.21604781660342917,149.4201526179288,-54.33441042414497,4.230023348103629,0.11408203229437128,-115.19983206905863,-4.686811308294118,2.826941989880497,0.0505824649152385
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diadem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Prince
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mspire
|