OpenMS
Loading...
Searching...
No Matches
IsoelectricPoint.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Timo Sachsenberg $
6// $Authors: OpenMS Team $
7// --------------------------------------------------------------------------
8
9#pragma once
10
13#include <unordered_map>
14
15namespace OpenMS
16{
19 {
20 LEHNINGER = 0,
21 EMBOSS = 1,
22 SILLERO = 2,
23 BJELLQVIST = 3,
25 };
26
57 class OPENMS_DLLAPI IsoelectricPoint
58 {
59
60 public:
61
68 static double computeCharge(
69 const AASequence& seq,
70 double pH,
71 ProteomicsPkaScale scale = ProteomicsPkaScale::LEHNINGER);
72
79 static double computePI(
80 const AASequence& seq,
81 ProteomicsPkaScale scale = ProteomicsPkaScale::LEHNINGER,
82 double tolerance = 1e-4);
83
84 private:
86 struct PkaValues
87 {
88 double nterm;
89 double cterm;
90 double D;
91 double E;
92 double C;
93 double Y;
94 double H;
95 double K;
96 double R;
98 std::unordered_map<char, double> nterm_by_residue;
100 std::unordered_map<char, double> cterm_by_residue;
101 };
102
105
107 static double chargeAcidic_(double pH, double pKa);
108
110 static double chargeBasic_(double pH, double pKa);
111 };
112
113} // namespace OpenMS
Definition AASequence.h:96
Utility class for computing the isoelectric point (pI) and net charge of peptides.
Definition IsoelectricPoint.h:58
double E
Glutamate side chain.
Definition IsoelectricPoint.h:91
double R
Definition IsoelectricPoint.h:96
static double chargeBasic_(double pH, double pKa)
Charge contribution from a basic group (NH2, side chains of H, K, R)
static double computeCharge(const AASequence &seq, double pH, ProteomicsPkaScale scale=ProteomicsPkaScale::LEHNINGER)
Computes the net charge of an amino acid sequence at a given pH.
static double chargeAcidic_(double pH, double pKa)
Charge contribution from an acidic group (COOH, side chains of D, E, C, Y)
double K
Lysine side chain.
Definition IsoelectricPoint.h:95
double C
Cysteine side chain.
Definition IsoelectricPoint.h:92
double nterm
pKa of the N-terminal amino group (default; overridden per residue when nterm_by_residue is non-empty...
Definition IsoelectricPoint.h:88
static const PkaValues & getPkaValues_(ProteomicsPkaScale scale)
Returns the pKa values for the specified scale.
double H
Histidine side chain.
Definition IsoelectricPoint.h:94
std::unordered_map< char, double > cterm_by_residue
Per-residue C-terminal pKa (Bjellqvist scale). Overrides cterm for the last residue when non-empty.
Definition IsoelectricPoint.h:100
static double computePI(const AASequence &seq, ProteomicsPkaScale scale=ProteomicsPkaScale::LEHNINGER, double tolerance=1e-4)
Computes the isoelectric point (pI) of an amino acid sequence via bisection.
double Y
Tyrosine side chain.
Definition IsoelectricPoint.h:93
double D
Aspartate side chain.
Definition IsoelectricPoint.h:90
double cterm
pKa of the C-terminal carboxyl group (default; overridden per residue when cterm_by_residue is non-em...
Definition IsoelectricPoint.h:89
std::unordered_map< char, double > nterm_by_residue
Per-residue N-terminal pKa (Bjellqvist scale). Overrides nterm for the first residue when non-empty.
Definition IsoelectricPoint.h:98
Internal struct holding pKa values for a given scale.
Definition IsoelectricPoint.h:87
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
ProteomicsPkaScale
Enum for pKa scales used in isoelectric point calculation.
Definition IsoelectricPoint.h:19
@ EMBOSS
EMBOSS scale (used by pepstats)
@ LEHNINGER
Lehninger (Nelson & Cox) scale.
@ BJELLQVIST
Bjellqvist scale with N-terminal-residue-dependent pKa values.
@ SILLERO
Sillero & Ribeiro scale.