RNAlib-2.2.0RC0
data_structures.h
Go to the documentation of this file.
1 #ifndef __VIENNA_RNA_PACKAGE_DATA_STRUCTURES_H__
2 #define __VIENNA_RNA_PACKAGE_DATA_STRUCTURES_H__
3 
5 #include <ViennaRNA/model.h>
6 
7 
13 /* to use floats instead of doubles in pf_fold() comment next line */
14 #define LARGE_PF
15 #ifdef LARGE_PF
16 #define FLT_OR_DBL double
17 #else
18 #define FLT_OR_DBL float
19 #endif
20 
21 #ifndef NBASES
22 #define NBASES 8
23 #endif
24 
28 #define MAXDOS 1000
29 
30 #define VRNA_GQUAD_MAX_STACK_SIZE 7
31 #define VRNA_GQUAD_MIN_STACK_SIZE 2
32 #define VRNA_GQUAD_MAX_LINKER_LENGTH 15
33 #define VRNA_GQUAD_MIN_LINKER_LENGTH 1
34 #define VRNA_GQUAD_MIN_BOX_SIZE ((4*VRNA_GQUAD_MIN_STACK_SIZE)+(3*VRNA_GQUAD_MIN_LINKER_LENGTH))
35 #define VRNA_GQUAD_MAX_BOX_SIZE ((4*VRNA_GQUAD_MAX_STACK_SIZE)+(3*VRNA_GQUAD_MAX_LINKER_LENGTH))
36 
37 
41 #define VRNA_VC_TYPE_SINGLE 1
42 
46 #define VRNA_VC_TYPE_ALIGNMENT 2
47 
48 
49 /* the definitions below indicate which arrays should be allocated upon retrieval of a matrices data structure */
50 #define ALLOC_NOTHING 0
51 #define ALLOC_F 1
52 #define ALLOC_F5 2
53 #define ALLOC_F3 4
54 #define ALLOC_FC 8
55 #define ALLOC_C 16
56 #define ALLOC_FML 32
57 #define ALLOC_PROBS 256
58 #define ALLOC_AUX 512
59 
60 #define ALLOC_CIRC 1024
61 #define ALLOC_HYBRID 2048
62 #define ALLOC_UNIQ 4096
63 
64 
65 #define ALLOC_MFE_DEFAULT (ALLOC_F5 | ALLOC_C | ALLOC_FML)
66 
67 #define ALLOC_PF_WO_PROBS (ALLOC_F | ALLOC_C | ALLOC_FML)
68 #define ALLOC_PF_DEFAULT (ALLOC_PF_WO_PROBS | ALLOC_PROBS | ALLOC_AUX)
69 
70 
71 /* the definitions below should be used for functions the return/receive/destroy fold compound data structures */
72 
73 #define VRNA_OPTION_MFE 1
74 
75 #define VRNA_OPTION_PF 2
76 
77 #define VRNA_OPTION_HYBRID 4
78 
79 
80 
81 
82 
83 
84 /*
85 * ############################################################
86 * Here are the type definitions of various datastructures
87 * shared among the Vienna RNA Package
88 * ############################################################
89 */
90 
94 typedef struct plist {
95  int i;
96  int j;
97  float p;
98  int type;
99 } plist;
100 
104 typedef struct cpair {
105  int i,j,mfe;
106  float p, hue, sat;
107 } cpair;
108 
109 
113 typedef struct sect {
114  int i;
115  int j;
116  int ml;
117 } sect;
118 
122 typedef struct bondT {
123  unsigned int i;
124  unsigned int j;
125 } bondT;
126 
130 typedef struct bondTEn {
131  int i;
132  int j;
133  int energy;
134 } bondTEn;
135 
136 
137 typedef struct{
138  unsigned int allocated; /* flag keeper for fast evaluation which matrices have been allocated */
139  unsigned int length;
140  int *c; /* energy array, given that i-j pair */
141  int *f5; /* energy of 5' end */
142  int *f3; /* energy of 3' end */
143  int *fc; /* energy from i to cutpoint (and vice versa if i>cut) */
144  int *fML; /* multi-loop auxiliary energy array */
145  int *fM1; /* second ML array, only for subopt */
146  int *fM2; /* fM2 = multiloop region with exactly two stems, extending to 3' end */
147  int *ggg; /* energies of g-quadruplexes */
148  int Fc; /* parts of the exterior loop energies for circfolding */
149  int FcH;
150  int FcI;
151  int FcM;
152 } mfe_matricesT;
153 
154 typedef struct{
155  unsigned int allocated;
156  unsigned int length;
157  FLT_OR_DBL *q;
158  FLT_OR_DBL *qb;
159  FLT_OR_DBL *qm;
160  FLT_OR_DBL *qm1;
161  FLT_OR_DBL *probs;
162  FLT_OR_DBL *q1k;
163  FLT_OR_DBL *qln;
164  FLT_OR_DBL *G;
165 
166  FLT_OR_DBL qo;
167  FLT_OR_DBL *qm2;
168  FLT_OR_DBL qho;
169  FLT_OR_DBL qio;
170  FLT_OR_DBL qmo;
171 
172  FLT_OR_DBL *scale;
173  FLT_OR_DBL *expMLbase;
174 } pf_matricesT;
175 
176 
180 typedef struct{
181  int id;
182  int stack[NBPAIRS+1][NBPAIRS+1];
183  int hairpin[31];
184  int bulge[MAXLOOP+1];
185  int internal_loop[MAXLOOP+1];
186  int mismatchExt[NBPAIRS+1][5][5];
187  int mismatchI[NBPAIRS+1][5][5];
188  int mismatch1nI[NBPAIRS+1][5][5];
189  int mismatch23I[NBPAIRS+1][5][5];
190  int mismatchH[NBPAIRS+1][5][5];
191  int mismatchM[NBPAIRS+1][5][5];
192  int dangle5[NBPAIRS+1][5];
193  int dangle3[NBPAIRS+1][5];
194  int int11[NBPAIRS+1][NBPAIRS+1][5][5];
195  int int21[NBPAIRS+1][NBPAIRS+1][5][5][5];
196  int int22[NBPAIRS+1][NBPAIRS+1][5][5][5][5];
197  int ninio[5];
198  double lxc;
199  int MLbase;
200  int MLintern[NBPAIRS+1];
201  int MLclosing;
202  int TerminalAU;
203  int DuplexInit;
204  int Tetraloop_E[200];
205  char Tetraloops[1401];
206  int Triloop_E[40];
207  char Triloops[241];
208  int Hexaloop_E[40];
209  char Hexaloops[1801];
210  int TripleC;
211  int MultipleCA;
212  int MultipleCB;
213  int gquad [VRNA_GQUAD_MAX_STACK_SIZE + 1]
214  [3*VRNA_GQUAD_MAX_LINKER_LENGTH + 1];
215 
216  double temperature;
220 } paramT;
221 
225 typedef struct{
226  int id;
227  double expstack[NBPAIRS+1][NBPAIRS+1];
228  double exphairpin[31];
229  double expbulge[MAXLOOP+1];
230  double expinternal[MAXLOOP+1];
231  double expmismatchExt[NBPAIRS+1][5][5];
232  double expmismatchI[NBPAIRS+1][5][5];
233  double expmismatch23I[NBPAIRS+1][5][5];
234  double expmismatch1nI[NBPAIRS+1][5][5];
235  double expmismatchH[NBPAIRS+1][5][5];
236  double expmismatchM[NBPAIRS+1][5][5];
237  double expdangle5[NBPAIRS+1][5];
238  double expdangle3[NBPAIRS+1][5];
239  double expint11[NBPAIRS+1][NBPAIRS+1][5][5];
240  double expint21[NBPAIRS+1][NBPAIRS+1][5][5][5];
241  double expint22[NBPAIRS+1][NBPAIRS+1][5][5][5][5];
242  double expninio[5][MAXLOOP+1];
243  double lxc;
244  double expMLbase;
245  double expMLintern[NBPAIRS+1];
246  double expMLclosing;
247  double expTermAU;
248  double expDuplexInit;
249  double exptetra[40];
250  double exptri[40];
251  double exphex[40];
252  char Tetraloops[1401];
253  double expTriloop[40];
254  char Triloops[241];
255  char Hexaloops[1801];
256  double expTripleC;
257  double expMultipleCA;
258  double expMultipleCB;
259  double expgquad[VRNA_GQUAD_MAX_STACK_SIZE + 1]
260  [3*VRNA_GQUAD_MAX_LINKER_LENGTH + 1];
261 
262  double kT;
263  double pf_scale;
265  double temperature;
266  double alpha;
275 } pf_paramT;
276 
300 typedef struct {
301  char *matrix;
304  int *up_ext;
307  int *up_hp;
310  int *up_int;
313  int *up_ml;
317 
323 typedef struct {
324  double *constraints;
326  int *en_basepair;
327  FLT_OR_DBL **boltzmann_factors;
328  FLT_OR_DBL *exp_en_basepair;
330  int *en_stack;
331  FLT_OR_DBL *exp_en_stack;
333  /* generalized soft contraints */
334  int (*f)( int,
335  int,
336  int,
337  int,
338  char,
339  void *);
343  FLT_OR_DBL (*exp_f)(int,
344  int,
345  int,
346  int,
347  char,
348  void *);
353  void *data;
357 
358 
359 typedef struct{
360 
361  unsigned int type;
362  unsigned int length;
363  int cutpoint;
366  union {
367  struct {
368  char *sequence;
369  short *sequence_encoding;
370  short *sequence_encoding2;
371  char *ptype;
383  soft_constraintT *sc;
384  };
385  struct {
386  char **sequences;
387  unsigned int n_seq;
388  char *cons_seq;
389  short *S_cons;
390  short **S;
391  short **S5; /*S5[s][i] holds next base 5' of i in sequence s*/
392  short **S3; /*Sl[s][i] holds next base 3' of i in sequence s*/
393  char **Ss;
394  unsigned short **a2s;
395  int *pscore; /* precomputed array of pair types */
396  soft_constraintT **scs;
397  int oldAliEn;
398  };
399  };
400 
401  hard_constraintT *hc;
402 
403  mfe_matricesT *matrices;
404  pf_matricesT *exp_matrices;
405 
406  paramT *params;
407  pf_paramT *exp_params;
408 
409  int *iindx;
410  int *jindx;
411 
413 
414 
415 /*
416 * ############################################################
417 * SUBOPT data structures
418 * ############################################################
419 */
420 
421 
425 typedef struct {
426  int i;
427  int j;
428 } PAIR;
429 
433 typedef struct {
434  int i;
435  int j;
436  int array_flag;
437 } INTERVAL;
438 
442 typedef struct {
443  float energy;
444  char *structure;
445 } SOLUTION;
446 
447 /*
448 * ############################################################
449 * COFOLD data structures
450 * ############################################################
451 */
452 
456 typedef struct cofoldF {
457  /* free energies for: */
458  double F0AB;
459  double FAB;
460  double FcAB;
461  double FA;
462  double FB;
463 } cofoldF;
464 
468 typedef struct ConcEnt {
469  double A0;
470  double B0;
471  double ABc;
472  double AAc;
473  double BBc;
474  double Ac;
475  double Bc;
476 } ConcEnt;
477 
481 typedef struct pairpro{
482  struct plist *AB;
483  struct plist *AA;
484  struct plist *A;
485  struct plist *B;
486  struct plist *BB;
487 } pairpro;
488 
499 typedef struct {
500  unsigned i;
501  unsigned j;
502  float p;
503  float ent;
504  short bp[8];
505  char comp;
506 } pair_info;
507 
508 
509 /*
510 * ############################################################
511 * FINDPATH data structures
512 * ############################################################
513 */
514 
518 typedef struct move {
519  int i; /* i,j>0 insert; i,j<0 delete */
520  int j;
521  int when; /* 0 if still available, else resulting distance from start */
522  int E;
523 } move_t;
524 
528 typedef struct intermediate {
529  short *pt;
530  int Sen;
531  int curr_en;
534 
538 typedef struct path {
539  double en;
540  char *s;
541 } path_t;
542 
543 /*
544 * ############################################################
545 * RNAup data structures
546 * ############################################################
547 */
548 
552 typedef struct pu_contrib {
553  double **H;
554  double **I;
555  double **M;
556  double **E;
557  int length;
558  int w;
559 } pu_contrib;
560 
564 typedef struct interact {
565  double *Pi;
566  double *Gi;
567  double Gikjl;
569  double Gikjl_wo;
570  int i;
571  int k;
572  int j;
573  int l;
574  int length;
575 } interact;
576 
580 typedef struct pu_out {
581  int len;
582  int u_vals;
583  int contribs;
584  char **header;
585  double **u_values;
586 } pu_out;
587 
591 typedef struct constrain{
592  int *indx;
593  char *ptype;
594 } constrain;
595 
596 /*
597 * ############################################################
598 * RNAduplex data structures
599 * ############################################################
600 */
601 
605 typedef struct {
606  int i;
607  int j;
608  int end;
609  char *structure;
610  double energy;
611  double energy_backtrack;
612  double opening_backtrack_x;
613  double opening_backtrack_y;
614  int offset;
615  double dG1;
616  double dG2;
617  double ddG;
618  int tb;
619  int te;
620  int qb;
621  int qe;
622 } duplexT;
623 
624 /*
625 * ############################################################
626 * RNAsnoop data structures
627 * ############################################################
628 */
629 
633 typedef struct node {
634  int k;
635  int energy;
636  struct node *next;
637 } folden;
638 
642 typedef struct {
643  int i;
644  int j;
645  int u;
646  char *structure;
647  float energy;
648  float Duplex_El;
649  float Duplex_Er;
650  float Loop_E;
651  float Loop_D;
652  float pscd;
653  float psct;
654  float pscg;
655  float Duplex_Ol;
656  float Duplex_Or;
657  float Duplex_Ot;
658  float fullStemEnergy;
659 } snoopT;
660 
661 
662 
663 
664 
665 
666 
667 /*
668 * ############################################################
669 * PKplex data structures
670 * ############################################################
671 */
672 
676 typedef struct dupVar{
677  int i;
678  int j;
679  int end;
680  char *pk_helix;
681  char *structure;
682  double energy;
683  int offset;
684  double dG1;
685  double dG2;
686  double ddG;
687  int tb;
688  int te;
689  int qb;
690  int qe;
691  int inactive;
692  int processed;
693 } dupVar;
694 
695 
696 
697 /*
698 * ############################################################
699 * 2Dfold data structures
700 * ############################################################
701 */
702 
717 typedef struct{
718  int k;
719  int l;
720  float en;
721  char *s;
723 
729 typedef struct{
732  char *ptype;
733  char *sequence;
734  short *S, *S1;
735  unsigned int maxD1;
736  unsigned int maxD2;
739  unsigned int *mm1;
740  unsigned int *mm2;
742  int *my_iindx;
744  double temperature;
745 
746  unsigned int *referenceBPs1;
747  unsigned int *referenceBPs2;
748  unsigned int *bpdist;
750  short *reference_pt1;
751  short *reference_pt2;
752  int circ;
753  int dangles;
754  unsigned int seq_length;
755 
756  int ***E_F5;
757  int ***E_F3;
758  int ***E_C;
759  int ***E_M;
760  int ***E_M1;
761  int ***E_M2;
762 
763  int **E_Fc;
764  int **E_FcH;
765  int **E_FcI;
766  int **E_FcM;
767 
768  int **l_min_values;
769  int **l_max_values;
770  int *k_min_values;
771  int *k_max_values;
772 
773  int **l_min_values_m;
774  int **l_max_values_m;
775  int *k_min_values_m;
776  int *k_max_values_m;
777 
778  int **l_min_values_m1;
779  int **l_max_values_m1;
780  int *k_min_values_m1;
781  int *k_max_values_m1;
782 
783  int **l_min_values_f;
784  int **l_max_values_f;
785  int *k_min_values_f;
786  int *k_max_values_f;
787 
788  int **l_min_values_f3;
789  int **l_max_values_f3;
790  int *k_min_values_f3;
791  int *k_max_values_f3;
792 
793  int **l_min_values_m2;
794  int **l_max_values_m2;
795  int *k_min_values_m2;
796  int *k_max_values_m2;
797 
798  int *l_min_values_fc;
799  int *l_max_values_fc;
800  int k_min_values_fc;
801  int k_max_values_fc;
802 
803  int *l_min_values_fcH;
804  int *l_max_values_fcH;
805  int k_min_values_fcH;
806  int k_max_values_fcH;
807 
808  int *l_min_values_fcI;
809  int *l_max_values_fcI;
810  int k_min_values_fcI;
811  int k_max_values_fcI;
812 
813  int *l_min_values_fcM;
814  int *l_max_values_fcM;
815  int k_min_values_fcM;
816  int k_max_values_fcM;
817 
818  /* auxilary arrays for remaining set of coarse graining (k,l) > (k_max, l_max) */
819  int *E_F5_rem;
820  int *E_F3_rem;
821  int *E_C_rem;
822  int *E_M_rem;
823  int *E_M1_rem;
824  int *E_M2_rem;
825 
826  int E_Fc_rem;
827  int E_FcH_rem;
828  int E_FcI_rem;
829  int E_FcM_rem;
830 
831 #ifdef COUNT_STATES
832  unsigned long ***N_F5;
833  unsigned long ***N_C;
834  unsigned long ***N_M;
835  unsigned long ***N_M1;
836 #endif
837 } TwoDfold_vars;
838 
851 typedef struct{
852  int k;
853  int l;
854  FLT_OR_DBL q;
856 
863 typedef struct{
864 
865  unsigned int alloc;
866  char *ptype;
867  char *sequence;
868  short *S, *S1;
869  unsigned int maxD1;
870  unsigned int maxD2;
872  double temperature; /* temperature in last call to scale_pf_params */
873  double init_temp; /* temperature in last call to scale_pf_params */
874  FLT_OR_DBL *scale;
875  FLT_OR_DBL pf_scale;
876  pf_paramT *pf_params; /* holds all [unscaled] pf parameters */
877 
878  int *my_iindx;
879  int *jindx;
881  short *reference_pt1;
882  short *reference_pt2;
883 
884  unsigned int *referenceBPs1;
885  unsigned int *referenceBPs2;
886  unsigned int *bpdist;
888  unsigned int *mm1;
889  unsigned int *mm2;
891  int circ;
892  int dangles;
893  unsigned int seq_length;
894 
895  FLT_OR_DBL ***Q;
896  FLT_OR_DBL ***Q_B;
897  FLT_OR_DBL ***Q_M;
898  FLT_OR_DBL ***Q_M1;
899  FLT_OR_DBL ***Q_M2;
900 
901  FLT_OR_DBL **Q_c;
902  FLT_OR_DBL **Q_cH;
903  FLT_OR_DBL **Q_cI;
904  FLT_OR_DBL **Q_cM;
905 
906  int **l_min_values;
907  int **l_max_values;
908  int *k_min_values;
909  int *k_max_values;
910 
911  int **l_min_values_b;
912  int **l_max_values_b;
913  int *k_min_values_b;
914  int *k_max_values_b;
915 
916  int **l_min_values_m;
917  int **l_max_values_m;
918  int *k_min_values_m;
919  int *k_max_values_m;
920 
921  int **l_min_values_m1;
922  int **l_max_values_m1;
923  int *k_min_values_m1;
924  int *k_max_values_m1;
925 
926  int **l_min_values_m2;
927  int **l_max_values_m2;
928  int *k_min_values_m2;
929  int *k_max_values_m2;
930 
931  int *l_min_values_qc;
932  int *l_max_values_qc;
933  int k_min_values_qc;
934  int k_max_values_qc;
935 
936  int *l_min_values_qcH;
937  int *l_max_values_qcH;
938  int k_min_values_qcH;
939  int k_max_values_qcH;
940 
941  int *l_min_values_qcI;
942  int *l_max_values_qcI;
943  int k_min_values_qcI;
944  int k_max_values_qcI;
945 
946  int *l_min_values_qcM;
947  int *l_max_values_qcM;
948  int k_min_values_qcM;
949  int k_max_values_qcM;
950 
951  /* auxilary arrays for remaining set of coarse graining (k,l) > (k_max, l_max) */
952  FLT_OR_DBL *Q_rem;
953  FLT_OR_DBL *Q_B_rem;
954  FLT_OR_DBL *Q_M_rem;
955  FLT_OR_DBL *Q_M1_rem;
956  FLT_OR_DBL *Q_M2_rem;
957 
958  FLT_OR_DBL Q_c_rem;
959  FLT_OR_DBL Q_cH_rem;
960  FLT_OR_DBL Q_cI_rem;
961  FLT_OR_DBL Q_cM_rem;
962 
964 
965 
966 /*
967 * ############################################################
968 * VRNA fold compound related functions
969 * ############################################################
970 */
971 
972 vrna_fold_compound *vrna_get_fold_compound( const char *sequence,
973  model_detailsT *md_p,
974  unsigned int options);
975 
976 vrna_fold_compound *vrna_get_fold_compound_ali( const char **sequence,
977  model_detailsT *md_p,
978  unsigned int options);
979 
980 void vrna_free_fold_compound(vrna_fold_compound *vc);
981 
982 void vrna_free_mfe_matrices(vrna_fold_compound *vc);
983 
984 void vrna_free_pf_matrices(vrna_fold_compound *vc);
985 
986 #endif
Definition: data_structures.h:154
int l
Distance to second reference.
Definition: data_structures.h:719
int Sen
saddle energy so far
Definition: data_structures.h:530
Definition: data_structures.h:633
int * up_hp
A linear array that holds the number of allowed unpaired nucleotides in a hairpin loop...
Definition: data_structures.h:307
double temperature
Temperature used for loop contribution scaling.
Definition: data_structures.h:216
double temperature
Temperature used for loop contribution scaling.
Definition: data_structures.h:265
double FAB
all states with DuplexInit correction
Definition: data_structures.h:459
The soft constraints data structure.
Definition: data_structures.h:323
int w
longest unpaired region
Definition: data_structures.h:558
int dangles
Switch the energy model for dangling end contributions (0, 1, 2, 3)
unsigned int * mm1
Maximum matching matrix, reference struct 1 disallowed.
Definition: data_structures.h:739
double * exp_en_stack
Boltzmann weighted pseudo energy contribution per nucleotide involved in a stack. ...
Definition: data_structures.h:331
unsigned int maxD2
Maximum allowed base pair distance to second reference.
Definition: data_structures.h:736
int cutpoint
The position of the (cofold) cutpoint within the provided sequence. If there is no cutpoint...
Definition: data_structures.h:363
unsigned j
nucleotide position j
Definition: data_structures.h:501
char ** header
header line
Definition: data_structures.h:584
int contribs
[-c "SHIME"]
Definition: data_structures.h:583
unsigned int * referenceBPs1
Matrix containing number of basepairs of reference structure1 in interval [i,j].
Definition: data_structures.h:746
#define MAXLOOP
Definition: energy_const.h:28
Base pair with associated energy.
Definition: data_structures.h:130
float en
Free energy in kcal/mol.
Definition: data_structures.h:720
double ** boltzmann_factors
Boltzmann Factors of the energy contributions for unpaired sequence stretches.
Definition: data_structures.h:327
Definition: data_structures.h:528
double * constraints
Backup storage for energy contributions of single nucleotides.
Definition: data_structures.h:324
short * S1
The input sequences in numeric form.
Definition: data_structures.h:734
Definition: data_structures.h:456
int * up_ml
A linear array that holds the number of allowed unpaired nucleotides in a multi branched loop...
Definition: data_structures.h:313
int * my_iindx
Index for moving in quadratic distancy dimensions.
Definition: data_structures.h:742
int * en_stack
Pseudo Energy contribution per base pair involved in a stack.
Definition: data_structures.h:330
paramT * P
Precomputed energy parameters and model details.
Definition: data_structures.h:730
move_t * moves
remaining moves to target
Definition: data_structures.h:532
double FcAB
true hybrid states only
Definition: data_structures.h:460
char * ptype
Precomputed array of pair types.
Definition: data_structures.h:866
The model details data structure and its corresponding modifiers.
Solution element returned from TwoDpfoldList.
Definition: data_structures.h:851
Definition: data_structures.h:518
double * Gi
free energies of interaction
Definition: data_structures.h:566
float energy
Free Energy of structure in kcal/mol.
Definition: data_structures.h:443
The datastructure that contains temperature scaled energy parameters.
Definition: data_structures.h:180
unsigned int * referenceBPs1
Matrix containing number of basepairs of reference structure1 in interval [i,j].
Definition: data_structures.h:884
float p
Probability.
Definition: data_structures.h:502
The hard constraints data structure.
Definition: data_structures.h:300
unsigned int maxD2
Maximum allowed base pair distance to second reference.
Definition: data_structures.h:870
Definition: data_structures.h:642
int * my_iindx
Index for moving in quadratic distancy dimensions.
Definition: data_structures.h:878
model_detailsT model_details
Model details to be used in the recursions.
Definition: data_structures.h:218
double FB
monomer B
Definition: data_structures.h:462
char * s
MFE representative structure in dot-bracket notation.
Definition: data_structures.h:721
The datastructure that contains temperature scaled Boltzmann weights of the energy parameters...
Definition: data_structures.h:225
char * ptype
Precomputed array of pair types.
Definition: data_structures.h:732
int length
length of longer sequence
Definition: data_structures.h:574
Collection of all free_energy of beeing unpaired values for output.
Definition: data_structures.h:580
int * up_int
A linear array that holds the number of allowed unpaired nucleotides in an interior loop...
Definition: data_structures.h:310
int * en_basepair
Energy contribution for base pairs.
Definition: data_structures.h:326
double Gikjl
full free energy for interaction between [k,i] k
Definition: data_structures.h:567
Definition: data_structures.h:676
double ** I
interior loops
Definition: data_structures.h:554
Definition: data_structures.h:359
Solution element from subopt.c.
Definition: data_structures.h:442
double ** M
multi loops
Definition: data_structures.h:555
constraints for cofolding
Definition: data_structures.h:591
Definition: data_structures.h:605
int curr_en
current energy
Definition: data_structures.h:531
A base pair info structure.
Definition: data_structures.h:499
this datastructure is used as input parameter in functions of PS_dot.h and others ...
Definition: data_structures.h:94
double q
partition function
Definition: data_structures.h:854
double pf_scale
A scaling factor used by pf_fold() to avoid overflows.
unsigned int * bpdist
Matrix containing base pair distance of reference structure 1 and 2 on interval [i,j].
Definition: data_structures.h:886
Definition: data_structures.h:137
double ** H
hairpin loops
Definition: data_structures.h:553
Variables compound for 2Dfold MFE folding.
Definition: data_structures.h:729
double F0AB
Null model without DuplexInit.
Definition: data_structures.h:458
int k
k
Definition: data_structures.h:571
char * sequence
The input sequence.
Definition: data_structures.h:733
double A0
start concentration A
Definition: data_structures.h:469
int * up_ext
A linear array that holds the number of allowed unpaired nucleotides in an exterior loop...
Definition: data_structures.h:304
void * data
A pointer to the data object necessary for for pseudo energy contribution functions.
Definition: data_structures.h:353
unsigned int maxD1
Maximum allowed base pair distance to first reference.
Definition: data_structures.h:869
Sequence interval stack element used in subopt.c.
Definition: data_structures.h:433
Definition: data_structures.h:564
short * pt
pair table
Definition: data_structures.h:529
int l
j
Definition: data_structures.h:573
double ABc
End concentration AB.
Definition: data_structures.h:471
double alpha
Scaling factor for the thermodynamic temperature.
Definition: data_structures.h:266
char * ptype
Pair type array.
Definition: data_structures.h:371
int circ
backward compatibility variable.. this does not effect anything
double ** u_values
(the -u values * [-c "SHIME"]) * seq len
Definition: data_structures.h:585
Base pair.
Definition: data_structures.h:122
int l
Distance to second reference.
Definition: data_structures.h:853
unsigned int type
The type of the fold_compound.
Definition: data_structures.h:361
Stack of partial structures for backtracking.
Definition: data_structures.h:113
double ** E
exterior loop
Definition: data_structures.h:556
int len
sequence length
Definition: data_structures.h:581
int gquad
Allow G-quadruplex formation.
char * matrix
Upper triangular matrix encoding where a base pair or unpaired nucleotide is allowed.
Definition: data_structures.h:301
int k
Distance to first reference.
Definition: data_structures.h:852
#define NBPAIRS
Definition: energy_const.h:24
unsigned int * mm2
Maximum matching matrix, reference struct 2 disallowed.
Definition: data_structures.h:740
this datastructure is used as input parameter in functions of PS_dot.c
Definition: data_structures.h:104
int i
k
Definition: data_structures.h:570
Definition: data_structures.h:538
unsigned int * mm1
Maximum matching matrix, reference struct 1 disallowed.
Definition: data_structures.h:888
unsigned int * bpdist
Matrix containing base pair distance of reference structure 1 and 2 on interval [i,j].
Definition: data_structures.h:748
int length
length of the input sequence
Definition: data_structures.h:557
unsigned int * referenceBPs2
Matrix containing number of basepairs of reference structure2 in interval [i,j].
Definition: data_structures.h:747
double Gikjl_wo
Gikjl without contributions for prob_unpaired.
Definition: data_structures.h:569
int j
j
Definition: data_structures.h:572
The data structure that contains the complete model details used throughout the calculations.
Definition: model.h:206
Base pair data structure used in subopt.c.
Definition: data_structures.h:425
double temperature
Rescale energy parameters to a temperature in degC.
double * Pi
probabilities of interaction
Definition: data_structures.h:565
int * jindx
Index for moving in the triangular matrix qm1.
Definition: data_structures.h:879
int do_backtrack
Flag whether to do backtracing of the structure(s) or not.
Definition: data_structures.h:731
unsigned i
nucleotide position i
Definition: data_structures.h:500
int k
Distance to first reference.
Definition: data_structures.h:718
short * S1
The input sequences in numeric form.
Definition: data_structures.h:868
unsigned int maxD1
Maximum allowed base pair distance to first reference.
Definition: data_structures.h:735
contributions to p_u
Definition: data_structures.h:552
Definition: data_structures.h:481
int * iindx
index array to move through pr.
double pf_scale
Scaling factor to avoid over-/underflows.
Definition: data_structures.h:263
float ent
Pseudo entropy for .
Definition: data_structures.h:503
char * sequence
The input sequence.
Definition: data_structures.h:867
double B0
start concentration B
Definition: data_structures.h:470
int ** free_energies
Energy contribution for unpaired sequence stretches.
Definition: data_structures.h:325
unsigned int * mm2
Maximum matching matrix, reference struct 2 disallowed.
Definition: data_structures.h:889
char * ptype_pf_compat
ptype array indexed via iindx
Definition: data_structures.h:379
double * exp_en_basepair
Boltzmann Factors of the energy contribution for base pairs.
Definition: data_structures.h:328
model_detailsT model_details
Model details to be used in the recursions.
Definition: data_structures.h:273
unsigned int * referenceBPs2
Matrix containing number of basepairs of reference structure2 in interval [i,j].
Definition: data_structures.h:885
Definition: data_structures.h:468
Solution element returned from TwoDfoldList.
Definition: data_structures.h:717
int u_vals
number of different -u values
Definition: data_structures.h:582
double FA
monomer A
Definition: data_structures.h:461
char * structure
Structure in dot-bracket notation.
Definition: data_structures.h:444
char comp
1 iff pair is in mfe structure
Definition: data_structures.h:505
Variables compound for 2Dfold partition function folding.
Definition: data_structures.h:863
int oldAliEn
use old alifold energies (with gaps)