struct_util.hpp

来自「ncbi源码」· HPP 代码 · 共 131 行

HPP
131
字号
/* * =========================================================================== * PRODUCTION $Log: struct_util.hpp,v $ * PRODUCTION Revision 1000.0  2004/06/01 18:12:13  gouriano * PRODUCTION PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.5 * PRODUCTION * =========================================================================== *//*  $Id: struct_util.hpp,v 1000.0 2004/06/01 18:12:13 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.** ===========================================================================** Authors:  Paul Thiessen** File Description:*       alignment utility algorithms** ===========================================================================*/#ifndef STRUCT_UTIL__HPP#define STRUCT_UTIL__HPP#include <corelib/ncbistd.hpp>#include <objects/seqset/Seq_entry.hpp>#include <objects/seq/Seq_annot.hpp>BEGIN_SCOPE(struct_util)class SequenceSet;class AlignmentSet;class BlockMultipleAlignment;class AlignmentUtility{public:    typedef std::list < ncbi::CRef < ncbi::objects::CSeq_entry > > SeqEntryList;    typedef std::list< ncbi::CRef< ncbi::objects::CSeq_annot > > SeqAnnotList;    AlignmentUtility(const ncbi::objects::CSeq_entry& seqEntry, const SeqAnnotList& seqAnnots);    AlignmentUtility(const SeqEntryList& seqEntries, const SeqAnnotList& seqAnnots);    ~AlignmentUtility();    bool Okay(void) const { return m_okay; }    // Get ASN data    const SeqAnnotList& GetSeqAnnots(void);    // do the intersect-by-master (IBM) algorithm    bool DoIBM(void);    // do the leave-one-out (LOO) algorithm (implies IBM) using the block aligner.    // Numbering in these arguments starts from zero. Note that this currently requires    // the file "data/BLOSUM62" to be present, used for PSSM calculation.    bool DoLeaveOneOut(        unsigned int row, const std::vector < unsigned int >& blocksToRealign,  // what to realign        double percentile, unsigned int extension, unsigned int cutoff);        // to calculate max loop lengthsprivate:    // sequence data    SeqEntryList m_seqEntries;    SequenceSet *m_sequenceSet;    // alignment data - the idea is that since these are redundant, we'll either have the    // SeqAnnots+AlignmentSet or the BlockMultipleAlignment, not (usually) both. If one    // changes, the other should be removed or recreated; if both are present, they must    // contain the same data.    SeqAnnotList m_seqAnnots;    AlignmentSet *m_alignmentSet;    BlockMultipleAlignment *m_currentMultiple;    void Init(void);    bool m_okay;    // to delete parts of the data    void RemoveMultiple(void);    void RemoveAlignAnnot(void);};END_SCOPE(struct_util)#endif // STRUCT_UTIL__HPP/** ---------------------------------------------------------------------------* $Log: struct_util.hpp,v $* Revision 1000.0  2004/06/01 18:12:13  gouriano* PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.5** Revision 1.5  2004/05/28 09:43:35  thiessen* add comment about data/BLOSUM62** Revision 1.4  2004/05/26 14:30:53  thiessen* adjust handling of alingment data ; add row ordering** Revision 1.3  2004/05/26 02:41:13  thiessen* progress towards LOO - all but PSSM and row ordering** Revision 1.2  2004/05/25 15:50:46  thiessen* add BlockMultipleAlignment, IBM algorithm** Revision 1.1  2004/05/24 23:05:10  thiessen* initial checkin**/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?