+ parameter transfer to python layer works
[qpalma.git] / QPalmaDP / qpalma_dp.h
index e38469f..80173a7 100644 (file)
@@ -29,12 +29,11 @@ typedef struct Align_pair { //24B
   char dna_char;
 };
 
-
-void fill_matrix (int nr_paths, Pre_score* matrices[], int len_est, int len_dna, char* est, char* dna, penalty_struct* functions, double* matchmatrix, double* donor, double* acceptor, bool remove_duplicate_scores, int nr_donor_sites, int* donor_sites, int* max_score_positions);
+void fill_matrix (int nr_paths, Pre_score* matrices[], int len_est, int len_dna, char* est, char* dna, 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);
 
 int check_char(char base);
 
-bool result_align (Pre_score* matrices[], int matrixnr, int i,  int j, int* result_length_ptr, char* est, char* dna, int* s_align, int* e_align, int* m_param, double* alignmentscores, int* max_score_positions );
+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);
 
 extern void print_align(Pre_score* matrix, int length_est,  int length_dna, Align_pair* vektor, int result_length, int print_matrix);
 
@@ -54,6 +53,13 @@ extern void print_align(Pre_score* matrix, int length_est,  int length_dna, Alig
  * print_matrix               -> a boolean
  *
  * [SpliceAlign, EstAlign, weightMatch, Gesamtscores, dnaest] = myalign_local(...
+ *
+ * the idea of the qualityScores array is as follows
+ *
+ * consider a matrix of 24 plifs
+ * 
+ * -> row major
+ *
  */
 
 class Alignment {
@@ -70,7 +76,13 @@ class Alignment {
       int mlen;
       int nr_paths;
 
-      struct penalty_struct* matching_plifs;
+      uint splice_align_size ;
+      uint est_align_size ;
+      uint mmatrix_param_size ;
+      uint alignmentscores_size ;
+      uint qScores_size ;
+
+      struct penalty_struct* qualityScoresAllPaths;
 
       INT len;
       REAL *limits;
@@ -97,17 +109,13 @@ class Alignment {
 
          if(alignmentscores != 0)
             delete[] alignmentscores;
-
-         if(qualityMatrix != 0)
-            delete[] qualityMatrix;
       }
 
       void myalign(int nr_paths_p, char* dna, int dna_len_p, char* est,
-      int est_len_p, struct penalty_struct h, double* matchmatrix, int mm_len,
-      double* donor, int d_len, double* acceptor, int a_len,
-      bool remove_duplicate_scores, bool print_matrix);
-
-      void setMatchPlifs(struct penalty_struct* match_plifs);
+      int est_len_p, double* prb, double* chastity, struct penalty_struct h, 
+      double* matchmatrix, int mm_len, double* donor, int d_len, double* acceptor,
+      int a_len, struct penalty_struct* qualityScores, bool remove_duplicate_scores,
+      bool print_matrix);
 
       void penSetLength(int l) { len = l; }
       void penSetLimits(REAL* lts) { 
@@ -119,7 +127,7 @@ class Alignment {
       void setQualityMatrix(double* qMat, int length);
       void getDNAEST();
       void getAlignmentResults(int* s_align, int* e_align,
-      int* mmatrix_p, double* alignscores);
+      int* mmatrix_p, double* alignscores, penalty_struct* qScores);
 };
 
 #endif  // _QPALMA_DP_H_