00001 #ifndef ALGO_ALIGN_SPLICEDALIGNER16__HPP
00002 #define ALGO_ALIGN_SPLICEDALIGNER16__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 #include "nw_spliced_aligner.hpp"
00034
00035
00036
00037
00038
00039
00040
00041
00042 BEGIN_NCBI_SCOPE
00043
00044 const size_t splice_type_count_16 (4);
00045
00046 class CSplicedAligner16: public CSplicedAligner
00047 {
00048 public:
00049
00050 CSplicedAligner16(void);
00051
00052 CSplicedAligner16(const char* seq1, size_t len1,
00053 const char* seq2, size_t len2);
00054
00055 CSplicedAligner16(const string& seq1, const string& seq2);
00056
00057
00058 static TScore GetDefaultWi (unsigned char splice_type);
00059
00060
00061 virtual size_t GetElemSize(void) const {
00062 #ifdef ALGOALIGN_NW_SPLIGN_MAKE_PUBLIC_BINARY
00063 return 2;
00064 #else
00065 return 3;
00066 #endif
00067 }
00068
00069 virtual size_t GetSpliceTypeCount(void) {
00070 return splice_type_count_16;
00071 }
00072
00073 virtual TScore ScoreFromTranscript(const TTranscript& transcript,
00074 size_t start1 = kMax_UInt,
00075 size_t start2 = kMax_UInt ) const;
00076
00077 protected:
00078
00079 TScore m_Wi [splice_type_count_16];
00080
00081 virtual TScore* x_GetSpliceScores(void) {
00082 return m_Wi;
00083 }
00084 virtual TScore x_Align (CNWAligner::SAlignInOut* data);
00085
00086 #ifdef ALGOALIGN_NW_SPLIGN_MAKE_PUBLIC_BINARY
00087 void x_DoBackTrace(const Uint2* backtrace_matrix,
00088 CNWAligner::SAlignInOut* data,
00089 int i_global_max,
00090 int j_global_max);
00091 #else
00092 void x_DoBackTrace(const Uint2* backtrace_matrix,
00093 const Uint1* backtrace_matrix_ext,
00094 CNWAligner::SAlignInOut* data);
00095 #endif
00096 };
00097
00098
00099 END_NCBI_SCOPE
00100
00101
00102
00103 #endif
00104
00105