13 #include "AccessionManager.h"
18 using namespace kome::io::mzml;
23 #define new new( _NORMAL_BLOCK, __FILE__, __LINE__ )
24 #define malloc( s ) _malloc_dbg( s, _NORMAL_BLOCK, __FILE__, __LINE__ )
32 kome::core::ResourceBundle& rb = kome::core::ResourceBundle::getInstance();
33 std::string path = rb.searchResource(
"psi-ms", NULL,
"obo" );
45 for(
unsigned int i = 0; i <
m_accessions.size(); i++ ) {
68 std::string idStr = NVL(
id,
"" );
72 for(
unsigned int i = 0; i <
m_accessions.size() && acc == NULL; i++ ) {
74 if( idStr.compare( tmp->
getId() ) == 0 ) {
86 fs.open( path, std::ios::in );
94 std::map< std::string, Accession* > accMap;
95 std::map< Accession*, std::string > parentMap;
98 fs.getline( line, 0x1000 );
99 line[ 0x1000 - 1 ] =
'\0';
101 char* colon = strstr( line,
":" );
102 if( colon != NULL ) {
104 std::string title( line, colon );
105 title = trimstring( title.c_str() );
109 while( *v ==
' ' || *v ==
'\n' || *v ==
'\t' || *v ==
'\r' ) {
112 std::string value = trimstring( v );
115 if( title.compare(
"id" ) == 0 ) {
118 accMap[ value ] = acc;
120 else if( title.compare(
"name" ) == 0 ) {
125 else if( title.compare(
"is_a" ) == 0 ) {
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() );
131 parentMap[ acc ] = value;
141 for(
unsigned int i = 0; i <
m_accessions.size(); 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 ];
void setParent(Accession *parent)
sets parent accession
static AccessionManager & getInstance()
gets accession manager object (This is the only object.)
void clearAccessions()
clears accessions
const char * getId()
gets accession ID
virtual ~AccessionManager()
destructor
interfaces of Accession class
Accession * getAccession(const unsigned int idx)
gets accession
accession object management class
void readOboFile(const char *path)
reads obo file
accession information class
void setName(const char *name)
AccessionManager()
constructor
std::vector< Accession * > m_accessions
unsigned int getNumberOfAccessions()
gets the number of accessions