/****************************************************************************
* Copyright (C) 2008 Peter Mortensen and Matthias Mann *
* This file is part of MSQuant. *
* *
* MSQuant is distributed under the terms of *
* the GNU General Public License. See src/COPYING.TXT or *
* <http://www.gnu.org/licenses/gpl.txt> for details. *
* *
* MSQuant is free software; you can redistribute it *
* and/or modify it under the terms of the GNU *
* General Public License as published by the Free *
* Software Foundation; either version 2 of the *
* License, or (at your option) any later version. *
* *
* MSQuant is distributed in the hope that it will be *
* useful, but WITHOUT ANY WARRANTY; without even the *
* implied warranty of MERCHANTABILITY or FITNESS FOR *
* A PARTICULAR PURPOSE. See the GNU General Public *
* License for more details. *
* *
* You should have received a copy of the GNU General *
* Public License along with MSQuant; if not, write to *
* the Free Software Foundation, Inc., 59 Temple *
* Place, Suite 330, Boston, MA 02111-1307 USA *
* *
* Purpose: mass spectrometry "constants". They are only constants to *
* a degree... *
* *
****************************************************************************/
/****************************************************************************
* CEBI *
* Software Development Group *
* Peter Mortensen *
* E-mail: NUKESPAMMERSdrmortensen@get2netZZZZZZ.dk *
* WWW: http://www.cebi.sdu.dk/ *
* *
* Program for post-processing of result from search in mass *
* spectrometric data. *
* *
* FILENAME: PILmassSpecConstants.cs *
* TYPE: CSHARP *
* *
* CREATED: PM 2008-05-09 Vrs 1.0. Converted from MMConstModule.vb *
* UPDATED: PM 2008-xx-xx *
* *
* *
****************************************************************************/
//Future:
// 1. Add unit tests (seperate). Reality check with values
// from the spreadsheet.
// 2.
//
//using System;
//using System.Collections.Generic;
//using System.Text;
using System.Diagnostics; //For Trace. And its Assert.
using SimmoTech.Utils.Serialization; //For SerializationWriter and
//SerializationReader.
//using MolecularSharedStructures; //For modificationCountStructure.
/****************************************************************************
* <placeholder for header> *
****************************************************************************/
namespace massSpectrometryBase
{
//Changed PM_REFACTOR 2008-05-13. Moved from file clsMolShrStruct.vb.
//Changed PM_GENERALISED_QUANT_MODE 2003-12-08
//****************************************************************************
//* <placeholder for header> *
//****************************************************************************
//<Serializable()> _
public struct modificationCountStruct
{
//Note: if fields are added readFromStream2() and
// addToStream2() should be updated!!!
//Changed PM_DEADCODE 2008-05-13. Old code. Delete at any time.
//'Changed PM_FAST_SERIALISATION 2006-12-16
//Implements ISerializable
public int quantModificationID;
//Only for internal use. But needs to be saved.
//Helper field used during quantitation and for
public int count3;
// other things (<be more specific>). Set
// during parsing of the result file.
//Changed PM_FAST_SERIALISATION_READ 2007-01-01
//****************************************************************************
//* For modificationCountStructure. *
//****************************************************************************
public static modificationCountStruct readFromStream2(
ref SerializationReader anInReader, int aMBfileVersion)
{
modificationCountStruct toReturn;
toReturn.quantModificationID = anInReader.ReadInt32();
int count = anInReader.ReadInt32();
Trace.Assert(
count >= 1 && count <= 99,
"PIL ASSERT. Deserialisation of modificationCountStructure, count is out of range." +
count + ".");
toReturn.count3 = count;
return toReturn;
} //readFromStream2(). For modificationCountStructure.
//Changed PM_FAST_SERIALISATION_AVOID_DOTNET 2006-12-19
//****************************************************************************
//* For modificationCountStructure. *
//****************************************************************************
public void addToStream2(
ref SerializationWriter anInOutWriter, int aMBfileVersion)
{
//aVersion: e.g. 300 for MB3, 400 for MB4.
//SERMARK02. A marker. Keep it.
anInOutWriter.Write(quantModificationID);
anInOutWriter.Write(count3);
} //addToStream2(). For modificationCountStructure.
} //modificationCountStruct
} //namespace massSpectrometryBase
/****************************************************************************
* <placeholder for header> *
****************************************************************************/
namespace massSpectrometryBase
{
public class MSconstants
{
//Many of these only had 5 decimals before 2008-07-24.
//Put amino acid molecular weights etc here.
//----------------------------------------------------------
// Beginning of AAs.
//Changed PM_ACCURATE_MASS 2008-07-24
//Alanine Ala A 2-Aminopropanoic acid, CH3-CH(NH2)-COOH.
//Changed PM_ACCURATE_MASS 2008-07-24
//public const double ALA_MONO_MASS = 71.03711;
//Changed PM_MORE_CONSTANTS 2005-04-12
//Public Const ALA_MONO_MASS As Double = 71.03711
//public const double ALA_MONO_MASS = 71.03711381;
public const double ALA_MONO_MASS = 71.037113807;
//Changed PM_ACCURATE_MASS 2008-07-24
//Changed PM_BETTER_THEO_MASSES 2005-06-24
//Public Const CYS_MONO_MASS_NORMAL As Double = 103.00919 'Cysteine
// Cys C 2-Amino-3-mercaptopropanoic acid HS - CH2 - CH(NH2) - COOH
//Public Const CYS_MONO_MASS_NORMAL As Double = 103.00919 'Cysteine
// Cys C 2-Amino-3-mercaptopropanoic acid HS - CH2 - CH(NH2) - COOH
//Cysteine Cys C 2-Amino-3-mercaptopropanoic acid,
// HS - CH2 - CH(NH2) - COOH
//Changed PM_ACCURATE_MASS 2008-07-24
//public const double CYS_MONO_MASS_NORMAL = 103.0091854;
//
//Changed PM_BETTER_THEO_MASSES 2005-06-24
//Public Const CYS_MONO_MASS_NORMAL As Double = 103.00919 'Cysteine Cys C 2-Amino-3-mercaptopropanoic acid HS - CH2 - CH(NH2) - COOH
//public const double CYS_MONO_MASS_NORMAL = 103.0091854; -old: swopped last two??
public const double CYS_MONO_MASS_NORMAL = 103.009184505;
//Changed PM_ACCURATE_MASS 2008-07-24
//Aspartic acid Aspd D 2-Aminobutanedioic acid,
// HOOC - CH2 - CH(NH2) - COOH
//public const double ASP_MONO_MASS = 115.02694;
public const double ASP_MONO_MASS = 115.026943067;
//Changed PM_ACCURATE_MASS 2008-07-24
//Glutamic acid Glud E d 2-Aminopentanedioic acid,
// HOOC-[CH2]2-CH(NH2)-COOH
//public const double GLU_MONO_MASS = 129.04259;
public const double GLU_MONO_MASS = 129.042593137;
//Changed PM_ACCURATE_MASS 2008-07-24
//Phenylalanine Phe F 2-Amino-3-phenylpropanoic acid
// C6H5 - CH2 - CH(NH2) - COOH
//public const double PHE_MONO_MASS = 147.06841;
public const double PHE_MONO_MASS = 147.068413947;
//Changed PM_ACCURATE_MASS 2008-07-24
//Glycine Gly G Aminoethanoic acid CH2(NH2)-COOH
//public const double GLY_MONO_MASS = 57.02146;
public const double GLY_MONO_MASS = 57.021463737;
//Changed PM_ACCURATE_MASS 2008-07-24
//His H 2-Amino-3-(1H-imidazol-4-yl)-propanoic acid
//public const double HIS_MONO_MASS = 137.05891;
public const double HIS_MONO_MASS = 137.058911881;
//Changed PM_ACCURATE_MASS 2008-07-24
//Isoleucine Ile I 2-Amino-3-methylpentanoic acide
// C2H5 - CH(CH3) - CH(NH2) - COOH
//public const double IIE_MONO_MASS = 113.08406;
public const double IIE_MONO_MASS = 113.084064017;
//Changed PM_ACCURATE_MASS 2008-07-24
//Lysine Lys K 2,6-Diaminohexanoic acid H2N-[CH2]4-CH(NH2)-COOH
//public const double LYS_MONO_MASS = 128.09496;
public const double LYS_MONO_MASS = 128.094963054;
//Changed PM_ACCURATE_MASS 2008-07-24
//Leucine Leu L 2-Amino-4-methylpentanoic acid
// (CH3)2CH-CH2-CH(NH2)-COOH to do: need to make this more elegant
//public const double LEU_MONO_MASS_NORMAL = 113.08406;
public const double LEU_MONO_MASS_NORMAL = 113.084064017;
//Changed PM_ACCURATE_MASS 2008-07-24
//Methionine Met M 2-Amino-4-(methylthio)butanoic acid
// CH3-S-[CH2]2-CH(NH2)-COOH
//public const double MET_MONO_MASS_NORMAL = 131.04049;
public const double MET_MONO_MASS_NORMAL = 131.040484645;
//Changed PM_ACCURATE_MASS 2008-07-24
//Asparagine Asn N d 2-Amino-3-carbamoylpropanoic acid,
//H2N-CO-CH2-CH(NH2)-COOH
//public const double ASN_MONO_MASS = 114.04293;
public const double ASN_MONO_MASS = 114.042927474;
//Changed PM_ACCURATE_MASS 2008-07-24
//Proline Pro P Pyrrolidine-2-carboxylic acid
//public const double PRO_MONO_MASS = 97.05276;
public const double PRO_MONO_MASS = 97.052763877;
//Changed PM_ACCURATE_MASS 2008-07-24
//Glutamine Gln Q 2-Amino-4-carbamoylbutanoic acid,
// H2N-CO-[CH2]2-CH(NH2)-COOH
//public const double GLN_MONO_MASS = 128.05858;
public const double GLN_MONO_MASS = 128.058577544;
//Changed PM_ACCURATE_MASS 2008-07-24
//Arginine Arg R 2-Amino-5-guanidinopentanoicacid,
// H2N-C(=NH)-NH-[CH2]3-CH(NH2)-COOH.
//public const double ARG_MONO_MASS_NORMAL = 156.10111;
public const double ARG_MONO_MASS_NORMAL = 156.101111058;
//Changed PM_ACCURATE_MASS 2008-07-24
//Serine Ser S 2-Amino-3-hydroxypropanoic acid
// HO - CH2 - CH(NH2) - COOH
//public const double SER_MONO_MASS = 87.03203;
public const double SER_MONO_MASS = 87.032028437;
//Changed PM_ACCURATE_MASS 2008-07-24
//Threonine Thr T 2-Amino-3-hydroxybutanoic acid e
// CH3-CH(OH)-CH(NH2)-COOH
//public const double THR_MONO_MASS = 101.04768;
public const double THR_MONO_MASS = 101.047678507;
//Changed PM_ACCURATE_MASS 2008-07-24
//Val V 2-Amino-3-methylbutanoic acid (CH3)2CH-CH(NH2)-COOH
//public const double VAL_MONO_MASS = 99.06841;
public const double VAL_MONO_MASS = 99.068413947;
//Changed PM_ACCURATE_MASS 2008-07-24
//Tryptophan Trp W 2-Amino-3-(lH-indol-3-yl)- propanoic acid
//public const double TRP_MONO_MASS = 186.07931;
public const double TRP_MONO_MASS = 186.079312984;
//Changed PM_ACCURATE_MASS 2008-07-24
//Tyr Y
//public const double TYR_MONO_MASS = 163.06333;
public const double TYR_MONO_MASS = 163.063328577;
// End of AAs.
//----------------------------------------------------------
//Basic values
//Changed PM_ACCURATE_MASS 2008-07-24
//public const double HYDROGEN_MASS = 1.007825035;
public const double HYDROGEN_MASS = 1.007825035;
//Changed PM_MASS_CORRECTIONS 2008-05-20
//public const double PROTON_MASS = 1.0072627;
public const double PROTON_MASS_2 = 1.007276455; //From speadsheet,
// through "Methods in enzymology, vol. 193".
//From IonSource.com.
public const double DEUTERIUM_MASS = 2.014101779;
//Changed PM_ACCURATE_MASS 2008-07-24
//13.003354826(17)
//public const double C13_MASS = 13.003354826;
public const double C13_MASS = 13.003354826;//13.003354826(17)
// 15.99491463(5)
public const double OXYGEN_16_MASS = 15.99491463;
//14.003074002(26) From Ion Source.com
//Changed PM_ACCURATE_MASS 2008-07-24
//public const double N_MASS_MONO = 14.003074002;
public const double N_MASS_MONO = 14.003074002;//14.003074002(26) From Ion Source.com
public const double CO_MASS_MONO = 27.9949146;
//Source: "Methods in enzymology, vol. 193".
//Changed PM_TRIPLE_ENCODING 2003-04-08
public const double N15_MASS = 15.00010897;
//Derived values
public const double NORMAL_N_TERMINUS_MONO = HYDROGEN_MASS;
//Changed PM_BETTER_THEO_MASSES 2005-06-24
//Public Const NORMAL_C_TERMINUS_MONO As Double = 17.00274
public const double NORMAL_C_TERMINUS_MONO = 17.00273967;
//NH2
public const double C_TERMINUS_AMIDE =
N_MASS_MONO + 2 * HYDROGEN_MASS;
public const double H2O_MASS_MONO =
NORMAL_N_TERMINUS_MONO + NORMAL_C_TERMINUS_MONO;
//Not used anywhere...
//Public Const A_ION_OFFSET As Double = PROTON_MASS - CO_MASS_MONO
public const double B_ION_OFFSET = PROTON_MASS_2;
public const double Y_ION_OFFSET =
NORMAL_N_TERMINUS_MONO + NORMAL_C_TERMINUS_MONO + PROTON_MASS_2;
public const double INTERNAL_ION_OFFSET = PROTON_MASS_2;
public const double PEELING_ION_OFFSET =
NORMAL_N_TERMINUS_MONO + PROTON_MASS_2 + H2O_MASS_MONO;
//The mass offset from the nominal mass. This value
//from 'spengler thesis'.
public const double MASS_OFFSET = 1.000456;
//More derived values
public const double DEUTERIUM_HYDROGEN_DIFF =
DEUTERIUM_MASS - HYDROGEN_MASS;
public const double FOUR_DEUTERIUM_HYDROGEN_DIFF =
4 * DEUTERIUM_HYDROGEN_DIFF;
//Public Const EIGHT_DEUTERIUM_HYDROGEN_DIFF As Double =
// 8 * DEUTERIUM_HYDROGEN_DIFF
//Changed PM_ACCURATE_MASS 2008-07-24
//C13 is 13.003354826
//public const double C12_C13_DIFF = C13_MASS - 12.0;
public const double C12_C13_DIFF = C13_MASS - 12.0;
public const double SIX_C12_C13_DIFF = 6 * C12_C13_DIFF;
//About 1 Da
public const double N14_N15_DIFF = N15_MASS - N_MASS_MONO;
public const double FOUR_N14_N15_DIFF = 4 * N14_N15_DIFF;
//Changed PM_TRIPLE_LYSINE 2003-12-01
public const double TWO_N14_N15_DIFF = 2 * N14_N15_DIFF;
//About 10 Da.
//6 C13C12 and 4 N15N14
public const double MASS_6C13_4N14_DIFF =
SIX_C12_C13_DIFF + FOUR_N14_N15_DIFF;
//Changed PM_TRIPLE_LYSINE 2003-12-01
//6 C13C12 and 2 N15N14. "K-full" diff.
public const double MASS_6C13_2N14_DIFF =
SIX_C12_C13_DIFF + TWO_N14_N15_DIFF;
//Changed PM_HEAVY_LYS_TRIPLEENCODING_QUANTMODE 2003-12-09
//Diff is CH3CH2CH2 - H = C3H6, about 42 Da.
public const double MASS_LYSACETYLE_MASS_DIFF =
3 * 12.0 + 6 * HYDROGEN_MASS; //Diff is CH3CH2CH2 - H = C3H6,
//about 42 Da.
//Changed PM_LEUD3_REARRANGE 2003-12-11
public const double LEUD3_DIFF = 3 * DEUTERIUM_HYDROGEN_DIFF;
//public const double LEUD3_DIFF = THREE_DEUTERIUM_HYDROGEN_DIFF;
//Changed PM_REFACTOR_GLOBALS 2003-10-09
//Public LEUMASSMONO As Double = LEU_MONO_MASS_NORMAL 'to do: change
// this for general mechanism.
//Public Const LEU_D3_MONO_MASS As Double = 113.08406 -
// 3 * HYDROGEN_MASS + 3 * DEUTERIUM_MASS
//Leucine Leu L 2-Amino-4-methylpentanoic acid
// (CH3)2CH-CH2-CH(NH2)-COOH
public const double LEU_D3_MONO_MASS =
LEU_MONO_MASS_NORMAL + LEUD3_DIFF;
//Changed PM_KILL_GLOBALS 2003-04-29. Temp non-const to debug
// some other problem....
//Changed PM_KILL_GLOBALS 2003-04-25
//MM changed 11Aug02
//Public Const ARGMASSMONO As Double = ARG_MONO_MASS_NORMAL
//Public Const ARGMASSMONO As Double = ARG_MONO_MASS_NORMAL
//Public Const ARG_C6_MONO_MASS As Double =
// ARG_MONO_MASS_NORMAL - 6 * 12 + 6 * C13_MASS 'C13 is 13.003354826
//C13 is 13.003354826
public const double ARG_C6_MONO_MASS =
ARG_MONO_MASS_NORMAL + SIX_C12_C13_DIFF;
//Changed PM_REFACTOR_GLOBALS 2003-10-09
//Public METMASSMONO As Double = MET_MONO_MASS_NORMAL
public const double MET_OX_MONO_DIFF = OXYGEN_16_MASS;
public const double MET_OX_MONO_MASS =
MET_MONO_MASS_NORMAL + MET_OX_MONO_DIFF;
//Changed PM_CARBAMIDOCYS_MASS 2007-09-13
//'Changed PM_REFACTOR_GLOBALS 2003-10-09
//'Public CYSMASSMONO As Double = CYS_CARBAMIDOMETHYL_MONO_MASS
// 'Default right now.
//Public Const CYS_CARBAMIDOMETHYL_MONO_MASS As Double = 160.03066
// 'To check.
// 0.069 ppm difference..
public const double CYS_CARBAMIDOMETHYL_MONO_MASS = 160.030649;
//Note: mass is not absolute mass, it is the difference between
// native Cys and the Hys modified.
public const double CYS_HYS_ALA_D0 =
ALA_MONO_MASS +
2 * CYS_MONO_MASS_NORMAL +
NORMAL_N_TERMINUS_MONO +
NORMAL_C_TERMINUS_MONO -
2 * HYDROGEN_MASS;
//Public Const CYS_HYS_ALA_D4 As Double =
// CYS_HYS_ALA_D0 - 4 * HYDROGEN_MASS + 4 * DEUTERIUM_MASS
public const double CYS_HYS_ALA_D4 =
CYS_HYS_ALA_D0 +
FOUR_DEUTERIUM_HYDROGEN_DIFF;
public const double CYS_HYS_ALA_AMIDE_D0 =
CYS_HYS_ALA_D0 -
NORMAL_C_TERMINUS_MONO +
C_TERMINUS_AMIDE;
public const double CYS_HYS_ALA_AMIDE_D4 =
CYS_HYS_ALA_D4 -
NORMAL_C_TERMINUS_MONO +
C_TERMINUS_AMIDE;
//Changed PM_REFACTOR 2008-07-24.
//Merged values from somewhere else.
//Those values were the more accurate and they replaced some of
//the old values above.
public const double THREE_DEUTERIUM_HYDROGEN_DIFF =
3 * DEUTERIUM_HYDROGEN_DIFF;
//Note: these two are not in MMConstModule.vb...
//Changed PM_MORE_CONSTANTS 2005-04-12
public const double P_MASS_MONO = 30.973762;
public const double PHOSPHORYLATION_DIFF_80 =
HYDROGEN_MASS + P_MASS_MONO + 3 * OXYGEN_16_MASS;
public const double PHOSPHORYLATION_DIFF_98 =
3 * HYDROGEN_MASS + P_MASS_MONO + 4 * OXYGEN_16_MASS;
} //class MSconstants
} //namespace massSpectrometryBase
Generated by script codePublish.pl at 2009-01-05T15:20:59.