Sleipnir
src/orthologyi.h
00001 /*****************************************************************************
00002 * This file is provided under the Creative Commons Attribution 3.0 license.
00003 *
00004 * You are free to share, copy, distribute, transmit, or adapt this work
00005 * PROVIDED THAT you attribute the work to the authors listed below.
00006 * For more information, please see the following web page:
00007 * http://creativecommons.org/licenses/by/3.0/
00008 *
00009 * This file is a component of the Sleipnir library for functional genomics,
00010 * authored by:
00011 * Curtis Huttenhower (chuttenh@princeton.edu)
00012 * Mark Schroeder
00013 * Maria D. Chikina
00014 * Olga G. Troyanskaya (ogt@princeton.edu, primary contact)
00015 *
00016 * If you use this library, the included executable tools, or any related
00017 * code in your work, please cite the following publication:
00018 * Curtis Huttenhower, Mark Schroeder, Maria D. Chikina, and
00019 * Olga G. Troyanskaya.
00020 * "The Sleipnir library for computational functional genomics"
00021 *****************************************************************************/
00022 #ifndef ORTHOLOGYI_H
00023 #define ORTHOLOGYI_H
00024 
00025 #include <map>
00026 
00027 #include "file.h"
00028 
00029 namespace Sleipnir {
00030 
00031 class CGene;
00032 class CGenome;
00033 
00034 class COrthologyImpl : protected CFile {
00035 protected:
00036     static const char   c_cOrgSep   = '|';
00037 
00038     typedef std::map<CGene*,size_t> TMapGeneI;
00039 
00040     ~COrthologyImpl( );
00041 
00042     void Reset( );
00043 
00044     std::vector<std::string>            m_vecstrOrganisms;
00045     std::vector<CGenome*>               m_vecpGenomes;
00046     TMapGeneI                           m_mapGenes;
00047     std::vector<std::vector<CGene*> >   m_vecvecpGenes;
00048 };
00049 
00050 }
00051 
00052 #endif // ORTHOLOGYI_H