1# This file was automatically generated by SWIG (http://www.swig.org).
2# Version 4.0.2
3#
4# Do not make changes to this file unless you know what you are doing--modify
5# the SWIG interface file instead.
6
7package RNA;
8use base qw(Exporter);
9use base qw(DynaLoader);
10package RNAc;
11bootstrap RNA;
12package RNA;
13@EXPORT = qw();
14=head1 NAME
15
16RNA - interface to the ViennaRNA C-library (libRNA.a)
17
18=head1 SYNOPSIS
19
20  use RNA;
21  $seq = "CGCAGGGAUACCCGCG";
22  ($struct, $mfe) = RNA::fold($seq);  #predict mfe structure of $seq
23  RNA::PS_rna_plot($seq, $struct, "rna.ps");  # write PS plot to rna.ps
24  $F = RNA::pf_fold($seq);   # compute partition function and pair pobabilities
25  RNA::PS_dot_plot($seq, "dot.ps");          # write dot plot to dot.ps
26  ...
27
28=head1 DESCRIPTION
29
30The RNA.pm package gives access to almost all functions in the libRNA.a
31library of the Vienna RNA PACKAGE. The Perl wrapper is generated using
32SWIG http://www.swig.org/ with relatively little manual intervention.
33For each C function in the library the perl package provides a function
34of the same name and calling convention (with few exceptions). For
35detailed information you should therefore also consult the documentation
36of the library (info RNAlib).
37
38Note that in general C arrays are wrapped into opaque objects that can
39only be accessed via helper functions. SWIG provides a couple of general
40purpose helper functions, see the section at the end of this file. C
41structures are wrapped into Perl objects using SWIG's shadow class
42mechanism, resulting in a tied hash with keys named after the structure
43members.
44
45For the interrested reader we list for each scalar type of the
46corepsonding C variable in brackets, and point out the header files
47containing the C declaration.
48
49=head2 Folding Routines
50
51Minimum free Energy Folding (from fold.h)
52
53=over 4
54
55=item fold SEQUENCE
56
57=item fold SEQUENCE, CONSTRAINTS
58
59computes the minimum free energy structure of the string SEQUENCE and returns
60the predicted structure and energy, e.g.
61
62  ($structure, $mfe) = RNA::fold("UGUGUCGAUGUGCUAU");
63
64If a second argument is supplied and
65L<$fold_constrained|/$fold_constrained>==1 the CONSTRAINTS string is
66used to specify constraints on the predicted structure.  The
67characters '|', 'x', '<', '>' mark bases that are paired, unpaired,
68paired upstream, or downstream, respectively; matching brackets "( )"
69denote base pairs, dots '.' are used for unconstrained bases.
70
71In the two argument version the CONSTRAINTS string is modified and holds the
72predicted structure upon return. This is done for backwards compatibility only,
73and might change in future versions.
74
75=item energy_of_struct SEQUENCE, STRUCTURE
76
77returns the energy of SEQUENCE on STRUCTURE (in kcal/mol). The string structure
78must hold a valid secondary structure in bracket notation.
79
80=item update_fold_params
81
82recalculate the pair matrix and energy parameters after a change in folding
83parameters. In many cases (such as changes to
84L<$temperature|/$temperature>) the fold() routine will call
85update_fold_params automatically when necessary.
86
87=item free_arrays
88
89frees memory allocated internally when calling L<fold|/fold>.
90
91
92=item cofold SEQUENCE
93
94=item cofold SEQUENCE, CONSTRAINTS
95
96works as fold, but SEQUENCE may be the concatenation of two RNAs in order
97compute their hybridization structure. E.g.:
98
99  $seq1  ="CGCAGGGAUACCCGCG";
100  $seq2  ="GCGCCCAUAGGGACGC";
101  $RNA::cut_point = length($seq1)+1;
102  ($costruct, $comfe) = RNA::cofold($seq1 . $seq2);
103
104=item duplexfold SEQ1 SEQ2
105
106compute the structure upon hybridization of SEQ1 and SEQ2. In contrast to
107cofold only intra-molecular pairs are allowed. Thus, the algorithm runs in
108O(n1*n2) time where n1 and n2 are the lengths of the sequences. The result
109is returned in a C struct containing the innermost base pair (i,j) the
110structure and energy. E.g:
111
112  $seq1 ="CGCAGGGAUACCCGCG";
113  $seq2 ="GCGCCCAUAGGGACGC";
114  $dup  = RNA::duplexfold($seq1, $seq2);
115  print "Region ", $dup->{i}+1-length($seq1), " to ",
116        $dup->{i}, " of seq1 ",
117        "pairs up with ", $dup->{j}, " to ",
118        $dup->{j}+length($dup->{structure})-length($seq1)-2,
119        " of seq2\n";
120
121=back
122
123Partition function Folding (from part_func.h)
124
125=over 4
126
127=item pf_fold SEQUENCE
128
129=item pf_fold SEQUENCE, CONSTRAINTS
130
131calculates the partition function over all possible secondary
132structures and the matrix of pair probabilities for SEQUENCE and
133returns a two element list consisting of a string summarizing possible
134structures. See below on how to access the pair probability matrix. As
135with L<fold|/fold> the second argument can be used to specify folding
136constraints. Constraints are implemented by excluding base pairings
137that contradict the constraint, but without bonus
138energies. Constraints of type '|' (paired base) are ignored.  In the
139two argument version CONSTRAINTS is modified to contain the structure
140string on return (obsolete feature, for backwards compatibility only)
141
142=item get_pr I, J
143
144After calling C<pf_fold> the global C variable C<pr> points to the
145computed pair probabilities. Perl access to the C is facilitated by
146the C<get_pr> helper function that looks up and returns the
147probability of the pair (I,J).
148
149=item free_pf_arrays
150
151frees memory allocated for pf_fold
152
153=item update_pf_params LENGTH
154
155recalculate energy parameters for pf_fold. In most cases (such as
156simple changes to L<$temperature|/$temperature>) C<pf_fold>
157will take appropriate action automatically.
158
159=item pbacktrack SEQUENCE
160
161return a random structure chosen according to it's Boltzmann probability.
162Use to produce samples representing the thermodynamic ensemble of
163structures.
164
165  RNA::pf_fold($sequence);
166  for (1..1000) {
167     push @sample, RNA::pbacktrack($sequence);
168  }
169
170=item co_pf_fold SEQUENCE
171
172=item co_pf_fold SEQUENCE, CONSTRAINTS
173
174calculates the partition function over all possible secondary
175structures and the matrix of pair probabilities for SEQUENCE.
176SEQUENCE is a concatenation of two sequences (see cofold).
177Returns a five element list consisting of a string summarizing possible
178structures as first element. The second element is the Gibbs free energy of Sequence 1 (as computed also with pf_fold), the third element the Gibbs free energy of Sequence 2. The fourth element is the Gibbs free energy of all structures that have INTERmolecular base pairs, and finally the fifth element is the Gibbs free energy of the whole ensemble (dimers as well as monomers).
179See above on how to access the pair probability matrix. As
180with L<fold|/fold> the second argument can be used to specify folding
181constraints. Constraints are implemented by excluding base pairings
182that contradict the constraint, but without bonus
183energies. Constraints of type '|' (paired base) are ignored.  In the
184two argument version CONSTRAINTS is modified to contain the structure
185string on return (obsolete feature, for backwards compatibility only)
186
187=item free_co_pf_arrays
188
189frees memory allocated for co_pf_fold
190
191=item update_pf_co_params LENGTH
192
193recalculate energy parameters for co_pf_fold. In most cases (such as
194simple changes to L<$temperature|/$temperature>) C<co_pf_fold>
195will take appropriate action automatically.
196
197=item get_concentrations FdAB, FdAA, FdBB, FA, FB, CONCA, CONCB
198
199calculates equilibrium concentrations of the three dimers AB, AA, and BB, as well as the two monomers A and B out of the free energies of the duplexes (FdAB, FdAA, FdBB, these are the fourth elements returned by co_pf_fold), the monomers (FA, FB (e.g. the second and third elements returned by co_pf_fold with sequences AB) and the start concentrations of A and B. It returns as first element the concentration of AB dimer, than AA and BB dimer, as fourth element the A monomer concentration, and as fifth and last element the B monomer concentration.
200So, to compute concentrations, you first have to run 3 co_pf_folds (with sequences AB, AA and BB).
201
202=back
203
204Suboptimal Folding (from subopt.h)
205
206=over 4
207
208=item subopt SEQUENCE, CONSTRAINTS, DELTA
209
210=item subopt SEQUENCE, CONSTRAINTS, DELTA, FILEHANDLE
211
212compute all structures of SEQUENCE within DELTA*0.01 kcal/mol of the
213optimum. If specified, results are written to FILEHANDLE and nothing
214is returned. Else, the C function returnes a list of C structs of type
215SOLUTION. The list is wrapped by SWIG as a perl object that can be
216accesses as follows:
217
218  $solution = subopt($seq, undef, 500);
219  for (0..$solution->size()-1) {
220     printf "%s %6.2f\n",  $solution->get($_)->{structure},
221			   $solution->get($_)->{energy};
222  }
223
224=back
225
226Alignment Folding (from alifold.h)
227
228=over 4
229
230=item alifold REF
231
232=item fold REF, CONSTRAINTS
233
234similar to fold() but compute the consensus structure for a set of aligned
235sequences. E.g.:
236
237  @align = ("GCCAUCCGAGGGAAAGGUU",
238	    "GAUCGACAGCGUCU-AUCG",
239	    "CCGUCUUUAUGAGUCCGGC");
240  ($consens_struct, $consens_en) = RNA::alifold(\@align);
241
242=item consensus REF
243=item consens_mis REF
244
245compute a simple consensus sequence or "most informative sequence" form an
246alignment. The simple consensus returns the most frequent character for
247each column, the MIS uses the IUPAC symbol that contains all characters
248that are overrepresented in the column.
249
250  $mis = consensus_mis(\@align);
251
252
253=back
254
255Inverse Folding (from inverse.h)
256
257=over 4
258
259=item inverse_fold START, TARGET
260
261find a sequence that folds into structure TARGET, by optimizing the
262sequence until its mfe structure (as returned by L<fold|/fold>) is
263TARGET. Startpoint of the optimization is the sequence START. Returns
264a list containing the sequence found and the final value of the cost
265function, i.e. 0 if the search was successful. A random start sequence
266can be generated using L<random_string|/random_string>.
267
268=item inverse_pf_fold START, TARGET
269
270optimizes a sequence (beginning with START) by maximising the
271frequency of the structure TARGET in the thermodynamic ensemble
272of structures. Returns a list containing the optimized sequence and
273the final value of the cost function. The cost function is given by
274C<energy_of_struct(seq, TARGET) - pf_fold(seq)>, i.e.C<-RT*log(p(TARGET))>
275
276=item $final_cost [float]
277
278holds the value of the cost function where the optimization in
279C<inverse_pf_fold> should stop. For values <=0 the optimization will
280only terminate at a local optimimum (which might take very long to reach).
281
282=item $symbolset [char *]
283
284the string symbolset holds the allowed characters to be used by
285C<inverse_fold> and C<inverse_pf_fold>, the default alphabet is "AUGC"
286
287
288=item $give_up [int]
289
290If non-zero stop optimization when its clear that no exact solution
291can be found. Else continue and eventually return an approximate
292solution. Default 0.
293
294=back
295
296Cofolding of two RNA molecules (from cofold.h)
297
298=over 4
299
300
301=back
302
303Global Variables to Modify Folding (from fold_vars.h)
304
305=over 4
306
307=item $noGU [int]
308
309Do not allow GU pairs to form, default 0.
310
311=item $no_closingGU [int]
312
313allow GU only inside stacks, default 0.
314
315=item $tetra_loop [int]
316
317Fold with specially stable 4-loops, default 1.
318
319=item $energy_set [int]
320
3210 = BP; 1=any mit GC; 2=any mit AU-parameter, default 0.
322
323=item $dangles [int]
324
325How to compute dangling ends. 0: no dangling end energies, 1: "normal"
326dangling ends (default), 2: simplified dangling ends, 3: "normal" +
327co-axial stacking. Note that L<pf_fold|/pf_fold> treats cases 1 and 3
328as 2. The same holds for the main computation in L<subopt|/subopt>,
329however subopt will re-evalute energies using
330L<energy_of_struct|energy_of_struct> for cases 1 and 3. See the more
331detailed discussion in RNAlib.texinfo.
332
333=item $nonstandards [char *]
334
335contains allowed non standard bases, default empty string ""
336
337=item $temperature [double]
338
339temperature in degrees Celsius for rescaling parameters, default 37C.
340
341=item $logML [int]
342
343use logarithmic multiloop energy function in
344L<energy_of_struct|/energy_of_struct>, default 0.
345
346=item $noLonelyPairs [int]
347
348consider only structures without isolated base pairs (helices of length 1).
349For L<pf_fold|/pf_fold> only eliminates pairs
350that can B<only> occur as isolated pairs. Default 0.
351
352=item $base_pair [struct bond *]
353
354list of base pairs from last call to L<fold|/fold>. Better use
355the structure string returned by  L<fold|/fold>.
356
357=item $pf_scale [double]
358
359scaling factor used by L<pf_fold|/pf_fold> to avoid overflows. Should
360be set to exp(-F/(RT*length)) where F is a guess for the ensmble free
361energy (e.g. use the mfe).
362
363
364=item $fold_constrained [int]
365
366apply constraints in the folding algorithms, default 0.
367
368=item $do_backtrack [int]
369
370If 0 do not compute the pair probabilities in L<pf_fold|/pf_fold>
371(only the partition function). Default 1.
372
373=item $backtrack_type [char]
374
375usually 'F'; 'C' require (1,N) to be bonded; 'M' backtrack as if the
376sequence was part of a multi loop. Used by L<inverse_fold|/inverse_fold>
377
378=item $pr [double *]
379
380the base pairing prob. matrix computed by L<pf_fold|/pf_fold>.
381
382=item $iindx [int *]
383
384Array of indices for moving withing the C<pr> array. Better use
385L<get_pr|/get_pr>.
386
387=back
388
389from move_set.h
390
391=over 4
392
393=item move_standard SEQUENCE, STRUCTURE, MOVE_TYPE, VERBOSITY, SHIFTS, noLP
394
395Walking method to find local minima. There are three different kinds available
396which can be cosen using the MOVE_TYPE enum:
3970 - GRADIENT: take the neighbouring structure with the lowest energy
3981 - FIRST: take the first neighbour with a lower energy
3992 - ADAPTIVE: randomly choose a neighbour
400STRUCTURE is the start structure and will also be used to return the target structure.
401Others are options set as integers.
402
403=back
404
405=head2 Parsing and Comparing Structures
406
407from RNAstruct.h: these functions convert between strings
408representating secondary structures with various levels of coarse
409graining. See the documentation of the C library for details
410
411=over 4
412
413=item b2HIT STRUCTURE
414
415Full -> HIT [incl. root]
416
417=item b2C STRUCTURE
418
419Full -> Coarse [incl. root]
420
421=item b2Shapiro STRUCTURE
422
423Full -> weighted Shapiro [i.r.]
424
425=item add_root STRUCTURE
426
427{Tree} -> ({Tree}R)
428
429=item expand_Shapiro COARSE
430
431add S for stacks to coarse struct
432
433=item expand_Full STRUCTURE
434
435Full -> FFull
436
437=item unexpand_Full FSTRUCTURE
438
439FFull -> Full
440
441=item unweight WCOARSE
442
443remove weights from coarse struct
444
445=item unexpand_aligned_F ALIGN
446
447
448
449=item parse_structure STRUCTURE
450
451computes structure statistics, and fills the following global variables:
452
453$loops    [int] number of loops (and stacks)
454$unpaired [int] number of unpaired positions
455$pairs    [int] number of paired positions
456$loop_size[int *]  holds all loop sizes
457$loop_degree[int *] holds all loop degrees
458$helix_size[int *] holds all helix lengths
459
460=back
461
462from treedist.h: routines for computing tree-edit distances between structures
463
464=over 4
465
466=item make_tree XSTRUCT
467
468convert a structure string as produced by the expand_... functions to a
469Tree, useable as input to tree_edit_distance.
470
471=item tree_edit_distance T1, T2
472
473compare to structures using tree editing. C<T1>, C<T2> must have been
474created using C<tree_edit_distance>
475
476=item print_tree T
477
478mainly for debugging
479
480=item free_tree T
481
482free space allocated by make_tree
483
484=back
485
486from stringdist.h routines to compute structure distances via string-editing
487
488=over 4
489
490=item Make_swString STRUCTURE
491
492[ returns swString * ]
493make input for string_edit_distance
494
495=item string_edit_distance S1, S2
496
497[ returns float  ]
498compare to structures using string alignment. C<S1>, C<S2> should be
499created using C<Make_swString>
500
501=back
502
503from profiledist
504
505=over
506
507=item Make_bp_profile LENGTH
508
509[ returns (float *) ]
510condense pair probability matrix C<pr> into a vector containing
511probabilities for unpaired, upstream paired and downstream paired.
512This resulting probability profile is used as input for
513profile_edit_distance
514
515=item profile_edit_distance T1, T2
516
517[ returns float ]
518align two probability profiles produced by C<Make_bp_profile>
519
520=item print_bppm T
521
522[ returns void ]
523print string representation of probability profile
524
525=item free_profile T
526
527[ returns void ]
528free space allocated in Make_bp_profile
529
530=back
531
532Global variables for computing structure distances
533
534=over 4
535
536=item $edit_backtrack [int]
537
538set to 1 if you want backtracking
539
540=item $aligned_line [(char *)[2]]
541
542containes alignmed structures after computing structure distance with
543C<edit_backtrack==1>
544
545=item $cost_matrix [int]
546
5470 usual costs (default), 1 Shapiro's costs
548
549=back
550
551=head2 Utilities (from utils.h)
552
553=over 4
554
555=item space SIZE
556
557allocate memory from C. Usually not needed in Perl
558
559=item nrerror MESSGAE
560
561die with error message. Better use Perl's C<die>
562
563=item $xsubi [unsigned short[3]]
564
565libRNA uses the rand48 48bit random number generator if available, the
566current random  number is always stored in $xsubi.
567
568=item init_rand
569
570initialize the $xsubi random number from current time
571
572=item urn
573
574returns a random number between 0 and 1 using the random number
575generator from the RNA library.
576
577=item int_urn FROM, TO
578
579returns random integer in the range [FROM..TO]
580
581=item time_stamp
582
583current date in a string. In perl you might as well use C<locatime>
584
585=item random_string LENGTH, SYMBOLS
586
587returns a string of length LENGTH using characters from the string
588SYMBOLS
589
590=item hamming S1, S2
591
592calculate hamming distance of the strings C<S1> and C<S2>.
593
594
595=item pack_structure STRUCTURE
596
597pack secondary structure, using a 5:1 compression via 3
598encoding. Returns the packed string.
599
600=item unpack_structure PACKED
601
602unpacks a secondary structure packed with pack_structure
603
604=item make_pair_table STRUCTURE
605
606returns a pair table as a newly allocated (short *) C array, such
607that: table[i]=j if (i.j) pair or 0 if i is unpaired, table[0]
608contains the length of the structure.
609
610=item bp_distance STRUCTURE1, STRUCTURE2
611
612returns the base pair distance of the two STRUCTURES. dist = {number
613of base pairs in one structure but not in the other} same as edit
614distance with open-pair close-pair as move-set
615
616=back
617
618from PS_plot.h
619
620=over 4
621
622=item PS_rna_plot SEQUENCE, STRUCTURE, FILENAME
623
624write PostScript drawing of structure to FILENAME. Returns 1 on
625sucess, 0 else.
626
627=item PS_rna_plot_a SEQUENCE, STRUCTURE, FILENAME, PRE, POST
628
629write PostScript drawing of structure to FILENAME. The strings PRE and
630POST contain PostScript code that is included verbatim in the plot just
631before (after) the data.  Returns 1 on sucess, 0 else.
632
633=item gmlRNA SEQUENCE, STRUCTURE, FILENAME, OPTION
634
635write structure drawing in gml (Graph Meta Language) to
636FILENAME. OPTION should be a single character. If uppercase the gml
637output will include the SEQUENCE as node labels. IF OPTION equal 'x'
638or 'X' write graph with coordinates (else only connectivity
639information). Returns 1 on sucess, 0 else.
640
641=item ssv_rna_plot SEQUENCE, STRUCTURE, SSFILE
642
643write structure drfawing as coord file for SStructView Returns 1 on
644sucess, 0 else.
645
646=item xrna_plot SEQUENCE, STRUCTURE, SSFILE
647
648write structure drawing as ".ss" file for further editing in XRNA.
649Returns 1 on sucess, 0 else.
650
651=item PS_dot_plot SEQUENCE, FILENAME
652
653write a PostScript dot plot of the pair probability matix to
654FILENAME. Returns 1 on sucess, 0 else.
655
656=item $rna_plot_type [int]
657
658Select layout algorithm for structure drawings. Currently available
6590= simple coordinates, 1= naview, default 1.
660
661=back
662
663from read_epars.c
664
665=over 4
666
667=item read_parameter_file FILENAME
668
669read energy parameters from FILENAME
670
671=item write_parameter_file FILENAME
672
673write energy parameters to FILENAME
674
675=back
676
677=head2 SWIG helper functions
678
679The package includes generic helper functions to access C arrays
680of type C<int>, C<float> and C<double>, such as:
681
682=over 4
683
684=item intP_getitem POINTER, INDEX
685
686return the element INDEX from the array
687
688=item intP_setitem POINTER, INDEX, VALUE
689
690set element INDEX to VALUE
691
692=item new_intP NELEM
693
694allocate a new C array of integers with NELEM elements and return the pointer
695
696=item delete_intP POINTER
697
698deletes the C array by calling free()
699
700=back
701
702substituting C<intP> with C<floatP>, C<doubleP>, C<ushortP>,
703C<shortP>, gives the corresponding functions for arrays of float or
704double, unsigned short, and short. You need to know the correct C
705type however, and the functions work only for arrays of simple types.
706Note, that the shortP... functions were used for unsigned short in previous
707versions, while starting with v1.8.3 it can only access signed short arrays.
708
709On the lowest level the C<cdata> function gives direct access to any data
710in the form of a Perl string.
711
712=over
713
714=item cdata POINTER, SIZE
715
716copies SIZE bytes at POINTER to a Perl string (with binary data)
717
718=item memmove POINTER, STRING
719
720copies the (binary) string STRING to the memory location pointed to by
721POINTER.
722Note: memmove is broken in current swig versions (e.g. 1.3.31)
723
724=back
725
726In combination with Perl's C<unpack> this provides a generic way to convert
727C data structures to Perl. E.g.
728
729  RNA::parse_structure($structure);  # fills the $RNA::loop_degree array
730  @ldegrees = unpack "I*", RNA::cdata($RNA::loop_degree, ($RNA::loops+1)*4);
731
732Warning: using these functions with wrong arguments will corrupt your
733memory and lead to a segmentation fault.
734
735=head1 AUTHOR
736
737Ivo L. Hofacker <ivo@tbi.univie.ac.at>
738
739=cut
740
741# ---------- BASE METHODS -------------
742
743package RNA;
744
745sub TIEHASH {
746    my ($classname,$obj) = @_;
747    return bless $obj, $classname;
748}
749
750sub CLEAR { }
751
752sub FIRSTKEY { }
753
754sub NEXTKEY { }
755
756sub FETCH {
757    my ($self,$field) = @_;
758    my $member_func = "swig_${field}_get";
759    $self->$member_func();
760}
761
762sub STORE {
763    my ($self,$field,$newval) = @_;
764    my $member_func = "swig_${field}_set";
765    $self->$member_func($newval);
766}
767
768sub this {
769    my $ptr = shift;
770    return tied(%$ptr);
771}
772
773
774# ------- FUNCTION WRAPPERS --------
775
776package RNA;
777
778*new_intP = *RNAc::new_intP;
779*delete_intP = *RNAc::delete_intP;
780*intP_getitem = *RNAc::intP_getitem;
781*intP_setitem = *RNAc::intP_setitem;
782*new_floatP = *RNAc::new_floatP;
783*delete_floatP = *RNAc::delete_floatP;
784*floatP_getitem = *RNAc::floatP_getitem;
785*floatP_setitem = *RNAc::floatP_setitem;
786*new_doubleP = *RNAc::new_doubleP;
787*delete_doubleP = *RNAc::delete_doubleP;
788*doubleP_getitem = *RNAc::doubleP_getitem;
789*doubleP_setitem = *RNAc::doubleP_setitem;
790*new_ushortP = *RNAc::new_ushortP;
791*delete_ushortP = *RNAc::delete_ushortP;
792*ushortP_getitem = *RNAc::ushortP_getitem;
793*ushortP_setitem = *RNAc::ushortP_setitem;
794*new_shortP = *RNAc::new_shortP;
795*delete_shortP = *RNAc::delete_shortP;
796*shortP_getitem = *RNAc::shortP_getitem;
797*shortP_setitem = *RNAc::shortP_setitem;
798*cdata = *RNAc::cdata;
799*memmove = *RNAc::memmove;
800*params_load = *RNAc::params_load;
801*params_save = *RNAc::params_save;
802*params_load_from_string = *RNAc::params_load_from_string;
803*params_load_RNA_Turner2004 = *RNAc::params_load_RNA_Turner2004;
804*params_load_RNA_Turner1999 = *RNAc::params_load_RNA_Turner1999;
805*params_load_RNA_Andronescu2007 = *RNAc::params_load_RNA_Andronescu2007;
806*params_load_RNA_Langdon2018 = *RNAc::params_load_RNA_Langdon2018;
807*params_load_RNA_misc_special_hairpins = *RNAc::params_load_RNA_misc_special_hairpins;
808*params_load_DNA_Mathews2004 = *RNAc::params_load_DNA_Mathews2004;
809*params_load_DNA_Mathews1999 = *RNAc::params_load_DNA_Mathews1999;
810*last_parameter_file = *RNAc::last_parameter_file;
811*read_parameter_file = *RNAc::read_parameter_file;
812*write_parameter_file = *RNAc::write_parameter_file;
813*gettype = *RNAc::gettype;
814*settype = *RNAc::settype;
815*init_rand = *RNAc::init_rand;
816*urn = *RNAc::urn;
817*int_urn = *RNAc::int_urn;
818*hamming = *RNAc::hamming;
819*hamming_bound = *RNAc::hamming_bound;
820*encode_seq = *RNAc::encode_seq;
821*random_string = *RNAc::random_string;
822*hamming_distance = *RNAc::hamming_distance;
823*hamming_distance_bound = *RNAc::hamming_distance_bound;
824*pack_structure = *RNAc::pack_structure;
825*unpack_structure = *RNAc::unpack_structure;
826*db_from_ptable = *RNAc::db_from_ptable;
827*db_flatten = *RNAc::db_flatten;
828*db_from_WUSS = *RNAc::db_from_WUSS;
829*abstract_shapes = *RNAc::abstract_shapes;
830*ptable = *RNAc::ptable;
831*ptable_pk = *RNAc::ptable_pk;
832*pt_pk_remove = *RNAc::pt_pk_remove;
833*plist = *RNAc::plist;
834*db_from_plist = *RNAc::db_from_plist;
835*db_pk_remove = *RNAc::db_pk_remove;
836*db_to_tree_string = *RNAc::db_to_tree_string;
837*tree_string_unweight = *RNAc::tree_string_unweight;
838*tree_string_to_db = *RNAc::tree_string_to_db;
839*make_loop_index = *RNAc::make_loop_index;
840*loopidx_from_ptable = *RNAc::loopidx_from_ptable;
841*bp_distance = *RNAc::bp_distance;
842*dist_mountain = *RNAc::dist_mountain;
843*db_pack = *RNAc::db_pack;
844*db_unpack = *RNAc::db_unpack;
845*db_to_element_string = *RNAc::db_to_element_string;
846*consensus = *RNAc::consensus;
847*consens_mis = *RNAc::consens_mis;
848*aln_mpi = *RNAc::aln_mpi;
849*aln_pscore = *RNAc::aln_pscore;
850*aln_conservation_struct = *RNAc::aln_conservation_struct;
851*aln_conservation_col = *RNAc::aln_conservation_col;
852*move_standard = *RNAc::move_standard;
853*filename_sanitize = *RNAc::filename_sanitize;
854*get_xy_coordinates = *RNAc::get_xy_coordinates;
855*simple_circplot_coordinates = *RNAc::simple_circplot_coordinates;
856*naview_xy_coordinates = *RNAc::naview_xy_coordinates;
857*simple_xy_coordinates = *RNAc::simple_xy_coordinates;
858*my_PS_rna_plot_snoop_a = *RNAc::my_PS_rna_plot_snoop_a;
859*file_PS_rnaplot = *RNAc::file_PS_rnaplot;
860*file_PS_rnaplot_a = *RNAc::file_PS_rnaplot_a;
861*gmlRNA = *RNAc::gmlRNA;
862*ssv_rna_plot = *RNAc::ssv_rna_plot;
863*svg_rna_plot = *RNAc::svg_rna_plot;
864*xrna_plot = *RNAc::xrna_plot;
865*PS_rna_plot = *RNAc::PS_rna_plot;
866*PS_rna_plot_a = *RNAc::PS_rna_plot_a;
867*PS_rna_plot_a_gquad = *RNAc::PS_rna_plot_a_gquad;
868*file_PS_aln = *RNAc::file_PS_aln;
869*PS_color_dot_plot = *RNAc::PS_color_dot_plot;
870*PS_color_dot_plot_turn = *RNAc::PS_color_dot_plot_turn;
871*PS_dot_plot_turn = *RNAc::PS_dot_plot_turn;
872*PS_dot_plot_list = *RNAc::PS_dot_plot_list;
873*PS_dot_plot = *RNAc::PS_dot_plot;
874*eval_structure_simple = *RNAc::eval_structure_simple;
875*eval_circ_structure = *RNAc::eval_circ_structure;
876*eval_gquad_structure = *RNAc::eval_gquad_structure;
877*eval_circ_gquad_structure = *RNAc::eval_circ_gquad_structure;
878*eval_structure_pt_simple = *RNAc::eval_structure_pt_simple;
879*energy_of_structure = *RNAc::energy_of_structure;
880*energy_of_circ_structure = *RNAc::energy_of_circ_structure;
881*energy_of_gquad_structure = *RNAc::energy_of_gquad_structure;
882*energy_of_structure_pt = *RNAc::energy_of_structure_pt;
883*energy_of_move = *RNAc::energy_of_move;
884*energy_of_move_pt = *RNAc::energy_of_move_pt;
885*loop_energy = *RNAc::loop_energy;
886*energy_of_struct = *RNAc::energy_of_struct;
887*energy_of_struct_pt = *RNAc::energy_of_struct_pt;
888*energy_of_circ_struct = *RNAc::energy_of_circ_struct;
889*E_ext_stem = *RNAc::E_ext_stem;
890*exp_E_ext_stem = *RNAc::exp_E_ext_stem;
891*E_Stem = *RNAc::E_Stem;
892*E_ExtLoop = *RNAc::E_ExtLoop;
893*exp_E_ExtLoop = *RNAc::exp_E_ExtLoop;
894*exp_E_Stem = *RNAc::exp_E_Stem;
895*E_Hairpin = *RNAc::E_Hairpin;
896*exp_E_Hairpin = *RNAc::exp_E_Hairpin;
897*E_IntLoop = *RNAc::E_IntLoop;
898*exp_E_IntLoop = *RNAc::exp_E_IntLoop;
899*E_IntLoop_Co = *RNAc::E_IntLoop_Co;
900*ubf_eval_int_loop = *RNAc::ubf_eval_int_loop;
901*ubf_eval_int_loop2 = *RNAc::ubf_eval_int_loop2;
902*ubf_eval_ext_int_loop = *RNAc::ubf_eval_ext_int_loop;
903*E_ml_rightmost_stem = *RNAc::E_ml_rightmost_stem;
904*E_MLstem = *RNAc::E_MLstem;
905*exp_E_MLstem = *RNAc::exp_E_MLstem;
906*maximum_matching = *RNAc::maximum_matching;
907*fold = *RNAc::fold;
908*alifold = *RNAc::alifold;
909*cofold = *RNAc::cofold;
910*circfold = *RNAc::circfold;
911*free_arrays = *RNAc::free_arrays;
912*update_fold_params = *RNAc::update_fold_params;
913*circalifold = *RNAc::circalifold;
914*free_alifold_arrays = *RNAc::free_alifold_arrays;
915*free_co_arrays = *RNAc::free_co_arrays;
916*update_cofold_params = *RNAc::update_cofold_params;
917*initialize_cofold = *RNAc::initialize_cofold;
918*Lfoldz = *RNAc::Lfoldz;
919*Lfold = *RNAc::Lfold;
920*aliLfold = *RNAc::aliLfold;
921*pf_fold = *RNAc::pf_fold;
922*pf_circ_fold = *RNAc::pf_circ_fold;
923*pf_float_precision = *RNAc::pf_float_precision;
924*pbacktrack = *RNAc::pbacktrack;
925*pbacktrack5 = *RNAc::pbacktrack5;
926*pbacktrack_circ = *RNAc::pbacktrack_circ;
927*free_pf_arrays = *RNAc::free_pf_arrays;
928*update_pf_params = *RNAc::update_pf_params;
929*mean_bp_distance = *RNAc::mean_bp_distance;
930*init_pf_fold = *RNAc::init_pf_fold;
931*centroid = *RNAc::centroid;
932*co_pf_fold = *RNAc::co_pf_fold;
933*get_concentrations = *RNAc::get_concentrations;
934*free_co_pf_arrays = *RNAc::free_co_pf_arrays;
935*update_co_pf_params = *RNAc::update_co_pf_params;
936*get_pr = *RNAc::get_pr;
937*get_centroid_struct_pl = *RNAc::get_centroid_struct_pl;
938*get_centroid_struct_pr = *RNAc::get_centroid_struct_pr;
939*MEA_from_plist = *RNAc::MEA_from_plist;
940*pfl_fold = *RNAc::pfl_fold;
941*pfl_fold_up = *RNAc::pfl_fold_up;
942*subopt = *RNAc::subopt;
943*zukersubopt = *RNAc::zukersubopt;
944*inverse_fold = *RNAc::inverse_fold;
945*inverse_pf_fold = *RNAc::inverse_pf_fold;
946*b2HIT = *RNAc::b2HIT;
947*b2C = *RNAc::b2C;
948*b2Shapiro = *RNAc::b2Shapiro;
949*add_root = *RNAc::add_root;
950*expand_Shapiro = *RNAc::expand_Shapiro;
951*expand_Full = *RNAc::expand_Full;
952*unexpand_Full = *RNAc::unexpand_Full;
953*unweight = *RNAc::unweight;
954*unexpand_aligned_F = *RNAc::unexpand_aligned_F;
955*parse_structure = *RNAc::parse_structure;
956*make_tree = *RNAc::make_tree;
957*tree_edit_distance = *RNAc::tree_edit_distance;
958*print_tree = *RNAc::print_tree;
959*free_tree = *RNAc::free_tree;
960*Make_swString = *RNAc::Make_swString;
961*string_edit_distance = *RNAc::string_edit_distance;
962*profile_edit_distance = *RNAc::profile_edit_distance;
963*Make_bp_profile_bppm = *RNAc::Make_bp_profile_bppm;
964*print_bppm = *RNAc::print_bppm;
965*free_profile = *RNAc::free_profile;
966*Make_bp_profile = *RNAc::Make_bp_profile;
967*deref_any = *RNAc::deref_any;
968*get_aligned_line = *RNAc::get_aligned_line;
969*file_SHAPE_read = *RNAc::file_SHAPE_read;
970*file_fasta_read = *RNAc::file_fasta_read;
971*extract_record_rest_structure = *RNAc::extract_record_rest_structure;
972*read_record = *RNAc::read_record;
973*get_multi_input_line = *RNAc::get_multi_input_line;
974*file_msa_detect_format = *RNAc::file_msa_detect_format;
975*file_msa_write = *RNAc::file_msa_write;
976*file_msa_read = *RNAc::file_msa_read;
977*file_msa_read_record = *RNAc::file_msa_read_record;
978*seq_encode = *RNAc::seq_encode;
979*file_commands_read = *RNAc::file_commands_read;
980*enumerate_necklaces = *RNAc::enumerate_necklaces;
981*rotational_symmetry = *RNAc::rotational_symmetry;
982*duplexfold = *RNAc::duplexfold;
983*duplex_subopt = *RNAc::duplex_subopt;
984*aliduplexfold = *RNAc::aliduplexfold;
985*aliduplex_subopt = *RNAc::aliduplex_subopt;
986*path_options_findpath = *RNAc::path_options_findpath;
987*get_path = *RNAc::get_path;
988*find_saddle = *RNAc::find_saddle;
989*free_path = *RNAc::free_path;
990*heat_capacity = *RNAc::heat_capacity;
991*fc_add_perl_callback = *RNAc::fc_add_perl_callback;
992*fc_add_perl_data = *RNAc::fc_add_perl_data;
993*sc_add_f_perl_callback = *RNAc::sc_add_f_perl_callback;
994*sc_add_bt_perl_callback = *RNAc::sc_add_bt_perl_callback;
995*sc_add_exp_f_perl_callback = *RNAc::sc_add_exp_f_perl_callback;
996*sc_add_perl_data = *RNAc::sc_add_perl_data;
997*ud_set_data = *RNAc::ud_set_data;
998*ud_set_prod_rule_cb = *RNAc::ud_set_prod_rule_cb;
999*ud_set_exp_prod_rule_cb = *RNAc::ud_set_exp_prod_rule_cb;
1000*ud_set_prob_cb = *RNAc::ud_set_prob_cb;
1001*Lfold_cb = *RNAc::Lfold_cb;
1002*Lfoldz_cb = *RNAc::Lfoldz_cb;
1003*aliLfold_cb = *RNAc::aliLfold_cb;
1004*pfl_fold_cb = *RNAc::pfl_fold_cb;
1005*pfl_fold_up_cb = *RNAc::pfl_fold_up_cb;
1006
1007############# Class : RNA::intArray ##############
1008
1009package RNA::intArray;
1010use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1011@ISA = qw( RNA );
1012%OWNER = ();
1013%ITERATORS = ();
1014sub new {
1015    my $pkg = shift;
1016    my $self = RNAc::new_intArray(@_);
1017    bless $self, $pkg if defined($self);
1018}
1019
1020sub DESTROY {
1021    return unless $_[0]->isa('HASH');
1022    my $self = tied(%{$_[0]});
1023    return unless defined $self;
1024    delete $ITERATORS{$self};
1025    if (exists $OWNER{$self}) {
1026        RNAc::delete_intArray($self);
1027        delete $OWNER{$self};
1028    }
1029}
1030
1031*getitem = *RNAc::intArray_getitem;
1032*setitem = *RNAc::intArray_setitem;
1033*cast = *RNAc::intArray_cast;
1034*frompointer = *RNAc::intArray_frompointer;
1035sub DISOWN {
1036    my $self = shift;
1037    my $ptr = tied(%$self);
1038    delete $OWNER{$ptr};
1039}
1040
1041sub ACQUIRE {
1042    my $self = shift;
1043    my $ptr = tied(%$self);
1044    $OWNER{$ptr} = 1;
1045}
1046
1047
1048############# Class : RNA::floatArray ##############
1049
1050package RNA::floatArray;
1051use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1052@ISA = qw( RNA );
1053%OWNER = ();
1054%ITERATORS = ();
1055sub new {
1056    my $pkg = shift;
1057    my $self = RNAc::new_floatArray(@_);
1058    bless $self, $pkg if defined($self);
1059}
1060
1061sub DESTROY {
1062    return unless $_[0]->isa('HASH');
1063    my $self = tied(%{$_[0]});
1064    return unless defined $self;
1065    delete $ITERATORS{$self};
1066    if (exists $OWNER{$self}) {
1067        RNAc::delete_floatArray($self);
1068        delete $OWNER{$self};
1069    }
1070}
1071
1072*getitem = *RNAc::floatArray_getitem;
1073*setitem = *RNAc::floatArray_setitem;
1074*cast = *RNAc::floatArray_cast;
1075*frompointer = *RNAc::floatArray_frompointer;
1076sub DISOWN {
1077    my $self = shift;
1078    my $ptr = tied(%$self);
1079    delete $OWNER{$ptr};
1080}
1081
1082sub ACQUIRE {
1083    my $self = shift;
1084    my $ptr = tied(%$self);
1085    $OWNER{$ptr} = 1;
1086}
1087
1088
1089############# Class : RNA::doubleArray ##############
1090
1091package RNA::doubleArray;
1092use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1093@ISA = qw( RNA );
1094%OWNER = ();
1095%ITERATORS = ();
1096sub new {
1097    my $pkg = shift;
1098    my $self = RNAc::new_doubleArray(@_);
1099    bless $self, $pkg if defined($self);
1100}
1101
1102sub DESTROY {
1103    return unless $_[0]->isa('HASH');
1104    my $self = tied(%{$_[0]});
1105    return unless defined $self;
1106    delete $ITERATORS{$self};
1107    if (exists $OWNER{$self}) {
1108        RNAc::delete_doubleArray($self);
1109        delete $OWNER{$self};
1110    }
1111}
1112
1113*getitem = *RNAc::doubleArray_getitem;
1114*setitem = *RNAc::doubleArray_setitem;
1115*cast = *RNAc::doubleArray_cast;
1116*frompointer = *RNAc::doubleArray_frompointer;
1117sub DISOWN {
1118    my $self = shift;
1119    my $ptr = tied(%$self);
1120    delete $OWNER{$ptr};
1121}
1122
1123sub ACQUIRE {
1124    my $self = shift;
1125    my $ptr = tied(%$self);
1126    $OWNER{$ptr} = 1;
1127}
1128
1129
1130############# Class : RNA::DoublePair ##############
1131
1132package RNA::DoublePair;
1133use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1134@ISA = qw( RNA );
1135%OWNER = ();
1136%ITERATORS = ();
1137sub new {
1138    my $pkg = shift;
1139    my $self = RNAc::new_DoublePair(@_);
1140    bless $self, $pkg if defined($self);
1141}
1142
1143*swig_first_get = *RNAc::DoublePair_first_get;
1144*swig_first_set = *RNAc::DoublePair_first_set;
1145*swig_second_get = *RNAc::DoublePair_second_get;
1146*swig_second_set = *RNAc::DoublePair_second_set;
1147sub DESTROY {
1148    return unless $_[0]->isa('HASH');
1149    my $self = tied(%{$_[0]});
1150    return unless defined $self;
1151    delete $ITERATORS{$self};
1152    if (exists $OWNER{$self}) {
1153        RNAc::delete_DoublePair($self);
1154        delete $OWNER{$self};
1155    }
1156}
1157
1158sub DISOWN {
1159    my $self = shift;
1160    my $ptr = tied(%$self);
1161    delete $OWNER{$ptr};
1162}
1163
1164sub ACQUIRE {
1165    my $self = shift;
1166    my $ptr = tied(%$self);
1167    $OWNER{$ptr} = 1;
1168}
1169
1170
1171############# Class : RNA::IntVector ##############
1172
1173package RNA::IntVector;
1174use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1175@ISA = qw( RNA );
1176%OWNER = ();
1177%ITERATORS = ();
1178sub new {
1179    my $pkg = shift;
1180    my $self = RNAc::new_IntVector(@_);
1181    bless $self, $pkg if defined($self);
1182}
1183
1184*size = *RNAc::IntVector_size;
1185*empty = *RNAc::IntVector_empty;
1186*clear = *RNAc::IntVector_clear;
1187*push = *RNAc::IntVector_push;
1188*pop = *RNAc::IntVector_pop;
1189*get = *RNAc::IntVector_get;
1190*set = *RNAc::IntVector_set;
1191sub DESTROY {
1192    return unless $_[0]->isa('HASH');
1193    my $self = tied(%{$_[0]});
1194    return unless defined $self;
1195    delete $ITERATORS{$self};
1196    if (exists $OWNER{$self}) {
1197        RNAc::delete_IntVector($self);
1198        delete $OWNER{$self};
1199    }
1200}
1201
1202sub DISOWN {
1203    my $self = shift;
1204    my $ptr = tied(%$self);
1205    delete $OWNER{$ptr};
1206}
1207
1208sub ACQUIRE {
1209    my $self = shift;
1210    my $ptr = tied(%$self);
1211    $OWNER{$ptr} = 1;
1212}
1213
1214
1215############# Class : RNA::UIntVector ##############
1216
1217package RNA::UIntVector;
1218use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1219@ISA = qw( RNA );
1220%OWNER = ();
1221%ITERATORS = ();
1222sub new {
1223    my $pkg = shift;
1224    my $self = RNAc::new_UIntVector(@_);
1225    bless $self, $pkg if defined($self);
1226}
1227
1228*size = *RNAc::UIntVector_size;
1229*empty = *RNAc::UIntVector_empty;
1230*clear = *RNAc::UIntVector_clear;
1231*push = *RNAc::UIntVector_push;
1232*pop = *RNAc::UIntVector_pop;
1233*get = *RNAc::UIntVector_get;
1234*set = *RNAc::UIntVector_set;
1235sub DESTROY {
1236    return unless $_[0]->isa('HASH');
1237    my $self = tied(%{$_[0]});
1238    return unless defined $self;
1239    delete $ITERATORS{$self};
1240    if (exists $OWNER{$self}) {
1241        RNAc::delete_UIntVector($self);
1242        delete $OWNER{$self};
1243    }
1244}
1245
1246sub DISOWN {
1247    my $self = shift;
1248    my $ptr = tied(%$self);
1249    delete $OWNER{$ptr};
1250}
1251
1252sub ACQUIRE {
1253    my $self = shift;
1254    my $ptr = tied(%$self);
1255    $OWNER{$ptr} = 1;
1256}
1257
1258
1259############# Class : RNA::DoubleVector ##############
1260
1261package RNA::DoubleVector;
1262use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1263@ISA = qw( RNA );
1264%OWNER = ();
1265%ITERATORS = ();
1266sub new {
1267    my $pkg = shift;
1268    my $self = RNAc::new_DoubleVector(@_);
1269    bless $self, $pkg if defined($self);
1270}
1271
1272*size = *RNAc::DoubleVector_size;
1273*empty = *RNAc::DoubleVector_empty;
1274*clear = *RNAc::DoubleVector_clear;
1275*push = *RNAc::DoubleVector_push;
1276*pop = *RNAc::DoubleVector_pop;
1277*get = *RNAc::DoubleVector_get;
1278*set = *RNAc::DoubleVector_set;
1279sub DESTROY {
1280    return unless $_[0]->isa('HASH');
1281    my $self = tied(%{$_[0]});
1282    return unless defined $self;
1283    delete $ITERATORS{$self};
1284    if (exists $OWNER{$self}) {
1285        RNAc::delete_DoubleVector($self);
1286        delete $OWNER{$self};
1287    }
1288}
1289
1290sub DISOWN {
1291    my $self = shift;
1292    my $ptr = tied(%$self);
1293    delete $OWNER{$ptr};
1294}
1295
1296sub ACQUIRE {
1297    my $self = shift;
1298    my $ptr = tied(%$self);
1299    $OWNER{$ptr} = 1;
1300}
1301
1302
1303############# Class : RNA::StringVector ##############
1304
1305package RNA::StringVector;
1306use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1307@ISA = qw( RNA );
1308%OWNER = ();
1309%ITERATORS = ();
1310sub new {
1311    my $pkg = shift;
1312    my $self = RNAc::new_StringVector(@_);
1313    bless $self, $pkg if defined($self);
1314}
1315
1316*size = *RNAc::StringVector_size;
1317*empty = *RNAc::StringVector_empty;
1318*clear = *RNAc::StringVector_clear;
1319*push = *RNAc::StringVector_push;
1320*pop = *RNAc::StringVector_pop;
1321*get = *RNAc::StringVector_get;
1322*set = *RNAc::StringVector_set;
1323sub DESTROY {
1324    return unless $_[0]->isa('HASH');
1325    my $self = tied(%{$_[0]});
1326    return unless defined $self;
1327    delete $ITERATORS{$self};
1328    if (exists $OWNER{$self}) {
1329        RNAc::delete_StringVector($self);
1330        delete $OWNER{$self};
1331    }
1332}
1333
1334sub DISOWN {
1335    my $self = shift;
1336    my $ptr = tied(%$self);
1337    delete $OWNER{$ptr};
1338}
1339
1340sub ACQUIRE {
1341    my $self = shift;
1342    my $ptr = tied(%$self);
1343    $OWNER{$ptr} = 1;
1344}
1345
1346
1347############# Class : RNA::ConstCharVector ##############
1348
1349package RNA::ConstCharVector;
1350use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1351@ISA = qw( RNA );
1352%OWNER = ();
1353%ITERATORS = ();
1354sub new {
1355    my $pkg = shift;
1356    my $self = RNAc::new_ConstCharVector(@_);
1357    bless $self, $pkg if defined($self);
1358}
1359
1360*size = *RNAc::ConstCharVector_size;
1361*empty = *RNAc::ConstCharVector_empty;
1362*clear = *RNAc::ConstCharVector_clear;
1363*push = *RNAc::ConstCharVector_push;
1364*pop = *RNAc::ConstCharVector_pop;
1365*get = *RNAc::ConstCharVector_get;
1366*set = *RNAc::ConstCharVector_set;
1367sub DESTROY {
1368    return unless $_[0]->isa('HASH');
1369    my $self = tied(%{$_[0]});
1370    return unless defined $self;
1371    delete $ITERATORS{$self};
1372    if (exists $OWNER{$self}) {
1373        RNAc::delete_ConstCharVector($self);
1374        delete $OWNER{$self};
1375    }
1376}
1377
1378sub DISOWN {
1379    my $self = shift;
1380    my $ptr = tied(%$self);
1381    delete $OWNER{$ptr};
1382}
1383
1384sub ACQUIRE {
1385    my $self = shift;
1386    my $ptr = tied(%$self);
1387    $OWNER{$ptr} = 1;
1388}
1389
1390
1391############# Class : RNA::SOLUTIONVector ##############
1392
1393package RNA::SOLUTIONVector;
1394use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1395@ISA = qw( RNA );
1396%OWNER = ();
1397%ITERATORS = ();
1398sub new {
1399    my $pkg = shift;
1400    my $self = RNAc::new_SOLUTIONVector(@_);
1401    bless $self, $pkg if defined($self);
1402}
1403
1404*size = *RNAc::SOLUTIONVector_size;
1405*empty = *RNAc::SOLUTIONVector_empty;
1406*clear = *RNAc::SOLUTIONVector_clear;
1407*push = *RNAc::SOLUTIONVector_push;
1408*pop = *RNAc::SOLUTIONVector_pop;
1409*get = *RNAc::SOLUTIONVector_get;
1410*set = *RNAc::SOLUTIONVector_set;
1411sub DESTROY {
1412    return unless $_[0]->isa('HASH');
1413    my $self = tied(%{$_[0]});
1414    return unless defined $self;
1415    delete $ITERATORS{$self};
1416    if (exists $OWNER{$self}) {
1417        RNAc::delete_SOLUTIONVector($self);
1418        delete $OWNER{$self};
1419    }
1420}
1421
1422sub DISOWN {
1423    my $self = shift;
1424    my $ptr = tied(%$self);
1425    delete $OWNER{$ptr};
1426}
1427
1428sub ACQUIRE {
1429    my $self = shift;
1430    my $ptr = tied(%$self);
1431    $OWNER{$ptr} = 1;
1432}
1433
1434
1435############# Class : RNA::CoordinateVector ##############
1436
1437package RNA::CoordinateVector;
1438use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1439@ISA = qw( RNA );
1440%OWNER = ();
1441%ITERATORS = ();
1442sub new {
1443    my $pkg = shift;
1444    my $self = RNAc::new_CoordinateVector(@_);
1445    bless $self, $pkg if defined($self);
1446}
1447
1448*size = *RNAc::CoordinateVector_size;
1449*empty = *RNAc::CoordinateVector_empty;
1450*clear = *RNAc::CoordinateVector_clear;
1451*push = *RNAc::CoordinateVector_push;
1452*pop = *RNAc::CoordinateVector_pop;
1453*get = *RNAc::CoordinateVector_get;
1454*set = *RNAc::CoordinateVector_set;
1455sub DESTROY {
1456    return unless $_[0]->isa('HASH');
1457    my $self = tied(%{$_[0]});
1458    return unless defined $self;
1459    delete $ITERATORS{$self};
1460    if (exists $OWNER{$self}) {
1461        RNAc::delete_CoordinateVector($self);
1462        delete $OWNER{$self};
1463    }
1464}
1465
1466sub DISOWN {
1467    my $self = shift;
1468    my $ptr = tied(%$self);
1469    delete $OWNER{$ptr};
1470}
1471
1472sub ACQUIRE {
1473    my $self = shift;
1474    my $ptr = tied(%$self);
1475    $OWNER{$ptr} = 1;
1476}
1477
1478
1479############# Class : RNA::DoubleDoubleVector ##############
1480
1481package RNA::DoubleDoubleVector;
1482use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1483@ISA = qw( RNA );
1484%OWNER = ();
1485%ITERATORS = ();
1486sub new {
1487    my $pkg = shift;
1488    my $self = RNAc::new_DoubleDoubleVector(@_);
1489    bless $self, $pkg if defined($self);
1490}
1491
1492*size = *RNAc::DoubleDoubleVector_size;
1493*empty = *RNAc::DoubleDoubleVector_empty;
1494*clear = *RNAc::DoubleDoubleVector_clear;
1495*push = *RNAc::DoubleDoubleVector_push;
1496*pop = *RNAc::DoubleDoubleVector_pop;
1497*get = *RNAc::DoubleDoubleVector_get;
1498*set = *RNAc::DoubleDoubleVector_set;
1499sub DESTROY {
1500    return unless $_[0]->isa('HASH');
1501    my $self = tied(%{$_[0]});
1502    return unless defined $self;
1503    delete $ITERATORS{$self};
1504    if (exists $OWNER{$self}) {
1505        RNAc::delete_DoubleDoubleVector($self);
1506        delete $OWNER{$self};
1507    }
1508}
1509
1510sub DISOWN {
1511    my $self = shift;
1512    my $ptr = tied(%$self);
1513    delete $OWNER{$ptr};
1514}
1515
1516sub ACQUIRE {
1517    my $self = shift;
1518    my $ptr = tied(%$self);
1519    $OWNER{$ptr} = 1;
1520}
1521
1522
1523############# Class : RNA::IntIntVector ##############
1524
1525package RNA::IntIntVector;
1526use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1527@ISA = qw( RNA );
1528%OWNER = ();
1529%ITERATORS = ();
1530sub new {
1531    my $pkg = shift;
1532    my $self = RNAc::new_IntIntVector(@_);
1533    bless $self, $pkg if defined($self);
1534}
1535
1536*size = *RNAc::IntIntVector_size;
1537*empty = *RNAc::IntIntVector_empty;
1538*clear = *RNAc::IntIntVector_clear;
1539*push = *RNAc::IntIntVector_push;
1540*pop = *RNAc::IntIntVector_pop;
1541*get = *RNAc::IntIntVector_get;
1542*set = *RNAc::IntIntVector_set;
1543sub DESTROY {
1544    return unless $_[0]->isa('HASH');
1545    my $self = tied(%{$_[0]});
1546    return unless defined $self;
1547    delete $ITERATORS{$self};
1548    if (exists $OWNER{$self}) {
1549        RNAc::delete_IntIntVector($self);
1550        delete $OWNER{$self};
1551    }
1552}
1553
1554sub DISOWN {
1555    my $self = shift;
1556    my $ptr = tied(%$self);
1557    delete $OWNER{$ptr};
1558}
1559
1560sub ACQUIRE {
1561    my $self = shift;
1562    my $ptr = tied(%$self);
1563    $OWNER{$ptr} = 1;
1564}
1565
1566
1567############# Class : RNA::ElemProbVector ##############
1568
1569package RNA::ElemProbVector;
1570use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1571@ISA = qw( RNA );
1572%OWNER = ();
1573%ITERATORS = ();
1574sub new {
1575    my $pkg = shift;
1576    my $self = RNAc::new_ElemProbVector(@_);
1577    bless $self, $pkg if defined($self);
1578}
1579
1580*size = *RNAc::ElemProbVector_size;
1581*empty = *RNAc::ElemProbVector_empty;
1582*clear = *RNAc::ElemProbVector_clear;
1583*push = *RNAc::ElemProbVector_push;
1584*pop = *RNAc::ElemProbVector_pop;
1585*get = *RNAc::ElemProbVector_get;
1586*set = *RNAc::ElemProbVector_set;
1587sub DESTROY {
1588    return unless $_[0]->isa('HASH');
1589    my $self = tied(%{$_[0]});
1590    return unless defined $self;
1591    delete $ITERATORS{$self};
1592    if (exists $OWNER{$self}) {
1593        RNAc::delete_ElemProbVector($self);
1594        delete $OWNER{$self};
1595    }
1596}
1597
1598sub DISOWN {
1599    my $self = shift;
1600    my $ptr = tied(%$self);
1601    delete $OWNER{$ptr};
1602}
1603
1604sub ACQUIRE {
1605    my $self = shift;
1606    my $ptr = tied(%$self);
1607    $OWNER{$ptr} = 1;
1608}
1609
1610
1611############# Class : RNA::PathVector ##############
1612
1613package RNA::PathVector;
1614use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1615@ISA = qw( RNA );
1616%OWNER = ();
1617%ITERATORS = ();
1618sub new {
1619    my $pkg = shift;
1620    my $self = RNAc::new_PathVector(@_);
1621    bless $self, $pkg if defined($self);
1622}
1623
1624*size = *RNAc::PathVector_size;
1625*empty = *RNAc::PathVector_empty;
1626*clear = *RNAc::PathVector_clear;
1627*push = *RNAc::PathVector_push;
1628*pop = *RNAc::PathVector_pop;
1629*get = *RNAc::PathVector_get;
1630*set = *RNAc::PathVector_set;
1631sub DESTROY {
1632    return unless $_[0]->isa('HASH');
1633    my $self = tied(%{$_[0]});
1634    return unless defined $self;
1635    delete $ITERATORS{$self};
1636    if (exists $OWNER{$self}) {
1637        RNAc::delete_PathVector($self);
1638        delete $OWNER{$self};
1639    }
1640}
1641
1642sub DISOWN {
1643    my $self = shift;
1644    my $ptr = tied(%$self);
1645    delete $OWNER{$ptr};
1646}
1647
1648sub ACQUIRE {
1649    my $self = shift;
1650    my $ptr = tied(%$self);
1651    $OWNER{$ptr} = 1;
1652}
1653
1654
1655############# Class : RNA::MoveVector ##############
1656
1657package RNA::MoveVector;
1658use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1659@ISA = qw( RNA );
1660%OWNER = ();
1661%ITERATORS = ();
1662sub new {
1663    my $pkg = shift;
1664    my $self = RNAc::new_MoveVector(@_);
1665    bless $self, $pkg if defined($self);
1666}
1667
1668*size = *RNAc::MoveVector_size;
1669*empty = *RNAc::MoveVector_empty;
1670*clear = *RNAc::MoveVector_clear;
1671*push = *RNAc::MoveVector_push;
1672*pop = *RNAc::MoveVector_pop;
1673*get = *RNAc::MoveVector_get;
1674*set = *RNAc::MoveVector_set;
1675sub DESTROY {
1676    return unless $_[0]->isa('HASH');
1677    my $self = tied(%{$_[0]});
1678    return unless defined $self;
1679    delete $ITERATORS{$self};
1680    if (exists $OWNER{$self}) {
1681        RNAc::delete_MoveVector($self);
1682        delete $OWNER{$self};
1683    }
1684}
1685
1686sub DISOWN {
1687    my $self = shift;
1688    my $ptr = tied(%$self);
1689    delete $OWNER{$ptr};
1690}
1691
1692sub ACQUIRE {
1693    my $self = shift;
1694    my $ptr = tied(%$self);
1695    $OWNER{$ptr} = 1;
1696}
1697
1698
1699############# Class : RNA::param ##############
1700
1701package RNA::param;
1702use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1703@ISA = qw( RNA );
1704%OWNER = ();
1705%ITERATORS = ();
1706*swig_id_get = *RNAc::param_id_get;
1707*swig_id_set = *RNAc::param_id_set;
1708*swig_stack_get = *RNAc::param_stack_get;
1709*swig_stack_set = *RNAc::param_stack_set;
1710*swig_hairpin_get = *RNAc::param_hairpin_get;
1711*swig_hairpin_set = *RNAc::param_hairpin_set;
1712*swig_bulge_get = *RNAc::param_bulge_get;
1713*swig_bulge_set = *RNAc::param_bulge_set;
1714*swig_internal_loop_get = *RNAc::param_internal_loop_get;
1715*swig_internal_loop_set = *RNAc::param_internal_loop_set;
1716*swig_mismatchExt_get = *RNAc::param_mismatchExt_get;
1717*swig_mismatchExt_set = *RNAc::param_mismatchExt_set;
1718*swig_mismatchI_get = *RNAc::param_mismatchI_get;
1719*swig_mismatchI_set = *RNAc::param_mismatchI_set;
1720*swig_mismatch1nI_get = *RNAc::param_mismatch1nI_get;
1721*swig_mismatch1nI_set = *RNAc::param_mismatch1nI_set;
1722*swig_mismatch23I_get = *RNAc::param_mismatch23I_get;
1723*swig_mismatch23I_set = *RNAc::param_mismatch23I_set;
1724*swig_mismatchH_get = *RNAc::param_mismatchH_get;
1725*swig_mismatchH_set = *RNAc::param_mismatchH_set;
1726*swig_mismatchM_get = *RNAc::param_mismatchM_get;
1727*swig_mismatchM_set = *RNAc::param_mismatchM_set;
1728*swig_dangle5_get = *RNAc::param_dangle5_get;
1729*swig_dangle5_set = *RNAc::param_dangle5_set;
1730*swig_dangle3_get = *RNAc::param_dangle3_get;
1731*swig_dangle3_set = *RNAc::param_dangle3_set;
1732*swig_int11_get = *RNAc::param_int11_get;
1733*swig_int11_set = *RNAc::param_int11_set;
1734*swig_int21_get = *RNAc::param_int21_get;
1735*swig_int21_set = *RNAc::param_int21_set;
1736*swig_int22_get = *RNAc::param_int22_get;
1737*swig_int22_set = *RNAc::param_int22_set;
1738*swig_ninio_get = *RNAc::param_ninio_get;
1739*swig_ninio_set = *RNAc::param_ninio_set;
1740*swig_lxc_get = *RNAc::param_lxc_get;
1741*swig_lxc_set = *RNAc::param_lxc_set;
1742*swig_MLbase_get = *RNAc::param_MLbase_get;
1743*swig_MLbase_set = *RNAc::param_MLbase_set;
1744*swig_MLintern_get = *RNAc::param_MLintern_get;
1745*swig_MLintern_set = *RNAc::param_MLintern_set;
1746*swig_MLclosing_get = *RNAc::param_MLclosing_get;
1747*swig_MLclosing_set = *RNAc::param_MLclosing_set;
1748*swig_TerminalAU_get = *RNAc::param_TerminalAU_get;
1749*swig_TerminalAU_set = *RNAc::param_TerminalAU_set;
1750*swig_DuplexInit_get = *RNAc::param_DuplexInit_get;
1751*swig_DuplexInit_set = *RNAc::param_DuplexInit_set;
1752*swig_Tetraloop_E_get = *RNAc::param_Tetraloop_E_get;
1753*swig_Tetraloop_E_set = *RNAc::param_Tetraloop_E_set;
1754*swig_Tetraloops_get = *RNAc::param_Tetraloops_get;
1755*swig_Tetraloops_set = *RNAc::param_Tetraloops_set;
1756*swig_Triloop_E_get = *RNAc::param_Triloop_E_get;
1757*swig_Triloop_E_set = *RNAc::param_Triloop_E_set;
1758*swig_Triloops_get = *RNAc::param_Triloops_get;
1759*swig_Triloops_set = *RNAc::param_Triloops_set;
1760*swig_Hexaloop_E_get = *RNAc::param_Hexaloop_E_get;
1761*swig_Hexaloop_E_set = *RNAc::param_Hexaloop_E_set;
1762*swig_Hexaloops_get = *RNAc::param_Hexaloops_get;
1763*swig_Hexaloops_set = *RNAc::param_Hexaloops_set;
1764*swig_TripleC_get = *RNAc::param_TripleC_get;
1765*swig_TripleC_set = *RNAc::param_TripleC_set;
1766*swig_MultipleCA_get = *RNAc::param_MultipleCA_get;
1767*swig_MultipleCA_set = *RNAc::param_MultipleCA_set;
1768*swig_MultipleCB_get = *RNAc::param_MultipleCB_get;
1769*swig_MultipleCB_set = *RNAc::param_MultipleCB_set;
1770*swig_gquad_get = *RNAc::param_gquad_get;
1771*swig_gquad_set = *RNAc::param_gquad_set;
1772*swig_gquadLayerMismatch_get = *RNAc::param_gquadLayerMismatch_get;
1773*swig_gquadLayerMismatch_set = *RNAc::param_gquadLayerMismatch_set;
1774*swig_gquadLayerMismatchMax_get = *RNAc::param_gquadLayerMismatchMax_get;
1775*swig_gquadLayerMismatchMax_set = *RNAc::param_gquadLayerMismatchMax_set;
1776*swig_temperature_get = *RNAc::param_temperature_get;
1777*swig_temperature_set = *RNAc::param_temperature_set;
1778*swig_model_details_get = *RNAc::param_model_details_get;
1779*swig_model_details_set = *RNAc::param_model_details_set;
1780*swig_param_file_get = *RNAc::param_param_file_get;
1781*swig_param_file_set = *RNAc::param_param_file_set;
1782sub new {
1783    my $pkg = shift;
1784    my $self = RNAc::new_param(@_);
1785    bless $self, $pkg if defined($self);
1786}
1787
1788sub DESTROY {
1789    return unless $_[0]->isa('HASH');
1790    my $self = tied(%{$_[0]});
1791    return unless defined $self;
1792    delete $ITERATORS{$self};
1793    if (exists $OWNER{$self}) {
1794        RNAc::delete_param($self);
1795        delete $OWNER{$self};
1796    }
1797}
1798
1799sub DISOWN {
1800    my $self = shift;
1801    my $ptr = tied(%$self);
1802    delete $OWNER{$ptr};
1803}
1804
1805sub ACQUIRE {
1806    my $self = shift;
1807    my $ptr = tied(%$self);
1808    $OWNER{$ptr} = 1;
1809}
1810
1811
1812############# Class : RNA::exp_param ##############
1813
1814package RNA::exp_param;
1815use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1816@ISA = qw( RNA );
1817%OWNER = ();
1818%ITERATORS = ();
1819*swig_id_get = *RNAc::exp_param_id_get;
1820*swig_id_set = *RNAc::exp_param_id_set;
1821*swig_expstack_get = *RNAc::exp_param_expstack_get;
1822*swig_expstack_set = *RNAc::exp_param_expstack_set;
1823*swig_exphairpin_get = *RNAc::exp_param_exphairpin_get;
1824*swig_exphairpin_set = *RNAc::exp_param_exphairpin_set;
1825*swig_expbulge_get = *RNAc::exp_param_expbulge_get;
1826*swig_expbulge_set = *RNAc::exp_param_expbulge_set;
1827*swig_expinternal_get = *RNAc::exp_param_expinternal_get;
1828*swig_expinternal_set = *RNAc::exp_param_expinternal_set;
1829*swig_expmismatchExt_get = *RNAc::exp_param_expmismatchExt_get;
1830*swig_expmismatchExt_set = *RNAc::exp_param_expmismatchExt_set;
1831*swig_expmismatchI_get = *RNAc::exp_param_expmismatchI_get;
1832*swig_expmismatchI_set = *RNAc::exp_param_expmismatchI_set;
1833*swig_expmismatch23I_get = *RNAc::exp_param_expmismatch23I_get;
1834*swig_expmismatch23I_set = *RNAc::exp_param_expmismatch23I_set;
1835*swig_expmismatch1nI_get = *RNAc::exp_param_expmismatch1nI_get;
1836*swig_expmismatch1nI_set = *RNAc::exp_param_expmismatch1nI_set;
1837*swig_expmismatchH_get = *RNAc::exp_param_expmismatchH_get;
1838*swig_expmismatchH_set = *RNAc::exp_param_expmismatchH_set;
1839*swig_expmismatchM_get = *RNAc::exp_param_expmismatchM_get;
1840*swig_expmismatchM_set = *RNAc::exp_param_expmismatchM_set;
1841*swig_expdangle5_get = *RNAc::exp_param_expdangle5_get;
1842*swig_expdangle5_set = *RNAc::exp_param_expdangle5_set;
1843*swig_expdangle3_get = *RNAc::exp_param_expdangle3_get;
1844*swig_expdangle3_set = *RNAc::exp_param_expdangle3_set;
1845*swig_expint11_get = *RNAc::exp_param_expint11_get;
1846*swig_expint11_set = *RNAc::exp_param_expint11_set;
1847*swig_expint21_get = *RNAc::exp_param_expint21_get;
1848*swig_expint21_set = *RNAc::exp_param_expint21_set;
1849*swig_expint22_get = *RNAc::exp_param_expint22_get;
1850*swig_expint22_set = *RNAc::exp_param_expint22_set;
1851*swig_expninio_get = *RNAc::exp_param_expninio_get;
1852*swig_expninio_set = *RNAc::exp_param_expninio_set;
1853*swig_lxc_get = *RNAc::exp_param_lxc_get;
1854*swig_lxc_set = *RNAc::exp_param_lxc_set;
1855*swig_expMLbase_get = *RNAc::exp_param_expMLbase_get;
1856*swig_expMLbase_set = *RNAc::exp_param_expMLbase_set;
1857*swig_expMLintern_get = *RNAc::exp_param_expMLintern_get;
1858*swig_expMLintern_set = *RNAc::exp_param_expMLintern_set;
1859*swig_expMLclosing_get = *RNAc::exp_param_expMLclosing_get;
1860*swig_expMLclosing_set = *RNAc::exp_param_expMLclosing_set;
1861*swig_expTermAU_get = *RNAc::exp_param_expTermAU_get;
1862*swig_expTermAU_set = *RNAc::exp_param_expTermAU_set;
1863*swig_expDuplexInit_get = *RNAc::exp_param_expDuplexInit_get;
1864*swig_expDuplexInit_set = *RNAc::exp_param_expDuplexInit_set;
1865*swig_exptetra_get = *RNAc::exp_param_exptetra_get;
1866*swig_exptetra_set = *RNAc::exp_param_exptetra_set;
1867*swig_exptri_get = *RNAc::exp_param_exptri_get;
1868*swig_exptri_set = *RNAc::exp_param_exptri_set;
1869*swig_exphex_get = *RNAc::exp_param_exphex_get;
1870*swig_exphex_set = *RNAc::exp_param_exphex_set;
1871*swig_Tetraloops_get = *RNAc::exp_param_Tetraloops_get;
1872*swig_Tetraloops_set = *RNAc::exp_param_Tetraloops_set;
1873*swig_expTriloop_get = *RNAc::exp_param_expTriloop_get;
1874*swig_expTriloop_set = *RNAc::exp_param_expTriloop_set;
1875*swig_Triloops_get = *RNAc::exp_param_Triloops_get;
1876*swig_Triloops_set = *RNAc::exp_param_Triloops_set;
1877*swig_Hexaloops_get = *RNAc::exp_param_Hexaloops_get;
1878*swig_Hexaloops_set = *RNAc::exp_param_Hexaloops_set;
1879*swig_expTripleC_get = *RNAc::exp_param_expTripleC_get;
1880*swig_expTripleC_set = *RNAc::exp_param_expTripleC_set;
1881*swig_expMultipleCA_get = *RNAc::exp_param_expMultipleCA_get;
1882*swig_expMultipleCA_set = *RNAc::exp_param_expMultipleCA_set;
1883*swig_expMultipleCB_get = *RNAc::exp_param_expMultipleCB_get;
1884*swig_expMultipleCB_set = *RNAc::exp_param_expMultipleCB_set;
1885*swig_expgquad_get = *RNAc::exp_param_expgquad_get;
1886*swig_expgquad_set = *RNAc::exp_param_expgquad_set;
1887*swig_expgquadLayerMismatch_get = *RNAc::exp_param_expgquadLayerMismatch_get;
1888*swig_expgquadLayerMismatch_set = *RNAc::exp_param_expgquadLayerMismatch_set;
1889*swig_gquadLayerMismatchMax_get = *RNAc::exp_param_gquadLayerMismatchMax_get;
1890*swig_gquadLayerMismatchMax_set = *RNAc::exp_param_gquadLayerMismatchMax_set;
1891*swig_kT_get = *RNAc::exp_param_kT_get;
1892*swig_kT_set = *RNAc::exp_param_kT_set;
1893*swig_pf_scale_get = *RNAc::exp_param_pf_scale_get;
1894*swig_pf_scale_set = *RNAc::exp_param_pf_scale_set;
1895*swig_temperature_get = *RNAc::exp_param_temperature_get;
1896*swig_temperature_set = *RNAc::exp_param_temperature_set;
1897*swig_alpha_get = *RNAc::exp_param_alpha_get;
1898*swig_alpha_set = *RNAc::exp_param_alpha_set;
1899*swig_model_details_get = *RNAc::exp_param_model_details_get;
1900*swig_model_details_set = *RNAc::exp_param_model_details_set;
1901*swig_param_file_get = *RNAc::exp_param_param_file_get;
1902*swig_param_file_set = *RNAc::exp_param_param_file_set;
1903sub new {
1904    my $pkg = shift;
1905    my $self = RNAc::new_exp_param(@_);
1906    bless $self, $pkg if defined($self);
1907}
1908
1909sub DESTROY {
1910    return unless $_[0]->isa('HASH');
1911    my $self = tied(%{$_[0]});
1912    return unless defined $self;
1913    delete $ITERATORS{$self};
1914    if (exists $OWNER{$self}) {
1915        RNAc::delete_exp_param($self);
1916        delete $OWNER{$self};
1917    }
1918}
1919
1920sub DISOWN {
1921    my $self = shift;
1922    my $ptr = tied(%$self);
1923    delete $OWNER{$ptr};
1924}
1925
1926sub ACQUIRE {
1927    my $self = shift;
1928    my $ptr = tied(%$self);
1929    $OWNER{$ptr} = 1;
1930}
1931
1932
1933############# Class : RNA::md ##############
1934
1935package RNA::md;
1936use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
1937@ISA = qw( RNA );
1938%OWNER = ();
1939%ITERATORS = ();
1940*swig_temperature_get = *RNAc::md_temperature_get;
1941*swig_temperature_set = *RNAc::md_temperature_set;
1942*swig_betaScale_get = *RNAc::md_betaScale_get;
1943*swig_betaScale_set = *RNAc::md_betaScale_set;
1944*swig_pf_smooth_get = *RNAc::md_pf_smooth_get;
1945*swig_pf_smooth_set = *RNAc::md_pf_smooth_set;
1946*swig_dangles_get = *RNAc::md_dangles_get;
1947*swig_dangles_set = *RNAc::md_dangles_set;
1948*swig_special_hp_get = *RNAc::md_special_hp_get;
1949*swig_special_hp_set = *RNAc::md_special_hp_set;
1950*swig_noLP_get = *RNAc::md_noLP_get;
1951*swig_noLP_set = *RNAc::md_noLP_set;
1952*swig_noGU_get = *RNAc::md_noGU_get;
1953*swig_noGU_set = *RNAc::md_noGU_set;
1954*swig_noGUclosure_get = *RNAc::md_noGUclosure_get;
1955*swig_noGUclosure_set = *RNAc::md_noGUclosure_set;
1956*swig_logML_get = *RNAc::md_logML_get;
1957*swig_logML_set = *RNAc::md_logML_set;
1958*swig_circ_get = *RNAc::md_circ_get;
1959*swig_circ_set = *RNAc::md_circ_set;
1960*swig_gquad_get = *RNAc::md_gquad_get;
1961*swig_gquad_set = *RNAc::md_gquad_set;
1962*swig_uniq_ML_get = *RNAc::md_uniq_ML_get;
1963*swig_uniq_ML_set = *RNAc::md_uniq_ML_set;
1964*swig_energy_set_get = *RNAc::md_energy_set_get;
1965*swig_energy_set_set = *RNAc::md_energy_set_set;
1966*swig_backtrack_get = *RNAc::md_backtrack_get;
1967*swig_backtrack_set = *RNAc::md_backtrack_set;
1968*swig_backtrack_type_get = *RNAc::md_backtrack_type_get;
1969*swig_backtrack_type_set = *RNAc::md_backtrack_type_set;
1970*swig_compute_bpp_get = *RNAc::md_compute_bpp_get;
1971*swig_compute_bpp_set = *RNAc::md_compute_bpp_set;
1972*swig_nonstandards_get = *RNAc::md_nonstandards_get;
1973*swig_nonstandards_set = *RNAc::md_nonstandards_set;
1974*swig_max_bp_span_get = *RNAc::md_max_bp_span_get;
1975*swig_max_bp_span_set = *RNAc::md_max_bp_span_set;
1976*swig_min_loop_size_get = *RNAc::md_min_loop_size_get;
1977*swig_min_loop_size_set = *RNAc::md_min_loop_size_set;
1978*swig_window_size_get = *RNAc::md_window_size_get;
1979*swig_window_size_set = *RNAc::md_window_size_set;
1980*swig_oldAliEn_get = *RNAc::md_oldAliEn_get;
1981*swig_oldAliEn_set = *RNAc::md_oldAliEn_set;
1982*swig_ribo_get = *RNAc::md_ribo_get;
1983*swig_ribo_set = *RNAc::md_ribo_set;
1984*swig_cv_fact_get = *RNAc::md_cv_fact_get;
1985*swig_cv_fact_set = *RNAc::md_cv_fact_set;
1986*swig_nc_fact_get = *RNAc::md_nc_fact_get;
1987*swig_nc_fact_set = *RNAc::md_nc_fact_set;
1988*swig_sfact_get = *RNAc::md_sfact_get;
1989*swig_sfact_set = *RNAc::md_sfact_set;
1990*swig_rtype_get = *RNAc::md_rtype_get;
1991*swig_rtype_set = *RNAc::md_rtype_set;
1992*swig_alias_get = *RNAc::md_alias_get;
1993*swig_alias_set = *RNAc::md_alias_set;
1994*swig_pair_get = *RNAc::md_pair_get;
1995*swig_pair_set = *RNAc::md_pair_set;
1996sub new {
1997    my $pkg = shift;
1998    my $self = RNAc::new_md(@_);
1999    bless $self, $pkg if defined($self);
2000}
2001
2002sub DESTROY {
2003    return unless $_[0]->isa('HASH');
2004    my $self = tied(%{$_[0]});
2005    return unless defined $self;
2006    delete $ITERATORS{$self};
2007    if (exists $OWNER{$self}) {
2008        RNAc::delete_md($self);
2009        delete $OWNER{$self};
2010    }
2011}
2012
2013*reset = *RNAc::md_reset;
2014*set_from_globals = *RNAc::md_set_from_globals;
2015*option_string = *RNAc::md_option_string;
2016sub DISOWN {
2017    my $self = shift;
2018    my $ptr = tied(%$self);
2019    delete $OWNER{$ptr};
2020}
2021
2022sub ACQUIRE {
2023    my $self = shift;
2024    my $ptr = tied(%$self);
2025    $OWNER{$ptr} = 1;
2026}
2027
2028
2029############# Class : RNA::ep ##############
2030
2031package RNA::ep;
2032use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2033@ISA = qw( RNA );
2034%OWNER = ();
2035%ITERATORS = ();
2036*swig_i_get = *RNAc::ep_i_get;
2037*swig_i_set = *RNAc::ep_i_set;
2038*swig_j_get = *RNAc::ep_j_get;
2039*swig_j_set = *RNAc::ep_j_set;
2040*swig_p_get = *RNAc::ep_p_get;
2041*swig_p_set = *RNAc::ep_p_set;
2042*swig_type_get = *RNAc::ep_type_get;
2043*swig_type_set = *RNAc::ep_type_set;
2044sub new {
2045    my $pkg = shift;
2046    my $self = RNAc::new_ep(@_);
2047    bless $self, $pkg if defined($self);
2048}
2049
2050sub DESTROY {
2051    return unless $_[0]->isa('HASH');
2052    my $self = tied(%{$_[0]});
2053    return unless defined $self;
2054    delete $ITERATORS{$self};
2055    if (exists $OWNER{$self}) {
2056        RNAc::delete_ep($self);
2057        delete $OWNER{$self};
2058    }
2059}
2060
2061sub DISOWN {
2062    my $self = shift;
2063    my $ptr = tied(%$self);
2064    delete $OWNER{$ptr};
2065}
2066
2067sub ACQUIRE {
2068    my $self = shift;
2069    my $ptr = tied(%$self);
2070    $OWNER{$ptr} = 1;
2071}
2072
2073
2074############# Class : RNA::struct_en ##############
2075
2076package RNA::struct_en;
2077use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2078@ISA = qw( RNA );
2079%OWNER = ();
2080%ITERATORS = ();
2081*swig_energy_get = *RNAc::struct_en_energy_get;
2082*swig_energy_set = *RNAc::struct_en_energy_set;
2083*swig_structure_get = *RNAc::struct_en_structure_get;
2084*swig_structure_set = *RNAc::struct_en_structure_set;
2085sub new {
2086    my $pkg = shift;
2087    my $self = RNAc::new_struct_en(@_);
2088    bless $self, $pkg if defined($self);
2089}
2090
2091sub DESTROY {
2092    return unless $_[0]->isa('HASH');
2093    my $self = tied(%{$_[0]});
2094    return unless defined $self;
2095    delete $ITERATORS{$self};
2096    if (exists $OWNER{$self}) {
2097        RNAc::delete_struct_en($self);
2098        delete $OWNER{$self};
2099    }
2100}
2101
2102sub DISOWN {
2103    my $self = shift;
2104    my $ptr = tied(%$self);
2105    delete $OWNER{$ptr};
2106}
2107
2108sub ACQUIRE {
2109    my $self = shift;
2110    my $ptr = tied(%$self);
2111    $OWNER{$ptr} = 1;
2112}
2113
2114
2115############# Class : RNA::COORDINATE ##############
2116
2117package RNA::COORDINATE;
2118use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2119@ISA = qw( RNA );
2120%OWNER = ();
2121%ITERATORS = ();
2122*get = *RNAc::COORDINATE_get;
2123*swig_X_get = *RNAc::COORDINATE_X_get;
2124*swig_X_set = *RNAc::COORDINATE_X_set;
2125*swig_Y_get = *RNAc::COORDINATE_Y_get;
2126*swig_Y_set = *RNAc::COORDINATE_Y_set;
2127sub new {
2128    my $pkg = shift;
2129    my $self = RNAc::new_COORDINATE(@_);
2130    bless $self, $pkg if defined($self);
2131}
2132
2133sub DESTROY {
2134    return unless $_[0]->isa('HASH');
2135    my $self = tied(%{$_[0]});
2136    return unless defined $self;
2137    delete $ITERATORS{$self};
2138    if (exists $OWNER{$self}) {
2139        RNAc::delete_COORDINATE($self);
2140        delete $OWNER{$self};
2141    }
2142}
2143
2144sub DISOWN {
2145    my $self = shift;
2146    my $ptr = tied(%$self);
2147    delete $OWNER{$ptr};
2148}
2149
2150sub ACQUIRE {
2151    my $self = shift;
2152    my $ptr = tied(%$self);
2153    $OWNER{$ptr} = 1;
2154}
2155
2156
2157############# Class : RNA::pbacktrack_mem ##############
2158
2159package RNA::pbacktrack_mem;
2160use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2161@ISA = qw( RNA );
2162%OWNER = ();
2163%ITERATORS = ();
2164sub new {
2165    my $pkg = shift;
2166    my $self = RNAc::new_pbacktrack_mem(@_);
2167    bless $self, $pkg if defined($self);
2168}
2169
2170sub DESTROY {
2171    return unless $_[0]->isa('HASH');
2172    my $self = tied(%{$_[0]});
2173    return unless defined $self;
2174    delete $ITERATORS{$self};
2175    if (exists $OWNER{$self}) {
2176        RNAc::delete_pbacktrack_mem($self);
2177        delete $OWNER{$self};
2178    }
2179}
2180
2181sub DISOWN {
2182    my $self = shift;
2183    my $ptr = tied(%$self);
2184    delete $OWNER{$ptr};
2185}
2186
2187sub ACQUIRE {
2188    my $self = shift;
2189    my $ptr = tied(%$self);
2190    $OWNER{$ptr} = 1;
2191}
2192
2193
2194############# Class : RNA::SOLUTION ##############
2195
2196package RNA::SOLUTION;
2197use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2198@ISA = qw( RNA );
2199%OWNER = ();
2200%ITERATORS = ();
2201*swig_energy_get = *RNAc::SOLUTION_energy_get;
2202*swig_energy_set = *RNAc::SOLUTION_energy_set;
2203*swig_structure_get = *RNAc::SOLUTION_structure_get;
2204*swig_structure_set = *RNAc::SOLUTION_structure_set;
2205*get = *RNAc::SOLUTION_get;
2206*size = *RNAc::SOLUTION_size;
2207sub DESTROY {
2208    return unless $_[0]->isa('HASH');
2209    my $self = tied(%{$_[0]});
2210    return unless defined $self;
2211    delete $ITERATORS{$self};
2212    if (exists $OWNER{$self}) {
2213        RNAc::delete_SOLUTION($self);
2214        delete $OWNER{$self};
2215    }
2216}
2217
2218sub new {
2219    my $pkg = shift;
2220    my $self = RNAc::new_SOLUTION(@_);
2221    bless $self, $pkg if defined($self);
2222}
2223
2224sub DISOWN {
2225    my $self = shift;
2226    my $ptr = tied(%$self);
2227    delete $OWNER{$ptr};
2228}
2229
2230sub ACQUIRE {
2231    my $self = shift;
2232    my $ptr = tied(%$self);
2233    $OWNER{$ptr} = 1;
2234}
2235
2236
2237############# Class : RNA::subopt_solution ##############
2238
2239package RNA::subopt_solution;
2240use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2241@ISA = qw( RNA );
2242%OWNER = ();
2243%ITERATORS = ();
2244*swig_energy_get = *RNAc::subopt_solution_energy_get;
2245*swig_energy_set = *RNAc::subopt_solution_energy_set;
2246*swig_structure_get = *RNAc::subopt_solution_structure_get;
2247*swig_structure_set = *RNAc::subopt_solution_structure_set;
2248sub DESTROY {
2249    return unless $_[0]->isa('HASH');
2250    my $self = tied(%{$_[0]});
2251    return unless defined $self;
2252    delete $ITERATORS{$self};
2253    if (exists $OWNER{$self}) {
2254        RNAc::delete_subopt_solution($self);
2255        delete $OWNER{$self};
2256    }
2257}
2258
2259sub new {
2260    my $pkg = shift;
2261    my $self = RNAc::new_subopt_solution(@_);
2262    bless $self, $pkg if defined($self);
2263}
2264
2265sub DISOWN {
2266    my $self = shift;
2267    my $ptr = tied(%$self);
2268    delete $OWNER{$ptr};
2269}
2270
2271sub ACQUIRE {
2272    my $self = shift;
2273    my $ptr = tied(%$self);
2274    $OWNER{$ptr} = 1;
2275}
2276
2277
2278############# Class : RNA::SuboptVector ##############
2279
2280package RNA::SuboptVector;
2281use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2282@ISA = qw( RNA );
2283%OWNER = ();
2284%ITERATORS = ();
2285sub new {
2286    my $pkg = shift;
2287    my $self = RNAc::new_SuboptVector(@_);
2288    bless $self, $pkg if defined($self);
2289}
2290
2291*size = *RNAc::SuboptVector_size;
2292*empty = *RNAc::SuboptVector_empty;
2293*clear = *RNAc::SuboptVector_clear;
2294*push = *RNAc::SuboptVector_push;
2295*pop = *RNAc::SuboptVector_pop;
2296*get = *RNAc::SuboptVector_get;
2297*set = *RNAc::SuboptVector_set;
2298sub DESTROY {
2299    return unless $_[0]->isa('HASH');
2300    my $self = tied(%{$_[0]});
2301    return unless defined $self;
2302    delete $ITERATORS{$self};
2303    if (exists $OWNER{$self}) {
2304        RNAc::delete_SuboptVector($self);
2305        delete $OWNER{$self};
2306    }
2307}
2308
2309sub DISOWN {
2310    my $self = shift;
2311    my $ptr = tied(%$self);
2312    delete $OWNER{$ptr};
2313}
2314
2315sub ACQUIRE {
2316    my $self = shift;
2317    my $ptr = tied(%$self);
2318    $OWNER{$ptr} = 1;
2319}
2320
2321
2322############# Class : RNA::cmd ##############
2323
2324package RNA::cmd;
2325use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2326@ISA = qw( RNA );
2327%OWNER = ();
2328%ITERATORS = ();
2329sub new {
2330    my $pkg = shift;
2331    my $self = RNAc::new_cmd(@_);
2332    bless $self, $pkg if defined($self);
2333}
2334
2335sub DESTROY {
2336    return unless $_[0]->isa('HASH');
2337    my $self = tied(%{$_[0]});
2338    return unless defined $self;
2339    delete $ITERATORS{$self};
2340    if (exists $OWNER{$self}) {
2341        RNAc::delete_cmd($self);
2342        delete $OWNER{$self};
2343    }
2344}
2345
2346sub DISOWN {
2347    my $self = shift;
2348    my $ptr = tied(%$self);
2349    delete $OWNER{$ptr};
2350}
2351
2352sub ACQUIRE {
2353    my $self = shift;
2354    my $ptr = tied(%$self);
2355    $OWNER{$ptr} = 1;
2356}
2357
2358
2359############# Class : RNA::duplexT ##############
2360
2361package RNA::duplexT;
2362use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2363@ISA = qw( RNA );
2364%OWNER = ();
2365%ITERATORS = ();
2366*swig_i_get = *RNAc::duplexT_i_get;
2367*swig_i_set = *RNAc::duplexT_i_set;
2368*swig_j_get = *RNAc::duplexT_j_get;
2369*swig_j_set = *RNAc::duplexT_j_set;
2370*swig_structure_get = *RNAc::duplexT_structure_get;
2371*swig_structure_set = *RNAc::duplexT_structure_set;
2372*swig_energy_get = *RNAc::duplexT_energy_get;
2373*swig_energy_set = *RNAc::duplexT_energy_set;
2374sub DESTROY {
2375    return unless $_[0]->isa('HASH');
2376    my $self = tied(%{$_[0]});
2377    return unless defined $self;
2378    delete $ITERATORS{$self};
2379    if (exists $OWNER{$self}) {
2380        RNAc::delete_duplexT($self);
2381        delete $OWNER{$self};
2382    }
2383}
2384
2385sub DISOWN {
2386    my $self = shift;
2387    my $ptr = tied(%$self);
2388    delete $OWNER{$ptr};
2389}
2390
2391sub ACQUIRE {
2392    my $self = shift;
2393    my $ptr = tied(%$self);
2394    $OWNER{$ptr} = 1;
2395}
2396
2397
2398############# Class : RNA::duplex_list_t ##############
2399
2400package RNA::duplex_list_t;
2401use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2402@ISA = qw( RNA );
2403%OWNER = ();
2404%ITERATORS = ();
2405*swig_i_get = *RNAc::duplex_list_t_i_get;
2406*swig_i_set = *RNAc::duplex_list_t_i_set;
2407*swig_j_get = *RNAc::duplex_list_t_j_get;
2408*swig_j_set = *RNAc::duplex_list_t_j_set;
2409*swig_energy_get = *RNAc::duplex_list_t_energy_get;
2410*swig_energy_set = *RNAc::duplex_list_t_energy_set;
2411*swig_structure_get = *RNAc::duplex_list_t_structure_get;
2412*swig_structure_set = *RNAc::duplex_list_t_structure_set;
2413sub DESTROY {
2414    return unless $_[0]->isa('HASH');
2415    my $self = tied(%{$_[0]});
2416    return unless defined $self;
2417    delete $ITERATORS{$self};
2418    if (exists $OWNER{$self}) {
2419        RNAc::delete_duplex_list_t($self);
2420        delete $OWNER{$self};
2421    }
2422}
2423
2424sub new {
2425    my $pkg = shift;
2426    my $self = RNAc::new_duplex_list_t(@_);
2427    bless $self, $pkg if defined($self);
2428}
2429
2430sub DISOWN {
2431    my $self = shift;
2432    my $ptr = tied(%$self);
2433    delete $OWNER{$ptr};
2434}
2435
2436sub ACQUIRE {
2437    my $self = shift;
2438    my $ptr = tied(%$self);
2439    $OWNER{$ptr} = 1;
2440}
2441
2442
2443############# Class : RNA::DuplexVector ##############
2444
2445package RNA::DuplexVector;
2446use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2447@ISA = qw( RNA );
2448%OWNER = ();
2449%ITERATORS = ();
2450sub new {
2451    my $pkg = shift;
2452    my $self = RNAc::new_DuplexVector(@_);
2453    bless $self, $pkg if defined($self);
2454}
2455
2456*size = *RNAc::DuplexVector_size;
2457*empty = *RNAc::DuplexVector_empty;
2458*clear = *RNAc::DuplexVector_clear;
2459*push = *RNAc::DuplexVector_push;
2460*pop = *RNAc::DuplexVector_pop;
2461*get = *RNAc::DuplexVector_get;
2462*set = *RNAc::DuplexVector_set;
2463sub DESTROY {
2464    return unless $_[0]->isa('HASH');
2465    my $self = tied(%{$_[0]});
2466    return unless defined $self;
2467    delete $ITERATORS{$self};
2468    if (exists $OWNER{$self}) {
2469        RNAc::delete_DuplexVector($self);
2470        delete $OWNER{$self};
2471    }
2472}
2473
2474sub DISOWN {
2475    my $self = shift;
2476    my $ptr = tied(%$self);
2477    delete $OWNER{$ptr};
2478}
2479
2480sub ACQUIRE {
2481    my $self = shift;
2482    my $ptr = tied(%$self);
2483    $OWNER{$ptr} = 1;
2484}
2485
2486
2487############# Class : RNA::move ##############
2488
2489package RNA::move;
2490use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2491@ISA = qw( RNA );
2492%OWNER = ();
2493%ITERATORS = ();
2494*swig_pos_5_get = *RNAc::move_pos_5_get;
2495*swig_pos_5_set = *RNAc::move_pos_5_set;
2496*swig_pos_3_get = *RNAc::move_pos_3_get;
2497*swig_pos_3_set = *RNAc::move_pos_3_set;
2498sub new {
2499    my $pkg = shift;
2500    my $self = RNAc::new_move(@_);
2501    bless $self, $pkg if defined($self);
2502}
2503
2504sub DESTROY {
2505    return unless $_[0]->isa('HASH');
2506    my $self = tied(%{$_[0]});
2507    return unless defined $self;
2508    delete $ITERATORS{$self};
2509    if (exists $OWNER{$self}) {
2510        RNAc::delete_move($self);
2511        delete $OWNER{$self};
2512    }
2513}
2514
2515*is_removal = *RNAc::move_is_removal;
2516*is_insertion = *RNAc::move_is_insertion;
2517*is_shift = *RNAc::move_is_shift;
2518*compare = *RNAc::move_compare;
2519sub DISOWN {
2520    my $self = shift;
2521    my $ptr = tied(%$self);
2522    delete $OWNER{$ptr};
2523}
2524
2525sub ACQUIRE {
2526    my $self = shift;
2527    my $ptr = tied(%$self);
2528    $OWNER{$ptr} = 1;
2529}
2530
2531
2532############# Class : RNA::path ##############
2533
2534package RNA::path;
2535use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2536@ISA = qw( RNA );
2537%OWNER = ();
2538%ITERATORS = ();
2539*swig_type_get = *RNAc::path_type_get;
2540*swig_type_set = *RNAc::path_type_set;
2541*swig_en_get = *RNAc::path_en_get;
2542*swig_en_set = *RNAc::path_en_set;
2543*swig_s_get = *RNAc::path_s_get;
2544*swig_s_set = *RNAc::path_s_set;
2545*swig_move_get = *RNAc::path_move_get;
2546*swig_move_set = *RNAc::path_move_set;
2547sub new {
2548    my $pkg = shift;
2549    my $self = RNAc::new_path(@_);
2550    bless $self, $pkg if defined($self);
2551}
2552
2553sub DESTROY {
2554    return unless $_[0]->isa('HASH');
2555    my $self = tied(%{$_[0]});
2556    return unless defined $self;
2557    delete $ITERATORS{$self};
2558    if (exists $OWNER{$self}) {
2559        RNAc::delete_path($self);
2560        delete $OWNER{$self};
2561    }
2562}
2563
2564sub DISOWN {
2565    my $self = shift;
2566    my $ptr = tied(%$self);
2567    delete $OWNER{$ptr};
2568}
2569
2570sub ACQUIRE {
2571    my $self = shift;
2572    my $ptr = tied(%$self);
2573    $OWNER{$ptr} = 1;
2574}
2575
2576
2577############# Class : RNA::path_options ##############
2578
2579package RNA::path_options;
2580use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2581@ISA = qw( RNA );
2582%OWNER = ();
2583%ITERATORS = ();
2584sub new {
2585    my $pkg = shift;
2586    my $self = RNAc::new_path_options(@_);
2587    bless $self, $pkg if defined($self);
2588}
2589
2590sub DESTROY {
2591    return unless $_[0]->isa('HASH');
2592    my $self = tied(%{$_[0]});
2593    return unless defined $self;
2594    delete $ITERATORS{$self};
2595    if (exists $OWNER{$self}) {
2596        RNAc::delete_path_options($self);
2597        delete $OWNER{$self};
2598    }
2599}
2600
2601sub DISOWN {
2602    my $self = shift;
2603    my $ptr = tied(%$self);
2604    delete $OWNER{$ptr};
2605}
2606
2607sub ACQUIRE {
2608    my $self = shift;
2609    my $ptr = tied(%$self);
2610    $OWNER{$ptr} = 1;
2611}
2612
2613
2614############# Class : RNA::heat_capacity_result ##############
2615
2616package RNA::heat_capacity_result;
2617use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2618@ISA = qw( RNA );
2619%OWNER = ();
2620%ITERATORS = ();
2621*swig_temperature_get = *RNAc::heat_capacity_result_temperature_get;
2622*swig_temperature_set = *RNAc::heat_capacity_result_temperature_set;
2623*swig_heat_capacity_get = *RNAc::heat_capacity_result_heat_capacity_get;
2624*swig_heat_capacity_set = *RNAc::heat_capacity_result_heat_capacity_set;
2625sub new {
2626    my $pkg = shift;
2627    my $self = RNAc::new_heat_capacity_result(@_);
2628    bless $self, $pkg if defined($self);
2629}
2630
2631sub DESTROY {
2632    return unless $_[0]->isa('HASH');
2633    my $self = tied(%{$_[0]});
2634    return unless defined $self;
2635    delete $ITERATORS{$self};
2636    if (exists $OWNER{$self}) {
2637        RNAc::delete_heat_capacity_result($self);
2638        delete $OWNER{$self};
2639    }
2640}
2641
2642sub DISOWN {
2643    my $self = shift;
2644    my $ptr = tied(%$self);
2645    delete $OWNER{$ptr};
2646}
2647
2648sub ACQUIRE {
2649    my $self = shift;
2650    my $ptr = tied(%$self);
2651    $OWNER{$ptr} = 1;
2652}
2653
2654
2655############# Class : RNA::HeatCapacityVector ##############
2656
2657package RNA::HeatCapacityVector;
2658use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2659@ISA = qw( RNA );
2660%OWNER = ();
2661%ITERATORS = ();
2662sub new {
2663    my $pkg = shift;
2664    my $self = RNAc::new_HeatCapacityVector(@_);
2665    bless $self, $pkg if defined($self);
2666}
2667
2668*size = *RNAc::HeatCapacityVector_size;
2669*empty = *RNAc::HeatCapacityVector_empty;
2670*clear = *RNAc::HeatCapacityVector_clear;
2671*push = *RNAc::HeatCapacityVector_push;
2672*pop = *RNAc::HeatCapacityVector_pop;
2673*get = *RNAc::HeatCapacityVector_get;
2674*set = *RNAc::HeatCapacityVector_set;
2675sub DESTROY {
2676    return unless $_[0]->isa('HASH');
2677    my $self = tied(%{$_[0]});
2678    return unless defined $self;
2679    delete $ITERATORS{$self};
2680    if (exists $OWNER{$self}) {
2681        RNAc::delete_HeatCapacityVector($self);
2682        delete $OWNER{$self};
2683    }
2684}
2685
2686sub DISOWN {
2687    my $self = shift;
2688    my $ptr = tied(%$self);
2689    delete $OWNER{$ptr};
2690}
2691
2692sub ACQUIRE {
2693    my $self = shift;
2694    my $ptr = tied(%$self);
2695    $OWNER{$ptr} = 1;
2696}
2697
2698
2699############# Class : RNA::basepair ##############
2700
2701package RNA::basepair;
2702use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2703@ISA = qw( RNA );
2704%OWNER = ();
2705%ITERATORS = ();
2706*swig_i_get = *RNAc::basepair_i_get;
2707*swig_i_set = *RNAc::basepair_i_set;
2708*swig_j_get = *RNAc::basepair_j_get;
2709*swig_j_set = *RNAc::basepair_j_set;
2710sub new {
2711    my $pkg = shift;
2712    my $self = RNAc::new_basepair(@_);
2713    bless $self, $pkg if defined($self);
2714}
2715
2716sub DESTROY {
2717    return unless $_[0]->isa('HASH');
2718    my $self = tied(%{$_[0]});
2719    return unless defined $self;
2720    delete $ITERATORS{$self};
2721    if (exists $OWNER{$self}) {
2722        RNAc::delete_basepair($self);
2723        delete $OWNER{$self};
2724    }
2725}
2726
2727sub DISOWN {
2728    my $self = shift;
2729    my $ptr = tied(%$self);
2730    delete $OWNER{$ptr};
2731}
2732
2733sub ACQUIRE {
2734    my $self = shift;
2735    my $ptr = tied(%$self);
2736    $OWNER{$ptr} = 1;
2737}
2738
2739
2740############# Class : RNA::fold_compound ##############
2741
2742package RNA::fold_compound;
2743use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
2744@ISA = qw( RNA );
2745%OWNER = ();
2746%ITERATORS = ();
2747*params_reset = *RNAc::fold_compound_params_reset;
2748*params_subst = *RNAc::fold_compound_params_subst;
2749*exp_params_rescale = *RNAc::fold_compound_exp_params_rescale;
2750*exp_params_reset = *RNAc::fold_compound_exp_params_reset;
2751*exp_params_subst = *RNAc::fold_compound_exp_params_subst;
2752*plist_from_probs = *RNAc::fold_compound_plist_from_probs;
2753*constraints_add = *RNAc::fold_compound_constraints_add;
2754*hc_init = *RNAc::fold_compound_hc_init;
2755*hc_add_up = *RNAc::fold_compound_hc_add_up;
2756*hc_add_bp_nonspecific = *RNAc::fold_compound_hc_add_bp_nonspecific;
2757*hc_add_bp = *RNAc::fold_compound_hc_add_bp;
2758*hc_add_from_db = *RNAc::fold_compound_hc_add_from_db;
2759*sc_remove = *RNAc::fold_compound_sc_remove;
2760*sc_init = *RNAc::fold_compound_sc_init;
2761*sc_add_up = *RNAc::fold_compound_sc_add_up;
2762*sc_add_bp = *RNAc::fold_compound_sc_add_bp;
2763*sc_set_bp = *RNAc::fold_compound_sc_set_bp;
2764*sc_set_up = *RNAc::fold_compound_sc_set_up;
2765*sc_set_stack = *RNAc::fold_compound_sc_set_stack;
2766*sc_add_stack = *RNAc::fold_compound_sc_add_stack;
2767*sc_add_SHAPE_deigan = *RNAc::fold_compound_sc_add_SHAPE_deigan;
2768*sc_add_SHAPE_deigan_ali = *RNAc::fold_compound_sc_add_SHAPE_deigan_ali;
2769*sc_add_SHAPE_zarringhalam = *RNAc::fold_compound_sc_add_SHAPE_zarringhalam;
2770*sc_add_hi_motif = *RNAc::fold_compound_sc_add_hi_motif;
2771*eval_structure = *RNAc::fold_compound_eval_structure;
2772*eval_structure_pt = *RNAc::fold_compound_eval_structure_pt;
2773*eval_structure_verbose = *RNAc::fold_compound_eval_structure_verbose;
2774*eval_structure_pt_verbose = *RNAc::fold_compound_eval_structure_pt_verbose;
2775*eval_covar_structure = *RNAc::fold_compound_eval_covar_structure;
2776*eval_loop_pt = *RNAc::fold_compound_eval_loop_pt;
2777*eval_move = *RNAc::fold_compound_eval_move;
2778*eval_move_pt = *RNAc::fold_compound_eval_move_pt;
2779*E_ext_loop = *RNAc::fold_compound_E_ext_loop;
2780*E_hp_loop = *RNAc::fold_compound_E_hp_loop;
2781*E_ext_hp_loop = *RNAc::fold_compound_E_ext_hp_loop;
2782*eval_ext_hp_loop = *RNAc::fold_compound_eval_ext_hp_loop;
2783*eval_hp_loop = *RNAc::fold_compound_eval_hp_loop;
2784*exp_E_hp_loop = *RNAc::fold_compound_exp_E_hp_loop;
2785*E_int_loop = *RNAc::fold_compound_E_int_loop;
2786*eval_int_loop = *RNAc::fold_compound_eval_int_loop;
2787*E_ext_int_loop = *RNAc::fold_compound_E_ext_int_loop;
2788*E_stack = *RNAc::fold_compound_E_stack;
2789*exp_E_int_loop = *RNAc::fold_compound_exp_E_int_loop;
2790*exp_E_interior_loop = *RNAc::fold_compound_exp_E_interior_loop;
2791*maxmimum_matching = *RNAc::fold_compound_maxmimum_matching;
2792*mfe = *RNAc::fold_compound_mfe;
2793*mfe_dimer = *RNAc::fold_compound_mfe_dimer;
2794*backtrack = *RNAc::fold_compound_backtrack;
2795*mfe_window = *RNAc::fold_compound_mfe_window;
2796*mfe_window_zscore = *RNAc::fold_compound_mfe_window_zscore;
2797*zsc_filter_init = *RNAc::fold_compound_zsc_filter_init;
2798*zsc_filter_update = *RNAc::fold_compound_zsc_filter_update;
2799*zsc_filter_free = *RNAc::fold_compound_zsc_filter_free;
2800*zsc_filter_on = *RNAc::fold_compound_zsc_filter_on;
2801*zsc_filter_threshold = *RNAc::fold_compound_zsc_filter_threshold;
2802*zsc_compute = *RNAc::fold_compound_zsc_compute;
2803*pf = *RNAc::fold_compound_pf;
2804*mean_bp_distance = *RNAc::fold_compound_mean_bp_distance;
2805*ensemble_defect = *RNAc::fold_compound_ensemble_defect;
2806*positional_entropy = *RNAc::fold_compound_positional_entropy;
2807*pr_structure = *RNAc::fold_compound_pr_structure;
2808*pr_energy = *RNAc::fold_compound_pr_energy;
2809*pf_dimer = *RNAc::fold_compound_pf_dimer;
2810*bpp = *RNAc::fold_compound_bpp;
2811*centroid = *RNAc::fold_compound_centroid;
2812*MEA = *RNAc::fold_compound_MEA;
2813*subopt = *RNAc::fold_compound_subopt;
2814*subopt_zuker = *RNAc::fold_compound_subopt_zuker;
2815*sequence_add = *RNAc::fold_compound_sequence_add;
2816*sequence_remove = *RNAc::fold_compound_sequence_remove;
2817*sequence_remove_all = *RNAc::fold_compound_sequence_remove_all;
2818*sequence_prepare = *RNAc::fold_compound_sequence_prepare;
2819*ud_add_motif = *RNAc::fold_compound_ud_add_motif;
2820*ud_remove = *RNAc::fold_compound_ud_remove;
2821*commands_apply = *RNAc::fold_compound_commands_apply;
2822*file_commands_apply = *RNAc::fold_compound_file_commands_apply;
2823*rotational_symmetry_db = *RNAc::fold_compound_rotational_symmetry_db;
2824*neighbors = *RNAc::fold_compound_neighbors;
2825*path = *RNAc::fold_compound_path;
2826*path_gradient = *RNAc::fold_compound_path_gradient;
2827*path_random = *RNAc::fold_compound_path_random;
2828*path_findpath_saddle = *RNAc::fold_compound_path_findpath_saddle;
2829*path_findpath = *RNAc::fold_compound_path_findpath;
2830*path_direct = *RNAc::fold_compound_path_direct;
2831*heat_capacity = *RNAc::fold_compound_heat_capacity;
2832*add_auxdata = *RNAc::fold_compound_add_auxdata;
2833*add_callback = *RNAc::fold_compound_add_callback;
2834*sc_add_data = *RNAc::fold_compound_sc_add_data;
2835*sc_add_f = *RNAc::fold_compound_sc_add_f;
2836*sc_add_bt = *RNAc::fold_compound_sc_add_bt;
2837*sc_add_exp_f = *RNAc::fold_compound_sc_add_exp_f;
2838*ud_set_data = *RNAc::fold_compound_ud_set_data;
2839*ud_set_prod_rule_cb = *RNAc::fold_compound_ud_set_prod_rule_cb;
2840*ud_set_exp_prod_rule_cb = *RNAc::fold_compound_ud_set_exp_prod_rule_cb;
2841*ud_set_prob_cb = *RNAc::fold_compound_ud_set_prob_cb;
2842*subopt_cb = *RNAc::fold_compound_subopt_cb;
2843*pbacktrack = *RNAc::fold_compound_pbacktrack;
2844*pbacktrack5 = *RNAc::fold_compound_pbacktrack5;
2845*mfe_window_cb = *RNAc::fold_compound_mfe_window_cb;
2846*mfe_window_zscore_cb = *RNAc::fold_compound_mfe_window_zscore_cb;
2847*probs_window = *RNAc::fold_compound_probs_window;
2848*heat_capacity_cb = *RNAc::fold_compound_heat_capacity_cb;
2849*swig_type_get = *RNAc::fold_compound_type_get;
2850*swig_type_set = *RNAc::fold_compound_type_set;
2851*swig_length_get = *RNAc::fold_compound_length_get;
2852*swig_length_set = *RNAc::fold_compound_length_set;
2853*swig_strands_get = *RNAc::fold_compound_strands_get;
2854*swig_strands_set = *RNAc::fold_compound_strands_set;
2855*swig_params_get = *RNAc::fold_compound_params_get;
2856*swig_params_set = *RNAc::fold_compound_params_set;
2857*swig_exp_params_get = *RNAc::fold_compound_exp_params_get;
2858*swig_exp_params_set = *RNAc::fold_compound_exp_params_set;
2859sub new {
2860    my $pkg = shift;
2861    my $self = RNAc::new_fold_compound(@_);
2862    bless $self, $pkg if defined($self);
2863}
2864
2865sub DESTROY {
2866    return unless $_[0]->isa('HASH');
2867    my $self = tied(%{$_[0]});
2868    return unless defined $self;
2869    delete $ITERATORS{$self};
2870    if (exists $OWNER{$self}) {
2871        RNAc::delete_fold_compound($self);
2872        delete $OWNER{$self};
2873    }
2874}
2875
2876sub DISOWN {
2877    my $self = shift;
2878    my $ptr = tied(%$self);
2879    delete $OWNER{$ptr};
2880}
2881
2882sub ACQUIRE {
2883    my $self = shift;
2884    my $ptr = tied(%$self);
2885    $OWNER{$ptr} = 1;
2886}
2887
2888
2889# ------- CONSTANT STUBS -------
2890
2891package RNA;
2892
2893sub PARAMETER_FORMAT_DEFAULT () { $RNAc::PARAMETER_FORMAT_DEFAULT }
2894sub UNKNOWN () { $RNAc::UNKNOWN }
2895sub QUIT () { $RNAc::QUIT }
2896sub S () { $RNAc::S }
2897sub S_H () { $RNAc::S_H }
2898sub HP () { $RNAc::HP }
2899sub HP_H () { $RNAc::HP_H }
2900sub B () { $RNAc::B }
2901sub B_H () { $RNAc::B_H }
2902sub IL () { $RNAc::IL }
2903sub IL_H () { $RNAc::IL_H }
2904sub MMH () { $RNAc::MMH }
2905sub MMH_H () { $RNAc::MMH_H }
2906sub MMI () { $RNAc::MMI }
2907sub MMI_H () { $RNAc::MMI_H }
2908sub MMI1N () { $RNAc::MMI1N }
2909sub MMI1N_H () { $RNAc::MMI1N_H }
2910sub MMI23 () { $RNAc::MMI23 }
2911sub MMI23_H () { $RNAc::MMI23_H }
2912sub MMM () { $RNAc::MMM }
2913sub MMM_H () { $RNAc::MMM_H }
2914sub MME () { $RNAc::MME }
2915sub MME_H () { $RNAc::MME_H }
2916sub D5 () { $RNAc::D5 }
2917sub D5_H () { $RNAc::D5_H }
2918sub D3 () { $RNAc::D3 }
2919sub D3_H () { $RNAc::D3_H }
2920sub INT11 () { $RNAc::INT11 }
2921sub INT11_H () { $RNAc::INT11_H }
2922sub INT21 () { $RNAc::INT21 }
2923sub INT21_H () { $RNAc::INT21_H }
2924sub INT22 () { $RNAc::INT22 }
2925sub INT22_H () { $RNAc::INT22_H }
2926sub ML () { $RNAc::ML }
2927sub TL () { $RNAc::TL }
2928sub TRI () { $RNAc::TRI }
2929sub HEX () { $RNAc::HEX }
2930sub NIN () { $RNAc::NIN }
2931sub MISC () { $RNAc::MISC }
2932sub GASCONST () { $RNAc::GASCONST }
2933sub K0 () { $RNAc::K0 }
2934sub INF () { $RNAc::INF }
2935sub EMAX () { $RNAc::EMAX }
2936sub FORBIDDEN () { $RNAc::FORBIDDEN }
2937sub BONUS () { $RNAc::BONUS }
2938sub NBPAIRS () { $RNAc::NBPAIRS }
2939sub TURN () { $RNAc::TURN }
2940sub MAXLOOP () { $RNAc::MAXLOOP }
2941sub UNIT () { $RNAc::UNIT }
2942sub MINPSCORE () { $RNAc::MINPSCORE }
2943sub NBASES () { $RNAc::NBASES }
2944sub MAXALPHA () { $RNAc::MAXALPHA }
2945sub FILENAME_MAX_LENGTH () { $RNAc::FILENAME_MAX_LENGTH }
2946sub FILENAME_ID_LENGTH () { $RNAc::FILENAME_ID_LENGTH }
2947sub PLIST_TYPE_BASEPAIR () { $RNAc::PLIST_TYPE_BASEPAIR }
2948sub PLIST_TYPE_GQUAD () { $RNAc::PLIST_TYPE_GQUAD }
2949sub PLIST_TYPE_H_MOTIF () { $RNAc::PLIST_TYPE_H_MOTIF }
2950sub PLIST_TYPE_I_MOTIF () { $RNAc::PLIST_TYPE_I_MOTIF }
2951sub PLIST_TYPE_UD_MOTIF () { $RNAc::PLIST_TYPE_UD_MOTIF }
2952sub PLIST_TYPE_STACK () { $RNAc::PLIST_TYPE_STACK }
2953sub STRUCTURE_TREE_HIT () { $RNAc::STRUCTURE_TREE_HIT }
2954sub STRUCTURE_TREE_SHAPIRO_SHORT () { $RNAc::STRUCTURE_TREE_SHAPIRO_SHORT }
2955sub STRUCTURE_TREE_SHAPIRO () { $RNAc::STRUCTURE_TREE_SHAPIRO }
2956sub STRUCTURE_TREE_SHAPIRO_EXT () { $RNAc::STRUCTURE_TREE_SHAPIRO_EXT }
2957sub STRUCTURE_TREE_SHAPIRO_WEIGHT () { $RNAc::STRUCTURE_TREE_SHAPIRO_WEIGHT }
2958sub STRUCTURE_TREE_EXPANDED () { $RNAc::STRUCTURE_TREE_EXPANDED }
2959sub BRACKETS_RND () { $RNAc::BRACKETS_RND }
2960sub BRACKETS_ANG () { $RNAc::BRACKETS_ANG }
2961sub BRACKETS_SQR () { $RNAc::BRACKETS_SQR }
2962sub BRACKETS_CLY () { $RNAc::BRACKETS_CLY }
2963sub BRACKETS_ALPHA () { $RNAc::BRACKETS_ALPHA }
2964sub BRACKETS_DEFAULT () { $RNAc::BRACKETS_DEFAULT }
2965sub BRACKETS_ANY () { $RNAc::BRACKETS_ANY }
2966sub ALN_DEFAULT () { $RNAc::ALN_DEFAULT }
2967sub ALN_RNA () { $RNAc::ALN_RNA }
2968sub ALN_DNA () { $RNAc::ALN_DNA }
2969sub ALN_UPPERCASE () { $RNAc::ALN_UPPERCASE }
2970sub ALN_LOWERCASE () { $RNAc::ALN_LOWERCASE }
2971sub MEASURE_SHANNON_ENTROPY () { $RNAc::MEASURE_SHANNON_ENTROPY }
2972sub GRADIENT () { $RNAc::GRADIENT }
2973sub FIRST () { $RNAc::FIRST }
2974sub ADAPTIVE () { $RNAc::ADAPTIVE }
2975sub DECOMP_PAIR_HP () { $RNAc::DECOMP_PAIR_HP }
2976sub DECOMP_PAIR_IL () { $RNAc::DECOMP_PAIR_IL }
2977sub DECOMP_PAIR_ML () { $RNAc::DECOMP_PAIR_ML }
2978sub DECOMP_ML_ML_ML () { $RNAc::DECOMP_ML_ML_ML }
2979sub DECOMP_ML_STEM () { $RNAc::DECOMP_ML_STEM }
2980sub DECOMP_ML_ML () { $RNAc::DECOMP_ML_ML }
2981sub DECOMP_ML_UP () { $RNAc::DECOMP_ML_UP }
2982sub DECOMP_ML_ML_STEM () { $RNAc::DECOMP_ML_ML_STEM }
2983sub DECOMP_ML_COAXIAL () { $RNAc::DECOMP_ML_COAXIAL }
2984sub DECOMP_EXT_EXT () { $RNAc::DECOMP_EXT_EXT }
2985sub DECOMP_EXT_UP () { $RNAc::DECOMP_EXT_UP }
2986sub DECOMP_EXT_STEM () { $RNAc::DECOMP_EXT_STEM }
2987sub DECOMP_EXT_EXT_EXT () { $RNAc::DECOMP_EXT_EXT_EXT }
2988sub DECOMP_EXT_STEM_EXT () { $RNAc::DECOMP_EXT_STEM_EXT }
2989sub DECOMP_EXT_STEM_OUTSIDE () { $RNAc::DECOMP_EXT_STEM_OUTSIDE }
2990sub DECOMP_EXT_EXT_STEM () { $RNAc::DECOMP_EXT_EXT_STEM }
2991sub DECOMP_EXT_EXT_STEM1 () { $RNAc::DECOMP_EXT_EXT_STEM1 }
2992sub CONSTRAINT_DB () { $RNAc::CONSTRAINT_DB }
2993sub CONSTRAINT_DB_ENFORCE_BP () { $RNAc::CONSTRAINT_DB_ENFORCE_BP }
2994sub CONSTRAINT_DB_PIPE () { $RNAc::CONSTRAINT_DB_PIPE }
2995sub CONSTRAINT_DB_DOT () { $RNAc::CONSTRAINT_DB_DOT }
2996sub CONSTRAINT_DB_X () { $RNAc::CONSTRAINT_DB_X }
2997sub CONSTRAINT_DB_ANG_BRACK () { $RNAc::CONSTRAINT_DB_ANG_BRACK }
2998sub CONSTRAINT_DB_RND_BRACK () { $RNAc::CONSTRAINT_DB_RND_BRACK }
2999sub CONSTRAINT_DB_INTRAMOL () { $RNAc::CONSTRAINT_DB_INTRAMOL }
3000sub CONSTRAINT_DB_INTERMOL () { $RNAc::CONSTRAINT_DB_INTERMOL }
3001sub CONSTRAINT_DB_GQUAD () { $RNAc::CONSTRAINT_DB_GQUAD }
3002sub CONSTRAINT_DB_DEFAULT () { $RNAc::CONSTRAINT_DB_DEFAULT }
3003sub CONSTRAINT_CONTEXT_EXT_LOOP () { $RNAc::CONSTRAINT_CONTEXT_EXT_LOOP }
3004sub CONSTRAINT_CONTEXT_HP_LOOP () { $RNAc::CONSTRAINT_CONTEXT_HP_LOOP }
3005sub CONSTRAINT_CONTEXT_INT_LOOP () { $RNAc::CONSTRAINT_CONTEXT_INT_LOOP }
3006sub CONSTRAINT_CONTEXT_INT_LOOP_ENC () { $RNAc::CONSTRAINT_CONTEXT_INT_LOOP_ENC }
3007sub CONSTRAINT_CONTEXT_MB_LOOP () { $RNAc::CONSTRAINT_CONTEXT_MB_LOOP }
3008sub CONSTRAINT_CONTEXT_MB_LOOP_ENC () { $RNAc::CONSTRAINT_CONTEXT_MB_LOOP_ENC }
3009sub CONSTRAINT_CONTEXT_ENFORCE () { $RNAc::CONSTRAINT_CONTEXT_ENFORCE }
3010sub CONSTRAINT_CONTEXT_NO_REMOVE () { $RNAc::CONSTRAINT_CONTEXT_NO_REMOVE }
3011sub CONSTRAINT_CONTEXT_ALL_LOOPS () { $RNAc::CONSTRAINT_CONTEXT_ALL_LOOPS }
3012sub CONSTRAINT_CONTEXT_NONE () { $RNAc::CONSTRAINT_CONTEXT_NONE }
3013sub CONSTRAINT_CONTEXT_CLOSING_LOOPS () { $RNAc::CONSTRAINT_CONTEXT_CLOSING_LOOPS }
3014sub CONSTRAINT_CONTEXT_ENCLOSED_LOOPS () { $RNAc::CONSTRAINT_CONTEXT_ENCLOSED_LOOPS }
3015sub ZSCORE_OPTIONS_NONE () { $RNAc::ZSCORE_OPTIONS_NONE }
3016sub ZSCORE_FILTER_ON () { $RNAc::ZSCORE_FILTER_ON }
3017sub ZSCORE_PRE_FILTER () { $RNAc::ZSCORE_PRE_FILTER }
3018sub ZSCORE_REPORT_SUBSUMED () { $RNAc::ZSCORE_REPORT_SUBSUMED }
3019sub ZSCORE_MODEL_DEFAULT () { $RNAc::ZSCORE_MODEL_DEFAULT }
3020sub ZSCORE_SETTINGS_DEFAULT () { $RNAc::ZSCORE_SETTINGS_DEFAULT }
3021sub PBACKTRACK_DEFAULT () { $RNAc::PBACKTRACK_DEFAULT }
3022sub PBACKTRACK_NON_REDUNDANT () { $RNAc::PBACKTRACK_NON_REDUNDANT }
3023sub EXT_LOOP () { $RNAc::EXT_LOOP }
3024sub HP_LOOP () { $RNAc::HP_LOOP }
3025sub INT_LOOP () { $RNAc::INT_LOOP }
3026sub MB_LOOP () { $RNAc::MB_LOOP }
3027sub ANY_LOOP () { $RNAc::ANY_LOOP }
3028sub PROBS_WINDOW_BPP () { $RNAc::PROBS_WINDOW_BPP }
3029sub PROBS_WINDOW_UP () { $RNAc::PROBS_WINDOW_UP }
3030sub PROBS_WINDOW_STACKP () { $RNAc::PROBS_WINDOW_STACKP }
3031sub PROBS_WINDOW_UP_SPLIT () { $RNAc::PROBS_WINDOW_UP_SPLIT }
3032sub PROBS_WINDOW_PF () { $RNAc::PROBS_WINDOW_PF }
3033sub MAXDOS () { $RNAc::MAXDOS }
3034sub FILE_FORMAT_MSA_CLUSTAL () { $RNAc::FILE_FORMAT_MSA_CLUSTAL }
3035sub FILE_FORMAT_MSA_DEFAULT () { $RNAc::FILE_FORMAT_MSA_DEFAULT }
3036sub FILE_FORMAT_MSA_FASTA () { $RNAc::FILE_FORMAT_MSA_FASTA }
3037sub FILE_FORMAT_MSA_MAF () { $RNAc::FILE_FORMAT_MSA_MAF }
3038sub FILE_FORMAT_MSA_NOCHECK () { $RNAc::FILE_FORMAT_MSA_NOCHECK }
3039sub FILE_FORMAT_MSA_STOCKHOLM () { $RNAc::FILE_FORMAT_MSA_STOCKHOLM }
3040sub FILE_FORMAT_MSA_MIS () { $RNAc::FILE_FORMAT_MSA_MIS }
3041sub FILE_FORMAT_MSA_UNKNOWN () { $RNAc::FILE_FORMAT_MSA_UNKNOWN }
3042sub FILE_FORMAT_MSA_QUIET () { $RNAc::FILE_FORMAT_MSA_QUIET }
3043sub FILE_FORMAT_MSA_SILENT () { $RNAc::FILE_FORMAT_MSA_SILENT }
3044sub FILE_FORMAT_MSA_APPEND () { $RNAc::FILE_FORMAT_MSA_APPEND }
3045sub SEQUENCE_RNA () { $RNAc::SEQUENCE_RNA }
3046sub SEQUENCE_DNA () { $RNAc::SEQUENCE_DNA }
3047sub UNSTRUCTURED_DOMAIN_EXT_LOOP () { $RNAc::UNSTRUCTURED_DOMAIN_EXT_LOOP }
3048sub UNSTRUCTURED_DOMAIN_HP_LOOP () { $RNAc::UNSTRUCTURED_DOMAIN_HP_LOOP }
3049sub UNSTRUCTURED_DOMAIN_INT_LOOP () { $RNAc::UNSTRUCTURED_DOMAIN_INT_LOOP }
3050sub UNSTRUCTURED_DOMAIN_MB_LOOP () { $RNAc::UNSTRUCTURED_DOMAIN_MB_LOOP }
3051sub UNSTRUCTURED_DOMAIN_ALL_LOOPS () { $RNAc::UNSTRUCTURED_DOMAIN_ALL_LOOPS }
3052sub UNSTRUCTURED_DOMAIN_MOTIF () { $RNAc::UNSTRUCTURED_DOMAIN_MOTIF }
3053sub CMD_PARSE_DEFAULTS () { $RNAc::CMD_PARSE_DEFAULTS }
3054sub CMD_PARSE_HC () { $RNAc::CMD_PARSE_HC }
3055sub CMD_PARSE_SC () { $RNAc::CMD_PARSE_SC }
3056sub CMD_PARSE_SD () { $RNAc::CMD_PARSE_SD }
3057sub CMD_PARSE_UD () { $RNAc::CMD_PARSE_UD }
3058sub MOVESET_INSERTION () { $RNAc::MOVESET_INSERTION }
3059sub MOVESET_DELETION () { $RNAc::MOVESET_DELETION }
3060sub MOVESET_SHIFT () { $RNAc::MOVESET_SHIFT }
3061sub MOVESET_NO_LP () { $RNAc::MOVESET_NO_LP }
3062sub MOVESET_DEFAULT () { $RNAc::MOVESET_DEFAULT }
3063sub NEIGHBOR_CHANGE () { $RNAc::NEIGHBOR_CHANGE }
3064sub NEIGHBOR_INVALID () { $RNAc::NEIGHBOR_INVALID }
3065sub NEIGHBOR_NEW () { $RNAc::NEIGHBOR_NEW }
3066sub PATH_STEEPEST_DESCENT () { $RNAc::PATH_STEEPEST_DESCENT }
3067sub PATH_RANDOM () { $RNAc::PATH_RANDOM }
3068sub PATH_NO_TRANSITION_OUTPUT () { $RNAc::PATH_NO_TRANSITION_OUTPUT }
3069sub PATH_DEFAULT () { $RNAc::PATH_DEFAULT }
3070sub PATH_TYPE_DOT_BRACKET () { $RNAc::PATH_TYPE_DOT_BRACKET }
3071sub PATH_TYPE_MOVES () { $RNAc::PATH_TYPE_MOVES }
3072sub FC_TYPE_SINGLE () { $RNAc::FC_TYPE_SINGLE }
3073sub FC_TYPE_COMPARATIVE () { $RNAc::FC_TYPE_COMPARATIVE }
3074sub STATUS_MFE_PRE () { $RNAc::STATUS_MFE_PRE }
3075sub STATUS_MFE_POST () { $RNAc::STATUS_MFE_POST }
3076sub STATUS_PF_PRE () { $RNAc::STATUS_PF_PRE }
3077sub STATUS_PF_POST () { $RNAc::STATUS_PF_POST }
3078sub OPTION_DEFAULT () { $RNAc::OPTION_DEFAULT }
3079sub OPTION_MFE () { $RNAc::OPTION_MFE }
3080sub OPTION_PF () { $RNAc::OPTION_PF }
3081sub OPTION_HYBRID () { $RNAc::OPTION_HYBRID }
3082sub OPTION_EVAL_ONLY () { $RNAc::OPTION_EVAL_ONLY }
3083sub OPTION_WINDOW () { $RNAc::OPTION_WINDOW }
3084
3085# ------- VARIABLE STUBS --------
3086
3087package RNA;
3088
3089*lxc37 = *RNAc::lxc37;
3090*stack37 = *RNAc::stack37;
3091*stackdH = *RNAc::stackdH;
3092*hairpin37 = *RNAc::hairpin37;
3093*hairpindH = *RNAc::hairpindH;
3094*bulge37 = *RNAc::bulge37;
3095*bulgedH = *RNAc::bulgedH;
3096*internal_loop37 = *RNAc::internal_loop37;
3097*internal_loopdH = *RNAc::internal_loopdH;
3098*mismatchI37 = *RNAc::mismatchI37;
3099*mismatchIdH = *RNAc::mismatchIdH;
3100*mismatch1nI37 = *RNAc::mismatch1nI37;
3101*mismatch23I37 = *RNAc::mismatch23I37;
3102*mismatch1nIdH = *RNAc::mismatch1nIdH;
3103*mismatch23IdH = *RNAc::mismatch23IdH;
3104*mismatchH37 = *RNAc::mismatchH37;
3105*mismatchM37 = *RNAc::mismatchM37;
3106*mismatchHdH = *RNAc::mismatchHdH;
3107*mismatchMdH = *RNAc::mismatchMdH;
3108*mismatchExt37 = *RNAc::mismatchExt37;
3109*mismatchExtdH = *RNAc::mismatchExtdH;
3110*dangle5_37 = *RNAc::dangle5_37;
3111*dangle3_37 = *RNAc::dangle3_37;
3112*dangle3_dH = *RNAc::dangle3_dH;
3113*dangle5_dH = *RNAc::dangle5_dH;
3114*int11_37 = *RNAc::int11_37;
3115*int11_dH = *RNAc::int11_dH;
3116*int21_37 = *RNAc::int21_37;
3117*int21_dH = *RNAc::int21_dH;
3118*int22_37 = *RNAc::int22_37;
3119*int22_dH = *RNAc::int22_dH;
3120*ML_BASE37 = *RNAc::ML_BASE37;
3121*ML_BASEdH = *RNAc::ML_BASEdH;
3122*ML_closing37 = *RNAc::ML_closing37;
3123*ML_closingdH = *RNAc::ML_closingdH;
3124*ML_intern37 = *RNAc::ML_intern37;
3125*ML_interndH = *RNAc::ML_interndH;
3126*TripleC37 = *RNAc::TripleC37;
3127*TripleCdH = *RNAc::TripleCdH;
3128*MultipleCA37 = *RNAc::MultipleCA37;
3129*MultipleCAdH = *RNAc::MultipleCAdH;
3130*MultipleCB37 = *RNAc::MultipleCB37;
3131*MultipleCBdH = *RNAc::MultipleCBdH;
3132*MAX_NINIO = *RNAc::MAX_NINIO;
3133*ninio37 = *RNAc::ninio37;
3134*niniodH = *RNAc::niniodH;
3135*TerminalAU37 = *RNAc::TerminalAU37;
3136*TerminalAUdH = *RNAc::TerminalAUdH;
3137*DuplexInit37 = *RNAc::DuplexInit37;
3138*DuplexInitdH = *RNAc::DuplexInitdH;
3139*Tetraloops = *RNAc::Tetraloops;
3140*Tetraloop37 = *RNAc::Tetraloop37;
3141*TetraloopdH = *RNAc::TetraloopdH;
3142*Triloops = *RNAc::Triloops;
3143*Triloop37 = *RNAc::Triloop37;
3144*TriloopdH = *RNAc::TriloopdH;
3145*Hexaloops = *RNAc::Hexaloops;
3146*Hexaloop37 = *RNAc::Hexaloop37;
3147*HexaloopdH = *RNAc::HexaloopdH;
3148*GQuadAlpha37 = *RNAc::GQuadAlpha37;
3149*GQuadAlphadH = *RNAc::GQuadAlphadH;
3150*GQuadBeta37 = *RNAc::GQuadBeta37;
3151*GQuadBetadH = *RNAc::GQuadBetadH;
3152*GQuadLayerMismatch37 = *RNAc::GQuadLayerMismatch37;
3153*GQuadLayerMismatchH = *RNAc::GQuadLayerMismatchH;
3154*GQuadLayerMismatchMax = *RNAc::GQuadLayerMismatchMax;
3155*Tmeasure = *RNAc::Tmeasure;
3156*temperature = *RNAc::temperature;
3157*dangles = *RNAc::dangles;
3158*betaScale = *RNAc::betaScale;
3159*pf_smooth = *RNAc::pf_smooth;
3160*tetra_loop = *RNAc::tetra_loop;
3161*special_hp = *RNAc::special_hp;
3162*noLonelyPairs = *RNAc::noLonelyPairs;
3163*noLP = *RNAc::noLP;
3164*noGU = *RNAc::noGU;
3165*no_closingGU = *RNAc::no_closingGU;
3166*noGUclosure = *RNAc::noGUclosure;
3167*logML = *RNAc::logML;
3168*circ = *RNAc::circ;
3169*gquad = *RNAc::gquad;
3170*uniq_ML = *RNAc::uniq_ML;
3171*energy_set = *RNAc::energy_set;
3172*backtrack = *RNAc::backtrack;
3173*backtrack_type = *RNAc::backtrack_type;
3174*do_backtrack = *RNAc::do_backtrack;
3175*compute_bpp = *RNAc::compute_bpp;
3176*max_bp_span = *RNAc::max_bp_span;
3177*min_loop_size = *RNAc::min_loop_size;
3178*window_size = *RNAc::window_size;
3179*oldAliEn = *RNAc::oldAliEn;
3180*ribo = *RNAc::ribo;
3181*cv_fact = *RNAc::cv_fact;
3182*nc_fact = *RNAc::nc_fact;
3183*sfact = *RNAc::sfact;
3184*pf_scale = *RNAc::pf_scale;
3185*nonstandards = *RNAc::nonstandards;
3186*xsubi = *RNAc::xsubi;
3187*rna_plot_type = *RNAc::rna_plot_type;
3188*cut_point = *RNAc::cut_point;
3189*eos_debug = *RNAc::eos_debug;
3190*st_back = *RNAc::st_back;
3191*mirnatog = *RNAc::mirnatog;
3192*F_monomer = *RNAc::F_monomer;
3193*subopt_sorted = *RNAc::subopt_sorted;
3194*print_energy = *RNAc::print_energy;
3195*density_of_states = *RNAc::density_of_states;
3196*symbolset = *RNAc::symbolset;
3197*final_cost = *RNAc::final_cost;
3198*give_up = *RNAc::give_up;
3199*inv_verbose = *RNAc::inv_verbose;
3200*loop_size = *RNAc::loop_size;
3201*helix_size = *RNAc::helix_size;
3202*loop_degree = *RNAc::loop_degree;
3203*loops = *RNAc::loops;
3204*unpaired = *RNAc::unpaired;
3205*pairs = *RNAc::pairs;
3206*edit_backtrack = *RNAc::edit_backtrack;
3207*aligned_line = *RNAc::aligned_line;
3208*cost_matrix = *RNAc::cost_matrix;
3209*base_pair = *RNAc::base_pair;
3210*pr = *RNAc::pr;
3211*iindx = *RNAc::iindx;
3212*fold_constrained = *RNAc::fold_constrained;
3213*csv = *RNAc::csv;
3214*RibosumFile = *RNAc::RibosumFile;
3215*james_rule = *RNAc::james_rule;
3216
3217our $VERSION = '2.4.18';
3218sub VERSION () { $VERSION };
32191;
3220