1 /* $Id: chimera.h 215899 2018-06-29 21:30:57Z twu $ */
2 #ifndef CHIMERA_INCLUDED
3 #define CHIMERA_INCLUDED
4 
5 typedef struct Chimera_T *Chimera_T;
6 
7 #include <stdio.h>
8 #include "bool.h"
9 #include "genome.h"
10 #include "stage3.h"
11 #include "iit-read-univ.h"
12 #include "filestring.h"
13 
14 
15 #define T Chimera_T
16 
17 extern Stage3_T
18 Chimera_left_part (T this);
19 extern Stage3_T
20 Chimera_right_part (T this);
21 extern int
22 Chimera_pos (T this);
23 extern int
24 Chimera_equivpos (T this);
25 extern int
26 Chimera_cdna_direction (T this);
27 extern void
28 Chimera_print_sam_tag (Filestring_T fp, T this, Univ_IIT_T chromosome_iit);
29 extern double
30 Chimera_donor_prob (T this);
31 extern double
32 Chimera_acceptor_prob (T this);
33 
34 extern T
35 Chimera_new (Stage3_T from, Stage3_T to, int chimerapos, int chimeraequivpos,
36 	     int exonexonpos, int cdna_direction,
37 	     char donor1, char donor2, char acceptor2, char acceptor1,
38 	     bool donor_watsonp, bool acceptor_watsonp,
39 	     double donor_prob, double acceptor_prob);
40 extern void
41 Chimera_free (T *old);
42 extern void
43 Chimera_print (Filestring_T fp, T this);
44 
45 extern int
46 Chimera_alignment_break (int *newstart, int *newend, Stage3_T stage3, int queryntlength, double fthreshold);
47 extern bool
48 Chimera_local_join_p (Stage3_T from, Stage3_T to, int chimera_slop);
49 extern bool
50 Chimera_distant_join_p (Stage3_T from, Stage3_T to, int chimera_slop);
51 extern bool
52 Chimera_bestpath (int *five_score, int *three_score, int *chimerapos, int *chimeraequivpos, int *bestfrom, int *bestto,
53 		  Stage3_T *stage3array_sub1, int npaths_sub1, Stage3_T *stage3array_sub2, int npaths_sub2,
54 		  int queryntlength, int chimera_slop, bool *circularp, bool localp);
55 extern int
56 Chimera_find_breakpoint (int *chimeraequivpos, int *rangelow, int *rangehigh,
57 			 char *donor1, char *donor2, char *acceptor2, char *acceptor1,
58 			 Stage3_T left_part, Stage3_T right_part, int queryntlength, Genome_T genome,
59 			 Chrpos_T left_chrlength, Chrpos_T right_chrlength);
60 
61 #if 0
62 extern void
63 Chimera_find_exonexon_old (T this, Stage3_T left_part, Stage3_T right_part,
64 			   Genome_T genome, Univ_IIT_T chromosome_iit);
65 #endif
66 
67 extern int
68 Chimera_find_exonexon (int *found_cdna_direction, int *try_cdna_direction,
69 		       char *donor1, char *donor2, char *acceptor2, char *acceptor1,
70 		       char *comp, bool *donor_watsonp, bool *acceptor_watsonp, double *donor_prob, double *acceptor_prob,
71 		       Stage3_T left_part, Stage3_T right_part, Genome_T genome, Genome_T genomealt,
72 		       Univ_IIT_T chromosome_iit, int breakpoint_start, int breakpoint_end);
73 #undef T
74 #endif
75