1 #ifndef ALGO_GNOMON___PARSE__HPP
2 #define ALGO_GNOMON___PARSE__HPP
3 
4 /*  $Id: parse.hpp 116643 2008-01-07 14:42:04Z chetvern $
5  * ===========================================================================
6  *
7  *                            PUBLIC DOMAIN NOTICE
8  *               National Center for Biotechnology Information
9  *
10  *  This software/database is a "United States Government Work" under the
11  *  terms of the United States Copyright Act.  It was written as part of
12  *  the author's official duties as a United States Government employee and
13  *  thus cannot be copyrighted.  This software/database is freely available
14  *  to the public for use. The National Library of Medicine and the U.S.
15  *  Government have not placed any restriction on its use or reproduction.
16  *
17  *  Although all reasonable efforts have been taken to ensure the accuracy
18  *  and reliability of the software and data, the NLM and the U.S.
19  *  Government do not and cannot warrant the performance or results that
20  *  may be obtained by using this software or data. The NLM and the U.S.
21  *  Government disclaim all warranties, express or implied, including
22  *  warranties of performance, merchantability or fitness for any particular
23  *  purpose.
24  *
25  *  Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Authors:  Alexandre Souvorov
30  *
31  * File Description:
32  *
33  */
34 
35 #include <corelib/ncbistd.hpp>
36 
37 #include <algo/gnomon/gnomon.hpp>
38 #include "hmm.hpp"
39 
40 BEGIN_NCBI_SCOPE
41 BEGIN_SCOPE(gnomon)
42 
43 class CParse
44 {
45     public:
46         CParse(const CSeqScores& ss,
47                const CIntronParameters&     intron_params,
48                const CIntergenicParameters& intergenic_params,
49                const CExonParameters&       exon_params,
50                bool leftanchor, bool rightanchor);
Path() const51         const CHMM_State* Path() const { return m_path; }
52         void PrintInfo() const;
53         list<CGeneModel> GetGenes() const;
54     //        typedef list<CGene>::iterator TGenIt;
55 
56     private:
57         CParse& operator=(const CParse&);
58         const CSeqScores& m_seqscr;
59         const CHMM_State* m_path;
60 
61         vector<CIntergenic> m_igplus, m_igminus;
62         vector<CIntron> m_inplus[2][3], m_inminus[2][3];
63         vector<CFirstExon> m_feplus[2][3], m_feminus;
64         vector<CInternalExon> m_ieplus[2][3], m_ieminus[2][3];
65         vector<CLastExon> m_leplus, m_leminus[2][3];
66         vector<CSingleExon> m_seplus, m_seminus;
67 };
68 
69 void LogicalCheck(const CHMM_State& st, const CSeqScores& ss);
70 
71 
72 END_SCOPE(gnomon)
73 END_NCBI_SCOPE
74 
75 #endif  // ALGO_GNOMON___PARSE__HPP
76