WSTester updated to work plus hopefully all the other changes that need to go into...
[jabaws.git] / binaries / src / ViennaRNA / H / PS_dot.h
diff --git a/binaries/src/ViennaRNA/H/PS_dot.h b/binaries/src/ViennaRNA/H/PS_dot.h
new file mode 100644 (file)
index 0000000..c2468d3
--- /dev/null
@@ -0,0 +1,197 @@
+#ifndef __VIENNA_RNA_PACKAGE_PS_DOT_H__
+#define __VIENNA_RNA_PACKAGE_PS_DOT_H__
+
+#include "data_structures.h"
+#include "plot_layouts.h"
+
+#ifdef __GNUC__
+#define DEPRECATED(func) func __attribute__ ((deprecated))
+#else
+#define DEPRECATED(func) func
+#endif
+
+/**
+ *  \file PS_dot.h
+ *  \brief Various functions for plotting RNA secondary structures, dot-plots and other
+ *  visualizations
+ */
+
+/* write PostScript drawing of structure to file with annotation */
+int PS_rna_plot_snoop_a(char *string,
+                        char *structure,
+                        char *ssfile,
+                        int *relative_access,
+                        const char *seqs[]);
+
+/**
+ *  \brief Produce a secondary structure graph in PostScript and write it to 'filename'.
+ *
+ *  Note that this function has changed from previous versions
+ *  and now expects the structure to be plotted in dot-bracket notation as an
+ *  argument. It does not make use of the global #base_pair array anymore.
+ *
+ *  \param string     The RNA sequence
+ *  \param structure  The secondary structure in dot-bracket notation
+ *  \param file       The filename of the postscript output
+ *  \return           1 on success, 0 otherwise
+ */
+int PS_rna_plot(char *string,
+                char *structure,
+                char *file);
+
+/**
+ *  \brief Produce a secondary structure graph in PostScript including additional
+ *  annotation macros and write it to 'filename'
+ *
+ *  Same as PS_rna_plot() but adds extra PostScript macros for various
+ *  annotations (see generated PS code). The 'pre' and 'post'
+ *  variables contain PostScript code that is verbatim copied in the
+ *  resulting PS file just before and after the structure plot.
+ *  If both arguments ('pre' and 'post') are NULL, no additional macros will
+ *  be printed into the PostScript.
+ *
+ *  \param string     The RNA sequence
+ *  \param structure  The secondary structure in dot-bracket notation
+ *  \param file       The filename of the postscript output
+ *  \param pre        PostScript code to appear before the secondary structure plot
+ *  \param post       PostScript code to appear after the secondary structure plot
+ *  \return           1 on success, 0 otherwise
+ */
+int PS_rna_plot_a(char *string,
+                  char *structure,
+                  char *file,
+                  char *pre,
+                  char *post);
+
+int PS_rna_plot_a_gquad(char *string,
+                        char *structure,
+                        char *ssfile,
+                        char *pre,
+                        char *post);
+
+/**
+ *  \brief Produce a secondary structure graph in Graph Meta Language (gml) and write it to a file
+ *
+ *  If 'option' is an uppercase letter the RNA sequence is used to label nodes, if 'option' equals
+ *  \a 'X' or \a 'x' the resulting file will coordinates for an initial layout of the graph.
+ *
+ *  \param  string    The RNA sequence
+ *  \param  structure The secondary structure in dot-bracket notation
+ *  \param  ssfile    The filename of the gml output
+ *  \param  option    The option flag
+ *  \return           1 on success, 0 otherwise
+ */
+int gmlRNA( char *string,
+            char *structure,
+            char *ssfile,
+            char option);
+
+/**
+ *  \brief  Produce a secondary structure graph in SStructView format
+ *
+ *  Write coord file for SStructView
+ *
+ *  \param  string    The RNA sequence
+ *  \param  structure The secondary structure in dot-bracket notation
+ *  \param  ssfile    The filename of the ssv output
+ *  \return           1 on success, 0 otherwise
+ */
+int ssv_rna_plot( char *string,
+                  char *structure,
+                  char *ssfile);
+
+/**
+ *  \brief Produce a secondary structure plot in SVG format and write it to a file
+ *
+ *  \param string     The RNA sequence
+ *  \param structure  The secondary structure in dot-bracket notation
+ *  \param ssfile     The filename of the svg output
+ *  \return           1 on success, 0 otherwise
+ */
+int svg_rna_plot( char *string,
+                  char *structure,
+                  char *ssfile);
+
+/**
+ *  \brief Produce a secondary structure plot for further editing in XRNA
+ *
+ *  \param string     The RNA sequence
+ *  \param structure  The secondary structure in dot-bracket notation
+ *  \param ssfile     The filename of the xrna output
+ *  \return           1 on success, 0 otherwise
+ */
+int xrna_plot(char *string,
+              char *structure,
+              char *ssfile);
+
+int PS_color_dot_plot(char *string,
+                      cpair *pi,
+                      char *filename);
+
+int PS_color_dot_plot_turn( char *seq,
+                            cpair *pi,
+                            char *filename,
+                            int winSize);
+
+/**
+ *  \brief Produce a postscript dot-plot from two pair lists
+ *
+ *  This function reads two plist structures (e.g. base pair probabilities and a secondary structure)
+ *  as produced by assign_plist_from_pr() and assign_plist_from_db() and produces a postscript
+ *  "dot plot" that is written to 'filename'.\n
+ *  Using base pair probabilities in the first and mfe structure in the second plist, the resulting
+ *  "dot plot" represents each base pairing probability by a square of corresponding area in a upper
+ *  triangle matrix. The lower part of the matrix contains the minimum free energy structure.
+ *
+ *  \see assign_plist_from_pr(), assign_plist_from_db()
+ *
+ *  \param seq      The RNA sequence
+ *  \param filename A filename for the postscript output
+ *  \param pl       The base pair probability pairlist
+ *  \param mf       The mfe secondary structure pairlist
+ *  \param comment  A comment
+ *  \return         1 if postscript was successfully written, 0 otherwise
+ */
+int PS_dot_plot_list( char *seq,
+                      char *filename,
+                      plist *pl,
+                      plist *mf,
+                      char *comment);
+
+int PS_dot_plot_turn( char *seq,
+                      struct plist *pl,
+                      char *filename,
+                      int winSize);
+
+int PS_color_aln( const char *structure,
+                  const char *filename,
+                  const char *seqs[],
+                  const char *names[]);
+
+/**
+ *     PS_color_aln for duplexes
+*/
+int aliPS_color_aln(const char *structure,
+                    const char *filename, 
+                    const char *seqs[],
+                    const char *names[]); 
+
+
+/**
+ *  Wrapper to PS_dot_plot_list
+ *
+ *  \brief Produce postscript dot-plot
+ *
+ *  Reads base pair probabilities produced by pf_fold() from the
+ *  global array #pr and the pair list #base_pair produced by
+ *  fold() and produces a postscript "dot plot" that is written to
+ *  'filename'. The "dot plot" represents each base pairing
+ *  probability by a square of corresponding area in a upper triangle
+ *  matrix. The lower part of the matrix contains the minimum free energy
+ *  \note DO NOT USE THIS FUNCTION ANYMORE SINCE IT IS NOT THREADSAFE
+ *
+ *  \deprecated This function is deprecated and will be removed soon! Use \ref PS_dot_plot_list() instead!
+ */
+DEPRECATED(int PS_dot_plot( char *string,
+                            char *file));
+#endif