Revision 735624b84c21a21a816606f80caa00ed6f6fc86b authored by Ronny Lorenz on 08 February 2016, 18:45:35 UTC, committed by Ronny Lorenz on 13 February 2016, 18:01:39 UTC
- Restore backward compatibility of get_alipf_arrays()
- Added annotation of motifs found with RNAfold's --motif option
- More documentation of constraints features in RNAfold/RNAalifold manpages
1 parent ed9db33
Raw File
RNA.i
%module RNA
//%pragma(perl5)  modulecode="@EXPORT=qw(fold);"
%pragma(perl5)  include="RNA.pod"

%{

#include  <ViennaRNA/data_structures.h>
#include  <ViennaRNA/dp_matrices.h>
#include  <ViennaRNA/model.h>
#include  <ViennaRNA/utils.h>
#include  <ViennaRNA/structure_utils.h>
#include  <ViennaRNA/string_utils.h>
#include  <ViennaRNA/fold_vars.h>
#include  <ViennaRNA/constraints.h>
#undef fold
#include  <ViennaRNA/mfe.h>
#include  <ViennaRNA/fold.h>
#include  <ViennaRNA/eval.h>
#include  <ViennaRNA/cofold.h>
#include  <ViennaRNA/part_func.h>
#include  <ViennaRNA/part_func_co.h>
#include  <ViennaRNA/naview.h>
#include  <ViennaRNA/plot_layouts.h>
#include  <ViennaRNA/plot_structure.h>
#include  <ViennaRNA/plot_aln.h>
#include  <ViennaRNA/PS_dot.h>
#include  <ViennaRNA/inverse.h>
#include  <ViennaRNA/RNAstruct.h>
#include  <ViennaRNA/treedist.h>
#include  <ViennaRNA/stringdist.h>
#include  <ViennaRNA/profiledist.h>
#include  <ViennaRNA/dist_vars.h>
#include  <ViennaRNA/pair_mat.h>
#include  <ViennaRNA/subopt.h>
#include  <ViennaRNA/energy_const.h>
#include  <ViennaRNA/params.h>
#include  <ViennaRNA/duplex.h>
#include  <ViennaRNA/alifold.h>
#include  <ViennaRNA/aln_util.h>
#include  <ViennaRNA/findpath.h>
#include  <ViennaRNA/Lfold.h>
#include  <ViennaRNA/read_epars.h>
#include  <ViennaRNA/move_set.h>
#include  <ViennaRNA/ligand.h>

%}
//
%include carrays.i
%array_functions(int, intP);
%array_class(int, intArray);
%array_functions(float, floatP);
%array_class(float, floatArray);
%array_functions(double, doubleP);
%array_class(double, doubleArray);
%array_functions(unsigned short, ushortP);
%array_functions(short, shortP);
%include cdata.i

%constant double VERSION = 0.3;
%include typemaps.i
%include tmaps.i  // additional typemaps

//%title "Interface to the Vienna RNA library"

/* do not wrap any function prefixed by 'vrna_' */
%rename("$ignore",  %$isfunction, regextarget=1) "^vrna_";

/* do not wrap any data structure, typedef, or enum prefixed by 'vrna_' */
%rename("$ignore",  %$isclass, regextarget=1) "^vrna_";
%rename("$ignore",  %$istypedef, regextarget=1) "^vrna_";
%rename("$ignore",  %$isenum, regextarget=1) "^vrna_";

/*############################################*/
/* Include all relevant interface definitions */
/*############################################*/
%include params.i
%include model_details.i
%include fold_compound.i
%include utils.i
%include plotting.i
%include constraints.i
%include eval.i
%include mfe.i
%include part_func.i
%include subopt.i
%include inverse.i
%include compare.i

/**********************************************/
/* BEGIN interface for data structures        */
/**********************************************/

%ignore folden;
%ignore node;
%ignore snoopT;
%ignore dupVar;

%ignore plist;
%ignore cpair;


%include <ViennaRNA/data_structures.h>

%include <ViennaRNA/dp_matrices.h>

//%subsection "Global Variables to Modify Folding"
//extern double *pr;  /*  base pairing prob. matrix */

%include  <ViennaRNA/fold_vars.h>
%extend bondT {
	bondT *get(int i) {
	   return self+i;
	}
}


typedef struct {
  int i;
  int j;
  char *structure;
  float energy;
} duplexT;

// problem: wrapper will not free the the structure hidden in duplexT
// even more problem for duplex_subopt()

%include <ViennaRNA/duplex.h>
%include <ViennaRNA/Lfold.h>

/**********************************************/
/* BEGIN interface for findpath heursitic     */
/**********************************************/

/* scripting language access through 'fold_compound' instead of 'vrna_fold_compound_t' */
%rename(path) vrna_path_t;

/* no default constructor / destructor */
%nodefaultdtor vrna_path_t;

typedef struct {
  double en;  /**<  @brief  Free energy of current structure */
  char *s;    /**<  @brief  Secondary structure in dot-bracket notation */
} vrna_path_t;

%extend vrna_path_t {
  vrna_path_t *get(int i) {
    return $self+i;
  }

  int size() {
    path_t *st;
    for (st=$self; st->s; st++);
    return (int)(st-$self);
  }

  ~vrna_path_t() {
    vrna_path_t *st;
    for (st=$self; st->s; st++)
      free(st->s);
    free($self);
  }
}

%newobject get_path;

%include <ViennaRNA/findpath.h>

%include  <ViennaRNA/move_set.h>

%ignore move_gradient;
%ignore move_first;
%ignore move_adaptive;
%ignore browse_neighs_pt;
%ignore browse_neighs;
%ignore print_stren;
%ignore print_str;
%ignore copy_arr;
%ignore allocopy;

back to top