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

accession object management class More...

#include <AccessionManager.h>

Public Member Functions

unsigned int getNumberOfAccessions ()
 gets the number of accessions More...
 
AccessiongetAccession (const unsigned int idx)
 gets accession More...
 
AccessiongetAccession (const char *id)
 gets accession More...
 

Static Public Member Functions

static AccessionManagergetInstance ()
 gets accession manager object (This is the only object.) More...
 

Protected Member Functions

 AccessionManager ()
 constructor
 
virtual ~AccessionManager ()
 destructor
 
void clearAccessions ()
 clears accessions
 
void readOboFile (const char *path)
 reads obo file More...
 

Protected Attributes

std::vector< Accession * > m_accessions
 

Detailed Description

accession object management class

Definition at line 26 of file AccessionManager.h.

Member Function Documentation

Accession * kome::io::mzml::AccessionManager::getAccession ( const unsigned int  idx)

gets accession

Parameters
idxaccession index
Returns
accession (If NULL, the index is illegal.)

Definition at line 58 of file AccessionManager.cpp.

58  {
59  if( idx >= m_accessions.size() ) {
60  return NULL;
61  }
62  return m_accessions[ idx ];
63 }
std::vector< Accession * > m_accessions
Accession * kome::io::mzml::AccessionManager::getAccession ( const char *  id)

gets accession

Parameters
idaccession ID
Returns
accession (If NULL, the ID is illegal.)

Definition at line 66 of file AccessionManager.cpp.

66  {
67  // string object
68  std::string idStr = NVL( id, "" );
69 
70  // search
71  Accession* acc = NULL;
72  for( unsigned int i = 0; i < m_accessions.size() && acc == NULL; i++ ) {
73  Accession* tmp = m_accessions[ i ];
74  if( idStr.compare( tmp->getId() ) == 0 ) {
75  acc = tmp;
76  }
77  }
78 
79  return acc;
80 }
const char * getId()
gets accession ID
Definition: Accession.cpp:47
accession information class
Definition: Accession.h:24
std::vector< Accession * > m_accessions

Here is the call graph for this function:

static AccessionManager & kome::io::mzml::AccessionManager::getInstance ( )
static

gets accession manager object (This is the only object.)

Returns
accession manager object

Definition at line 154 of file AccessionManager.cpp.

154  {
155  static AccessionManager mgr;
156  return mgr;
157 }
accession object management class
unsigned int kome::io::mzml::AccessionManager::getNumberOfAccessions ( )

gets the number of accessions

Returns
the number of accessions

Definition at line 53 of file AccessionManager.cpp.

53  {
54  return m_accessions.size();
55 }
std::vector< Accession * > m_accessions
void kome::io::mzml::AccessionManager::readOboFile ( const char *  path)
protected

reads obo file

Parameters
pathobo file path

Definition at line 83 of file AccessionManager.cpp.

83  {
84  // open
85  std::fstream fs;
86  fs.open( path, std::ios::in );
87  if( fs.fail() ) {
88  return;
89  }
90 
91  // read
92  char line[ 0x1000 ];
93  Accession* acc = NULL;
94  std::map< std::string, Accession* > accMap;
95  std::map< Accession*, std::string > parentMap;
96 
97  while( !fs.eof() ) {
98  fs.getline( line, 0x1000 );
99  line[ 0x1000 - 1 ] = '\0';
100 
101  char* colon = strstr( line, ":" );
102  if( colon != NULL ) {
103  // title
104  std::string title( line, colon );
105  title = trimstring( title.c_str() );
106 
107  // value
108  char* v = colon + 1;
109  while( *v == ' ' || *v == '\n' || *v == '\t' || *v == '\r' ) {
110  v = v + 1;
111  }
112  std::string value = trimstring( v );
113 
114  // set accession
115  if( title.compare( "id" ) == 0 ) { // ID
116  acc = new Accession( value.c_str() );
117  m_accessions.push_back( acc );
118  accMap[ value ] = acc;
119  }
120  else if( title.compare( "name" ) == 0 ) { // name
121  if( acc != NULL ) {
122  acc->setName( value.c_str() );
123  }
124  }
125  else if( title.compare( "is_a" ) == 0 ) { // parent
126  unsigned int pos = value.find( "!" );
127  if( pos != (unsigned int)value.npos ) {
128  value = value.substr( 0, pos );
129  value = trimstring( value.c_str() );
130 
131  parentMap[ acc ] = value;
132  }
133  }
134  }
135  }
136 
137  // close
138  fs.close();
139 
140  // set parents
141  for( unsigned int i = 0; i < m_accessions.size(); i++ ) {
142  acc = m_accessions[ i ];
143  if( parentMap.find( acc ) != parentMap.end() ) {
144  std::string parentName = parentMap[ acc ];
145  if( accMap.find( parentName ) != accMap.end() ) {
146  Accession* parent = accMap[ parentName ];
147  acc->setParent( parent );
148  }
149  }
150  }
151 }
void setParent(Accession *parent)
sets parent accession
Definition: Accession.cpp:62
accession information class
Definition: Accession.h:24
void setName(const char *name)
Definition: Accession.cpp:52
std::vector< Accession * > m_accessions

Here is the call graph for this function:

Member Data Documentation

std::vector< Accession* > kome::io::mzml::AccessionManager::m_accessions
protected

accessions

Definition at line 42 of file AccessionManager.h.


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