NCBI C++ ToolKit
merge_aligner.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef NGALIGN_MERGE_ALIGNER__HPP
2 #define NGALIGN_MERGE_ALIGNER__HPP
3 
4 /* $Id: merge_aligner.hpp 95346 2021-11-08 14:35:53Z mozese2 $
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: Nathan Bouk
30  *
31  * File Description:
32  *
33  */
34 
35 #include <corelib/ncbistd.hpp>
36 #include <corelib/ncbiobj.hpp>
38 
41 #include <objmgr/scope.hpp>
49 
50 
53 
55 
57  class CScope;
58  class CSeq_align;
59  class CSeq_align_set;
60  class CSeq_id;
61  class CDense_seg;
63 
64 
65 
67 {
68 public:
69  enum EMode {
70  /// Use the older (CAlignCleanup) merge algorithm.
72 
73  /// Use the new (CTreeAlignMerger) merge algorithm.
75 
76  eDefault = eAlignCleanup
77  };
78  typedef EMode TMode;
79 
80  CMergeAligner(int Threshold, TMode mode = eAlignCleanup)
81  : m_Threshold(Threshold)
82  , m_Mode(mode)
83  { }
84 
85  string GetName() const { return "merge_aligner"; }
86 
87  TAlignResultsRef GenerateAlignments(objects::CScope& Scope,
88  ISequenceSet* QuerySet,
89  ISequenceSet* SubjectSet,
90  TAlignResultsRef AccumResults);
91 
92 private:
93 
95  x_MergeAlignments(CQuerySet& QueryAligns, objects::CScope& Scope);
96 
98  x_MergeSeqAlignSet(objects::CSeq_align_set& InAligns, objects::CScope& Scope);
99 
100  void x_SortAlignSet(objects::CSeq_align_set& AlignSet, int CompartFlags = 0);
101 
105 };
106 
107 
109 
110 #endif
Declares the CBl2Seq (BLAST 2 Sequences) class.
Declares the CBlastNucleotideOptionsHandle class.
Declares the CBlastOptionsHandle and CBlastOptionsFactory classes.
Definitions of special type used in BLAST.
@ eAlignCleanup
Use the older (CAlignCleanup) merge algorithm.
@ eTreeAlignMerger
Use the new (CTreeAlignMerger) merge algorithm.
string GetName() const
CTreeAlignMerger m_TreeAlignMerger
CMergeAligner(int Threshold, TMode mode=eAlignCleanup)
CRef –.
Definition: ncbiobj.hpp:618
CScope –.
Definition: scope.hpp:92
Include a standard set of the NCBI C++ Toolkit most basic headers.
@ eDefault
Definition: ncbi_types.h:112
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define END_SCOPE(ns)
End the previously defined scope.
Definition: ncbistl.hpp:75
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define BEGIN_SCOPE(ns)
Define a new scope.
Definition: ncbistl.hpp:72
mdb_mode_t mode
Definition: lmdb++.h:38
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
Modified on Wed May 22 11:36:58 2024 by modify_doxy.py rev. 669887