pep = msHits->GetPepstring();
90 intpos = (*iMod)->GetSite();
91 intnum = (*iMod)->GetModtype();
97 doublemass = aaMass + mdiff;
106modaaMass->SetAttlist().SetPosition(pos+1);
107modaaMass->SetAttlist().SetMass(mass);
115modInfo->
SetAttlist().SetMod_nterm_mass(mass);
122modInfo->
SetAttlist().SetMod_cterm_mass(mass);
136 for(
unsigned int i=0;
i<pep.length();
i++) {
140it = modMap.
find(
i);
141 if(it != modMap.
end()) {
142modPep.append(it->second);
146modaaMass->SetAttlist().SetPosition(
i+1);
148modaaMass->SetAttlist().SetMass(staticMass);
157CMSSearchSettings::TFixed::const_iterator iterF;
158 for(iterF = inOMSSA.
GetRequest().front()->GetSettings().GetFixed().begin();
159iterF != inOMSSA.
GetRequest().front()->GetSettings().GetFixed().end(); ++iterF) {
162 if(
type% 2 != 0) {
183 if(!hasMod)
return null;
184modInfo->
SetAttlist().SetModified_peptide(modPep);
193 if(
type% 2 == 0) {
199aaMod->SetAttlist().SetAminoacid(aaStr);
202 doublemass = aaMass + mdiff;
204aaMod->SetAttlist().SetMass(mass);
206aaMod->SetAttlist().SetVariable(
"N");
211aaMod->SetAttlist().SetVariable(
"Y");
217aaMod->SetAttlist().SetDescription(Modset->
GetUnimodName(modnum));
218sSum->SetAminoacid_modification().push_back(aaMod);
225termMod->SetAttlist().SetVariable(
"N");
227termMod->SetAttlist().SetVariable(
"Y");
229termMod->SetAttlist().SetDescription(Modset->
GetUnimodName(modnum));
232termMod->SetAttlist().SetTerminus(
"n");
233termMod->SetAttlist().SetProtein_terminus(
"Y");
237termMod->SetAttlist().SetTerminus(
"n");
238termMod->SetAttlist().SetProtein_terminus(
"N");
242termMod->SetAttlist().SetTerminus(
"c");
243termMod->SetAttlist().SetProtein_terminus(
"Y");
244termMod->SetAttlist().SetMass(mass +
OH_MASS);
247termMod->SetAttlist().SetTerminus(
"c");
248termMod->SetAttlist().SetProtein_terminus(
"N");
249termMod->SetAttlist().SetMass(mass +
OH_MASS);
252sSum->SetTerminal_modification().push_back(termMod);
266 stringspecFile, startScan, stopScan, dtaCharge;
271 if(RxpLocus.
IsMatch(SpecID)) {
274stopScan = startScan;
277specFile = RxpParse.
GetMatch(SpecID, 0, 1);
278 if(specFile ==
"") {
281startScan= RxpParse.
GetMatch(SpecID, 0, 2);
282 if(startScan ==
"") {
284stopScan = startScan;
286stopScan = RxpParse.
GetMatch(SpecID, 0, 3);
287 if(stopScan ==
"") {
288stopScan = startScan;
293sQuery->SetAttlist().SetSpectrum(specFile +
"."+ startScan +
"."+ stopScan +
"."+ dtaCharge);
299 if(pHit->CanGetAccession()) {
300 returnpHit->GetAccession();
301}
else if(pHit->CanGetGi()) {
304 returnpHit->GetDefline();
314 if(pHitSet->GetHits().empty())
317CMSHitSet::THits::const_iterator iHit;
321 for(iHit = pHitSet->GetHits().begin(); iHit != pHitSet->GetHits().end(); iHit++) {
322charges.
insert((*iHit)->GetCharge());
327iHit = pHitSet->GetHits().begin();
328 intcharge = (*iHit)->GetCharge();
331 while( charge != *iCharge ) {
333charge = (*iHit)->GetCharge();
338 if(!(pHitSet->GetIds().empty())) {
339spectrumID = *(pHitSet->GetIds().begin());
343 ConvertScanID(sQuery, spectrumID, pHitSet->GetNumber(), charge);
346 doubleneutral_precursor_mass = (*iHit)->GetMass()/
m_scale;
347sQuery->SetAttlist().SetPrecursor_neutral_mass(neutral_precursor_mass);
348sQuery->SetAttlist().SetAssumed_charge(charge);
349sQuery->SetAttlist().SetIndex(
m_index++);
354CMSHits::TPephits::const_iterator iPephit;
357 for( ; iHit != pHitSet->GetHits().end(); iHit++) {
359charge = (*iHit)->GetCharge();
360 if( charge != *iCharge ) {
365iPephit = (*iHit)->GetPephits().begin();
369sHit->SetAttlist().SetHit_rank(hitRank);
371sHit->SetAttlist().SetPeptide((*iHit)->GetPepstring());
372 if((*iHit)->CanGetPepstart())
373sHit->SetAttlist().SetPeptide_prev_aa((*iHit)->GetPepstart());
374 if((*iHit)->CanGetPepstop())
375sHit->SetAttlist().SetPeptide_next_aa((*iHit)->GetPepstop());
379sHit->SetAttlist().SetNum_tot_proteins((*iHit)->GetPephits().size());
380sHit->SetAttlist().SetNum_matched_ions((*iHit)->GetMzhits().size());
381 inttot_num_ions = ((*iHit)->GetPepstring().length()-1) * 2;
382sHit->SetAttlist().SetTot_num_ions(tot_num_ions);
383sHit->SetAttlist().SetCalc_neutral_pep_mass((*iHit)->GetTheomass()/
m_scale);
384sHit->SetAttlist().SetMassdiff(
ConvertDouble(neutral_precursor_mass - ((*iHit)->GetTheomass())/
m_scale));
388sHit->SetAttlist().SetProtein_descr((*iPephit)->GetDefline());
392pValue->SetAttlist().SetName(
"pvalue");
393pValue->SetAttlist().SetValue(
ConvertDouble((*iHit)->GetPvalue()));
395eValue->SetAttlist().SetName(
"expect");
396eValue->SetAttlist().SetValue(
ConvertDouble((*iHit)->GetEvalue()));
397sHit->SetSearch_score().push_back(pValue);
398sHit->SetSearch_score().push_back(eValue);
399 if((*iHit)->CanGetScores()) {
402score->SetAttlist().SetName((*iScore)->GetName());
403score->SetAttlist().SetValue(
ConvertDouble((*iScore)->GetValue()));
404sHit->SetSearch_score().push_back(score);
408 for(iPephit++ ; iPephit != (*iHit)->GetPephits().end(); iPephit++) {
411altPro->SetAttlist().SetProtein_descr((*iPephit)->GetDefline());
414sHit->SetAlternative_protein().push_back(altPro);
417 if(modInfo) sHit->SetModification_info(*modInfo);
419sResult->SetSearch_hit().push_back(sHit);
421sQuery->SetSearch_result().push_back(sResult);
422sQueries.push_back(sQuery);
429 m_scale=
static_cast<float>(inOMSSA.
GetRequest().front()->GetSettings().GetScale());
432 for(
intmodchar=0; modchar < 29; modchar++) {
446rSum->SetAttlist().SetBase_name(
basename);
447rSum->SetAttlist().SetRaw_data_type(
"raw");
448rSum->SetAttlist().SetRaw_data(
".mzXML");
452rSum->SetSample_enzyme().SetAttlist().SetName(enzymeName);
455specificity->SetAttlist().SetCut(cleave->
GetCleaveAt());
467cerr <<
"Hmm, a cleavage with no sense, how odd."<< endl;
470specificity->SetAttlist().SetNo_cut(
"P");
472rSum->SetSample_enzyme().SetSpecificity().push_back(specificity);
477sSum->SetAttlist().SetBase_name(
basename);
478sSum->SetAttlist().SetSearch_engine(
"OMSSA");
479sSum->SetAttlist().SetOut_data_type(
"n/a");
480sSum->SetAttlist().SetOut_data(
"n/a");
484 switch(searchType) {
496cerr <<
"Hmm, a typeless search, how odd."<< endl;
501searchType =
static_cast <EMSSearchType>(inOMSSA.
GetRequest().front()->GetSettings().GetProductsearchtype());
503 switch(searchType) {
515cerr <<
"Hmm, a typeless search, how odd."<< endl;
519sSum->SetAttlist().SetSearch_id(1);
522sSum->SetSearch_database().SetAttlist().SetLocal_path(
dbname);
525 if(inOMSSA.
GetResponse().front()->IsSetBioseqs() && inOMSSA.
GetResponse().front()->GetBioseqs().Get().size() > 0)
526dbtype = inOMSSA.
GetResponse().front()->GetBioseqs().Get().front()->GetSeq().GetInst().GetMol();
535sSum->SetSearch_database().SetAttlist().SetSize_in_db_entries(inOMSSA.
GetResponse().front()->GetDbversion());
537sSum->SetEnzymatic_search_constraint().SetAttlist().SetEnzyme(enzymeName);
538sSum->SetEnzymatic_search_constraint().SetAttlist().SetMax_num_internal_cleavages(inOMSSA.
GetRequest().front()->GetSettings().GetMissedcleave());
539sSum->SetEnzymatic_search_constraint().SetAttlist().SetMin_number_termini(cleave->
GetCleaveNum());
542CMSSearchSettings::TFixed::const_iterator iterF;
543 for(iterF = inOMSSA.
GetRequest().front()->GetSettings().GetFixed().begin();
544iterF != inOMSSA.
GetRequest().front()->GetSettings().GetFixed().end(); ++iterF) {
552CMSSearchSettings::TVariable::const_iterator iterV;
553 for(iterV = inOMSSA.
GetRequest().front()->GetSettings().GetVariable().begin();
554iterV != inOMSSA.
GetRequest().front()->GetSettings().GetVariable().end(); ++iterV) {
556variableMods.
insert(*iterV);
560CMSResponse::THitsets::const_iterator iHits;
562 for(iHits = inOMSSA.
GetResponse().front()->GetHitsets().begin();
563iHits != inOMSSA.
GetResponse().front()->GetHitsets().end(); iHits++) {
565 ConvertMSHitSet(*iHits, rSum->SetSpectrum_query(), Modset, variableMods, inOMSSA);
572rSum->SetSearch_summary().push_back(sSum);
char const *const kEnzymeNames[eMSEnzymes_max]
@MSEnzymes.hpp User-defined methods of the data storage class.
CAlternative_protein â.
CAminoacid_modification â.
static CRef< CCleave > CleaveFactory(const EMSEnzymes enzyme)
Simple factory to return back object for enzyme.
bool GetCheckProline(void) const
Should we check for proline?
const string GetCleaveAt(void) const
What are the cleavage chars?
const char * GetCleaveSense(void) const
Should we check for proline?
int GetCleaveNum(void) const
Get the number of cleavage chars.
const char * GetUnimodName(int Mod) const
get unimod name
int GetModNumChars(int Mod) const
get the number of modification AA's
char GetModChar(int Mod, int Number) const
get modification AA's
EMSModType GetModType(int Mod) const
get modification type
int GetModMass(int Mod) const
get modification mass
TAminoAcidMassMap m_aaMassMap
CRef< CModification_info > ConvertModifications(CRef< CMSHits > msHits, CRef< CMSModSpecSet > Modset, set< int > &vModSet, CMSSearch &inOMSSA)
void ConvertModSetting(CRef< CSearch_summary > sSum, CRef< CMSModSpecSet > Modset, int modnum, bool fixed)
string ConvertDouble(double n)
string GetProteinName(CRef< CMSPepHit > pHit)
void ConvertFromOMSSA(CMSSearch &inOMSSA, CRef< CMSModSpecSet > Modset, string basename, string newname)
convert OMSSA to PepXML
pair< char, double > TAminoAcidMassPair
set< char > m_staticModSet
void ConvertMSHitSet(CRef< CMSHitSet > pHitSet, CMsms_run_summary::TSpectrum_query &sQueries, CRef< CMSModSpecSet > Modset, set< int > &variableMods, CMSSearch &inOMSSA)
void ConvertScanID(CRef< CSpectrum_query > sQuery, string SpecID, int query, int charge)
static SIZE_TYPE Convert(const CTempString &src, TCoding src_coding, TSeqPos pos, TSeqPos length, string &dst, TCoding dst_coding)
CTerminal_modification â.
container_type::iterator iterator
const_iterator end() const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
std::ofstream out("events_result.xml")
main entry point for tests
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
bool IsMatch(CTempString str, TMatch flags=fMatch_default)
Check existence substring which match a specified pattern.
CTempString GetMatch(CTempString str, size_t offset=0, size_t idx=0, TMatch flags=fMatch_default, bool noreturn=false)
Get matching pattern and subpatterns.
#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.
static string DoubleToString(double value, int precision=-1, TNumToStringFlags flags=0)
Convert double to string.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
static void SetFormat(const CTimeFormat &fmt)
Set the current time format.
string AsString(const CTimeFormat &format=kEmptyStr, TSeconds out_tz=eCurrentTimeZone) const
Transform time to string.
@ eCurrent
Use current time. See also CCurrentTime.
list< CRef< CMSScoreSet > > TScores
const TRequest & GetRequest(void) const
Get the Request member data.
EMSSearchType
what type of atomic mass to use
list< CRef< CMSModHit > > TMods
const TResponse & GetResponse(void) const
Get the Response member data.
EMSModType
enumerate modification types
EMSEnzymes
enumerate enzymes
@ eMSSearchType_multiisotope
@ eMSSearchType_monoisotopic
@ eMSModType_modn
at the N terminus of a protein
@ eMSModType_modc
at the C terminus of a protein
@ eMSModType_modnpaa
at the N terminus of a peptide at particular amino acids
@ eMSModType_modcpaa
at the C terminus of a peptide at particular amino acids
@ eMSModType_modnp
at the N terminus of a peptide
@ eMSModType_modaa
at particular amino acids
@ eMSModType_modcaa
at the C terminus of a protein at particular amino acids
@ eMSModType_modcp
at the C terminus of a peptide
@ eMSModType_modnaa
at the N terminus of a protein at particular amino acids
TAttlist & SetAttlist(void)
Assign a value to Attlist data member.
TMod_aminoacid_mass & SetMod_aminoacid_mass(void)
Assign a value to Mod_aminoacid_mass data member.
void SetDate(const TDate &value)
Assign a value to Date data member.
void SetAttlist(TAttlist &value)
Assign a value to Attlist data member.
void SetSummary_xml(const TSummary_xml &value)
Assign a value to Summary_xml data member.
list< CRef< CSpectrum_query > > TSpectrum_query
TMsms_run_summary & SetMsms_run_summary(void)
Assign a value to Msms_run_summary data member.
@ eAttlist_fragment_mass_type_average
@ eAttlist_fragment_mass_type_monoisotopic
@ eAttlist_precursor_mass_type_average
@ eAttlist_precursor_mass_type_monoisotopic
char * dbname(DBPROCESS *dbproc)
Get name of current database.
std::istream & in(std::istream &in_, double &x_)
const double HYDROGEN_MASS
map< int, string > TAAModMap
pair< int, string > TAAModPair
C++ wrappers for the Perl-compatible regular expression (PCRE) library.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4