38 #pragma warning(disable:4786)
77 const double MonoMass[] = {0.0, 71.03711, 0.0, 103.00919, 115.02694, 129.04259, 147.06841, 57.02147, 137.05891, 113.08406, 128.09496, 113.08406, 131.04049, 114.04293, 97.05276, 128.05858, 156.10111, 87.03203, 101.04768, 99.06841, 186.07931, 0.0, 163.06333, 0.0, 149.903 , 0.0, 113.08406, 237.14776, 0.0 };
79 const double AverageMass[] = {0.0, 71.08, 0.0, 103.15, 115.09, 129.12, 147.18, 57.05, 137.14, 113.16, 128.17, 113.16, 131.20, 114.10, 97.12, 128.13, 156.19, 87.08, 101.11, 99.13, 186.21, 0.0, 163.18, 0.0, 150.044, 0.0, 113.16, 237.30, 0.0 };
81 const double MonoN15Mass[] = {0.0, 72.034144893, 0.0, 104.006224893, 116.023974893, 130.039624893, 148.065444893, 58.018494893, 140.050014679, 114.081094893, 130.089029786, 114.081094893, 132.037524893, 116.036999786, 98.049794893, 130.052649786, 160.089239572, 88.029064893, 102.044714893, 100.065444893, 188.073379786, 0.0, 164.060364893, 0.0, 150.8964, 0.0, 114.081094893, 240.1388649, 0.0 };
87 const double kTermMass[] = {1.007825, 1.007825, 1.007825, 17.00274, 17.00274, 17.00274, 0, 0, 0, 0, 1.007825, 17.00274, 1.007825};
88 const double kIonTypeMass[] = { -27.994915, 0.0, 17.02655, 27.994915, 2.01565, -14.003075, 0, 0, 0, 0, -26.98709, -15.9994, -70.981405};
101 const double *
const GetMass(
void)
const;
102 const int *
const GetIntMass(
void)
const;
150 const char *
const GetMap(
void)
const;
209 const CMod& operator= (
const CMod& rhs);
219 TSite GetSite(
void)
const;
224 TSite& SetSite(
void);
229 TMass GetPrecursorDelta(
void)
const;
234 TMass& SetPrecursorDelta(
void);
239 TMass GetProductDelta(
void)
const;
244 TMass& SetProductDelta(
void);
249 TEnum GetEnum(
void)
const;
254 TEnum& SetEnum(
void);
259 TFixed GetFixed(
void)
const;
308 Site = (
const char *)-1;
447 switch (GetErrCode()) {
497 bool CalcAndCut(
const char *SeqStart,
499 const char **PepStart,
507 const int *IntCalcMass,
508 const int *PrecursorIntCalcMass,
522 bool CheckCleave(
const char *iPepStart,
const char *iSeqStart);
531 bool CheckCleaveChar(
const char *iPepStart)
const;
534 void CalcMass(
char SeqChar,
536 const int *IntCalcMass
539 void EndMass(
int *Masses
542 int findfirst(
char* Seq,
int Pos,
int SeqLen);
552 const char *iPepStart,
566 const char *iPepStart,
576 int& NumMod,
char SeqChar,
int MaxNumMod,
578 const char *iPepStart,
584 bool GetTopDown(
void)
const;
589 const char *
GetStop(
void)
const;
594 const char * & SetStop(
void);
599 bool GetNonSpecific(
void)
const;
604 int GetCleaveNum(
void)
const;
609 const char * GetCleaveOffset(
void)
const;
614 bool GetNMethionine(
void)
const;
619 bool& SetNMethionine(
void);
621 const string GetCleaveAt(
void)
const;
623 bool GetCheckProline(
void)
const;
625 const char * GetCleaveSense(
void)
const;
740 if(iPepStart == iSeqStart &&
NMethionine && *(iPepStart) ==
'\x0c') {
747 if(iPepStart ==
GetStop())
return true;
764 const int *IntCalcMass
781 char SeqChar,
int MaxNumMod,
CMod ModList[],
782 const char *iPepStart,
793 if (SeqChar == Modset->
GetModChar(VariableMods.
GetAAMods(ModType)[iMods], iChar) && NumMod < MaxNumMod) {
794 ModList[NumMod].
SetSite() = iPepStart;
798 if (setfixed) ModList[NumMod].
SetFixed() = 1;
799 else ModList[NumMod].
SetFixed() = 0;
809 int& NumMod,
int MaxNumMod,
811 const char *iPepStart,
820 if (NumMod < MaxNumMod) {
821 ModList[NumMod].
SetSite() = iPepStart;
825 if (setfixed) ModList[NumMod].
SetFixed() = 1;
826 else ModList[NumMod].
SetFixed() = 0;
835 int& NumMod,
char SeqChar,
int MaxNumMod,
837 const char *iPepStart,
842 iPepStart,
false, Modset);
844 iPepStart,
true, Modset);
846 CheckAAMods(Specific, VariableMods, NumMod, SeqChar, MaxNumMod, ModList,
847 iPepStart,
false, Modset);
849 CheckAAMods(Specific, FixedMods, NumMod, SeqChar, MaxNumMod, ModList,
850 iPepStart,
true, Modset);
const int kNumUniqueAA
@MSMod.hpp User-defined methods of the data storage class.
const char *const GetMap(void) const
return the map for translating AA char to AA number
eMSEnzymes_aspn_de Asp-N that cuts at D and E
eMSEnzymes_chymotrypsin_p chymotrypsin without proline rule
factory to return back object for enzyme
const char *& SetStop(void)
Set the enzyme stop value.
const char * CleaveOffset
what is the cleavage offset
bool CheckProline
Should we apply the proline rule (no cleavage before proline)
void CheckNonSpecificMods(EMSModType ModType, CMSMod &VariableMods, int &NumMod, int MaxNumMod, CMod ModList[], const char *iPepStart, bool setfixed, CRef< CMSModSpecSet > &Modset)
looks for non-specific ptms
bool CheckCleave(const char *iPepStart, const char *iSeqStart)
Check to see if we are at a cleavage point Used by CalcAndCut.
bool GetNonSpecific(void) const
Is this a non-specific search?
const char * Stop
Stop Stop position for no-enzyme and semi-tryptic searches.
bool NMethionine
n-terminal methionine cleavage
void CalcMass(char SeqChar, int *Masses, const int *IntCalcMass)
bool & SetNMethionine(void)
Set n-term methionine cleavage.
const char * GetCleaveOffset(void) const
Get the the cleave offset, 0 = cterm, 1 = nterm.
void CheckMods(EMSModType NonSpecificIn, EMSModType Specific, CMSMod &VariableMods, CMSMod &FixedMods, int &NumMod, char SeqChar, int MaxNumMod, CMod ModList[], const char *iPepStart, CRef< CMSModSpecSet > &Modset)
checks all mods for a particular type
const char * GetStop(void) const
Get the enzyme stop value.
bool NonSpecific
Is this a non-specific search?
bool GetCheckProline(void) const
Should we check for proline?
bool GetNMethionine(void) const
Is there n-term methionine cleavage?
void EndMass(int *Masses)
const string GetCleaveAt(void) const
What are the cleavage chars?
const char * CleaveAt
where to cleave.
bool GetTopDown(void) const
Is the enzyme really a top-down search?
bool CheckCleaveChar(const char *iPepStart) const
is the character given one of the cleavage chars?
const char * GetCleaveSense(void) const
Should we check for proline?
int GetCleaveNum(void) const
Get the number of cleavage chars.
bool TopDown
TopDown does this signify a top-down search.
int kCleave
How many cleavage characters.
void CheckAAMods(EMSModType ModType, CMSMod &VariableMods, int &NumMod, char SeqChar, int MaxNumMod, CMod ModList[], const char *iPepStart, bool setfixed, CRef< CMSModSpecSet > &Modset)
looks for amino acid specific ptms
eMSEnzymes_gluc_de Glu-C that cuts at D and E
eMSEnzymes_lysn Cuts N term of lysine
int GetNeutralLoss(int Mod) const
get neutral loss
int GetModNumChars(int Mod) const
get the number of modification AA's
char GetModChar(int Mod, int Number) const
get modification AA's
int GetModMass(int Mod) const
get modification mass
const TModLists & GetAAMods(EMSModType Type) const
double CalcMass[kNumUniqueAA]
const int *const GetIntMass(void) const
const double *const GetMass(void) const
int IntCalcMass[kNumUniqueAA]
contains information for a post translational modification at a particular sequence site
TMass & SetProductDelta(void)
Set the site postion.
TMass & SetPrecursorDelta(void)
Set the site postion.
int IsFixed
track fixed mods, 1 == fixed
TSite GetSite(void) const
Get the site position.
int TFixed
is the mod fixed?
const char * Site
the position within the peptide of a variable modification
TMass GetPrecursorDelta(void) const
Get the mass to be added to the precursor mass.
TFixed & SetFixed(void)
set mod state (1 = fixed)
CMod(void)
default constructor
int ProductDelta
the modification mass for the product
TEnum GetEnum(void) const
Get mod type.
int TEnum
what is the type of the mod?
TMass GetProductDelta(void) const
Get the mass to be added to the product mass.
void Reset(void)
reset to default values
TSite & SetSite(void)
Set the site postion.
int PrecursorDelta
the modification mass for the precursor
int ModEnum
the modification type (used for saving for output)
TEnum & SetEnum(void)
Set the mod type.
const char * TSite
type for a site on a sequence
TFixed GetFixed(void) const
Is the mod fixed?
const CMod & operator=(const CMod &rhs)
assignment
eMSEnzymes_no_enzyme search without enzyme (precursor mass only)
generic exception class for omssa
NCBI_EXCEPTION_DEFAULT(COMSSAException, CException)
EErrCode
Error types that subsystem can generate.
@ eMSLadderNotFound
ladder not found in CLadderContainer
@ eMSNoMatchException
unmatched sequence library
@ eMSParseException
unable to parse COMSSASearch
virtual const char * GetErrCodeString(void) const override
Translate from the error code value to its string representation.
Chymotrypsin, cuts N terminal at A,F,I,L,M or V.
eMSEnzymes_semi_tryptic semi tryptic search (one end of peptide has to be tryptic)
static SIZE_TYPE Convert(const CTempString &src, TCoding src_coding, TSeqPos pos, TSeqPos length, string &dst, TCoding dst_coding)
eMSEnzymes_thermolysin_p cuts N terminal at A,F,I,L,M or V
eMSEnzymes_top_down top-down search of ETD spectra
whole protein (no cleavage)
std::ofstream out("events_result.xml")
main entry point for tests
virtual const char * GetErrCodeString(void) const
Get error code interpreted as text.
#define EXCEPTION_VIRTUAL_BASE
Do not use virtual base classes in exception declaration at all, because in this case derived class s...
TSeqPos GetStop(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)
If only one CBioseq is represented by CSeq_loc, returns the position at the stop of the location.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
#define NCBI_XOMSSA_EXPORT
EMSModType
enumerate modification types
EMSEnzymes
enumerate enzymes
const double kNeutron
neutron mass
const double kIonTypeMass[]
std::deque< int > TCleave
const double AverageMass[]
const double MonoN15Mass[]
const int kNumAAIntervals
const double kWater
mass of water
const struct ncbi::grid::netcache::search::fields::SIZE size