1 #ifndef ALGO_GNOMON___GNOMON_ENGINE__HPP 2 #define ALGO_GNOMON___GNOMON_ENGINE__HPP 3 4 /* $Id: gnomon_engine.hpp 556322 2018-01-29 20:11:39Z souvorov $ 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 #include "gnomon_seq.hpp" 37 #include "hmm.hpp" 38 39 class CTerminal; 40 class CCodingRegion; 41 class CNonCodingRegion; 42 class CSeqScores; 43 class CParse; 44 45 BEGIN_NCBI_SCOPE 46 BEGIN_SCOPE(gnomon) 47 48 struct CGnomonEngine::SGnomonEngineImplData { 49 SGnomonEngineImplData(CConstRef<CHMMParameters> hmm_params, CResidueVec&& sequence, TSignedSeqRange range); 50 SGnomonEngineImplData(CConstRef<CHMMParameters> hmm_params, const CResidueVec& sequence, TSignedSeqRange range); 51 ~SGnomonEngineImplData(); 52 53 CResidueVec m_seq; 54 CDoubleStrandSeq m_ds; 55 TSignedSeqRange m_range; 56 int m_gccontent; 57 58 CConstRef<CHMMParameters> m_hmm_params; 59 60 template<class C> GetHMMParameterCGnomonEngine::SGnomonEngineImplData61 void GetHMMParameter(const C*& param) 62 { 63 param = dynamic_cast<const C*>( & m_hmm_params->GetParameter(C::class_id(),m_gccontent)); 64 } 65 66 const CWAM_Acceptor<2>* m_acceptor; 67 const CWAM_Donor<2>* m_donor; 68 const CWMM_Start* m_start; 69 const CWAM_Stop* m_stop; 70 const CMC3_CodingRegion<5>* m_cdr; 71 const CMC_NonCodingRegion<5>* m_ncdr; 72 const CMC_NonCodingRegion<5>* m_intrg; 73 const CIntronParameters* m_intron_params; 74 const CIntergenicParameters* m_intergenic_params; 75 const CExonParameters* m_exon_params; 76 77 78 auto_ptr<CSeqScores> m_ss; 79 auto_ptr<CParse> m_parse; 80 }; 81 82 END_SCOPE(gnomon) 83 END_NCBI_SCOPE 84 85 #endif // ALGO_GNOMON___GNOMON_ENGINE__HPP 86