CycloBranch
cFragmentIons.h
Go to the documentation of this file.
1
7#ifndef _CFRAGMENTIONS_H
8#define _CFRAGMENTIONS_H
9
10#include <string>
11#include <iostream>
12#include <iomanip>
13#include <fstream>
14#include <map>
15#include <vector>
16#include <QMetaType>
17#include "core/utilities.h"
18
19
20using namespace std;
21
22
23// monoisotopic masses
24const double H = 1.0078250321;
25const double D = 2.014102;
26const double T = 3.016049;
27const double He = 4.002606;
28const double Li = 7.016004;
29const double Be = 9.012182;
30const double B = 11.009306;
31const double C = 12.0;
32const double N = 14.0030740052;
33const double O = 15.9949146221;
34const double F = 18.998404;
35const double Ne = 19.992439;
36const double Na = 22.989771;
37const double Mg = 23.985043;
38const double Al = 26.981539;
39const double Si = 27.976927;
40const double P = 30.97376151;
41const double S = 31.97207069;
42const double Cl = 34.968853;
43const double Ar = 39.962383;
44const double K = 38.963707;
45const double Ca = 39.962589;
46const double Sc = 44.95591;
47const double Ti = 47.947948;
48const double V = 50.943962;
49const double Cr = 51.940514;
50const double Mn = 54.938049;
51const double Fe = 55.93494;
52const double Co = 58.933201;
53const double Ni = 57.935349;
54const double Cu = 62.9296;
55const double Zn = 63.929146;
56const double Ga = 68.925583;
57const double Ge = 73.921181;
58const double As = 74.921600;
59const double Se = 79.916519;
60const double Br = 78.918327;
61const double Kr = 83.911507;
62const double Rb = 84.911789;
63const double Sr = 87.905617;
64const double Y = 88.905846;
65const double Zr = 89.904701;
66const double Nb = 92.906403;
67const double Mo = 97.905411;
68const double Tc = 97.907219;
69const double Ru = 101.904388;
70const double Rh = 102.905502;
71const double Pd = 105.903481;
72const double Ag = 106.905090;
73const double Cd = 113.903358;
74const double In = 114.903877;
75const double Sn = 119.902199;
76const double Sb = 120.903824;
77const double Te = 129.906219;
78const double I = 126.904457;
79const double Xe = 131.904160;
80const double Cs = 132.905441;
81const double Ba = 137.905243;
82const double La = 138.906342;
83const double Ce = 139.905441;
84const double Pr = 140.907593;
85const double Nd = 141.907700;
86const double Pm = 144.912750;
87const double Sm = 151.919693;
88const double Eu = 152.921204;
89const double Gd = 157.924103;
90const double Tb = 158.925293;
91const double Dy = 163.929199;
92const double Ho = 164.930298;
93const double Er = 165.930298;
94const double Tm = 168.934204;
95const double Yb = 173.938904;
96const double Lu = 174.940796;
97const double Hf = 179.946503;
98const double Ta = 180.947998;
99const double W = 183.950897;
100const double Re = 186.955597;
101const double Os = 191.961502;
102const double Ir = 192.962906;
103const double Pt = 194.964798;
104const double Au = 196.966507;
105const double Hg = 201.970596;
106const double Tl = 204.974396;
107const double Pb = 207.976593;
108const double Bi = 208.980392;
109const double Po = 208.982422;
110const double At = 209.987137;
111const double Rn = 222.017563;
112const double Fr = 209.996399;
113const double Ra = 226.025406;
114const double Ac = 227.027740;
115const double Th = 232.038055;
116const double Pa = 231.035904;
117const double U = 238.050781;
118const double Np = 237.048172;
119const double Pu = 242.058746;
120const double Am = 243.061371;
121const double Cm = 247.070343;
122const double Bk = 247.070297;
123const double Cf = 251.079575;
124const double Es = 252.082977;
125const double Fm = 257.095093;
126const double Md = 258.098419;
127const double No = 259.101044;
128const double Lr = 262.109802;
129
130const double R = 0;
131const double X = 0;
132const double e = H - 1.00727645;
133
134
135// monoisotopic masses of natural isotopes
136const double H1 = H;
137const double H2 = D;
138//const double H3 = T;
139const double He3 = 3.016029;
140const double He4 = He;
141const double Li6 = 6.015122;
142const double Li7 = Li;
143const double Be9 = Be;
144const double B10 = 10.012937;
145const double B11 = B;
146const double C12 = C;
147const double C13 = 13.003355;
148//const double C14 = 14.003242;
149const double N14 = N;
150const double N15 = 15.000109;
151const double O16 = O;
152const double O17 = 16.999132;
153const double O18 = 17.999160;
154const double F19 = F;
155const double Ne20 = Ne;
156const double Ne21 = 20.993847;
157const double Ne22 = 21.991386;
158const double Na23 = Na;
159const double Mg24 = Mg;
160const double Mg25 = 24.985837;
161const double Mg26 = 25.982593;
162const double Al27 = Al;
163const double Si28 = Si;
164const double Si29 = 28.97649;
165const double Si30 = 29.973770;
166const double P31 = P;
167const double S32 = S;
168const double S33 = 32.971458;
169const double S34 = 33.967867;
170const double S36 = 35.967081;
171const double Cl35 = Cl;
172const double Cl37 = 36.965903;
173const double Ar36 = 35.967546;
174const double Ar38 = 37.962732;
175const double Ar40 = Ar;
176const double K39 = K;
177const double K40 = 39.963999;
178const double K41 = 40.961825;
179const double Ca40 = Ca;
180const double Ca42 = 41.958618;
181const double Ca43 = 42.958767;
182const double Ca44 = 43.955481;
183const double Ca46 = 45.953693;
184const double Ca48 = 47.952534;
185const double Sc45 = Sc;
186const double Ti46 = 45.952629;
187const double Ti47 = 46.951764;
188const double Ti48 = Ti;
189const double Ti49 = 48.947871;
190const double Ti50 = 49.944792;
191const double V50 = 49.947163;
192const double V51 = V;
193const double Cr50 = 49.946046;
194const double Cr52 = Cr;
195const double Cr53 = 52.940651;
196const double Cr54 = 53.938885;
197const double Mn55 = Mn;
198const double Fe54 = 53.939612;
199const double Fe56 = Fe;
200const double Fe57 = 56.935399;
201const double Fe58 = 57.933280;
202const double Co59 = Co;
203const double Ni58 = Ni;
204const double Ni60 = 59.930788;
205const double Ni61 = 60.931060;
206const double Ni62 = 61.928346;
207const double Ni64 = 63.927970;
208const double Cu63 = Cu;
209const double Cu65 = 64.927793;
210const double Zn64 = Zn;
211const double Zn66 = 65.926034;
212const double Zn67 = 66.927129;
213const double Zn68 = 67.924846;
214const double Zn70 = 69.925325;
215const double Ga69 = Ga;
216const double Ga71 = 70.9247;
217const double Ge70 = 69.924250;
218const double Ge72 = 71.922076;
219const double Ge73 = 72.923459;
220const double Ge74 = Ge;
221const double Ge76 = 75.921403;
222const double As75 = As;
223const double Se74 = 73.922477;
224const double Se76 = 75.919214;
225const double Se77 = 76.919915;
226const double Se78 = 77.917310;
227const double Se80 = Se;
228const double Se82 = 81.9167;
229const double Br79 = Br;
230const double Br81 = 80.916291;
231const double Kr78 = 77.920386;
232const double Kr80 = 79.916378;
233const double Kr82 = 81.913485;
234const double Kr83 = 82.914136;
235const double Kr84 = Kr;
236const double Kr86 = 85.910610;
237const double Rb85 = Rb;
238const double Rb87 = 86.909183;
239const double Sr84 = 83.913425;
240const double Sr86 = 85.909262;
241const double Sr87 = 86.908879;
242const double Sr88 = Sr;
243const double Y89 = Y;
244const double Zr90 = Zr;
245const double Zr91 = 90.905645;
246const double Zr92 = 91.90504;
247const double Zr94 = 93.906316;
248const double Zr96 = 95.908276;
249const double Nb93 = Nb;
250const double Mo92 = 91.906810;
251const double Mo94 = 93.905088;
252const double Mo95 = 94.905841;
253const double Mo96 = 95.904679;
254const double Mo97 = 96.906021;
255const double Mo98 = Mo;
256const double Mo100 = 99.907477;
257const double Tc98 = Tc;
258const double Ru96 = 95.907598;
259const double Ru98 = 97.905287;
260const double Ru99 = 98.905939;
261const double Ru100 = 99.904220;
262const double Ru101 = 100.905582;
263const double Ru102 = Ru;
264const double Ru104 = 103.90543;
265const double Rh103 = Rh;
266const double Pd102 = 101.905608;
267const double Pd104 = 103.904035;
268const double Pd105 = 104.905084;
269const double Pd106 = Pd;
270const double Pd108 = 107.903894;
271const double Pd110 = 109.905152;
272const double Ag107 = Ag;
273const double Ag109 = 108.904756;
274const double Cd106 = 105.906458;
275const double Cd108 = 107.904183;
276const double Cd110 = 109.903006;
277const double Cd111 = 110.904182;
278const double Cd112 = 111.902757;
279const double Cd113 = 112.904401;
280const double Cd114 = Cd;
281const double Cd116 = 115.904755;
282const double In113 = 112.904061;
283const double In115 = In;
284const double Sn112 = 111.904821;
285const double Sn114 = 113.902782;
286const double Sn115 = 114.903346;
287const double Sn116 = 115.901744;
288const double Sn117 = 116.902954;
289const double Sn118 = 117.901606;
290const double Sn119 = 118.903309;
291const double Sn120 = Sn;
292const double Sn122 = 121.90344;
293const double Sn124 = 123.905275;
294const double Sb121 = Sb;
295const double Sb123 = 122.904216;
296const double Te120 = 119.90402;
297const double Te122 = 121.903047;
298const double Te123 = 122.904273;
299const double Te124 = 123.902819;
300const double Te125 = 124.904425;
301const double Te126 = 125.903306;
302const double Te128 = 127.904461;
303const double Te130 = Te;
304const double I127 = I;
305const double Xe124 = 123.905896;
306const double Xe126 = 125.904269;
307const double Xe128 = 127.90353;
308const double Xe129 = 128.904779;
309const double Xe130 = 129.903508;
310const double Xe131 = 130.905082;
311const double Xe132 = Xe;
312const double Xe134 = 133.905395;
313const double Xe136 = 135.90722;
314const double Cs133 = Cs;
315const double Ba130 = 129.906310;
316const double Ba132 = 131.905056;
317const double Ba134 = 133.904503;
318const double Ba135 = 134.905683;
319const double Ba136 = 135.90457;
320const double Ba137 = 136.905821;
321const double Ba138 = Ba;
322const double La138 = 137.907107;
323const double La139 = La;
324const double Ce136 = 135.907144;
325const double Ce138 = 137.905986;
326const double Ce140 = Ce;
327const double Ce142 = 141.90924;
328const double Pr141 = Pr;
329const double Nd142 = Nd;
330const double Nd143 = 142.90981;
331const double Nd144 = 143.910083;
332const double Nd145 = 144.912569;
333const double Nd146 = 145.913112;
334const double Nd148 = 147.916889;
335const double Nd150 = 149.920887;
336const double Pm145 = Pm;
337const double Sm144 = 143.911995;
338const double Sm147 = 146.914893;
339const double Sm148 = 147.914818;
340const double Sm149 = 148.917180;
341const double Sm150 = 149.917271;
342const double Sm152 = Sm;
343const double Sm154 = 153.922205;
344const double Eu151 = 150.919846;
345const double Eu153 = Eu;
346const double Gd152 = 151.919788;
347const double Gd154 = 153.920862;
348const double Gd155 = 154.922619;
349const double Gd156 = 155.92212;
350const double Gd157 = 156.923957;
351const double Gd158 = Gd;
352const double Gd160 = 159.927051;
353const double Tb159 = Tb;
354const double Dy156 = 155.924278;
355const double Dy158 = 157.924405;
356const double Dy160 = 159.925194;
357const double Dy161 = 160.926930;
358const double Dy162 = 161.926795;
359const double Dy163 = 162.928728;
360const double Dy164 = Dy;
361const double Ho165 = Ho;
362const double Er162 = 161.928775;
363const double Er164 = 163.929197;
364const double Er166 = Er;
365const double Er167 = 166.932045;
366const double Er168 = 167.932368;
367const double Er170 = 169.935460;
368const double Tm169 = Tm;
369const double Yb168 = 167.933894;
370const double Yb170 = 169.934759;
371const double Yb171 = 170.936322;
372const double Yb172 = 171.936378;
373const double Yb173 = 172.938207;
374const double Yb174 = Yb;
375const double Yb176 = 175.942568;
376const double Lu175 = Lu;
377const double Lu176 = 175.942682;
378const double Hf174 = 173.94004;
379const double Hf176 = 175.941402;
380const double Hf177 = 176.94322;
381const double Hf178 = 177.943698;
382const double Hf179 = 178.945815;
383const double Hf180 = Hf;
384const double Ta180 = 179.947466;
385const double Ta181 = Ta;
386const double W180 = 179.946706;
387const double W182 = 181.948206;
388const double W183 = 182.950224;
389const double W184 = W;
390const double W186 = 185.954362;
391const double Re185 = 184.952956;
392const double Re187 = Re;
393const double Os184 = 183.952491;
394const double Os186 = 185.953838;
395const double Os187 = 186.955748;
396const double Os188 = 187.955836;
397const double Os189 = 188.958145;
398const double Os190 = 189.958445;
399const double Os192 = Os;
400const double Ir191 = 190.960591;
401const double Ir193 = Ir;
402const double Pt190 = 189.95993;
403const double Pt192 = 191.961035;
404const double Pt194 = 193.962664;
405const double Pt195 = Pt;
406const double Pt196 = 195.964935;
407const double Pt198 = 197.967876;
408const double Au197 = Au;
409const double Hg196 = 195.965815;
410const double Hg198 = 197.966752;
411const double Hg199 = 198.968262;
412const double Hg200 = 199.968309;
413const double Hg201 = 200.970285;
414const double Hg202 = Hg;
415const double Hg204 = 203.973476;
416const double Tl203 = 202.972329;
417const double Tl205 = Tl;
418const double Pb204 = 203.973029;
419const double Pb206 = 205.974449;
420const double Pb207 = 206.975881;
421const double Pb208 = Pb;
422const double Bi209 = Bi;
423const double Po209 = Po;
424const double At210 = At;
425const double Rn222 = Rn;
426const double Fr223 = Fr;
427const double Ra226 = Ra;
428const double Ac227 = Ac;
429const double Th232 = Th;
430const double Pa231 = Pa;
431const double U234 = 234.040946;
432const double U235 = 235.043923;
433const double U238 = U;
434const double Np237 = Np;
435const double Pu244 = Pu;
436const double Am243 = Am;
437const double Cm247 = Cm;
438const double Bk247 = Bk;
439const double Cf251 = Cf;
440const double Es252 = Es;
441const double Fm257 = Fm;
442const double Md258 = Md;
443const double No259 = No;
444const double Lr262 = Lr;
445
446
447// probabilities of natural isotope abundances
448const double Pr_H1 = 0.999885;
449const double Pr_H2 = 0.000115;
450const double Pr_He3 = 0.00000137;
451const double Pr_He4 = 0.99999863;
452const double Pr_Li6 = 0.0759;
453const double Pr_Li7 = 0.9241;
454const double Pr_Be9 = 1;
455const double Pr_B10 = 0.00199;
456const double Pr_B11 = 0.00801;
457const double Pr_C12 = 0.9893;
458const double Pr_C13 = 0.0107;
459const double Pr_N14 = 0.99632;
460const double Pr_N15 = 0.00368;
461const double Pr_O16 = 0.99757;
462const double Pr_O17 = 0.00038;
463const double Pr_O18 = 0.00205;
464const double Pr_F19 = 1;
465const double Pr_Ne20 = 0.9048;
466const double Pr_Ne21 = 0.0027;
467const double Pr_Ne22 = 0.0925;
468const double Pr_Na23 = 1;
469const double Pr_Mg24 = 0.7899;
470const double Pr_Mg25 = 0.1;
471const double Pr_Mg26 = 0.1101;
472const double Pr_Al27 = 1;
473const double Pr_Si28 = 0.922297;
474const double Pr_Si29 = 0.046832;
475const double Pr_Si30 = 0.030872;
476const double Pr_P31 = 1;
477const double Pr_S32 = 0.9493;
478const double Pr_S33 = 0.0076;
479const double Pr_S34 = 0.0429;
480const double Pr_S36 = 0.0002;
481const double Pr_Cl35 = 0.7578;
482const double Pr_Cl37 = 0.2422;
483const double Pr_Ar36 = 0.003365;
484const double Pr_Ar38 = 0.000632;
485const double Pr_Ar40 = 0.996003;
486const double Pr_K39 = 0.932581;
487const double Pr_K40 = 0.000117;
488const double Pr_K41 = 0.067302;
489const double Pr_Ca40 = 0.96941;
490const double Pr_Ca42 = 0.00647;
491const double Pr_Ca43 = 0.00135;
492const double Pr_Ca44 = 0.02086;
493const double Pr_Ca46 = 0.00004;
494const double Pr_Ca48 = 0.00187;
495const double Pr_Sc45 = 1;
496const double Pr_Ti46 = 0.0825;
497const double Pr_Ti47 = 0.0744;
498const double Pr_Ti48 = 0.7372;
499const double Pr_Ti49 = 0.0541;
500const double Pr_Ti50 = 0.0518;
501const double Pr_V50 = 0.0025;
502const double Pr_V51 = 0.9975;
503const double Pr_Cr50 = 0.04345;
504const double Pr_Cr52 = 0.83789;
505const double Pr_Cr53 = 0.09501;
506const double Pr_Cr54 = 0.02365;
507const double Pr_Mn55 = 1;
508const double Pr_Fe54 = 0.05845;
509const double Pr_Fe56 = 0.91754;
510const double Pr_Fe57 = 0.02119;
511const double Pr_Fe58 = 0.00282;
512const double Pr_Co59 = 1;
513const double Pr_Ni58 = 0.680769;
514const double Pr_Ni60 = 0.262231;
515const double Pr_Ni61 = 0.011399;
516const double Pr_Ni62 = 0.036345;
517const double Pr_Ni64 = 0.009256;
518const double Pr_Cu63 = 0.6917;
519const double Pr_Cu65 = 0.3083;
520const double Pr_Zn64 = 0.4863;
521const double Pr_Zn66 = 0.2790;
522const double Pr_Zn67 = 0.0410;
523const double Pr_Zn68 = 0.1875;
524const double Pr_Zn70 = 0.0062;
525const double Pr_Ga69 = 0.60108;
526const double Pr_Ga71 = 0.39892;
527const double Pr_Ge70 = 0.2084;
528const double Pr_Ge72 = 0.2754;
529const double Pr_Ge73 = 0.0773;
530const double Pr_Ge74 = 0.3628;
531const double Pr_Ge76 = 0.0761;
532const double Pr_As75 = 1;
533const double Pr_Se74 = 0.0089;
534const double Pr_Se76 = 0.0937;
535const double Pr_Se77 = 0.0763;
536const double Pr_Se78 = 0.2377;
537const double Pr_Se80 = 0.4961;
538const double Pr_Se82 = 0.0873;
539const double Pr_Br79 = 0.5069;
540const double Pr_Br81 = 0.4931;
541const double Pr_Kr78 = 0.0035;
542const double Pr_Kr80 = 0.0228;
543const double Pr_Kr82 = 0.1158;
544const double Pr_Kr83 = 0.1149;
545const double Pr_Kr84 = 0.57;
546const double Pr_Kr86 = 0.173;
547const double Pr_Rb85 = 0.7217;
548const double Pr_Rb87 = 0.2783;
549const double Pr_Sr84 = 0.0056;
550const double Pr_Sr86 = 0.0986;
551const double Pr_Sr87 = 0.07;
552const double Pr_Sr88 = 0.8258;
553const double Pr_Y89 = 1;
554const double Pr_Zr90 = 0.5145;
555const double Pr_Zr91 = 0.1122;
556const double Pr_Zr92 = 0.1715;
557const double Pr_Zr94 = 0.1738;
558const double Pr_Zr96 = 0.028;
559const double Pr_Nb93 = 1;
560const double Pr_Mo92 = 0.1484;
561const double Pr_Mo94 = 0.0925;
562const double Pr_Mo95 = 0.1592;
563const double Pr_Mo96 = 0.1668;
564const double Pr_Mo97 = 0.0955;
565const double Pr_Mo98 = 0.2413;
566const double Pr_Mo100 = 0.0963;
567const double Pr_Tc98 = 1;
568const double Pr_Ru96 = 0.0554;
569const double Pr_Ru98 = 0.0187;
570const double Pr_Ru99 = 0.1276;
571const double Pr_Ru100 = 0.126;
572const double Pr_Ru101 = 0.1706;
573const double Pr_Ru102 = 0.3155;
574const double Pr_Ru104 = 0.1862;
575const double Pr_Rh103 = 1;
576const double Pr_Pd102 = 0.0102;
577const double Pr_Pd104 = 0.1114;
578const double Pr_Pd105 = 0.2233;
579const double Pr_Pd106 = 0.2733;
580const double Pr_Pd108 = 0.2646;
581const double Pr_Pd110 = 0.1172;
582const double Pr_Ag107 = 0.51839;
583const double Pr_Ag109 = 0.48161;
584const double Pr_Cd106 = 0.0125;
585const double Pr_Cd108 = 0.0089;
586const double Pr_Cd110 = 0.1249;
587const double Pr_Cd111 = 0.128;
588const double Pr_Cd112 = 0.2413;
589const double Pr_Cd113 = 0.1222;
590const double Pr_Cd114 = 0.2873;
591const double Pr_Cd116 = 0.0749;
592const double Pr_In113 = 0.0429;
593const double Pr_In115 = 0.9571;
594const double Pr_Sn112 = 0.0097;
595const double Pr_Sn114 = 0.0066;
596const double Pr_Sn115 = 0.0034;
597const double Pr_Sn116 = 0.1454;
598const double Pr_Sn117 = 0.0768;
599const double Pr_Sn118 = 0.2422;
600const double Pr_Sn119 = 0.0859;
601const double Pr_Sn120 = 0.3258;
602const double Pr_Sn122 = 0.0463;
603const double Pr_Sn124 = 0.0579;
604const double Pr_Sb121 = 0.5721;
605const double Pr_Sb123 = 0.4279;
606const double Pr_Te120 = 0.0009;
607const double Pr_Te122 = 0.0255;
608const double Pr_Te123 = 0.0089;
609const double Pr_Te124 = 0.0474;
610const double Pr_Te125 = 0.0707;
611const double Pr_Te126 = 0.1884;
612const double Pr_Te128 = 0.3174;
613const double Pr_Te130 = 0.3408;
614const double Pr_I127 = 1;
615const double Pr_Xe124 = 0.0009;
616const double Pr_Xe126 = 0.0009;
617const double Pr_Xe128 = 0.0192;
618const double Pr_Xe129 = 0.2644;
619const double Pr_Xe130 = 0.0408;
620const double Pr_Xe131 = 0.2118;
621const double Pr_Xe132 = 0.2689;
622const double Pr_Xe134 = 0.1044;
623const double Pr_Xe136 = 0.0887;
624const double Pr_Cs133 = 1;
625const double Pr_Ba130 = 0.00106;
626const double Pr_Ba132 = 0.00101;
627const double Pr_Ba134 = 0.02417;
628const double Pr_Ba135 = 0.06592;
629const double Pr_Ba136 = 0.07854;
630const double Pr_Ba137 = 0.11232;
631const double Pr_Ba138 = 0.71698;
632const double Pr_La138 = 0.0009;
633const double Pr_La139 = 0.9991;
634const double Pr_Ce136 = 0.00185;
635const double Pr_Ce138 = 0.00251;
636const double Pr_Ce140 = 0.8845;
637const double Pr_Ce142 = 0.11114;
638const double Pr_Pr141 = 1;
639const double Pr_Nd142 = 0.272;
640const double Pr_Nd143 = 0.122;
641const double Pr_Nd144 = 0.238;
642const double Pr_Nd145 = 0.083;
643const double Pr_Nd146 = 0.172;
644const double Pr_Nd148 = 0.057;
645const double Pr_Nd150 = 0.056;
646const double Pr_Pm145 = 1;
647const double Pr_Sm144 = 0.0307;
648const double Pr_Sm147 = 0.1499;
649const double Pr_Sm148 = 0.1124;
650const double Pr_Sm149 = 0.1382;
651const double Pr_Sm150 = 0.0738;
652const double Pr_Sm152 = 0.2675;
653const double Pr_Sm154 = 0.2275;
654const double Pr_Eu151 = 0.4781;
655const double Pr_Eu153 = 0.5219;
656const double Pr_Gd152 = 0.002;
657const double Pr_Gd154 = 0.0218;
658const double Pr_Gd155 = 0.148;
659const double Pr_Gd156 = 0.2047;
660const double Pr_Gd157 = 0.1565;
661const double Pr_Gd158 = 0.2484;
662const double Pr_Gd160 = 0.2186;
663const double Pr_Tb159 = 1;
664const double Pr_Dy156 = 0.0006;
665const double Pr_Dy158 = 0.001;
666const double Pr_Dy160 = 0.0234;
667const double Pr_Dy161 = 0.1891;
668const double Pr_Dy162 = 0.2551;
669const double Pr_Dy163 = 0.249;
670const double Pr_Dy164 = 0.2818;
671const double Pr_Ho165 = 1;
672const double Pr_Er162 = 0.0014;
673const double Pr_Er164 = 0.0161;
674const double Pr_Er166 = 0.3361;
675const double Pr_Er167 = 0.2293;
676const double Pr_Er168 = 0.2678;
677const double Pr_Er170 = 0.1493;
678const double Pr_Tm169 = 1;
679const double Pr_Yb168 = 0.0013;
680const double Pr_Yb170 = 0.0304;
681const double Pr_Yb171 = 0.1428;
682const double Pr_Yb172 = 0.2183;
683const double Pr_Yb173 = 0.1613;
684const double Pr_Yb174 = 0.3183;
685const double Pr_Yb176 = 0.1276;
686const double Pr_Lu175 = 0.9741;
687const double Pr_Lu176 = 0.0259;
688const double Pr_Hf174 = 0.0016;
689const double Pr_Hf176 = 0.0526;
690const double Pr_Hf177 = 0.186;
691const double Pr_Hf178 = 0.2728;
692const double Pr_Hf179 = 0.1362;
693const double Pr_Hf180 = 0.3508;
694const double Pr_Ta180 = 0.00012;
695const double Pr_Ta181 = 0.99988;
696const double Pr_W180 = 0.0012;
697const double Pr_W182 = 0.265;
698const double Pr_W183 = 0.1431;
699const double Pr_W184 = 0.3064;
700const double Pr_W186 = 0.2843;
701const double Pr_Re185 = 0.374;
702const double Pr_Re187 = 0.626;
703const double Pr_Os184 = 0.0002;
704const double Pr_Os186 = 0.0159;
705const double Pr_Os187 = 0.0196;
706const double Pr_Os188 = 0.1324;
707const double Pr_Os189 = 0.1615;
708const double Pr_Os190 = 0.2626;
709const double Pr_Os192 = 0.4078;
710const double Pr_Ir191 = 0.373;
711const double Pr_Ir193 = 0.627;
712const double Pr_Pt190 = 0.00014;
713const double Pr_Pt192 = 0.00782;
714const double Pr_Pt194 = 0.32967;
715const double Pr_Pt195 = 0.33832;
716const double Pr_Pt196 = 0.25242;
717const double Pr_Pt198 = 0.07163;
718const double Pr_Au197 = 1;
719const double Pr_Hg196 = 0.0015;
720const double Pr_Hg198 = 0.0997;
721const double Pr_Hg199 = 0.1687;
722const double Pr_Hg200 = 0.231;
723const double Pr_Hg201 = 0.1318;
724const double Pr_Hg202 = 0.2986;
725const double Pr_Hg204 = 0.0687;
726const double Pr_Tl203 = 0.29524;
727const double Pr_Tl205 = 0.70476;
728const double Pr_Pb204 = 0.014;
729const double Pr_Pb206 = 0.241;
730const double Pr_Pb207 = 0.221;
731const double Pr_Pb208 = 0.524;
732const double Pr_Bi209 = 1;
733const double Pr_Po209 = 1;
734const double Pr_At210 = 1;
735const double Pr_Rn222 = 1;
736const double Pr_Fr223 = 1;
737const double Pr_Ra226 = 1;
738const double Pr_Ac227 = 1;
739const double Pr_Th232 = 1;
740const double Pr_Pa231 = 1;
741const double Pr_U234 = 0.000055;
742const double Pr_U235 = 0.0072;
743const double Pr_U238 = 0.992745;
744const double Pr_Np237 = 1;
745const double Pr_Pu244 = 1;
746const double Pr_Am243 = 1;
747const double Pr_Cm247 = 1;
748const double Pr_Bk247 = 1;
749const double Pr_Cf251 = 1;
750const double Pr_Es252 = 1;
751const double Pr_Fm257 = 1;
752const double Pr_Md258 = 1;
753const double Pr_No259 = 1;
754const double Pr_Lr262 = 1;
755
756
761
762 map<string, double> table;
763 vector<string> adductElements;
764
765public:
766
767
772
773
779 double &operator[](string& element);
780
781
787 int count(string& element);
788
789
794 map<string, double>& getElements();
795
796
801 vector<string>& getAdductElements();
802
803};
804
805
810
811
815struct isotope {
816
820 double mass;
821
822
827
828
833 clear();
834 }
835
836
840 void clear() {
841 mass = 0;
842 probability = 0;
843 }
844
845};
846
847
852
853 map< string, map<string, isotope> > table;
854
855public:
856
857
861 cIsotopeMap();
862
863
869 map<string, isotope> &operator[](string& element);
870
871
877 int count(string& element);
878
879};
880
881
886
887
888const double H2O = 2 * H + O;
889const double NH3 = 3 * H + N;
890const double CO = C + O;
891
892const double A_ION = H - e - C - O;
893const double B_ION = H - e;
894const double C_ION = H - e + NH3;
895const double X_ION = H - e + 2 * O + C;
896const double Y_ION = H - e + H2O;
897const double Z_ION = H - e + O - N - H;
898
899const double PRECURSOR_ION = H - e + H2O;
900const double PRECURSOR_ION_CYCLIC = H - e;
901
902const double L0H_ION = H - e - 2 * H;
903const double L1H_ION = H - e;
904const double L2H_ION = H - e + 2 * H;
905const double R1H_ION = H - e;
906const double R2H_ION = H - e + 2 * H;
907const double L1OH_ION = H - e + O;
908const double L2OH_ION = H - e + H2O;
909const double R1OH_ION = H - e + O;
910const double R2OH_ION = H - e + H2O;
911
912const double PRECURSOR_ION_LINEAR_POLYKETIDE_H_H = H - e + 2 * H;
913const double PRECURSOR_ION_LINEAR_POLYKETIDE_H_OH = H - e + H2O;
914const double PRECURSOR_ION_LINEAR_POLYKETIDE_OH_OH = H - e + 2 * H + 2 * O;
915
916
921
922
929double charge(double neutralmass, int charge);
930
931
938double uncharge(double mzratio, int charge);
939
940
945 a_ion = 1,
946 b_ion,
947 c_ion,
948 x_ion,
949 y_ion,
950 z_ion,
951 precursor_ion,
952 cyclic_precursor_ion,
953 l0h_ion,
954 l1h_ion,
955 l2h_ion,
956 r1h_ion,
957 r2h_ion,
958 l1oh_ion,
959 l2oh_ion,
960 r1oh_ion,
961 r2oh_ion,
962 linear_polyketide_precursor_ion_h_h,
963 linear_polyketide_precursor_ion_h_oh,
964 linear_polyketide_precursor_ion_oh_oh,
965 cyclic_polyketide_precursor_ion,
966 fragmentIonTypeEnd
967};
968
969
973Q_DECLARE_METATYPE(vector<eFragmentIonType>);
974
975
980
984 string name;
985
986
990 string summary;
991
992
996 map<string, int> summarymap;
997
998
1003
1004
1009
1010
1015
1016
1021
1022
1027 clear();
1028 }
1029
1030
1034 void clear() {
1035 name = "";
1036 summary = "";
1037 summarymap.clear();
1038 massdifference = 0;
1039 nterminal = false;
1040 cterminal = false;
1041 positive = true;
1042 }
1043
1044
1049 void store(ofstream& os);
1050
1051
1056 void load(ifstream& is);
1057
1058};
1059
1060
1064Q_DECLARE_METATYPE(vector<cFragmentIonType>);
1065
1066
1071
1072 map<eFragmentIonType, cFragmentIonType> fragmentions;
1073
1074public:
1075
1076
1080 cFragmentIons();
1081
1082
1089 cFragmentIons(bool cyclicnterminus, bool cycliccterminus, string& precursoradduct);
1090
1091
1098
1099
1106 void recalculateFragments(bool cyclicnterminus, bool cycliccterminus, string& precursoradduct);
1107
1108
1113 void store(ofstream& os);
1114
1115
1120 void load(ifstream& is);
1121
1122};
1123
1124
1129
1130
1135void initializeFragmentIonsForDeNovoGraphOfCyclicPeptides(vector<eFragmentIonType>& fragmentions);
1136
1137
1142void initializeFragmentIonsForDeNovoGraphOfLinearPeptides(vector<eFragmentIonType>& fragmentions);
1143
1144
1149void initializeFragmentIonsForDeNovoGraphOfTPeptides(vector<eFragmentIonType>& fragmentions);
1150
1151
1156void initializeFragmentIonsForDeNovoGraphOfBranchCyclicPeptides(vector<eFragmentIonType>& fragmentions);
1157
1158
1163void initializeFragmentIonsForDeNovoGraphOfLinearPolyketide(vector<eFragmentIonType>& fragmentions);
1164
1165
1170void initializeFragmentIonsForDeNovoGraphOfCyclicPolyketide(vector<eFragmentIonType>& fragmentions);
1171
1172
1177
1181 string summary;
1182
1183
1187 map<string, int> summarymap;
1188
1189
1194
1195
1200 clear();
1201 }
1202
1203
1207 void clear() {
1208 summary = "";
1209 summarymap.clear();
1210 massdifference = 0;
1211 }
1212
1213
1218 void store(ofstream& os);
1219
1220
1225 void load(ifstream& is);
1226
1227};
1228
1229
1234
1235 vector<string> neutrallosses;
1236
1237public:
1238
1243
1244
1249 vector<string>& getNeutralLosses() {
1250 return neutrallosses;
1251 }
1252
1253};
1254
1255
1260
1261
1270int loadModificationsFromPlainTextStream(ifstream &stream, vector<cFragmentIonType>& modifications, string& errormessage, bool ignoreerrors);
1271
1272
1278void storeModificationsToPlainTextStream(ofstream &stream, vector<cFragmentIonType>& modifications);
1279
1280
1281#endif
1282
double charge(double neutralmass, int charge)
Get mzratio from neutral mass.
Definition: cFragmentIons.cpp:1435
void initializeFragmentIonsForDeNovoGraphOfCyclicPolyketide(vector< eFragmentIonType > &fragmentions)
Initialize fragment ion types for the de novo graph of a cyclic polyketide.
Definition: cFragmentIons.cpp:1719
void initializeFragmentIonsForDeNovoGraphOfTPeptides(vector< eFragmentIonType > &fragmentions)
Initialize fragment ion types for the de novo graph of branched peptides.
Definition: cFragmentIons.cpp:1695
cIsotopeMap isotopemap
Global isotope map.
Definition: cFragmentIons.cpp:6
double uncharge(double mzratio, int charge)
Get neutral mass from mzratio.
Definition: cFragmentIons.cpp:1440
void initializeFragmentIonsForDeNovoGraphOfLinearPeptides(vector< eFragmentIonType > &fragmentions)
Initialize fragment ion types for the de novo graph of linear peptides.
Definition: cFragmentIons.cpp:1688
cPeriodicTableMap periodictablemap
Global periodic table map.
Definition: cFragmentIons.cpp:5
int loadModificationsFromPlainTextStream(ifstream &stream, vector< cFragmentIonType > &modifications, string &errormessage, bool ignoreerrors)
Load modifications from a plain text stream.
Definition: cFragmentIons.cpp:1759
Q_DECLARE_METATYPE(ePeptideType)
Register ePeptideType by Qt.
void storeModificationsToPlainTextStream(ofstream &stream, vector< cFragmentIonType > &modifications)
Store modifications into a plain text stream.
Definition: cFragmentIons.cpp:1863
void initializeFragmentIonsForDeNovoGraphOfLinearPolyketide(vector< eFragmentIonType > &fragmentions)
Initialize fragment ion types for the de novo graph of a linear polyketide.
Definition: cFragmentIons.cpp:1708
eFragmentIonType
The types of supported fragment ions.
Definition: cFragmentIons.h:944
void initializeFragmentIonsForDeNovoGraphOfCyclicPeptides(vector< eFragmentIonType > &fragmentions)
Initialize fragment ion types for the de novo graph of cyclic peptides.
Definition: cFragmentIons.cpp:1683
cDefaultNeutralLosses defaultneutrallosses
Default neutral losses definitions.
Definition: cFragmentIons.cpp:7
void initializeFragmentIonsForDeNovoGraphOfBranchCyclicPeptides(vector< eFragmentIonType > &fragmentions)
Initialize fragment ion types for the de novo graph of branch-cyclic peptides.
Definition: cFragmentIons.cpp:1702
The class representing a vector of default neutral losses.
Definition: cFragmentIons.h:1233
cDefaultNeutralLosses()
The constructor.
Definition: cFragmentIons.cpp:1741
vector< string > & getNeutralLosses()
Get the vector of neutral losses.
Definition: cFragmentIons.h:1249
The detailed definitions of all supported fragment ion types.
Definition: cFragmentIons.h:1070
void recalculateFragments(bool cyclicnterminus, bool cycliccterminus, string &precursoradduct)
Recalculate all fragment ion types.
Definition: cFragmentIons.cpp:1483
void store(ofstream &os)
Store the structure into an output stream.
Definition: cFragmentIons.cpp:1656
void load(ifstream &is)
Load the structure from an input stream.
Definition: cFragmentIons.cpp:1668
cFragmentIonType & operator[](eFragmentIonType iontype)
Overloaded operator [].
Definition: cFragmentIons.cpp:1478
cFragmentIons()
The constructor.
Definition: cFragmentIons.cpp:1467
The class representing an isotope map.
Definition: cFragmentIons.h:851
cIsotopeMap()
The constructor.
Definition: cFragmentIons.cpp:159
int count(string &element)
Check whether an element occurs in the table.
Definition: cFragmentIons.cpp:1430
map< string, isotope > & operator[](string &element)
Overloaded operator [].
Definition: cFragmentIons.cpp:1425
The class representing a periodic table.
Definition: cFragmentIons.h:760
cPeriodicTableMap()
The constructor.
Definition: cFragmentIons.cpp:10
map< string, double > & getElements()
Reference to the map of elements.
Definition: cFragmentIons.cpp:149
int count(string &element)
Check whether an element occurs in the table.
Definition: cFragmentIons.cpp:144
double & operator[](string &element)
Overloaded operator [].
Definition: cFragmentIons.cpp:139
vector< string > & getAdductElements()
Vector of elements which are allowed to be adducts.
Definition: cFragmentIons.cpp:154
The struct for definition of a fragment ion type.
Definition: cFragmentIons.h:979
cFragmentIonType()
The default constructor.
Definition: cFragmentIons.h:1026
string name
Name of the fragment.
Definition: cFragmentIons.h:984
bool cterminal
True when the fragment is C-terminal.
Definition: cFragmentIons.h:1014
bool positive
Charge of the fragment.
Definition: cFragmentIons.h:1020
map< string, int > summarymap
A map of atoms corresponding to the formula.
Definition: cFragmentIons.h:996
void load(ifstream &is)
Load the structure from an input stream.
Definition: cFragmentIons.cpp:1456
void clear()
Clear the structure.
Definition: cFragmentIons.h:1034
bool nterminal
True when the fragment is N-terminal.
Definition: cFragmentIons.h:1008
double massdifference
Mass difference of the fragment.
Definition: cFragmentIons.h:1002
void store(ofstream &os)
Store the structure into an output stream.
Definition: cFragmentIons.cpp:1445
string summary
Formula of the fragment.
Definition: cFragmentIons.h:990
Representation of an isotope.
Definition: cFragmentIons.h:815
double probability
Probability of natural abundance.
Definition: cFragmentIons.h:826
isotope()
The default constructor.
Definition: cFragmentIons.h:832
void clear()
Clear the structure.
Definition: cFragmentIons.h:840
double mass
Monoisotopic mass.
Definition: cFragmentIons.h:820
The structure for a detailed definition of a neutral loss.
Definition: cFragmentIons.h:1176
void load(ifstream &is)
Load the structure from an input stream.
Definition: cFragmentIons.cpp:1734
void clear()
Clear the structure.
Definition: cFragmentIons.h:1207
string summary
Summary formula of the loss.
Definition: cFragmentIons.h:1181
neutralLoss()
The default constructor.
Definition: cFragmentIons.h:1199
map< string, int > summarymap
A map of atoms corresponding to the summary formula.
Definition: cFragmentIons.h:1187
double massdifference
Mass difference of the loss.
Definition: cFragmentIons.h:1193
void store(ofstream &os)
Store the structure into an output stream.
Definition: cFragmentIons.cpp:1727
Auxiliary funtions and structures.
ePeptideType
The types of peptides supported by the application.
Definition: utilities.h:104