Add missing doc files
[jabaws.git] / binaries / src / ViennaRNA / doc / latex / utils_8h.tex
1 \hypertarget{utils_8h}{\section{/home/asherstnev/\-Projects/\-Java.projects/jabaws/secure-\/git/develop/binaries/src/\-Vienna\-R\-N\-A/\-H/utils.h File Reference}
2 \label{utils_8h}\index{/home/asherstnev/\-Projects/\-Java.\-projects/jabaws/secure-\/git/develop/binaries/src/\-Vienna\-R\-N\-A/\-H/utils.\-h@{/home/asherstnev/\-Projects/\-Java.\-projects/jabaws/secure-\/git/develop/binaries/src/\-Vienna\-R\-N\-A/\-H/utils.\-h}}
3 }
4
5
6 Various utility-\/ and helper-\/functions used throughout the Vienna R\-N\-A package.  
7
8
9 This graph shows which files directly or indirectly include this file\-:
10 \nopagebreak
11 \begin{figure}[H]
12 \begin{center}
13 \leavevmode
14 \includegraphics[width=250pt]{utils_8h__dep__incl}
15 \end{center}
16 \end{figure}
17 \subsection*{Macros}
18 \begin{DoxyCompactItemize}
19 \item 
20 \#define \hyperlink{utils_8h_ad403c9ea58f1836689404c2931419c8c}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}~1\-U
21 \item 
22 \#define \hyperlink{utils_8h_a72f3c6ca5c83d2b9baed2922d19c403d}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T}~2\-U
23 \item 
24 \#define \hyperlink{utils_8h_a8e3241b321c9c1a78a69e59e2e019a71}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C}~4\-U
25 \item 
26 \#define \hyperlink{utils_8h_a2f0d8069e93d3ac54d9320d6bdb8e7e7}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R}~8\-U
27 \item 
28 \#define \hyperlink{utils_8h_a8566d6787972100e68b5a2a159b4cf45}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-S\-E\-Q\-U\-E\-N\-C\-E}~16\-U
29 \item 
30 \#define \hyperlink{utils_8h_ac08a9df45b9721b97a47dbfe7a6e5f85}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T}~32\-U
31 \item 
32 \#define \hyperlink{utils_8h_a086742158293217a46ae2f71bb296937}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-T\-R\-U\-N\-C\-A\-T\-I\-O\-N}~256\-U
33 \item 
34 \#define \hyperlink{utils_8h_a7a2e8c50a0c7ce82e60da1016e1367fd}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T}~512\-U
35 \item 
36 \#define \hyperlink{utils_8h_a0de536599b881c787b0943a2671da476}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N}~1024\-U
37 \item 
38 \#define \hyperlink{utils_8h_ab4db885222b3b69608310d7c7e63e286}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S}~2048\-U
39 \item 
40 \#define \hyperlink{utils_8h_a305474b93ccb79ae4c7754016a8ddd84}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E}~4096\-U
41 \item 
42 \#define \hyperlink{utils_8h_a0f6311f11bed1842e3a527ab27b294c6}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S}~128\-U
43 \item 
44 \#define \hyperlink{utils_8h_af2062e0eeefffd3ed639af460b3d4fab}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T}~8192\-U
45 \item 
46 \#define \hyperlink{utils_8h_a4e8d7120619b21df0309af425acbc9a2}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E}~1\-U
47 \item 
48 \#define \hyperlink{utils_8h_a55e1d16fd693ae9ec8e987b0750da804}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T}~2\-U
49 \item 
50 \#define \hyperlink{utils_8h_a077c56550c915d4516d84a5ed8d051f4}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X}~4\-U
51 \item 
52 \#define \hyperlink{utils_8h_a0512d790f738742cbdcf3f7c87b46f48}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K}~8\-U
53 \item 
54 \#define \hyperlink{utils_8h_aa20bfca4bb2903c8548000a33d7bbb53}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K}~16\-U
55 \item 
56 \#define \hyperlink{utils_8h_a7d725ef525b29891abef3f1ed42599a4}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}~32\-U
57 \item 
58 \#define \hyperlink{utils_8h_a08d12a9a846ea593b7171d277c9f033f}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-N\-O\-\_\-\-H\-E\-A\-D\-E\-R}~64\-U
59 \item 
60 \#define \hyperlink{utils_8h_a0a697f77a6fbb10f34e16fa68ed9e655}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-L\-L}~128\-U
61 \item 
62 \#define \hyperlink{utils_8h_a99dc6b23dc4080a76e2ed1a81c20e94d}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G}~256\-U
63 \item 
64 \#define \hyperlink{utils_8h_abec89c09874528c6cb73140a4c3d86d7}{V\-R\-N\-A\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}~32\-U
65 \item 
66 \#define \hyperlink{utils_8h_ae0b9cd0ce090bd69b951aa73e8fa4f7d}{M\-I\-N2}(A, B)~((A) $<$ (B) ? (A) \-: (B))
67 \item 
68 \#define \hyperlink{utils_8h_a33297b3679c713b0c4d897cd0fe3b122}{M\-A\-X2}(A, B)~((A) $>$ (B) ? (A) \-: (B))
69 \item 
70 \#define \hyperlink{utils_8h_a721b8d5f3abef17f10293f1f7f8c958e}{M\-I\-N3}(A, B, C)~(\hyperlink{utils_8h_ae0b9cd0ce090bd69b951aa73e8fa4f7d}{M\-I\-N2}(  (\hyperlink{utils_8h_ae0b9cd0ce090bd69b951aa73e8fa4f7d}{M\-I\-N2}((A),(B))) ,(C)))
71 \item 
72 \#define \hyperlink{utils_8h_a8d577123d2e66d2b7d0bf9af6e172b93}{M\-A\-X3}(A, B, C)~(\hyperlink{utils_8h_a33297b3679c713b0c4d897cd0fe3b122}{M\-A\-X2}(  (\hyperlink{utils_8h_a33297b3679c713b0c4d897cd0fe3b122}{M\-A\-X2}((A),(B))) ,(C)))
73 \item 
74 \#define \hyperlink{utils_8h_a03943706e48069237cd57f2d35ca987e}{X\-S\-T\-R}(s)~\hyperlink{utils_8h_a6388870e639eee9c0a69446876f1f8cc}{S\-T\-R}(s)
75 \item 
76 \#define \hyperlink{utils_8h_a6388870e639eee9c0a69446876f1f8cc}{S\-T\-R}(s)~\#s
77 \item 
78 \#define \hyperlink{utils_8h_afb228174279df9486a5cb56ac0bc79a3}{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H}~80
79 \begin{DoxyCompactList}\small\item\em Maximum length of filenames that are generated by our programs. \end{DoxyCompactList}\item 
80 \#define \hyperlink{utils_8h_a33c3b1826b8e2739f09f111ec719ded5}{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-I\-D\-\_\-\-L\-E\-N\-G\-T\-H}~42
81 \begin{DoxyCompactList}\small\item\em Maximum length of id taken from fasta header for filename generation. \end{DoxyCompactList}\end{DoxyCompactItemize}
82 \subsection*{Functions}
83 \begin{DoxyCompactItemize}
84 \item 
85 void $\ast$ \hyperlink{utils_8h_ad7e1e137b3bf1f7108933d302a7f0177}{space} (unsigned size)
86 \begin{DoxyCompactList}\small\item\em Allocate space safely. \end{DoxyCompactList}\item 
87 void $\ast$ \hyperlink{utils_8h_a9037ada838835b1b9db41581a021b0c8}{xrealloc} (void $\ast$p, unsigned size)
88 \begin{DoxyCompactList}\small\item\em Reallocate space safely. \end{DoxyCompactList}\item 
89 void \hyperlink{utils_8h_a127ce946e56b5a5773781cabe68e38c5}{nrerror} (const char message\mbox{[}$\,$\mbox{]})
90 \begin{DoxyCompactList}\small\item\em Die with an error message. \end{DoxyCompactList}\item 
91 void \hyperlink{utils_8h_af2355fa8746f2f30fbe71db65dea3d51}{warn\-\_\-user} (const char message\mbox{[}$\,$\mbox{]})
92 \begin{DoxyCompactList}\small\item\em Print a warning message. \end{DoxyCompactList}\item 
93 \hypertarget{utils_8h_a8aaa6d9be6f803f496d9b97375c371f3}{void \hyperlink{utils_8h_a8aaa6d9be6f803f496d9b97375c371f3}{init\-\_\-rand} (void)}\label{utils_8h_a8aaa6d9be6f803f496d9b97375c371f3}
94
95 \begin{DoxyCompactList}\small\item\em Make random number seeds. \end{DoxyCompactList}\item 
96 double \hyperlink{utils_8h_aaa328491c84996e445d027fde9800f2e}{urn} (void)
97 \begin{DoxyCompactList}\small\item\em get a random number from \mbox{[}0..1\mbox{]} \end{DoxyCompactList}\item 
98 int \hyperlink{utils_8h_a68ff0849d44f62fe491800378a5ffcb4}{int\-\_\-urn} (int from, int to)
99 \begin{DoxyCompactList}\small\item\em Generates a pseudo random integer in a specified range. \end{DoxyCompactList}\item 
100 char $\ast$ \hyperlink{utils_8h_a7afeb906cb36e9d77379eabc6907ac46}{time\-\_\-stamp} (void)
101 \begin{DoxyCompactList}\small\item\em Get a timestamp. \end{DoxyCompactList}\item 
102 char $\ast$ \hyperlink{utils_8h_a1b95eac365a021572e1c37e5993a89be}{random\-\_\-string} (int l, const char symbols\mbox{[}$\,$\mbox{]})
103 \begin{DoxyCompactList}\small\item\em Create a random string using characters from a specified symbol set. \end{DoxyCompactList}\item 
104 int \hyperlink{utils_8h_ad9dc7bfc9aa664dc6698f17ce07fc7e7}{hamming} (const char $\ast$s1, const char $\ast$s2)
105 \begin{DoxyCompactList}\small\item\em Calculate hamming distance between two sequences. \end{DoxyCompactList}\item 
106 int \hyperlink{utils_8h_a96d3c36717d624514055ce201cab1542}{hamming\-\_\-bound} (const char $\ast$s1, const char $\ast$s2, int n)
107 \begin{DoxyCompactList}\small\item\em Calculate hamming distance between two sequences up to a specified length. \end{DoxyCompactList}\item 
108 char $\ast$ \hyperlink{utils_8h_abe51806d14cff0789a8c1df7dbc45b71}{get\-\_\-line} (F\-I\-L\-E $\ast$fp)
109 \begin{DoxyCompactList}\small\item\em Read a line of arbitrary length from a stream. \end{DoxyCompactList}\item 
110 unsigned int \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line} (char $\ast$$\ast$string, unsigned int options)
111 \item 
112 unsigned int \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record} (char $\ast$$\ast$header, char $\ast$$\ast$sequence, char $\ast$$\ast$$\ast$rest, unsigned int options)
113 \begin{DoxyCompactList}\small\item\em Get a data record from stdin. \end{DoxyCompactList}\item 
114 char $\ast$ \hyperlink{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}{pack\-\_\-structure} (const char $\ast$struc)
115 \begin{DoxyCompactList}\small\item\em Pack secondary secondary structure, 5\-:1 compression using base 3 encoding. \end{DoxyCompactList}\item 
116 char $\ast$ \hyperlink{utils_8h_a071c6921efe1eb974f115ee6fefa3c39}{unpack\-\_\-structure} (const char $\ast$packed)
117 \begin{DoxyCompactList}\small\item\em Unpack secondary structure previously packed with \hyperlink{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}{pack\-\_\-structure()} \end{DoxyCompactList}\item 
118 short $\ast$ \hyperlink{utils_8h_a89c32307ee50a0026f4a3131fac0845a}{make\-\_\-pair\-\_\-table} (const char $\ast$structure)
119 \begin{DoxyCompactList}\small\item\em Create a pair table of a secondary structure. \end{DoxyCompactList}\item 
120 short $\ast$ \hyperlink{utils_8h_afeaa6d68eef3a99d0a7aa08aa91c6601}{copy\-\_\-pair\-\_\-table} (const short $\ast$pt)
121 \begin{DoxyCompactList}\small\item\em Get an exact copy of a pair table. \end{DoxyCompactList}\item 
122 short $\ast$ \hyperlink{utils_8h_a3c81b3967056c3888b8472b65fbb16f5}{alimake\-\_\-pair\-\_\-table} (const char $\ast$structure)
123 \item 
124 short $\ast$ \hyperlink{utils_8h_a9aa3bf3b4346bb7fb88efc154dd07a79}{make\-\_\-pair\-\_\-table\-\_\-snoop} (const char $\ast$structure)
125 \item 
126 int $\ast$ \hyperlink{utils_8h_a4358e89f64cc87a563b7ef3855f75bed}{make\-\_\-loop\-\_\-index\-\_\-pt} (short $\ast$pt)
127 \begin{DoxyCompactList}\small\item\em Compute the \char`\"{}base pair\char`\"{} distance between two secondary structures s1 and s2. \end{DoxyCompactList}\item 
128 void \hyperlink{utils_8h_a6bf778117d31b7fd90db435323f4ef74}{print\-\_\-tty\-\_\-input\-\_\-seq} (void)
129 \begin{DoxyCompactList}\small\item\em Print a line to {\itshape stdout} that asks for an input sequence. \end{DoxyCompactList}\item 
130 void \hyperlink{utils_8h_ae4ef89b662a3e9b5b5f0781d9757aba0}{print\-\_\-tty\-\_\-input\-\_\-seq\-\_\-str} (const char $\ast$s)
131 \begin{DoxyCompactList}\small\item\em Print a line with a user defined string and a ruler to stdout. \end{DoxyCompactList}\item 
132 \hypertarget{utils_8h_ae8ae8a34962b9959be3f6c40f0a80ac1}{void \hyperlink{utils_8h_ae8ae8a34962b9959be3f6c40f0a80ac1}{print\-\_\-tty\-\_\-constraint\-\_\-full} (void)}\label{utils_8h_ae8ae8a34962b9959be3f6c40f0a80ac1}
133
134 \begin{DoxyCompactList}\small\item\em Print structure constraint characters to stdout (full constraint support) \end{DoxyCompactList}\item 
135 void \hyperlink{utils_8h_a4d167deb70bb51723e44374dc981deb2}{print\-\_\-tty\-\_\-constraint} (unsigned int option)
136 \begin{DoxyCompactList}\small\item\em Print structure constraint characters to stdout. (constraint support is specified by option parameter) \end{DoxyCompactList}\item 
137 void \hyperlink{utils_8h_ad3f18dd83f958f18b2f26ecb99305208}{str\-\_\-\-D\-N\-A2\-R\-N\-A} (char $\ast$sequence)
138 \begin{DoxyCompactList}\small\item\em Convert a D\-N\-A input sequence to R\-N\-A alphabet. \end{DoxyCompactList}\item 
139 void \hyperlink{utils_8h_a17b796b806f96b70382077fb5bc519bb}{str\-\_\-uppercase} (char $\ast$sequence)
140 \begin{DoxyCompactList}\small\item\em Convert an input sequence to uppercase. \end{DoxyCompactList}\item 
141 int $\ast$ \hyperlink{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}{get\-\_\-iindx} (unsigned int length)
142 \begin{DoxyCompactList}\small\item\em Get an index mapper array (iindx) for accessing the energy matrices, e.\-g. in partition function related functions. \end{DoxyCompactList}\item 
143 int $\ast$ \hyperlink{utils_8h_a4d9ee1572c1bfcd02d3d3f2db8a6530f}{get\-\_\-indx} (unsigned int length)
144 \begin{DoxyCompactList}\small\item\em Get an index mapper array (indx) for accessing the energy matrices, e.\-g. in M\-F\-E related functions. \end{DoxyCompactList}\item 
145 void \hyperlink{utils_8h_a36c3a6c3218b041f992052767bc74549}{constrain\-\_\-ptypes} (const char $\ast$constraint, unsigned int length, char $\ast$ptype, int $\ast$B\-P, int min\-\_\-loop\-\_\-size, unsigned int idx\-\_\-type)
146 \begin{DoxyCompactList}\small\item\em Insert constraining pair types according to constraint structure string. \end{DoxyCompactList}\end{DoxyCompactItemize}
147 \subsection*{Variables}
148 \begin{DoxyCompactItemize}
149 \item 
150 unsigned short \hyperlink{utils_8h_af9a866c8417afda7368bbac939ab3c47}{xsubi} \mbox{[}3\mbox{]}
151 \begin{DoxyCompactList}\small\item\em Current 48 bit random number. \end{DoxyCompactList}\end{DoxyCompactItemize}
152
153
154 \subsection{Detailed Description}
155 Various utility-\/ and helper-\/functions used throughout the Vienna R\-N\-A package. 
156
157 \subsection{Macro Definition Documentation}
158 \hypertarget{utils_8h_ad403c9ea58f1836689404c2931419c8c}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}}
159 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}!utils.h@{utils.\-h}}
160 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R~1\-U}}\label{utils_8h_ad403c9ea58f1836689404c2931419c8c}
161 Output flag of \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-: \char`\"{}\-An E\-R\-R\-O\-R has occured, maybe E\-O\-F\char`\"{} \hypertarget{utils_8h_a72f3c6ca5c83d2b9baed2922d19c403d}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T}}
162 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T}!utils.h@{utils.\-h}}
163 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T~2\-U}}\label{utils_8h_a72f3c6ca5c83d2b9baed2922d19c403d}
164 Output flag of \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-: \char`\"{}the user requested quitting the program\char`\"{} \hypertarget{utils_8h_a8e3241b321c9c1a78a69e59e2e019a71}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C}}
165 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C}!utils.h@{utils.\-h}}
166 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C~4\-U}}\label{utils_8h_a8e3241b321c9c1a78a69e59e2e019a71}
167 Output flag of \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-: \char`\"{}something was read\char`\"{} \hypertarget{utils_8h_a2f0d8069e93d3ac54d9320d6bdb8e7e7}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R}}
168 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R}!utils.h@{utils.\-h}}
169 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R~8\-U}}\label{utils_8h_a2f0d8069e93d3ac54d9320d6bdb8e7e7}
170 Input/\-Output flag of \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-:\par
171  if used as input option this tells \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()} that the data to be read should comply with the F\-A\-S\-T\-A format
172
173 the function will return this flag if a fasta header was read \hypertarget{utils_8h_a8566d6787972100e68b5a2a159b4cf45}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-S\-E\-Q\-U\-E\-N\-C\-E@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-S\-E\-Q\-U\-E\-N\-C\-E}}
174 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-S\-E\-Q\-U\-E\-N\-C\-E@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-S\-E\-Q\-U\-E\-N\-C\-E}!utils.h@{utils.\-h}}
175 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-S\-E\-Q\-U\-E\-N\-C\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-S\-E\-Q\-U\-E\-N\-C\-E~16\-U}}\label{utils_8h_a8566d6787972100e68b5a2a159b4cf45}
176 Input flag for \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-:\par
177  Tell \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()} that we assume to read a nucleotide sequence \hypertarget{utils_8h_ac08a9df45b9721b97a47dbfe7a6e5f85}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T}}
178 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T}!utils.h@{utils.\-h}}
179 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T~32\-U}}\label{utils_8h_ac08a9df45b9721b97a47dbfe7a6e5f85}
180 Input flag for \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-:\par
181  Tell \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()} that we assume to read a structure constraint \hypertarget{utils_8h_a086742158293217a46ae2f71bb296937}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-T\-R\-U\-N\-C\-A\-T\-I\-O\-N@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-T\-R\-U\-N\-C\-A\-T\-I\-O\-N}}
182 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-T\-R\-U\-N\-C\-A\-T\-I\-O\-N@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-T\-R\-U\-N\-C\-A\-T\-I\-O\-N}!utils.h@{utils.\-h}}
183 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-T\-R\-U\-N\-C\-A\-T\-I\-O\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-T\-R\-U\-N\-C\-A\-T\-I\-O\-N~256\-U}}\label{utils_8h_a086742158293217a46ae2f71bb296937}
184 Input switch for \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-: \char`\"{}do not trunkate the line by eliminating white spaces at end of line\char`\"{} \hypertarget{utils_8h_a7a2e8c50a0c7ce82e60da1016e1367fd}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T}}
185 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T}!utils.h@{utils.\-h}}
186 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T~512\-U}}\label{utils_8h_a7a2e8c50a0c7ce82e60da1016e1367fd}
187 Input switch for \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()}\-: \char`\"{}do fill rest array\char`\"{} \hypertarget{utils_8h_a0de536599b881c787b0943a2671da476}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N}}
188 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N}!utils.h@{utils.\-h}}
189 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N~1024\-U}}\label{utils_8h_a0de536599b881c787b0943a2671da476}
190 Input switch for \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()}\-: \char`\"{}never allow data to span more than one line\char`\"{} \hypertarget{utils_8h_ab4db885222b3b69608310d7c7e63e286}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S}}
191 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S}!utils.h@{utils.\-h}}
192 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S~2048\-U}}\label{utils_8h_ab4db885222b3b69608310d7c7e63e286}
193 Input switch for \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()}\-: \char`\"{}do not skip empty lines\char`\"{} \hypertarget{utils_8h_a305474b93ccb79ae4c7754016a8ddd84}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E}}
194 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E}!utils.h@{utils.\-h}}
195 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E~4096\-U}}\label{utils_8h_a305474b93ccb79ae4c7754016a8ddd84}
196 Output flag for \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()}\-: \char`\"{}read an empty line\char`\"{} \hypertarget{utils_8h_a0f6311f11bed1842e3a527ab27b294c6}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S}}
197 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S}!utils.h@{utils.\-h}}
198 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S~128\-U}}\label{utils_8h_a0f6311f11bed1842e3a527ab27b294c6}
199 Input switch for \hyperlink{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{get\-\_\-input\-\_\-line()}\-: \char`\"{}do not skip comment lines\char`\"{} \hypertarget{utils_8h_af2062e0eeefffd3ed639af460b3d4fab}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T}}
200 \index{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T@{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T}!utils.h@{utils.\-h}}
201 \subsubsection[{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T~8192\-U}}\label{utils_8h_af2062e0eeefffd3ed639af460b3d4fab}
202 Output flag for \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()}\-: \char`\"{}read a comment\char`\"{} \hypertarget{utils_8h_a4e8d7120619b21df0309af425acbc9a2}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E}}
203 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E}!utils.h@{utils.\-h}}
204 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E~1\-U}}\label{utils_8h_a4e8d7120619b21df0309af425acbc9a2}
205 pipe sign '$|$' switch for structure constraints (paired with another base) \hypertarget{utils_8h_a55e1d16fd693ae9ec8e987b0750da804}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T}}
206 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T}!utils.h@{utils.\-h}}
207 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T~2\-U}}\label{utils_8h_a55e1d16fd693ae9ec8e987b0750da804}
208 dot '.' switch for structure constraints (no constraint at all) \hypertarget{utils_8h_a077c56550c915d4516d84a5ed8d051f4}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X}}
209 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X}!utils.h@{utils.\-h}}
210 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X~4\-U}}\label{utils_8h_a077c56550c915d4516d84a5ed8d051f4}
211 'x' switch for structure constraint (base must not pair) \hypertarget{utils_8h_a0512d790f738742cbdcf3f7c87b46f48}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K}}
212 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K}!utils.h@{utils.\-h}}
213 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K~8\-U}}\label{utils_8h_a0512d790f738742cbdcf3f7c87b46f48}
214 angle brackets '$<$', '$>$' switch for structure constraint (paired downstream/upstream) \hypertarget{utils_8h_aa20bfca4bb2903c8548000a33d7bbb53}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K}}
215 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K}!utils.h@{utils.\-h}}
216 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K~16\-U}}\label{utils_8h_aa20bfca4bb2903c8548000a33d7bbb53}
217 round brackets '(',')' switch for structure constraint (base i pairs base j) \hypertarget{utils_8h_a7d725ef525b29891abef3f1ed42599a4}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}}
218 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}!utils.h@{utils.\-h}}
219 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E~32\-U}}\label{utils_8h_a7d725ef525b29891abef3f1ed42599a4}
220 constraint may span over several lines \hypertarget{utils_8h_a08d12a9a846ea593b7171d277c9f033f}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-N\-O\-\_\-\-H\-E\-A\-D\-E\-R@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-N\-O\-\_\-\-H\-E\-A\-D\-E\-R}}
221 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-N\-O\-\_\-\-H\-E\-A\-D\-E\-R@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-N\-O\-\_\-\-H\-E\-A\-D\-E\-R}!utils.h@{utils.\-h}}
222 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-N\-O\-\_\-\-H\-E\-A\-D\-E\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-N\-O\-\_\-\-H\-E\-A\-D\-E\-R~64\-U}}\label{utils_8h_a08d12a9a846ea593b7171d277c9f033f}
223 do not print the header information line \hypertarget{utils_8h_a0a697f77a6fbb10f34e16fa68ed9e655}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-L\-L@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-L\-L}}
224 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-L\-L@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-L\-L}!utils.h@{utils.\-h}}
225 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-L\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-L\-L~128\-U}}\label{utils_8h_a0a697f77a6fbb10f34e16fa68ed9e655}
226 placeholder for all constraining characters \hypertarget{utils_8h_a99dc6b23dc4080a76e2ed1a81c20e94d}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G}}
227 \index{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G@{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G}!utils.h@{utils.\-h}}
228 \subsubsection[{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G~256\-U}}\label{utils_8h_a99dc6b23dc4080a76e2ed1a81c20e94d}
229 '+' switch for structure constraint (base is involved in a gquad) \hypertarget{utils_8h_abec89c09874528c6cb73140a4c3d86d7}{\index{utils.\-h@{utils.\-h}!V\-R\-N\-A\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E@{V\-R\-N\-A\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}}
230 \index{V\-R\-N\-A\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E@{V\-R\-N\-A\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}!utils.h@{utils.\-h}}
231 \subsubsection[{V\-R\-N\-A\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define V\-R\-N\-A\-\_\-\-O\-P\-T\-I\-O\-N\-\_\-\-M\-U\-L\-T\-I\-L\-I\-N\-E~32\-U}}\label{utils_8h_abec89c09874528c6cb73140a4c3d86d7}
232 Tell a function that an input is assumed to span several lines if used as input-\/option A function might also be returning this state telling that it has read data from multiple lines.
233
234 \begin{DoxySeeAlso}{See Also}
235 extract\-\_\-record\-\_\-rest\-\_\-structure(), \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()}, get\-Constraint() 
236 \end{DoxySeeAlso}
237 \hypertarget{utils_8h_ae0b9cd0ce090bd69b951aa73e8fa4f7d}{\index{utils.\-h@{utils.\-h}!M\-I\-N2@{M\-I\-N2}}
238 \index{M\-I\-N2@{M\-I\-N2}!utils.h@{utils.\-h}}
239 \subsubsection[{M\-I\-N2}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-I\-N2(
240 \begin{DoxyParamCaption}
241 \item[{}]{A, }
242 \item[{}]{B}
243 \end{DoxyParamCaption}
244 )~((A) $<$ (B) ? (A) \-: (B))}}\label{utils_8h_ae0b9cd0ce090bd69b951aa73e8fa4f7d}
245 Get the minimum of two comparable values \hypertarget{utils_8h_a33297b3679c713b0c4d897cd0fe3b122}{\index{utils.\-h@{utils.\-h}!M\-A\-X2@{M\-A\-X2}}
246 \index{M\-A\-X2@{M\-A\-X2}!utils.h@{utils.\-h}}
247 \subsubsection[{M\-A\-X2}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X2(
248 \begin{DoxyParamCaption}
249 \item[{}]{A, }
250 \item[{}]{B}
251 \end{DoxyParamCaption}
252 )~((A) $>$ (B) ? (A) \-: (B))}}\label{utils_8h_a33297b3679c713b0c4d897cd0fe3b122}
253 Get the maximum of two comparable values \hypertarget{utils_8h_a721b8d5f3abef17f10293f1f7f8c958e}{\index{utils.\-h@{utils.\-h}!M\-I\-N3@{M\-I\-N3}}
254 \index{M\-I\-N3@{M\-I\-N3}!utils.h@{utils.\-h}}
255 \subsubsection[{M\-I\-N3}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-I\-N3(
256 \begin{DoxyParamCaption}
257 \item[{}]{A, }
258 \item[{}]{B, }
259 \item[{}]{C}
260 \end{DoxyParamCaption}
261 )~({\bf M\-I\-N2}(  ({\bf M\-I\-N2}((A),(B))) ,(C)))}}\label{utils_8h_a721b8d5f3abef17f10293f1f7f8c958e}
262 Get the minimum of three comparable values \hypertarget{utils_8h_a8d577123d2e66d2b7d0bf9af6e172b93}{\index{utils.\-h@{utils.\-h}!M\-A\-X3@{M\-A\-X3}}
263 \index{M\-A\-X3@{M\-A\-X3}!utils.h@{utils.\-h}}
264 \subsubsection[{M\-A\-X3}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X3(
265 \begin{DoxyParamCaption}
266 \item[{}]{A, }
267 \item[{}]{B, }
268 \item[{}]{C}
269 \end{DoxyParamCaption}
270 )~({\bf M\-A\-X2}(  ({\bf M\-A\-X2}((A),(B))) ,(C)))}}\label{utils_8h_a8d577123d2e66d2b7d0bf9af6e172b93}
271 Get the maximum of three comparable values \hypertarget{utils_8h_a03943706e48069237cd57f2d35ca987e}{\index{utils.\-h@{utils.\-h}!X\-S\-T\-R@{X\-S\-T\-R}}
272 \index{X\-S\-T\-R@{X\-S\-T\-R}!utils.h@{utils.\-h}}
273 \subsubsection[{X\-S\-T\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define X\-S\-T\-R(
274 \begin{DoxyParamCaption}
275 \item[{}]{s}
276 \end{DoxyParamCaption}
277 )~{\bf S\-T\-R}(s)}}\label{utils_8h_a03943706e48069237cd57f2d35ca987e}
278 Stringify a macro after expansion \hypertarget{utils_8h_a6388870e639eee9c0a69446876f1f8cc}{\index{utils.\-h@{utils.\-h}!S\-T\-R@{S\-T\-R}}
279 \index{S\-T\-R@{S\-T\-R}!utils.h@{utils.\-h}}
280 \subsubsection[{S\-T\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define S\-T\-R(
281 \begin{DoxyParamCaption}
282 \item[{}]{s}
283 \end{DoxyParamCaption}
284 )~\#s}}\label{utils_8h_a6388870e639eee9c0a69446876f1f8cc}
285 Stringify a macro argument \hypertarget{utils_8h_afb228174279df9486a5cb56ac0bc79a3}{\index{utils.\-h@{utils.\-h}!F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H@{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H}}
286 \index{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H@{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H}!utils.h@{utils.\-h}}
287 \subsubsection[{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H}]{\setlength{\rightskip}{0pt plus 5cm}\#define F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H~80}}\label{utils_8h_afb228174279df9486a5cb56ac0bc79a3}
288
289
290 Maximum length of filenames that are generated by our programs. 
291
292 This definition should be used throughout the complete Vienna\-R\-N\-A package wherever a static array holding filenames of output files is declared. \hypertarget{utils_8h_a33c3b1826b8e2739f09f111ec719ded5}{\index{utils.\-h@{utils.\-h}!F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-I\-D\-\_\-\-L\-E\-N\-G\-T\-H@{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-I\-D\-\_\-\-L\-E\-N\-G\-T\-H}}
293 \index{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-I\-D\-\_\-\-L\-E\-N\-G\-T\-H@{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-I\-D\-\_\-\-L\-E\-N\-G\-T\-H}!utils.h@{utils.\-h}}
294 \subsubsection[{F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-I\-D\-\_\-\-L\-E\-N\-G\-T\-H}]{\setlength{\rightskip}{0pt plus 5cm}\#define F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-I\-D\-\_\-\-L\-E\-N\-G\-T\-H~42}}\label{utils_8h_a33c3b1826b8e2739f09f111ec719ded5}
295
296
297 Maximum length of id taken from fasta header for filename generation. 
298
299 this has to be smaller than F\-I\-L\-E\-N\-A\-M\-E\-\_\-\-M\-A\-X\-\_\-\-L\-E\-N\-G\-T\-H since in most cases, some suffix will be appended to the I\-D 
300
301 \subsection{Function Documentation}
302 \hypertarget{utils_8h_ad7e1e137b3bf1f7108933d302a7f0177}{\index{utils.\-h@{utils.\-h}!space@{space}}
303 \index{space@{space}!utils.h@{utils.\-h}}
304 \subsubsection[{space}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ space (
305 \begin{DoxyParamCaption}
306 \item[{unsigned}]{size}
307 \end{DoxyParamCaption}
308 )}}\label{utils_8h_ad7e1e137b3bf1f7108933d302a7f0177}
309
310
311 Allocate space safely. 
312
313
314 \begin{DoxyParams}{Parameters}
315 {\em size} & The size of the memory to be allocated in bytes \\
316 \hline
317 \end{DoxyParams}
318 \begin{DoxyReturn}{Returns}
319 A pointer to the allocated memory 
320 \end{DoxyReturn}
321 \hypertarget{utils_8h_a9037ada838835b1b9db41581a021b0c8}{\index{utils.\-h@{utils.\-h}!xrealloc@{xrealloc}}
322 \index{xrealloc@{xrealloc}!utils.h@{utils.\-h}}
323 \subsubsection[{xrealloc}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ xrealloc (
324 \begin{DoxyParamCaption}
325 \item[{void $\ast$}]{p, }
326 \item[{unsigned}]{size}
327 \end{DoxyParamCaption}
328 )}}\label{utils_8h_a9037ada838835b1b9db41581a021b0c8}
329
330
331 Reallocate space safely. 
332
333
334 \begin{DoxyParams}{Parameters}
335 {\em p} & A pointer to the memory region to be reallocated \\
336 \hline
337 {\em size} & The size of the memory to be allocated in bytes \\
338 \hline
339 \end{DoxyParams}
340 \begin{DoxyReturn}{Returns}
341 A pointer to the newly allocated memory 
342 \end{DoxyReturn}
343 \hypertarget{utils_8h_a127ce946e56b5a5773781cabe68e38c5}{\index{utils.\-h@{utils.\-h}!nrerror@{nrerror}}
344 \index{nrerror@{nrerror}!utils.h@{utils.\-h}}
345 \subsubsection[{nrerror}]{\setlength{\rightskip}{0pt plus 5cm}void nrerror (
346 \begin{DoxyParamCaption}
347 \item[{const char}]{message\mbox{[}$\,$\mbox{]}}
348 \end{DoxyParamCaption}
349 )}}\label{utils_8h_a127ce946e56b5a5773781cabe68e38c5}
350
351
352 Die with an error message. 
353
354 \begin{DoxySeeAlso}{See Also}
355 \hyperlink{utils_8h_af2355fa8746f2f30fbe71db65dea3d51}{warn\-\_\-user()} 
356 \end{DoxySeeAlso}
357
358 \begin{DoxyParams}{Parameters}
359 {\em message} & The error message to be printed before exiting with 'F\-A\-I\-L\-U\-R\-E' \\
360 \hline
361 \end{DoxyParams}
362 \hypertarget{utils_8h_af2355fa8746f2f30fbe71db65dea3d51}{\index{utils.\-h@{utils.\-h}!warn\-\_\-user@{warn\-\_\-user}}
363 \index{warn\-\_\-user@{warn\-\_\-user}!utils.h@{utils.\-h}}
364 \subsubsection[{warn\-\_\-user}]{\setlength{\rightskip}{0pt plus 5cm}void warn\-\_\-user (
365 \begin{DoxyParamCaption}
366 \item[{const char}]{message\mbox{[}$\,$\mbox{]}}
367 \end{DoxyParamCaption}
368 )}}\label{utils_8h_af2355fa8746f2f30fbe71db65dea3d51}
369
370
371 Print a warning message. 
372
373 Print a warning message to {\itshape stderr} 
374
375
376 \begin{DoxyParams}{Parameters}
377 {\em message} & The warning message \\
378 \hline
379 \end{DoxyParams}
380 \hypertarget{utils_8h_aaa328491c84996e445d027fde9800f2e}{\index{utils.\-h@{utils.\-h}!urn@{urn}}
381 \index{urn@{urn}!utils.h@{utils.\-h}}
382 \subsubsection[{urn}]{\setlength{\rightskip}{0pt plus 5cm}double urn (
383 \begin{DoxyParamCaption}
384 \item[{void}]{}
385 \end{DoxyParamCaption}
386 )}}\label{utils_8h_aaa328491c84996e445d027fde9800f2e}
387
388
389 get a random number from \mbox{[}0..1\mbox{]} 
390
391 \begin{DoxyNote}{Note}
392 Usually implemented by calling {\itshape erand48()}. 
393 \end{DoxyNote}
394 \begin{DoxyReturn}{Returns}
395 A random number in range \mbox{[}0..1\mbox{]} 
396 \end{DoxyReturn}
397 \hypertarget{utils_8h_a68ff0849d44f62fe491800378a5ffcb4}{\index{utils.\-h@{utils.\-h}!int\-\_\-urn@{int\-\_\-urn}}
398 \index{int\-\_\-urn@{int\-\_\-urn}!utils.h@{utils.\-h}}
399 \subsubsection[{int\-\_\-urn}]{\setlength{\rightskip}{0pt plus 5cm}int int\-\_\-urn (
400 \begin{DoxyParamCaption}
401 \item[{int}]{from, }
402 \item[{int}]{to}
403 \end{DoxyParamCaption}
404 )}}\label{utils_8h_a68ff0849d44f62fe491800378a5ffcb4}
405
406
407 Generates a pseudo random integer in a specified range. 
408
409
410 \begin{DoxyParams}{Parameters}
411 {\em from} & The first number in range \\
412 \hline
413 {\em to} & The last number in range \\
414 \hline
415 \end{DoxyParams}
416 \begin{DoxyReturn}{Returns}
417 A pseudo random number in range \mbox{[}from, to\mbox{]} 
418 \end{DoxyReturn}
419 \hypertarget{utils_8h_a7afeb906cb36e9d77379eabc6907ac46}{\index{utils.\-h@{utils.\-h}!time\-\_\-stamp@{time\-\_\-stamp}}
420 \index{time\-\_\-stamp@{time\-\_\-stamp}!utils.h@{utils.\-h}}
421 \subsubsection[{time\-\_\-stamp}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ time\-\_\-stamp (
422 \begin{DoxyParamCaption}
423 \item[{void}]{}
424 \end{DoxyParamCaption}
425 )}}\label{utils_8h_a7afeb906cb36e9d77379eabc6907ac46}
426
427
428 Get a timestamp. 
429
430 Returns a string containing the current date in the format \begin{DoxyVerb}Fri Mar 19 21:10:57 1993\end{DoxyVerb}
431
432
433 \begin{DoxyReturn}{Returns}
434 A string containing the timestamp 
435 \end{DoxyReturn}
436 \hypertarget{utils_8h_a1b95eac365a021572e1c37e5993a89be}{\index{utils.\-h@{utils.\-h}!random\-\_\-string@{random\-\_\-string}}
437 \index{random\-\_\-string@{random\-\_\-string}!utils.h@{utils.\-h}}
438 \subsubsection[{random\-\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ random\-\_\-string (
439 \begin{DoxyParamCaption}
440 \item[{int}]{l, }
441 \item[{const char}]{symbols\mbox{[}$\,$\mbox{]}}
442 \end{DoxyParamCaption}
443 )}}\label{utils_8h_a1b95eac365a021572e1c37e5993a89be}
444
445
446 Create a random string using characters from a specified symbol set. 
447
448
449 \begin{DoxyParams}{Parameters}
450 {\em l} & The length of the sequence \\
451 \hline
452 {\em symbols} & The symbol set \\
453 \hline
454 \end{DoxyParams}
455 \begin{DoxyReturn}{Returns}
456 A random string of length 'l' containing characters from the symbolset 
457 \end{DoxyReturn}
458 \hypertarget{utils_8h_ad9dc7bfc9aa664dc6698f17ce07fc7e7}{\index{utils.\-h@{utils.\-h}!hamming@{hamming}}
459 \index{hamming@{hamming}!utils.h@{utils.\-h}}
460 \subsubsection[{hamming}]{\setlength{\rightskip}{0pt plus 5cm}int hamming (
461 \begin{DoxyParamCaption}
462 \item[{const char $\ast$}]{s1, }
463 \item[{const char $\ast$}]{s2}
464 \end{DoxyParamCaption}
465 )}}\label{utils_8h_ad9dc7bfc9aa664dc6698f17ce07fc7e7}
466
467
468 Calculate hamming distance between two sequences. 
469
470 Calculate the number of positions in which 
471 \begin{DoxyParams}{Parameters}
472 {\em s1} & The first sequence \\
473 \hline
474 {\em s2} & The second sequence \\
475 \hline
476 \end{DoxyParams}
477 \begin{DoxyReturn}{Returns}
478 The hamming distance between s1 and s2 
479 \end{DoxyReturn}
480 \hypertarget{utils_8h_a96d3c36717d624514055ce201cab1542}{\index{utils.\-h@{utils.\-h}!hamming\-\_\-bound@{hamming\-\_\-bound}}
481 \index{hamming\-\_\-bound@{hamming\-\_\-bound}!utils.h@{utils.\-h}}
482 \subsubsection[{hamming\-\_\-bound}]{\setlength{\rightskip}{0pt plus 5cm}int hamming\-\_\-bound (
483 \begin{DoxyParamCaption}
484 \item[{const char $\ast$}]{s1, }
485 \item[{const char $\ast$}]{s2, }
486 \item[{int}]{n}
487 \end{DoxyParamCaption}
488 )}}\label{utils_8h_a96d3c36717d624514055ce201cab1542}
489
490
491 Calculate hamming distance between two sequences up to a specified length. 
492
493 This function is similar to \hyperlink{utils_8h_ad9dc7bfc9aa664dc6698f17ce07fc7e7}{hamming()} but instead of comparing both sequences up to their actual length only the first 'n' characters are taken into account 
494 \begin{DoxyParams}{Parameters}
495 {\em s1} & The first sequence \\
496 \hline
497 {\em s2} & The second sequence \\
498 \hline
499 \end{DoxyParams}
500 \begin{DoxyReturn}{Returns}
501 The hamming distance between s1 and s2 
502 \end{DoxyReturn}
503 \hypertarget{utils_8h_abe51806d14cff0789a8c1df7dbc45b71}{\index{utils.\-h@{utils.\-h}!get\-\_\-line@{get\-\_\-line}}
504 \index{get\-\_\-line@{get\-\_\-line}!utils.h@{utils.\-h}}
505 \subsubsection[{get\-\_\-line}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ get\-\_\-line (
506 \begin{DoxyParamCaption}
507 \item[{F\-I\-L\-E $\ast$}]{fp}
508 \end{DoxyParamCaption}
509 )}}\label{utils_8h_abe51806d14cff0789a8c1df7dbc45b71}
510
511
512 Read a line of arbitrary length from a stream. 
513
514 Returns a pointer to the resulting string. The necessary memory is allocated and should be released using {\itshape free()} when the string is no longer needed.
515
516
517 \begin{DoxyParams}{Parameters}
518 {\em fp} & A file pointer to the stream where the function should read from \\
519 \hline
520 \end{DoxyParams}
521 \begin{DoxyReturn}{Returns}
522 A pointer to the resulting string 
523 \end{DoxyReturn}
524 \hypertarget{utils_8h_a8ef1835eb83f542396f59f0b205965e5}{\index{utils.\-h@{utils.\-h}!get\-\_\-input\-\_\-line@{get\-\_\-input\-\_\-line}}
525 \index{get\-\_\-input\-\_\-line@{get\-\_\-input\-\_\-line}!utils.h@{utils.\-h}}
526 \subsubsection[{get\-\_\-input\-\_\-line}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int get\-\_\-input\-\_\-line (
527 \begin{DoxyParamCaption}
528 \item[{char $\ast$$\ast$}]{string, }
529 \item[{unsigned int}]{options}
530 \end{DoxyParamCaption}
531 )}}\label{utils_8h_a8ef1835eb83f542396f59f0b205965e5}
532 Retrieve a line from 'stdin' savely while skipping comment characters and other features This function returns the type of input it has read if recognized. An option argument allows to switch between different reading modes.\par
533  Currently available options are\-:\par
534  \#\-V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-P\-R\-I\-N\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S, \hyperlink{utils_8h_a0f6311f11bed1842e3a527ab27b294c6}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S}, \#\-V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-E\-L\-I\-M\-\_\-\-W\-S\-\_\-\-S\-U\-F\-F\-I\-X
535
536 pass a collection of options as one value like this\-: \begin{DoxyVerb}get_input_line(string, option_1 | option_2 | option_n) \end{DoxyVerb}
537
538
539 If the function recognizes the type of input, it will report it in the return value. It also reports if a user defined 'quit' command (@-\/sign on 'stdin') was given. Possible return values are\-:\par
540  \hyperlink{utils_8h_a2f0d8069e93d3ac54d9320d6bdb8e7e7}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-F\-A\-S\-T\-A\-\_\-\-H\-E\-A\-D\-E\-R}, \hyperlink{utils_8h_ad403c9ea58f1836689404c2931419c8c}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}, \hyperlink{utils_8h_a8e3241b321c9c1a78a69e59e2e019a71}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C}, \hyperlink{utils_8h_a72f3c6ca5c83d2b9baed2922d19c403d}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T}
541
542
543 \begin{DoxyParams}{Parameters}
544 {\em string} & A pointer to the character array that contains the line read \\
545 \hline
546 {\em options} & A collection of options for switching the functions behavior \\
547 \hline
548 \end{DoxyParams}
549 \begin{DoxyReturn}{Returns}
550 A flag with information about what has been read 
551 \end{DoxyReturn}
552 \hypertarget{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{\index{utils.\-h@{utils.\-h}!read\-\_\-record@{read\-\_\-record}}
553 \index{read\-\_\-record@{read\-\_\-record}!utils.h@{utils.\-h}}
554 \subsubsection[{read\-\_\-record}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int read\-\_\-record (
555 \begin{DoxyParamCaption}
556 \item[{char $\ast$$\ast$}]{header, }
557 \item[{char $\ast$$\ast$}]{sequence, }
558 \item[{char $\ast$$\ast$$\ast$}]{rest, }
559 \item[{unsigned int}]{options}
560 \end{DoxyParamCaption}
561 )}}\label{utils_8h_afd194a69af9d92b5b0412a7627ac1595}
562
563
564 Get a data record from stdin. 
565
566 \begin{DoxyVerb}This function may be used to obtain complete datasets from stdin. A dataset is always
567 defined to contain at least a sequence. If data on stdin starts with a fasta header,
568 i.e. a line like
569 \end{DoxyVerb}
570  \begin{DoxyVerb}>some header info \end{DoxyVerb}
571  then \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()} will assume that the sequence that follows the header may span over several lines. To disable this behavior and to assign a single line to the argument 'sequence' one can pass V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N in the 'options' argument. If no fasta header is read in the beginning of a data block, a sequence must not span over multiple lines!\par
572  Unless the options \hyperlink{utils_8h_a0f6311f11bed1842e3a527ab27b294c6}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-C\-O\-M\-M\-E\-N\-T\-S} or \hyperlink{utils_8h_ab4db885222b3b69608310d7c7e63e286}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-S\-K\-I\-P\-\_\-\-B\-L\-A\-N\-K\-\_\-\-L\-I\-N\-E\-S} are passed, a sequence may be interrupted by lines starting with a comment character or empty lines.\par
573  A sequence is regarded as completely read if it was either assumed to not span over multiple lines, a secondary structure or structure constraint follows the sequence on the next line or a new header marks the beginning of a new sequence...\par
574  All lines following the sequence (this includes comments) and not initiating a new dataset are available through the line-\/array 'rest'. Here one can usually find the structure constraint or other information belonging to the current dataset. Filling of 'rest' may be prevented by passing \hyperlink{utils_8h_a7a2e8c50a0c7ce82e60da1016e1367fd}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T} to the options argument.\par
575
576
577 \begin{DoxyNote}{Note}
578 This function will exit any program with an error message if no sequence could be read! \begin{DoxyVerb}The main purpose of this function is to be able to easily parse blocks of data from stdin
579 in the header of a loop where all calculations for the appropriate data is done inside the
580 loop. The loop may be then left on certain return values, e.g.:
581 \end{DoxyVerb}
582  \begin{DoxyVerb}char *id, *seq, **rest;
583 int  i;
584 while(!(read_record(&id, &seq, &rest, 0) & (VRNA_INPUT_ERROR | VRNA_INPUT_QUIT))){
585   if(id) printf("%s\n", id);
586   printf("%s\n", seq);
587   if(rest)
588     for(i=0;rest[i];i++)
589       printf("%s\n", rest[i]);
590 } \end{DoxyVerb}
591  \begin{DoxyVerb}In the example above, the while loop will be terminated when read_record() returns either an
592 error or a user initiated quit request.\n
593 As long as data is read from stdin, the id is printed if it is available for the current block
594 of data. The sequence will be printed in any case and if some more lines belong to the current
595 block of data each line will be printed as well.
596 \end{DoxyVerb}
597
598
599 Do not forget to free the memory occupied by header, sequence and rest!
600 \end{DoxyNote}
601
602 \begin{DoxyParams}{Parameters}
603 {\em header} & A pointer which will be set such that it points to the header of the record \\
604 \hline
605 {\em sequence} & A pointer which will be set such that it points to the sequence of the record \\
606 \hline
607 {\em rest} & A pointer which will be set such that it points to an array of lines which also belong to the record \\
608 \hline
609 {\em options} & Some options which may be passed to alter the behavior of the function, use 0 for no options \\
610 \hline
611 \end{DoxyParams}
612 \begin{DoxyReturn}{Returns}
613 A flag with information about what the function actually did read 
614 \end{DoxyReturn}
615 \hypertarget{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}{\index{utils.\-h@{utils.\-h}!pack\-\_\-structure@{pack\-\_\-structure}}
616 \index{pack\-\_\-structure@{pack\-\_\-structure}!utils.h@{utils.\-h}}
617 \subsubsection[{pack\-\_\-structure}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ pack\-\_\-structure (
618 \begin{DoxyParamCaption}
619 \item[{const char $\ast$}]{struc}
620 \end{DoxyParamCaption}
621 )}}\label{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}
622
623
624 Pack secondary secondary structure, 5\-:1 compression using base 3 encoding. 
625
626 Returns a binary string encoding of the secondary structure using a 5\-:1 compression scheme. The string is N\-U\-L\-L terminated and can therefore be used with standard string functions such as strcmp(). Useful for programs that need to keep many structures in memory.
627
628
629 \begin{DoxyParams}{Parameters}
630 {\em struc} & The secondary structure in dot-\/bracket notation \\
631 \hline
632 \end{DoxyParams}
633 \begin{DoxyReturn}{Returns}
634 The binary encoded structure 
635 \end{DoxyReturn}
636 \hypertarget{utils_8h_a071c6921efe1eb974f115ee6fefa3c39}{\index{utils.\-h@{utils.\-h}!unpack\-\_\-structure@{unpack\-\_\-structure}}
637 \index{unpack\-\_\-structure@{unpack\-\_\-structure}!utils.h@{utils.\-h}}
638 \subsubsection[{unpack\-\_\-structure}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ unpack\-\_\-structure (
639 \begin{DoxyParamCaption}
640 \item[{const char $\ast$}]{packed}
641 \end{DoxyParamCaption}
642 )}}\label{utils_8h_a071c6921efe1eb974f115ee6fefa3c39}
643
644
645 Unpack secondary structure previously packed with \hyperlink{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}{pack\-\_\-structure()} 
646
647 Translate a compressed binary string produced by \hyperlink{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}{pack\-\_\-structure()} back into the familiar dot-\/bracket notation.
648
649
650 \begin{DoxyParams}{Parameters}
651 {\em packed} & The binary encoded packed secondary structure \\
652 \hline
653 \end{DoxyParams}
654 \begin{DoxyReturn}{Returns}
655 The unpacked secondary structure in dot-\/bracket notation 
656 \end{DoxyReturn}
657 \hypertarget{utils_8h_a89c32307ee50a0026f4a3131fac0845a}{\index{utils.\-h@{utils.\-h}!make\-\_\-pair\-\_\-table@{make\-\_\-pair\-\_\-table}}
658 \index{make\-\_\-pair\-\_\-table@{make\-\_\-pair\-\_\-table}!utils.h@{utils.\-h}}
659 \subsubsection[{make\-\_\-pair\-\_\-table}]{\setlength{\rightskip}{0pt plus 5cm}short$\ast$ make\-\_\-pair\-\_\-table (
660 \begin{DoxyParamCaption}
661 \item[{const char $\ast$}]{structure}
662 \end{DoxyParamCaption}
663 )}}\label{utils_8h_a89c32307ee50a0026f4a3131fac0845a}
664
665
666 Create a pair table of a secondary structure. 
667
668 Returns a newly allocated table, such that table\mbox{[}i\mbox{]}=j if (i.\-j) pair or 0 if i is unpaired, table\mbox{[}0\mbox{]} contains the length of the structure.
669
670
671 \begin{DoxyParams}{Parameters}
672 {\em structure} & The secondary structure in dot-\/bracket notation \\
673 \hline
674 \end{DoxyParams}
675 \begin{DoxyReturn}{Returns}
676 A pointer to the created pair\-\_\-table 
677 \end{DoxyReturn}
678 \hypertarget{utils_8h_afeaa6d68eef3a99d0a7aa08aa91c6601}{\index{utils.\-h@{utils.\-h}!copy\-\_\-pair\-\_\-table@{copy\-\_\-pair\-\_\-table}}
679 \index{copy\-\_\-pair\-\_\-table@{copy\-\_\-pair\-\_\-table}!utils.h@{utils.\-h}}
680 \subsubsection[{copy\-\_\-pair\-\_\-table}]{\setlength{\rightskip}{0pt plus 5cm}short$\ast$ copy\-\_\-pair\-\_\-table (
681 \begin{DoxyParamCaption}
682 \item[{const short $\ast$}]{pt}
683 \end{DoxyParamCaption}
684 )}}\label{utils_8h_afeaa6d68eef3a99d0a7aa08aa91c6601}
685
686
687 Get an exact copy of a pair table. 
688
689
690 \begin{DoxyParams}{Parameters}
691 {\em pt} & The pair table to be copied \\
692 \hline
693 \end{DoxyParams}
694 \begin{DoxyReturn}{Returns}
695 A pointer to the copy of 'pt' 
696 \end{DoxyReturn}
697 \hypertarget{utils_8h_a3c81b3967056c3888b8472b65fbb16f5}{\index{utils.\-h@{utils.\-h}!alimake\-\_\-pair\-\_\-table@{alimake\-\_\-pair\-\_\-table}}
698 \index{alimake\-\_\-pair\-\_\-table@{alimake\-\_\-pair\-\_\-table}!utils.h@{utils.\-h}}
699 \subsubsection[{alimake\-\_\-pair\-\_\-table}]{\setlength{\rightskip}{0pt plus 5cm}short$\ast$ alimake\-\_\-pair\-\_\-table (
700 \begin{DoxyParamCaption}
701 \item[{const char $\ast$}]{structure}
702 \end{DoxyParamCaption}
703 )}}\label{utils_8h_a3c81b3967056c3888b8472b65fbb16f5}
704 $\ast$$\ast$$\ast$\-Pair table for snoop align \hypertarget{utils_8h_a9aa3bf3b4346bb7fb88efc154dd07a79}{\index{utils.\-h@{utils.\-h}!make\-\_\-pair\-\_\-table\-\_\-snoop@{make\-\_\-pair\-\_\-table\-\_\-snoop}}
705 \index{make\-\_\-pair\-\_\-table\-\_\-snoop@{make\-\_\-pair\-\_\-table\-\_\-snoop}!utils.h@{utils.\-h}}
706 \subsubsection[{make\-\_\-pair\-\_\-table\-\_\-snoop}]{\setlength{\rightskip}{0pt plus 5cm}short$\ast$ make\-\_\-pair\-\_\-table\-\_\-snoop (
707 \begin{DoxyParamCaption}
708 \item[{const char $\ast$}]{structure}
709 \end{DoxyParamCaption}
710 )}}\label{utils_8h_a9aa3bf3b4346bb7fb88efc154dd07a79}
711 returns a newly allocated table, such that\-: table\mbox{[}i\mbox{]}=j if (i.\-j) pair or 0 if i is unpaired, table\mbox{[}0\mbox{]} contains the length of the structure. The special pseudoknotted H/\-A\-C\-A-\/m\-R\-N\-A structure is taken into account. \hypertarget{utils_8h_a4358e89f64cc87a563b7ef3855f75bed}{\index{utils.\-h@{utils.\-h}!make\-\_\-loop\-\_\-index\-\_\-pt@{make\-\_\-loop\-\_\-index\-\_\-pt}}
712 \index{make\-\_\-loop\-\_\-index\-\_\-pt@{make\-\_\-loop\-\_\-index\-\_\-pt}!utils.h@{utils.\-h}}
713 \subsubsection[{make\-\_\-loop\-\_\-index\-\_\-pt}]{\setlength{\rightskip}{0pt plus 5cm}int$\ast$ make\-\_\-loop\-\_\-index\-\_\-pt (
714 \begin{DoxyParamCaption}
715 \item[{short $\ast$}]{pt}
716 \end{DoxyParamCaption}
717 )}}\label{utils_8h_a4358e89f64cc87a563b7ef3855f75bed}
718
719
720 Compute the \char`\"{}base pair\char`\"{} distance between two secondary structures s1 and s2. 
721
722 The sequences should have the same length. dist = number of base pairs in one structure but not in the other same as edit distance with open-\/pair close-\/pair as move-\/set
723
724
725 \begin{DoxyParams}{Parameters}
726 {\em str1} & First structure in dot-\/bracket notation \\
727 \hline
728 {\em str2} & Second structure in dot-\/bracket notation \\
729 \hline
730 \end{DoxyParams}
731 \begin{DoxyReturn}{Returns}
732 The base pair distance between str1 and str2 
733 \end{DoxyReturn}
734 \hypertarget{utils_8h_a6bf778117d31b7fd90db435323f4ef74}{\index{utils.\-h@{utils.\-h}!print\-\_\-tty\-\_\-input\-\_\-seq@{print\-\_\-tty\-\_\-input\-\_\-seq}}
735 \index{print\-\_\-tty\-\_\-input\-\_\-seq@{print\-\_\-tty\-\_\-input\-\_\-seq}!utils.h@{utils.\-h}}
736 \subsubsection[{print\-\_\-tty\-\_\-input\-\_\-seq}]{\setlength{\rightskip}{0pt plus 5cm}void print\-\_\-tty\-\_\-input\-\_\-seq (
737 \begin{DoxyParamCaption}
738 \item[{void}]{}
739 \end{DoxyParamCaption}
740 )}}\label{utils_8h_a6bf778117d31b7fd90db435323f4ef74}
741
742
743 Print a line to {\itshape stdout} that asks for an input sequence. 
744
745 There will also be a ruler (scale line) printed that helps orientation of the sequence positions \hypertarget{utils_8h_ae4ef89b662a3e9b5b5f0781d9757aba0}{\index{utils.\-h@{utils.\-h}!print\-\_\-tty\-\_\-input\-\_\-seq\-\_\-str@{print\-\_\-tty\-\_\-input\-\_\-seq\-\_\-str}}
746 \index{print\-\_\-tty\-\_\-input\-\_\-seq\-\_\-str@{print\-\_\-tty\-\_\-input\-\_\-seq\-\_\-str}!utils.h@{utils.\-h}}
747 \subsubsection[{print\-\_\-tty\-\_\-input\-\_\-seq\-\_\-str}]{\setlength{\rightskip}{0pt plus 5cm}void print\-\_\-tty\-\_\-input\-\_\-seq\-\_\-str (
748 \begin{DoxyParamCaption}
749 \item[{const char $\ast$}]{s}
750 \end{DoxyParamCaption}
751 )}}\label{utils_8h_ae4ef89b662a3e9b5b5f0781d9757aba0}
752
753
754 Print a line with a user defined string and a ruler to stdout. 
755
756 (usually this is used to ask for user input) There will also be a ruler (scale line) printed that helps orientation of the sequence positions
757
758
759 \begin{DoxyParams}{Parameters}
760 {\em s} & A user defined string that will be printed to stdout \\
761 \hline
762 \end{DoxyParams}
763 \hypertarget{utils_8h_a4d167deb70bb51723e44374dc981deb2}{\index{utils.\-h@{utils.\-h}!print\-\_\-tty\-\_\-constraint@{print\-\_\-tty\-\_\-constraint}}
764 \index{print\-\_\-tty\-\_\-constraint@{print\-\_\-tty\-\_\-constraint}!utils.h@{utils.\-h}}
765 \subsubsection[{print\-\_\-tty\-\_\-constraint}]{\setlength{\rightskip}{0pt plus 5cm}void print\-\_\-tty\-\_\-constraint (
766 \begin{DoxyParamCaption}
767 \item[{unsigned int}]{option}
768 \end{DoxyParamCaption}
769 )}}\label{utils_8h_a4d167deb70bb51723e44374dc981deb2}
770
771
772 Print structure constraint characters to stdout. (constraint support is specified by option parameter) 
773
774 Currently available options are\-:\par
775  \hyperlink{utils_8h_a4e8d7120619b21df0309af425acbc9a2}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-P\-I\-P\-E} (paired with another base)\par
776  \hyperlink{utils_8h_a55e1d16fd693ae9ec8e987b0750da804}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-D\-O\-T} (no constraint at all)\par
777  \hyperlink{utils_8h_a077c56550c915d4516d84a5ed8d051f4}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X} (base must not pair)\par
778  \hyperlink{utils_8h_a0512d790f738742cbdcf3f7c87b46f48}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-A\-N\-G\-\_\-\-B\-R\-A\-C\-K} (paired downstream/upstream)\par
779  \hyperlink{utils_8h_aa20bfca4bb2903c8548000a33d7bbb53}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-R\-N\-D\-\_\-\-B\-R\-A\-C\-K} (base i pairs base j)\par
780
781
782 pass a collection of options as one value like this\-: \begin{DoxyVerb}print_tty_constraint(option_1 | option_2 | option_n) \end{DoxyVerb}
783
784
785
786 \begin{DoxyParams}{Parameters}
787 {\em option} & Option switch that tells which constraint help will be printed \\
788 \hline
789 \end{DoxyParams}
790 \hypertarget{utils_8h_ad3f18dd83f958f18b2f26ecb99305208}{\index{utils.\-h@{utils.\-h}!str\-\_\-\-D\-N\-A2\-R\-N\-A@{str\-\_\-\-D\-N\-A2\-R\-N\-A}}
791 \index{str\-\_\-\-D\-N\-A2\-R\-N\-A@{str\-\_\-\-D\-N\-A2\-R\-N\-A}!utils.h@{utils.\-h}}
792 \subsubsection[{str\-\_\-\-D\-N\-A2\-R\-N\-A}]{\setlength{\rightskip}{0pt plus 5cm}void str\-\_\-\-D\-N\-A2\-R\-N\-A (
793 \begin{DoxyParamCaption}
794 \item[{char $\ast$}]{sequence}
795 \end{DoxyParamCaption}
796 )}}\label{utils_8h_ad3f18dd83f958f18b2f26ecb99305208}
797
798
799 Convert a D\-N\-A input sequence to R\-N\-A alphabet. 
800
801 This function substitudes {\itshape T} and {\itshape t} with {\itshape U} and {\itshape u}, respectively
802
803
804 \begin{DoxyParams}{Parameters}
805 {\em sequence} & The sequence to be converted \\
806 \hline
807 \end{DoxyParams}
808 \hypertarget{utils_8h_a17b796b806f96b70382077fb5bc519bb}{\index{utils.\-h@{utils.\-h}!str\-\_\-uppercase@{str\-\_\-uppercase}}
809 \index{str\-\_\-uppercase@{str\-\_\-uppercase}!utils.h@{utils.\-h}}
810 \subsubsection[{str\-\_\-uppercase}]{\setlength{\rightskip}{0pt plus 5cm}void str\-\_\-uppercase (
811 \begin{DoxyParamCaption}
812 \item[{char $\ast$}]{sequence}
813 \end{DoxyParamCaption}
814 )}}\label{utils_8h_a17b796b806f96b70382077fb5bc519bb}
815
816
817 Convert an input sequence to uppercase. 
818
819
820 \begin{DoxyParams}{Parameters}
821 {\em sequence} & The sequence to be converted \\
822 \hline
823 \end{DoxyParams}
824 \hypertarget{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}{\index{utils.\-h@{utils.\-h}!get\-\_\-iindx@{get\-\_\-iindx}}
825 \index{get\-\_\-iindx@{get\-\_\-iindx}!utils.h@{utils.\-h}}
826 \subsubsection[{get\-\_\-iindx}]{\setlength{\rightskip}{0pt plus 5cm}int$\ast$ get\-\_\-iindx (
827 \begin{DoxyParamCaption}
828 \item[{unsigned int}]{length}
829 \end{DoxyParamCaption}
830 )}}\label{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}
831
832
833 Get an index mapper array (iindx) for accessing the energy matrices, e.\-g. in partition function related functions. 
834
835 Access of a position \char`\"{}(i,j)\char`\"{} is then accomplished by using\begin{DoxyVerb}(i,j) ~ iindx[i]-j \end{DoxyVerb}
836  This function is necessary as most of the two-\/dimensional energy matrices are actually one-\/dimensional arrays throughout the Vienna\-R\-N\-A\-Package
837
838 Consult the implemented code to find out about the mapping formula ;)
839
840 \begin{DoxySeeAlso}{See Also}
841 \hyperlink{utils_8h_a4d9ee1572c1bfcd02d3d3f2db8a6530f}{get\-\_\-indx()} 
842 \end{DoxySeeAlso}
843
844 \begin{DoxyParams}{Parameters}
845 {\em length} & The length of the R\-N\-A sequence \\
846 \hline
847 \end{DoxyParams}
848 \begin{DoxyReturn}{Returns}
849 The mapper array 
850 \end{DoxyReturn}
851 \hypertarget{utils_8h_a4d9ee1572c1bfcd02d3d3f2db8a6530f}{\index{utils.\-h@{utils.\-h}!get\-\_\-indx@{get\-\_\-indx}}
852 \index{get\-\_\-indx@{get\-\_\-indx}!utils.h@{utils.\-h}}
853 \subsubsection[{get\-\_\-indx}]{\setlength{\rightskip}{0pt plus 5cm}int$\ast$ get\-\_\-indx (
854 \begin{DoxyParamCaption}
855 \item[{unsigned int}]{length}
856 \end{DoxyParamCaption}
857 )}}\label{utils_8h_a4d9ee1572c1bfcd02d3d3f2db8a6530f}
858
859
860 Get an index mapper array (indx) for accessing the energy matrices, e.\-g. in M\-F\-E related functions. 
861
862 Access of a position \char`\"{}(i,j)\char`\"{} is then accomplished by using\begin{DoxyVerb}(i,j) ~ indx[j]+i \end{DoxyVerb}
863  This function is necessary as most of the two-\/dimensional energy matrices are actually one-\/dimensional arrays throughout the Vienna\-R\-N\-A\-Package
864
865 Consult the implemented code to find out about the mapping formula ;)
866
867 \begin{DoxySeeAlso}{See Also}
868 \hyperlink{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}{get\-\_\-iindx()} 
869 \end{DoxySeeAlso}
870
871 \begin{DoxyParams}{Parameters}
872 {\em length} & The length of the R\-N\-A sequence \\
873 \hline
874 \end{DoxyParams}
875 \begin{DoxyReturn}{Returns}
876 The mapper array 
877 \end{DoxyReturn}
878 \hypertarget{utils_8h_a36c3a6c3218b041f992052767bc74549}{\index{utils.\-h@{utils.\-h}!constrain\-\_\-ptypes@{constrain\-\_\-ptypes}}
879 \index{constrain\-\_\-ptypes@{constrain\-\_\-ptypes}!utils.h@{utils.\-h}}
880 \subsubsection[{constrain\-\_\-ptypes}]{\setlength{\rightskip}{0pt plus 5cm}void constrain\-\_\-ptypes (
881 \begin{DoxyParamCaption}
882 \item[{const char $\ast$}]{constraint, }
883 \item[{unsigned int}]{length, }
884 \item[{char $\ast$}]{ptype, }
885 \item[{int $\ast$}]{B\-P, }
886 \item[{int}]{min\-\_\-loop\-\_\-size, }
887 \item[{unsigned int}]{idx\-\_\-type}
888 \end{DoxyParamCaption}
889 )}}\label{utils_8h_a36c3a6c3218b041f992052767bc74549}
890
891
892 Insert constraining pair types according to constraint structure string. 
893
894 \begin{DoxySeeAlso}{See Also}
895 \hyperlink{utils_8h_a4d9ee1572c1bfcd02d3d3f2db8a6530f}{get\-\_\-indx()}, \hyperlink{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}{get\-\_\-iindx()}
896 \end{DoxySeeAlso}
897
898 \begin{DoxyParams}{Parameters}
899 {\em constraint} & The structure constraint string \\
900 \hline
901 {\em length} & The actual length of the sequence (constraint may be shorter) \\
902 \hline
903 {\em ptype} & A pointer to the basepair type array \\
904 \hline
905 {\em min\-\_\-loop\-\_\-size} & The minimal loop size (usually \hyperlink{energy__const_8h_ae646250fd59311356c7e5722a81c3a96}{T\-U\-R\-N} ) \\
906 \hline
907 {\em idx\-\_\-type} & Define the access type for base pair type array (0 = indx, 1 = iindx) \\
908 \hline
909 \end{DoxyParams}
910
911
912 \subsection{Variable Documentation}
913 \hypertarget{utils_8h_af9a866c8417afda7368bbac939ab3c47}{\index{utils.\-h@{utils.\-h}!xsubi@{xsubi}}
914 \index{xsubi@{xsubi}!utils.h@{utils.\-h}}
915 \subsubsection[{xsubi}]{\setlength{\rightskip}{0pt plus 5cm}unsigned short xsubi\mbox{[}3\mbox{]}}}\label{utils_8h_af9a866c8417afda7368bbac939ab3c47}
916
917
918 Current 48 bit random number. 
919
920 This variable is used by \hyperlink{utils_8h_aaa328491c84996e445d027fde9800f2e}{urn()}. These should be set to some random number seeds before the first call to \hyperlink{utils_8h_aaa328491c84996e445d027fde9800f2e}{urn()}.
921
922 \begin{DoxySeeAlso}{See Also}
923 \hyperlink{utils_8h_aaa328491c84996e445d027fde9800f2e}{urn()} 
924 \end{DoxySeeAlso}