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{
50 {
51 LEHNINGER = 0,
52 EMBOSS = 1,
53 SILLERO = 2,
54 BJELLQVIST = 3,
56 };
57
58 class OPENMS_DLLAPI IsoelectricPoint
59 {
60
61 public:
62
69 static double computeCharge(
70 const AASequence& seq,
71 double pH,
72 ProteomicsPkaScale scale = ProteomicsPkaScale::LEHNINGER);
73
80 static double computePI(
81 const AASequence& seq,
82 ProteomicsPkaScale scale = ProteomicsPkaScale::LEHNINGER,
83 double tolerance = 1e-4);
84
85 private:
87 struct PkaValues
88 {
89 double nterm;
90 double cterm;
91 double D;
92 double E;
93 double C;
94 double Y;
95 double H;
96 double K;
97 double R;
99 std::unordered_map<char, double> nterm_by_residue;
101 std::unordered_map<char, double> cterm_by_residue;
102 };
103
106
108 static double chargeAcidic_(double pH, double pKa);
109
111 static double chargeBasic_(double pH, double pKa);
112 };
113
114} // namespace OpenMS
Representation of a peptide/protein sequence.
Definition AASequence.h:88
Definition IsoelectricPoint.h:59
double E
Glutamate side chain.
Definition IsoelectricPoint.h:92
double R
Definition IsoelectricPoint.h:97
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:96
double C
Cysteine side chain.
Definition IsoelectricPoint.h:93
double nterm
pKa of the N-terminal amino group (default; overridden per residue when nterm_by_residue is non-empty...
Definition IsoelectricPoint.h:89
static const PkaValues & getPkaValues_(ProteomicsPkaScale scale)
Returns the pKa values for the specified scale.
double H
Histidine side chain.
Definition IsoelectricPoint.h:95
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:101
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:94
double D
Aspartate side chain.
Definition IsoelectricPoint.h:91
double cterm
pKa of the C-terminal carboxyl group (default; overridden per residue when cterm_by_residue is non-em...
Definition IsoelectricPoint.h:90
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:99
Internal struct holding pKa values for a given scale.
Definition IsoelectricPoint.h:88
ProteomicsPkaScale
Utility class for computing the isoelectric point (pI) and net charge of peptides.
Definition IsoelectricPoint.h:50
@ 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.
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19