RNAlib-2.5.0
alignments.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_ALN_UTIL_H
2 #define VIENNA_RNA_PACKAGE_ALN_UTIL_H
3 
4 #ifdef VRNA_WARN_DEPRECATED
5 # if defined(__clang__)
6 # define DEPRECATED(func, msg) func __attribute__ ((deprecated("", msg)))
7 # elif defined(__GNUC__)
8 # define DEPRECATED(func, msg) func __attribute__ ((deprecated(msg)))
9 # else
10 # define DEPRECATED(func, msg) func
11 # endif
12 #else
13 # define DEPRECATED(func, msg) func
14 #endif
15 
29 typedef struct vrna_pinfo_s vrna_pinfo_t;
30 
31 
35 #define VRNA_ALN_DEFAULT 0U
36 
37 
41 #define VRNA_ALN_RNA 1U
42 
43 
47 #define VRNA_ALN_DNA 2U
48 
49 
53 #define VRNA_ALN_UPPERCASE 4U
54 
55 
59 #define VRNA_ALN_LOWERCASE 8U
60 
66 #define VRNA_MEASURE_SHANNON_ENTROPY 1U
67 
68 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
69 
70 /* the following typedefs are for backward compatibility only */
71 
77 typedef struct vrna_pinfo_s pair_info;
78 
79 #endif
80 
82 #include <ViennaRNA/model.h>
83 
94 struct vrna_pinfo_s {
95  unsigned i;
96  unsigned j;
97  float p;
98  float ent;
99  short bp[8];
100  char comp;
101 };
102 
103 
110 int
111 vrna_aln_mpi(const char **alignment);
112 
113 
127 vrna_pinfo_t *
129  const char *structure,
130  double threshold);
131 
132 
133 int *
134 vrna_aln_pscore(const char **alignment,
135  vrna_md_t *md);
136 
137 
138 int
139 vrna_pscore(vrna_fold_compound_t *fc,
140  unsigned int i,
141  unsigned int j);
142 
143 
144 int
145 vrna_pscore_freq(vrna_fold_compound_t *fc,
146  const unsigned int *frequencies,
147  unsigned int pairs);
148 
162 char **
163 vrna_aln_slice(const char **alignment,
164  unsigned int i,
165  unsigned int j);
166 
167 
173 void
174 vrna_aln_free(char **alignment);
175 
176 
185 char **
186 vrna_aln_uppercase(const char **alignment);
187 
188 
197 char **
198 vrna_aln_toRNA(const char **alignment);
199 
200 
214 char **
215 vrna_aln_copy(const char **alignment,
216  unsigned int options);
217 
218 
233 float *
234 vrna_aln_conservation_struct(const char **alignment,
235  const char *structure,
236  const vrna_md_t *md);
237 
238 
256 float *
257 vrna_aln_conservation_col(const char **alignment,
258  const vrna_md_t *md_p,
259  unsigned int options);
260 
261 
269 char *
270 vrna_aln_consensus_sequence(const char **alignment,
271  const vrna_md_t *md_p);
272 
284 char *
285 vrna_aln_consensus_mis(const char **alignment,
286  const vrna_md_t *md_p);
287 
288 
289 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
290 
291 #include <stdio.h>
295 DEPRECATED(int read_clustal(FILE *clust,
296  char *AlignedSeqs[],
297  char *names[]),
298  "Use vrna_file_msa_read() and vrna_file_msa_read_record() instead");
299 
300 
304 DEPRECATED(char *consensus(const char *AS[]),
305  "Use vrna_aln_consensus_sequence() instead!");
306 
307 
311 DEPRECATED(char *consens_mis(const char *AS[]),
312  "Use vrna_aln_consensus_mis() instead!");
313 
314 
318 DEPRECATED(char *get_ungapped_sequence(const char *seq),
319  "Use vrna_seq_ungapped() instead!");
320 
321 
333 DEPRECATED(int get_mpi(char *Alseq[],
334  int n_seq,
335  int length,
336  int *mini),
337  "Use vrna_aln_mpi() instead");
338 
339 /*
340  #############################################################
341  # some helper functions that might be useful in the library #
342  #############################################################
343  */
344 
360 DEPRECATED(void encode_ali_sequence(const char *sequence,
361  short *S,
362  short *s5,
363  short *s3,
364  char *ss,
365  unsigned short *as,
366  int circ),
367  "This function is obsolete");
368 
369 
386 DEPRECATED(void alloc_sequence_arrays(const char **sequences,
387  short ***S,
388  short ***S5,
389  short ***S3,
390  unsigned short ***a2s,
391  char ***Ss,
392  int circ),
393  "This function is obsolete");
394 
395 
411 DEPRECATED(void free_sequence_arrays(unsigned int n_seq,
412  short ***S,
413  short ***S5,
414  short ***S3,
415  unsigned short ***a2s,
416  char ***Ss),
417  "This fucntion is obsolete");
418 
419 #endif
420 
426 #endif
The Basic Fold Compound API.
void free_sequence_arrays(unsigned int n_seq, short ***S, short ***S5, short ***S3, unsigned short ***a2s, char ***Ss)
Free the memory of the sequence arrays used to deal with aligned sequences.
void alloc_sequence_arrays(const char **sequences, short ***S, short ***S5, short ***S3, unsigned short ***a2s, char ***Ss, int circ)
Allocate memory for sequence array used to deal with aligned sequences.
int get_mpi(char *Alseq[], int n_seq, int length, int *mini)
Get the mean pairwise identity in steps from ?to?(ident)
void encode_ali_sequence(const char *sequence, short *S, short *s5, short *s3, char *ss, unsigned short *as, int circ)
Get arrays with encoded sequence of the alignment.
char comp
1 iff pair is in mfe structure
Definition: alignments.h:100
unsigned j
nucleotide position j
Definition: alignments.h:96
float ent
Pseudo entropy for .
Definition: alignments.h:98
float p
Probability.
Definition: alignments.h:97
short bp[8]
Frequencies of pair_types.
Definition: alignments.h:99
unsigned i
nucleotide position i
Definition: alignments.h:95
char ** vrna_aln_copy(const char **alignment, unsigned int options)
Make a copy of a multiple sequence alignment.
char * vrna_aln_consensus_sequence(const char **alignment, const vrna_md_t *md_p)
Compute the consensus sequence for a given multiple sequence alignment.
char ** vrna_aln_uppercase(const char **alignment)
Create a copy of an alignment with only uppercase letters in the sequences.
char ** vrna_aln_toRNA(const char **alignment)
Create a copy of an alignment where DNA alphabet is replaced by RNA alphabet.
float * vrna_aln_conservation_col(const char **alignment, const vrna_md_t *md_p, unsigned int options)
Compute nucleotide conservation in an alignment.
float * vrna_aln_conservation_struct(const char **alignment, const char *structure, const vrna_md_t *md)
Compute base pair conservation of a consensus structure.
void vrna_aln_free(char **alignment)
Free memory occupied by a set of aligned sequences.
char ** vrna_aln_slice(const char **alignment, unsigned int i, unsigned int j)
Slice out a subalignment from a larger alignment.
char * vrna_aln_consensus_mis(const char **alignment, const vrna_md_t *md_p)
Compute the Most Informative Sequence (MIS) for a given multiple sequence alignment.
int vrna_aln_mpi(const char **alignment)
Get the mean pairwise identity in steps from ?to?(ident)
vrna_pinfo_t * vrna_aln_pinfo(vrna_fold_compound_t *vc, const char *structure, double threshold)
Retrieve an array of vrna_pinfo_t structures from precomputed pair probabilities.
A base pair info structure.
Definition: alignments.h:94
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:137
int circ
backward compatibility variable.. this does not effect anything
The data structure that contains the complete model details used throughout the calculations.
Definition: model.h:180
int pairs
contains the number of base pairs in the last parsed structure.
The model details data structure and its corresponding modifiers.