00001 #ifndef NGALIGN_INTERFACE__HPP
00002 #define NGALIGN_INTERFACE__HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <corelib/ncbistd.hpp>
00036 #include <corelib/ncbiobj.hpp>
00037 #include <objects/seqloc/Na_strand.hpp>
00038
00039 #include <algo/align/ngalign/result_set.hpp>
00040
00041
00042 BEGIN_NCBI_SCOPE
00043
00044 BEGIN_SCOPE(objects)
00045 class CScope;
00046 class CSeq_align;
00047 class CSeq_align_set;
00048 class CSeq_id;
00049 END_SCOPE(objects)
00050
00051 BEGIN_SCOPE(blast)
00052 class IQueryFactory;
00053 class CLocalDbAdapter;
00054 class CBlastOptionsHandle;
00055 class CSearchResultSet;
00056 class CSearchResults;
00057 END_SCOPE(blast)
00058
00059 class CSeqMasker;
00060
00061
00062 typedef CRef<objects::CSeq_align_set> TAlignSetRef;
00063 typedef CRef<blast::CSearchResultSet> TResultsSetRef;
00064 typedef CRef<CAlignResultsSet> TAlignResultsRef;
00065
00066
00067 class ISequenceSet : public CObject
00068 {
00069 public:
00070 virtual CRef<blast::IQueryFactory> CreateQueryFactory(
00071 objects::CScope& Scope, const blast::CBlastOptionsHandle& BlastOpts) = 0;
00072 virtual CRef<blast::IQueryFactory> CreateQueryFactory(
00073 objects::CScope& Scope, const blast::CBlastOptionsHandle& BlastOpts,
00074 const CAlignResultsSet& Alignments, int Threshold) = 0;
00075 virtual CRef<blast::CLocalDbAdapter> CreateLocalDbAdapter(
00076 objects::CScope& Scope, const blast::CBlastOptionsHandle& BlastOpts) = 0;
00077 };
00078
00079
00080
00081 class IAlignmentFactory : public CObject
00082 {
00083 public:
00084 virtual TAlignResultsRef GenerateAlignments(objects::CScope& Scope,
00085 ISequenceSet* Querys,
00086 ISequenceSet* Subjects,
00087 TAlignResultsRef AccumResults) = 0;
00088 };
00089
00090
00091
00092 class IAlignmentFilter : public CObject
00093 {
00094 public:
00095 virtual void FilterAlignments(TAlignResultsRef In,
00096 TAlignResultsRef Out) = 0;
00097 virtual unsigned int GetFilterRank() const = 0;
00098
00099 const static string KFILTER_SCORE;
00100 };
00101
00102
00103
00104 class IAlignmentScorer : public CObject
00105 {
00106 public:
00107 virtual void ScoreAlignments(TAlignResultsRef Alignments,
00108 objects::CScope& Scope) = 0;
00109 };
00110
00111
00112
00113
00114 END_NCBI_SCOPE
00115
00116 #endif
00117
00118