00001 #ifndef NGALIGN__HPP 00002 #define NGALIGN__HPP 00003 00004 /* $Id: ngalign.hpp 170069 2009-09-08 18:56:06Z boukn $ 00005 * =========================================================================== 00006 * 00007 * PUBLIC DOMAIN NOTICE 00008 * National Center for Biotechnology Information 00009 * 00010 * This software/database is a "United States Government Work" under the 00011 * terms of the United States Copyright Act. It was written as part of 00012 * the author's official duties as a United States Government employee and 00013 * thus cannot be copyrighted. This software/database is freely available 00014 * to the public for use. The National Library of Medicine and the U.S. 00015 * Government have not placed any restriction on its use or reproduction. 00016 * 00017 * Although all reasonable efforts have been taken to ensure the accuracy 00018 * and reliability of the software and data, the NLM and the U.S. 00019 * Government do not and cannot warrant the performance or results that 00020 * may be obtained by using this software or data. The NLM and the U.S. 00021 * Government disclaim all warranties, express or implied, including 00022 * warranties of performance, merchantability or fitness for any particular 00023 * purpose. 00024 * 00025 * Please cite the author in any work or product based on this material. 00026 * 00027 * =========================================================================== 00028 * 00029 * Authors: Nathan Bouk 00030 * 00031 * File Description: 00032 * 00033 */ 00034 00035 #include <corelib/ncbistd.hpp> 00036 #include <corelib/ncbiobj.hpp> 00037 #include <objects/seqloc/Na_strand.hpp> 00038 00039 #include <objects/seqloc/Seq_loc.hpp> 00040 #include <objects/seqloc/Seq_id.hpp> 00041 #include <objmgr/scope.hpp> 00042 #include <objects/seqalign/Seq_align.hpp> 00043 #include <objects/seqalign/Seq_align_set.hpp> 00044 #include <objects/seqalign/Dense_seg.hpp> 00045 00046 #include <algo/blast/api/sseqloc.hpp> 00047 00048 #include <algo/align/ngalign/ngalign_interface.hpp> 00049 00050 BEGIN_NCBI_SCOPE 00051 00052 BEGIN_SCOPE(objects) 00053 class CScope; 00054 class CSeq_align; 00055 class CSeq_align_set; 00056 class CSeq_id; 00057 class CDense_seg; 00058 END_SCOPE(objects) 00059 00060 BEGIN_SCOPE(blast) 00061 class SSeqLoc; 00062 class CBlastOptionsHandle; 00063 END_SCOPE(blast) 00064 00065 00066 00067 00068 class CNgAligner 00069 { 00070 public: 00071 00072 CNgAligner(objects::CScope& Scope); 00073 virtual ~CNgAligner(); 00074 00075 void SetQuery(ISequenceSet* Set); 00076 void SetSubject(ISequenceSet* Set); 00077 00078 void AddFilter(IAlignmentFilter* Filter); 00079 void AddAligner(IAlignmentFactory* Aligner); 00080 void AddScorer(IAlignmentScorer* Scorer); 00081 00082 TAlignSetRef Align(); 00083 00084 protected: 00085 00086 virtual TAlignSetRef x_Align_Impl(); 00087 00088 00089 private: 00090 00091 CRef<objects::CScope> m_Scope; 00092 00093 CIRef<ISequenceSet> m_Query; 00094 CIRef<ISequenceSet> m_Subject; 00095 00096 typedef list<CIRef<IAlignmentFilter> > TFilters; 00097 typedef list<CIRef<IAlignmentFactory> > TFactories; 00098 typedef list<CIRef<IAlignmentScorer> > TScorers; 00099 TFilters m_Filters; 00100 TFactories m_Aligners; 00101 TScorers m_Scorers; 00102 00103 }; 00104 00105 00106 END_NCBI_SCOPE 00107 00108 #endif 00109 00110
1.4.6
Modified on Wed Dec 09 08:17:25 2009 by modify_doxy.py rev. 173732