4 #include "penalty_info.h"
6 struct ArrayElem
{ //24B
14 struct pre_score
{ //24B
18 int prev_matrix_no
;//4
22 typedef struct pre_score Pre_score
;
24 typedef struct Align_pair
{ //24B
32 void fill_matrix (int nr_paths
, Pre_score
* matrices
[], int len_est
, int len_dna
, char* est
, char* dna
, double* prb
, penalty_struct
* functions
, double* matchmatrix
, penalty_struct
* qualityScores
, double* donor
, double* acceptor
, bool remove_duplicate_scores
, int nr_donor_sites
, int* donor_sites
, int* max_score_positions
, mode currentMode
);
34 int check_char(char base
);
35 void fassert(bool exp
,int line
, char* file
);
36 #define FA(expr) (fassert(expr,__LINE__,__FILE__))
38 bool result_align (Pre_score
* matrices
[], int matrixnr
, int i
, int j
, int* result_length_ptr
, char* est
, char* dna
, double* prb
, double* chastity
, int* s_align
, int* e_align
, int* m_param
, double* alignmentscores
, int* max_score_positions
, penalty_struct
* qparam
, mode currentMode
);
40 extern void print_align(Pre_score
* matrix
, int length_est
, int length_dna
, Align_pair
* vektor
, int result_length
, int print_matrix
);
44 * The function myalign calculates a new alignment given the scoring scheme
45 * Its input arguments are:
47 * num_path(id) -> an integer specifying which alignment has to be done
54 * remove_duplicate_scores -> a boolean
55 * print_matrix -> a boolean
57 * [SpliceAlign, EstAlign, weightMatch, Gesamtscores, dnaest] = myalign_local(...
59 * the idea of the qualityScores array is as follows
61 * consider a matrix of 24 plifs
73 double* alignmentscores
;
74 struct penalty_struct
** qualityScoresAllPaths
;
85 int numQualSuppPoints
;
87 bool use_quality_scores
;
89 uint splice_align_size
;
91 uint mmatrix_param_size
;
92 uint alignmentscores_size
;
101 enum ETransformType transform
;
107 Alignment(int numQPlifs
,int numq
, bool use_qscores
);
109 if(splice_align
!= 0)
110 delete[] splice_align
;
115 if(mmatrix_param
!= 0)
116 delete[] mmatrix_param
;
118 if(alignmentscores
!= 0)
119 delete[] alignmentscores
;
121 if(qualityScoresAllPaths
!= 0)
122 delete[] qualityScoresAllPaths
;
125 void myalign(int nr_paths_p
, char* dna
, int dna_len_p
, char* est
,
126 int est_len_p
, double* prb
, double* chastity
, struct penalty_struct h
,
127 double* matchmatrix
, int mm_len
, double* donor
, int d_len
, double* acceptor
,
128 int a_len
, struct penalty_struct
* qualityScores
, bool remove_duplicate_scores
,
132 void getAlignmentResults(int* s_align
, int* e_align
,
133 int* mmatrix_p
, double* alignscores
, double* qScores
);
135 int getResultLength() { return result_len
; }
136 void getAlignmentArrays(int* dna_align
, int* est_align
);
139 #endif // _QPALMA_DP_H_