1 #ifndef VIENNA_RNA_PACKAGE_SNOOP_H
2 #define VIENNA_RNA_PACKAGE_SNOOP_H
3 
4 #include <ViennaRNA/datastructures/basic.h>
5 
6 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
7 
8 /**
9 *** computes snoRNA-RNA interactions in RNAduplex manner
10 **/
11 
12 snoopT snoopfold(const char *s1,
13                  const char *s2,
14                  const int  penalty,
15                  const int  threshloop,
16                  const int  threshLE,
17                  const int  threshRE,
18                  const int  threshDE,
19                  const int  threshD,
20                  const int  half_stem,
21                  const int  max_half_stem,
22                  const int  min_s2,
23                  const int  max_s2,
24                  const int  min_s1,
25                  const int  max_s1,
26                  const int  min_d1,
27                  const int  min_d2,
28                  const int  fullStemEnergy);
29 
30 
31 /**
32 *** computes snoRNA-RNA suboptimal interactions in RNAduplex manner
33 **/
34 
35 
36 snoopT *snoop_subopt(const char *s1,
37                      const char *s2,
38                      int        delta,
39                      int        w,
40                      const int  penalty,
41                      const int  threshloop,
42                      const int  threshLE,
43                      const int  threshRE,
44                      const int  threshDE,
45                      const int  threshTE,
46                      const int  threshSE,
47                      const int  threshD,
48                      const int  distance,
49                      const int  half_stem,
50                      const int  max_half_stem,
51                      const int  min_s2,
52                      const int  max_s2,
53                      const int  min_s1,
54                      const int  max_s1,
55                      const int  min_d1,
56                      const int  min_d2,
57                      const int  fullStemEnergy);
58 
59 
60 /**
61 *** computes snoRNA-RNA suboptimal interactions in a RNAplex manner
62 **/
63 
64 
65 void Lsnoop_subopt(const char *s1,
66                    const char *s2,
67                    int        delta,
68                    int        w,
69                    const int  penalty,
70                    const int  threshloop,
71                    const int  threshLE,
72                    const int  threshRE,
73                    const int  threshDE,
74                    const int  threshTE,
75                    const int  threshSE,
76                    const int  threshD,
77                    const int  distance,
78                    const int  half_stem,
79                    const int  max_half_stem,
80                    const int  min_s2,
81                    const int  max_s2,
82                    const int  min_s1,
83                    const int  max_s1,
84                    const int  min_d1,
85                    const int  min_d2,
86                    const int  alignment_length,
87                    const char *name,
88                    const int  fullStemEnergy);
89 
90 
91 /**
92 *** computes snoRNA-RNA suboptimal interactions in a RNAplex manner. The stem energy is saved into a list of struct, leading to a runtime improvement of 20%
93 **/
94 
95 
96 void Lsnoop_subopt_list(const char  *s1,
97                         const char  *s2,
98                         int         delta,
99                         int         w,
100                         const int   penalty,
101                         const int   threshloop,
102                         const int   threshLE,
103                         const int   threshRE,
104                         const int   threshDE,
105                         const int   threshTE,
106                         const int   threshSE,
107                         const int   threshD,
108                         const int   distance,
109                         const int   half_stem,
110                         const int   max_half_stem,
111                         const int   min_s2,
112                         const int   max_s2,
113                         const int   min_s1,
114                         const int   max_s1,
115                         const int   min_d1,
116                         const int   min_d2,
117                         const int   alignment_length,
118                         const char  *name,
119                         const int   fullStemEnergy);
120 
121 
122 /**
123 *** computes snoRNA-RNA suboptimal interactions in a RNAplex manner. The stem energy is saved into a list of struct, leading to a runtime improvement of 20%. It considers accessibility
124 **/
125 
126 
127 void Lsnoop_subopt_list_XS(const char *s1,
128                            const char *s2,
129                            const int  **access_s1,
130                            int        delta,
131                            int        w,
132                            const int  penalty,
133                            const int  threshloop,
134                            const int  threshLE,
135                            const int  threshRE,
136                            const int  threshDE,
137                            const int  threshTE,
138                            const int  threshSE,
139                            const int  threshD,
140                            const int  distance,
141                            const int  half_stem,
142                            const int  max_half_stem,
143                            const int  min_s2,
144                            const int  max_s2,
145                            const int  min_s1,
146                            const int  max_s1,
147                            const int  min_d1,
148                            const int  min_d2,
149                            const int  alignment_length,
150                            const char *name,
151                            const int  fullStemEnergy);
152 
153 
154 /**
155 *** computes snoRNA-RNA suboptimal interactions in a RNAduplex manner, and considers accessibility
156 **/
157 
158 
159 void snoop_subopt_XS(const char *s1,
160                      const char *s2,
161                      const int  **access_s1,
162                      int        delta,
163                      int        w,
164                      const int  penalty,
165                      const int  threshloop,
166                      const int  threshLE,
167                      const int  threshRE,
168                      const int  threshDE,
169                      const int  threshTE,
170                      const int  threshSE,
171                      const int  threshD,
172                      const int  distance,
173                      const int  half_stem,
174                      const int  max_half_stem,
175                      const int  min_s2,
176                      const int  max_s2,
177                      const int  min_s1,
178                      const int  max_s1,
179                      const int  min_d1,
180                      const int  min_d2,
181                      const int  alignment_length,
182                      const char *name,
183                      const int  fullStemEnergy);
184 
185 
186 /**
187 *** aliduplex-like alignment version of snoop_subopt
188 **/
189 
190 snoopT *alisnoop_subopt(const char  **s1,
191                         const char  **s2,
192                         int         delta,
193                         int         w,
194                         const int   penalty,
195                         const int   threshloop,
196                         const int   threshLE,
197                         const int   threshRE,
198                         const int   threshDE,
199                         const int   threshTE,
200                         const int   threshSE,
201                         const int   threshD,
202                         const int   distance,
203                         const int   half_stem,
204                         const int   max_half_stem,
205                         const int   min_s2,
206                         const int   max_s2,
207                         const int   min_s1,
208                         const int   max_s1,
209                         const int   min_d1,
210                         const int   min_d2);
211 
212 
213 /**
214 *** RNAplex-like Alignment version of snoop_subopt
215 **/
216 
217 
218 snoopT *aliLsnoop_subopt_list(const char  **s1,
219                               const char  **s2,
220                               int         delta,
221                               int         w,
222                               const int   penalty,
223                               const int   threshloop,
224                               const int   threshLE,
225                               const int   threshRE,
226                               const int   threshDE,
227                               const int   threshTE,
228                               const int   threshSE,
229                               const int   threshD,
230                               const int   distance,
231                               const int   half_stem,
232                               const int   max_half_stem,
233                               const int   min_s2,
234                               const int   max_s2,
235                               const int   min_s1,
236                               const int   max_s1,
237                               const int   min_d1,
238                               const int   min_d2,
239                               const int   alignment_length);
240 
241 
242 /**
243 *** RNAaliduplex-like version of snoopfold
244 **/
245 
246 
247 snoopT alisnoopfold(const char  **s1,
248                     const char  **s2,
249                     const int   penalty,
250                     const int   threshloop,
251                     const int   threshLE,
252                     const int   threshRE,
253                     const int   threshDE,
254                     const int   threshD,
255                     const int   half_stem,
256                     const int   max_half_stem,
257                     const int   min_s2,
258                     const int   max_s2,
259                     const int   min_s1,
260                     const int   max_s1,
261                     const int   min_d1,
262                     const int   min_d2);
263 
264 
265 /**
266 *** RNAduplex-like version of snoopfold with accessibility information
267 **/
268 
269 snoopT snoopfold_XS(const char  *s1,
270                     const char  *s2,
271                     const int   **access_s1,
272                     const int   pos,
273                     const int   max_pos_j,
274                     const int   penalty,
275                     const int   threshloop,
276                     const int   threshLE,
277                     const int   threshRE,
278                     const int   threshDE,
279                     const int   threshD,
280                     const int   half_stem,
281                     const int   max_half_stem,
282                     const int   min_s2,
283                     const int   max_s2,
284                     const int   min_s1,
285                     const int   max_s1,
286                     const int   min_d1,
287                     const int   min_d2,
288                     const int   fullStemEnergy);
289 
290 
291 extern int snoop_subopt_sorted;
292 #endif
293 
294 #endif
295