Source code for MSQuant: PILmassSpecConstants.cs, MSQlib1/src/massspec/PILmassSpecConstants.cs.

Table of contents page.

Home page for MSQuant.

/****************************************************************************
 * 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.