Mass++ mzML IO Plugin v2.7.5
 All Classes Namespaces Files Functions Variables Enumerations
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
kome::io::mzml::MzmlChromatogram Class Reference

mzml sample spectrum class More...

#include <MzmlChromatogram.h>

Inheritance diagram for kome::io::mzml::MzmlChromatogram:
Inheritance graph
[legend]
Collaboration diagram for kome::io::mzml::MzmlChromatogram:
Collaboration graph
[legend]

Public Member Functions

 MzmlChromatogram (MzmlSample *file)
 constructor More...
 
virtual ~MzmlChromatogram ()
 destructor
 
void setOffset (const long long offset)
 sets data offset More...
 
long long getOffset ()
 gets data offset More...
 

Protected Member Functions

void parse (xercesc::SAX2XMLReader *parser)
 parse XML data More...
 
virtual void onGetXYData (kome::core::XYData *const xyData)
 This method is called by getXYData method (override method) More...
 
virtual void onGetSpectra (kome::objects::DataSet &dataSet, const double startRt, const double endRt, const kome::objects::SearchType startSearch, const kome::objects::SearchType endSearch)
 This method is called by searchSpectrum or getSpectra method (overriede method) More...
 
virtual double onGetMass (const unsigned int index)
 This method is called by getMass method (override method) More...
 
virtual int onGetMsStage (const unsigned int index)
 This method is called by getMsStage method (override method) More...
 
virtual double onGetPrecursor (const unsigned int index)
 This method is called by getPrecursor method (override method) More...
 

Protected Attributes

MzmlSamplem_mzmlSample
 
long long m_offset
 

Detailed Description

mzml sample spectrum class

Definition at line 29 of file MzmlChromatogram.h.

Constructor & Destructor Documentation

kome::io::mzml::MzmlChromatogram::MzmlChromatogram ( MzmlSample file)

constructor

Parameters
filesample

Definition at line 36 of file MzmlChromatogram.cpp.

37  : kome::objects::Chromatogram( file ) {
38  m_offset = -1;
39  m_mzmlSample = file;
40 }

Member Function Documentation

long long kome::io::mzml::MzmlChromatogram::getOffset ( )

gets data offset

Returns
data offset

Definition at line 52 of file MzmlChromatogram.cpp.

52  {
53  return m_offset;
54 }
double kome::io::mzml::MzmlChromatogram::onGetMass ( const unsigned int  index)
protectedvirtual

This method is called by getMass method (override method)

Parameters
indexdata index
Returns
mass

Definition at line 172 of file MzmlChromatogram.cpp.

172  {
173  return -1.0;
174 }
int kome::io::mzml::MzmlChromatogram::onGetMsStage ( const unsigned int  index)
protectedvirtual

This method is called by getMsStage method (override method)

Parameters
indexdata index
Returns
MS stage.

Definition at line 177 of file MzmlChromatogram.cpp.

177  {
178  return -1;
179 }
double kome::io::mzml::MzmlChromatogram::onGetPrecursor ( const unsigned int  index)
protectedvirtual

This method is called by getPrecursor method (override method)

Parameters
indexdata index
Returns
precursor mass

Definition at line 182 of file MzmlChromatogram.cpp.

182  {
183  return -1.0;
184 }
void kome::io::mzml::MzmlChromatogram::onGetSpectra ( kome::objects::DataSet &  dataSet,
const double  startRt,
const double  endRt,
const kome::objects::SearchType  startSearch,
const kome::objects::SearchType  endSearc 
)
protectedvirtual

This method is called by searchSpectrum or getSpectra method (overriede method)

Parameters
spectraspectra object to store spectra
startRtstart RT
endRtend RT
startSearchstart search type
endSearchend search type

Definition at line 162 of file MzmlChromatogram.cpp.

168  {
169 }
void kome::io::mzml::MzmlChromatogram::onGetXYData ( kome::core::XYData *const  xyData)
protectedvirtual

This method is called by getXYData method (override method)

Parameters
xyDataobject to store data points

Definition at line 120 of file MzmlChromatogram.cpp.

120  {
121  // check the parameter
122  if( xyData == NULL ) {
123  return;
124  }
125 
126  // data points
127  kome::core::DataPoints dps;
128 
129  // parser
130  xercesc::SAX2XMLReader* parser = kome::xml::XercesTool::getParser( NULL );
131  parser->setFeature( xercesc::XMLUni::fgXercesSchema, false );
132  parser->setFeature( xercesc::XMLUni::fgXercesSchemaFullChecking, false );
133 
134  // create handler
135  MzmlDataHandler handler( *m_mzmlSample, getName(), dps );
136 
137  parser->setContentHandler( &handler );
138  parser->setErrorHandler( &handler );
139 
140  // parse
141  try {
142  parse( parser );
143  for( unsigned int i = 0; i < dps.getLength(); i++ ) {
144  xyData->addPoint( dps.getX( i ), dps.getY( i ) );
145  }
146  }
147  catch( const xercesc::XMLException& e ) {
148  LOG_ERROR( FMT( "XML Exception: %s", kome::xml::XercesTool::transcode( e.getMessage() ).c_str() ) );
149  handler.setError( true );
150  }
151  catch( const xercesc::SAXParseException& e ) {
152  LOG_ERROR( FMT( "SAX Parse Exception: %s", kome::xml::XercesTool::transcode( e.getMessage() ).c_str() ) );
153  handler.setError( true );
154  }
155  catch( ... ) {
156  LOG_ERROR( FMT( "Unexpected Exception" ) );
157  handler.setError( true );
158  }
159 }
XML data handler to get spectrum data points.
void parse(xercesc::SAX2XMLReader *parser)
parse XML data

Here is the call graph for this function:

void kome::io::mzml::MzmlChromatogram::parse ( xercesc::SAX2XMLReader *  parser)
protected

parse XML data

Parameters
parserparser

Definition at line 57 of file MzmlChromatogram.cpp.

57  {
58  // get file
59  MzmlSample* sample = (MzmlSample*)getSample();
60  MzmlSampleSet* sampleSet = sample->getMzmlSampleSet();
61 
62  // parse
63  if( m_offset > 0 ) {
64  // seek
65  FILE* fp = sampleSet->getFile();
66  fileseek( fp, m_offset, SEEK_SET );
67 
68  // read file
69  std::string tag;
70  char buff[ 1024 ];
71  bool loop = true;
72  bool endTag = false;
73  while( loop ) {
74  // read
75  int readSize = fread( buff, 1, 1023, fp );
76 
77  // add to tag
78  if( readSize > 0 ) {
79  buff[ readSize ] = '\0';
80  tag.append( buff );
81  }
82 
83  // check the tag
84  unsigned int pos = tag.find( "</chromatogram>" );
85  if( pos != (unsigned int)tag.npos ) {
86  endTag = true;
87  loop = false;
88 
89  tag = tag.substr( 0, pos );
90  tag.append( "</chromatogram>" );
91  }
92 
93  // check the size
94  if( readSize < 1023 ) {
95  loop = false;
96  }
97  }
98 
99  unsigned int pos = tag.find( "<chromatogram" );
100  if( pos != (unsigned int)tag.npos ) {
101  tag = tag.substr( pos );
102  }
103 
104  // parse
105  if( endTag ) {
106  xercesc::MemBufInputSource source( (const XMLByte*)tag.c_str(), tag.size(), "memory_buffer", false );
107  parser->parse( source );
108  }
109  else {
110  LOG_WARN( FMT( "Failed to get the chromatogram tag." ) );
111  }
112  }
113  else {
114  // parse file
115  parser->parse( sampleSet->getFilePath() );
116  }
117 }
MzmlSampleSet * getMzmlSampleSet()
gets mzML sample set object
Definition: MzmlSample.cpp:65
mzML sample set class
Definition: MzmlSampleSet.h:24
FILE * getFile()
gets file descriptor
mzML sample class
Definition: MzmlSample.h:26

Here is the call graph for this function:

void kome::io::mzml::MzmlChromatogram::setOffset ( const long long  offset)

sets data offset

Parameters
offsetdata offset

Definition at line 47 of file MzmlChromatogram.cpp.

47  {
48  m_offset = offset;
49 }

Member Data Documentation

MzmlSample* kome::io::mzml::MzmlChromatogram::m_mzmlSample
protected

sample

Definition at line 46 of file MzmlChromatogram.h.

long long kome::io::mzml::MzmlChromatogram::m_offset
protected

data offset

Definition at line 50 of file MzmlChromatogram.h.


The documentation for this class was generated from the following files: