cpg.hpp
来自「ncbi源码」· HPP 代码 · 共 152 行
HPP
152 行
/* * =========================================================================== * PRODUCTION $Log: cpg.hpp,v $ * PRODUCTION Revision 1000.1 2004/04/12 17:47:56 gouriano * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.6 * PRODUCTION * =========================================================================== *//* $Id: cpg.hpp,v 1000.1 2004/04/12 17:47:56 gouriano Exp $* ===========================================================================** PUBLIC DOMAIN NOTICE* National Center for Biotechnology Information** This software/database is a "United States Government Work" under the* terms of the United States Copyright Act. It was written as part of* the author's official duties as a United States Government employee and* thus cannot be copyrighted. This software/database is freely available* to the public for use. The National Library of Medicine and the U.S.* Government have not placed any restriction on its use or reproduction.** Although all reasonable efforts have been taken to ensure the accuracy* and reliability of the software and data, the NLM and the U.S.* Government do not and cannot warrant the performance or results that* may be obtained by using this software or data. The NLM and the U.S.* Government disclaim all warranties, express or implied, including* warranties of performance, merchantability or fitness for any particular* purpose.** Please cite the author in any work or product based on this material.** ===========================================================================** Author: Philip Johnson** File Description: header file for c++ cpg-finding functions** ===========================================================================*/#ifndef ALGO_SEQUENCE___CPG__HPP#define ALGO_SEQUENCE___CPG__HPP#include <corelib/ncbistd.hpp>#include <list>BEGIN_NCBI_SCOPE/*---------------------------------------------------------------------------*/struct NCBI_XALGOSEQ_EXPORT SCpGIsland { TSeqPos m_Start; TSeqPos m_Stop; unsigned int m_CG; unsigned int m_A; unsigned int m_C; unsigned int m_G; unsigned int m_T; unsigned int m_N;};/*---------------------------------------------------------------------------*/class NCBI_XALGOSEQ_EXPORT CCpGIslands{public: typedef list<SCpGIsland> TIsles; CCpGIslands(const char* seq, TSeqPos seqLength, int window = 200, int minLen = 200, double GC = 0.5, double CpG = 0.6); void Calc(int windowSize, int minLen, double GC, double CpG); void MergeIslesWithin(unsigned int range); const TIsles& GetIsles(void) const; private: TIsles m_Isles; const char* m_Seq; TSeqPos m_SeqLength; unsigned int m_WindowSize; unsigned int m_MinIsleLen; unsigned int m_GC; unsigned int m_CpG; //prohibit copy constructor and assignment operator CCpGIslands(const CCpGIslands&); CCpGIslands& operator=(const CCpGIslands&); bool x_IsIsland(const SCpGIsland &isle) const; void x_AddPosition(TSeqPos i, SCpGIsland &isle); void x_RemovePosition(TSeqPos i, SCpGIsland &isle); void x_CalcWindowStats(SCpGIsland &isle); bool x_SlideToHit(SCpGIsland &isle); bool x_ExtendHit(SCpGIsland &isle);};///////////////////////////////////////////////////////////////////////////////// PRE : none// POST: list of islandsinlineconst CCpGIslands::TIsles& CCpGIslands::GetIsles(void) const{ return m_Isles;}///////////////////////////////////////////////////////////////////////////////// PRE : island structure filled// POST: whether or not we consider this to be a CpG islandinlinebool CCpGIslands::x_IsIsland(const SCpGIsland &isle) const{ TSeqPos len = isle.m_Stop - isle.m_Start + 1; return ((100 * (isle.m_C + isle.m_G) > m_GC * len) && ((100 * isle.m_CG * len) > (m_CpG * isle.m_C * isle.m_G)));}END_NCBI_SCOPE#endif /*ALGO_SEQUENCE___CPG__HPP*//*===========================================================================* $Log: cpg.hpp,v $* Revision 1000.1 2004/04/12 17:47:56 gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.6** Revision 1.6 2003/12/12 20:19:20 ivanov* Rollback to 1.4** Revision 1.5 2003/12/12 20:15:55 ivanov* Added unimplemented SCpGIsland:: operators < and == to avoid compilation* on MSVC 7** Revision 1.4 2003/12/12 20:05:18 johnson* refactoring to accommodate MSVC 7** Revision 1.3 2003/08/04 15:43:20 dicuccio* Modified export specifiers to be more flexible** Revision 1.2 2003/06/17 19:44:13 dicuccio* Minor code reformatting. Added export specifiers** Revision 1.1 2003/06/17 15:32:27 johnson* initial revision** ===========================================================================*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?