ProteoWizard
AminoAcid.hpp
Go to the documentation of this file.
1 //
2 // $Id: AminoAcid.hpp 1808 2010-02-12 21:01:48Z chambm $
3 //
4 //
5 // Original author: Darren Kessner <darren@proteowizard.org>
6 //
7 // Copyright 2006 Louis Warschaw Prostate Cancer Center
8 // Cedars Sinai Medical Center, Los Angeles, California 90048
9 //
10 // Licensed under the Apache License, Version 2.0 (the "License");
11 // you may not use this file except in compliance with the License.
12 // You may obtain a copy of the License at
13 //
14 // http://www.apache.org/licenses/LICENSE-2.0
15 //
16 // Unless required by applicable law or agreed to in writing, software
17 // distributed under the License is distributed on an "AS IS" BASIS,
18 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 // See the License for the specific language governing permissions and
20 // limitations under the License.
21 //
22 
23 
24 #ifndef _AMINOACID_HPP_
25 #define _AMINOACID_HPP_
26 
27 
30 #include <string>
31 #include <memory>
32 
33 
34 namespace pwiz {
35 namespace proteome {
36 
37 
38 /// scope for types related to amino acids
39 namespace AminoAcid {
40 
41 
42 /// enumeration of the amino acids
43 enum PWIZ_API_DECL Type
44 {
46  Cysteine,
50  Glycine,
51  Histidine,
52  Isoleucine,
53  Lysine,
54  Leucine,
55  Methionine,
56  Asparagine,
57  Proline,
58  Glutamine,
59  Arginine,
60  Serine,
61  Threonine,
62  Valine,
63  Tryptophan,
64  Tyrosine,
66  AspX,
67  GlutX,
68  Unknown
69 };
70 
71 
72 /// class for accessing information about the amino acids
73 namespace Info
74 {
75 
76 
77 /// struct for holding data for a single amino acid
79 {
80  std::string name;
81  std::string abbreviation;
82  char symbol;
85  double abundance;
86 };
87 
88 
89 /// returns the amino acid's Record by type
90 PWIZ_API_DECL const Record& record(Type type);
91 
92 
93 /// returns the amino acid's Record by symbol (may throw)
94 PWIZ_API_DECL const Record& record(char symbol);
95 
96 
97 } // namespace Info
98 } // namespace AminoAcid
99 
100 
101 } // namespace proteome
102 } // namespace pwiz
103 
104 
105 #endif // _AMINOACID_HPP_
106