Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
science
xtandem
rt-seconds.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File rt-seconds.patch of Package xtandem
diff --git a/src/saxmzmlhandler.cpp b/src/saxmzmlhandler.cpp index 9348b62..88dd906 100644 --- a/src/saxmzmlhandler.cpp +++ b/src/saxmzmlhandler.cpp @@ -93,6 +93,7 @@ void SAXMzmlHandler::startElement(const XML_Char *el, const XML_Char **attr) const char* name = getAttrValue("name", attr); cout.flush(); const char* accession = getAttrValue("accession", attr); + const char* unitAccession = getAttrValue("unitAccession", attr); const char* value = getAttrValue("value", attr); if (m_bInRefGroup) { @@ -100,12 +101,13 @@ void SAXMzmlHandler::startElement(const XML_Char *el, const XML_Char **attr) m_cvParam.refGroupName = string(m_ccurrentRefGroupName); m_cvParam.name = string(name); m_cvParam.accession = string(accession); + m_cvParam.unitAccession = string(unitAccession); m_cvParam.value = string(value); m_refGroupCvParams.push_back(m_cvParam); } else { - processCVParam(name,accession,value); + processCVParam(name,accession,unitAccession,value); } } else if (isElement("referenceableParamGroupRef", el)) @@ -115,7 +117,7 @@ void SAXMzmlHandler::startElement(const XML_Char *el, const XML_Char **attr) { if(!strcmp(groupName,m_refGroupCvParams[i].refGroupName.c_str())) { - processCVParam(m_refGroupCvParams[i].name.c_str(), m_refGroupCvParams[i].accession.c_str(), m_refGroupCvParams[i].value.c_str()); + processCVParam(m_refGroupCvParams[i].name.c_str(), m_refGroupCvParams[i].accession.c_str(), m_refGroupCvParams[i].unitAccession.c_str(), m_refGroupCvParams[i].value.c_str()); } } } @@ -165,7 +167,7 @@ void SAXMzmlHandler::characters(const XML_Char *s, int len) } } -void SAXMzmlHandler::processCVParam(const char* name, const char* accession, const char* value) +void SAXMzmlHandler::processCVParam(const char* name, const char* accession, const char* unitAccession, const char* value) { if ((!strcmp(name, "ms level") || !strcmp(accession,"MS:1000511")) && !strcmp(value,"2")){ m_bInMsLevel2 = true; @@ -178,9 +180,16 @@ void SAXMzmlHandler::processCVParam(const char* name, const char* accession, con // m_strDesc = value; } else if(!strcmp(name, "scan start time") || !strcmp(accession,"MS:1000016")) { - if(atof(value) > 0.0) { + float fvalue = atof(value); + if (!strcmp(unitAccession, "UO:0000010")) // seconds + fvalue *= 1.0; + else if (!strcmp(unitAccession, "UO:0000031")) // minutes + fvalue *= 60.0; + else + fvalue *= 60.0; // backward compat + if(fvalue > 0.0) { char pLine[256]; - sprintf(pLine,"PT%.3lfS",60.0*atof(value)); + sprintf(pLine,"PT%.3lfS",fvalue); m_strRt = pLine; } else { diff --git a/src/saxmzmlhandler.h b/src/saxmzmlhandler.h index c11eae9..3a4a387 100644 --- a/src/saxmzmlhandler.h +++ b/src/saxmzmlhandler.h @@ -63,7 +63,7 @@ private: /** * Process cv params */ - void processCVParam(const char* name, const char* accession, const char* value); + void processCVParam(const char* name, const char* accession, const char* unitAccession, const char* value); private: // Flags indicating parser is inside a particular tag. @@ -81,6 +81,7 @@ private: string name; string accession; string value; + string unitAccession; }; vector <cvParam> m_refGroupCvParams;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor