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}}
6 Various utility-\/ and helper-\/functions used throughout the Vienna R\-N\-A package.
9 This graph shows which files directly or indirectly include this file\-:
14 \includegraphics[width=250pt]{utils_8h__dep__incl}
18 \begin{DoxyCompactItemize}
20 \#define \hyperlink{utils_8h_ad403c9ea58f1836689404c2931419c8c}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}~1\-U
22 \#define \hyperlink{utils_8h_a72f3c6ca5c83d2b9baed2922d19c403d}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-Q\-U\-I\-T}~2\-U
24 \#define \hyperlink{utils_8h_a8e3241b321c9c1a78a69e59e2e019a71}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-M\-I\-S\-C}~4\-U
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
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
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
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
34 \#define \hyperlink{utils_8h_a7a2e8c50a0c7ce82e60da1016e1367fd}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-R\-E\-S\-T}~512\-U
36 \#define \hyperlink{utils_8h_a0de536599b881c787b0943a2671da476}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-\_\-\-S\-P\-A\-N}~1024\-U
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
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
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
44 \#define \hyperlink{utils_8h_af2062e0eeefffd3ed639af460b3d4fab}{V\-R\-N\-A\-\_\-\-I\-N\-P\-U\-T\-\_\-\-C\-O\-M\-M\-E\-N\-T}~8192\-U
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
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
50 \#define \hyperlink{utils_8h_a077c56550c915d4516d84a5ed8d051f4}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-X}~4\-U
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
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
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
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
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
62 \#define \hyperlink{utils_8h_a99dc6b23dc4080a76e2ed1a81c20e94d}{V\-R\-N\-A\-\_\-\-C\-O\-N\-S\-T\-R\-A\-I\-N\-T\-\_\-\-G}~256\-U
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
66 \#define \hyperlink{utils_8h_ae0b9cd0ce090bd69b951aa73e8fa4f7d}{M\-I\-N2}(A, B)~((A) $<$ (B) ? (A) \-: (B))
68 \#define \hyperlink{utils_8h_a33297b3679c713b0c4d897cd0fe3b122}{M\-A\-X2}(A, B)~((A) $>$ (B) ? (A) \-: (B))
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)))
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)))
74 \#define \hyperlink{utils_8h_a03943706e48069237cd57f2d35ca987e}{X\-S\-T\-R}(s)~\hyperlink{utils_8h_a6388870e639eee9c0a69446876f1f8cc}{S\-T\-R}(s)
76 \#define \hyperlink{utils_8h_a6388870e639eee9c0a69446876f1f8cc}{S\-T\-R}(s)~\#s
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}
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}
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)
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)
124 short $\ast$ \hyperlink{utils_8h_a9aa3bf3b4346bb7fb88efc154dd07a79}{make\-\_\-pair\-\_\-table\-\_\-snoop} (const char $\ast$structure)
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}
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}
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}
154 \subsection{Detailed Description}
155 Various utility-\/ and helper-\/functions used throughout the Vienna R\-N\-A package.
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
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.
234 \begin{DoxySeeAlso}{See Also}
235 extract\-\_\-record\-\_\-rest\-\_\-structure(), \hyperlink{utils_8h_afd194a69af9d92b5b0412a7627ac1595}{read\-\_\-record()}, get\-Constraint()
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}
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}
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}
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}
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}
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}
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}
290 Maximum length of filenames that are generated by our programs.
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}
297 Maximum length of id taken from fasta header for filename generation.
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
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}
311 Allocate space safely.
314 \begin{DoxyParams}{Parameters}
315 {\em size} & The size of the memory to be allocated in bytes \\
318 \begin{DoxyReturn}{Returns}
319 A pointer to the allocated memory
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}
331 Reallocate space safely.
334 \begin{DoxyParams}{Parameters}
335 {\em p} & A pointer to the memory region to be reallocated \\
337 {\em size} & The size of the memory to be allocated in bytes \\
340 \begin{DoxyReturn}{Returns}
341 A pointer to the newly allocated memory
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}
352 Die with an error message.
354 \begin{DoxySeeAlso}{See Also}
355 \hyperlink{utils_8h_af2355fa8746f2f30fbe71db65dea3d51}{warn\-\_\-user()}
358 \begin{DoxyParams}{Parameters}
359 {\em message} & The error message to be printed before exiting with 'F\-A\-I\-L\-U\-R\-E' \\
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}
371 Print a warning message.
373 Print a warning message to {\itshape stderr}
376 \begin{DoxyParams}{Parameters}
377 {\em message} & The warning message \\
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}
385 \end{DoxyParamCaption}
386 )}}\label{utils_8h_aaa328491c84996e445d027fde9800f2e}
389 get a random number from \mbox{[}0..1\mbox{]}
391 \begin{DoxyNote}{Note}
392 Usually implemented by calling {\itshape erand48()}.
394 \begin{DoxyReturn}{Returns}
395 A random number in range \mbox{[}0..1\mbox{]}
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}
403 \end{DoxyParamCaption}
404 )}}\label{utils_8h_a68ff0849d44f62fe491800378a5ffcb4}
407 Generates a pseudo random integer in a specified range.
410 \begin{DoxyParams}{Parameters}
411 {\em from} & The first number in range \\
413 {\em to} & The last number in range \\
416 \begin{DoxyReturn}{Returns}
417 A pseudo random number in range \mbox{[}from, to\mbox{]}
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}
424 \end{DoxyParamCaption}
425 )}}\label{utils_8h_a7afeb906cb36e9d77379eabc6907ac46}
430 Returns a string containing the current date in the format \begin{DoxyVerb}Fri Mar 19 21:10:57 1993\end{DoxyVerb}
433 \begin{DoxyReturn}{Returns}
434 A string containing the timestamp
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}
441 \item[{const char}]{symbols\mbox{[}$\,$\mbox{]}}
442 \end{DoxyParamCaption}
443 )}}\label{utils_8h_a1b95eac365a021572e1c37e5993a89be}
446 Create a random string using characters from a specified symbol set.
449 \begin{DoxyParams}{Parameters}
450 {\em l} & The length of the sequence \\
452 {\em symbols} & The symbol set \\
455 \begin{DoxyReturn}{Returns}
456 A random string of length 'l' containing characters from the symbolset
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}
468 Calculate hamming distance between two sequences.
470 Calculate the number of positions in which
471 \begin{DoxyParams}{Parameters}
472 {\em s1} & The first sequence \\
474 {\em s2} & The second sequence \\
477 \begin{DoxyReturn}{Returns}
478 The hamming distance between s1 and s2
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, }
487 \end{DoxyParamCaption}
488 )}}\label{utils_8h_a96d3c36717d624514055ce201cab1542}
491 Calculate hamming distance between two sequences up to a specified length.
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 \\
497 {\em s2} & The second sequence \\
500 \begin{DoxyReturn}{Returns}
501 The hamming distance between s1 and s2
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}
512 Read a line of arbitrary length from a stream.
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.
517 \begin{DoxyParams}{Parameters}
518 {\em fp} & A file pointer to the stream where the function should read from \\
521 \begin{DoxyReturn}{Returns}
522 A pointer to the resulting string
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
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}
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}
543 \begin{DoxyParams}{Parameters}
544 {\em string} & A pointer to the character array that contains the line read \\
546 {\em options} & A collection of options for switching the functions behavior \\
549 \begin{DoxyReturn}{Returns}
550 A flag with information about what has been read
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}
564 Get a data record from stdin.
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,
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
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.:
582 \begin{DoxyVerb}char *id, *seq, **rest;
584 while(!(read_record(&id, &seq, &rest, 0) & (VRNA_INPUT_ERROR | VRNA_INPUT_QUIT))){
585 if(id) printf("%s\n", id);
589 printf("%s\n", rest[i]);
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.
599 Do not forget to free the memory occupied by header, sequence and rest!
602 \begin{DoxyParams}{Parameters}
603 {\em header} & A pointer which will be set such that it points to the header of the record \\
605 {\em sequence} & A pointer which will be set such that it points to the sequence of the record \\
607 {\em rest} & A pointer which will be set such that it points to an array of lines which also belong to the record \\
609 {\em options} & Some options which may be passed to alter the behavior of the function, use 0 for no options \\
612 \begin{DoxyReturn}{Returns}
613 A flag with information about what the function actually did read
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}
624 Pack secondary secondary structure, 5\-:1 compression using base 3 encoding.
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.
629 \begin{DoxyParams}{Parameters}
630 {\em struc} & The secondary structure in dot-\/bracket notation \\
633 \begin{DoxyReturn}{Returns}
634 The binary encoded structure
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}
645 Unpack secondary structure previously packed with \hyperlink{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}{pack\-\_\-structure()}
647 Translate a compressed binary string produced by \hyperlink{utils_8h_ac6dfa5e22928c087c6e09ff0054a7ced}{pack\-\_\-structure()} back into the familiar dot-\/bracket notation.
650 \begin{DoxyParams}{Parameters}
651 {\em packed} & The binary encoded packed secondary structure \\
654 \begin{DoxyReturn}{Returns}
655 The unpacked secondary structure in dot-\/bracket notation
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}
666 Create a pair table of a secondary structure.
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.
671 \begin{DoxyParams}{Parameters}
672 {\em structure} & The secondary structure in dot-\/bracket notation \\
675 \begin{DoxyReturn}{Returns}
676 A pointer to the created pair\-\_\-table
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}
687 Get an exact copy of a pair table.
690 \begin{DoxyParams}{Parameters}
691 {\em pt} & The pair table to be copied \\
694 \begin{DoxyReturn}{Returns}
695 A pointer to the copy of 'pt'
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}
720 Compute the \char`\"{}base pair\char`\"{} distance between two secondary structures s1 and s2.
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
725 \begin{DoxyParams}{Parameters}
726 {\em str1} & First structure in dot-\/bracket notation \\
728 {\em str2} & Second structure in dot-\/bracket notation \\
731 \begin{DoxyReturn}{Returns}
732 The base pair distance between str1 and str2
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}
739 \end{DoxyParamCaption}
740 )}}\label{utils_8h_a6bf778117d31b7fd90db435323f4ef74}
743 Print a line to {\itshape stdout} that asks for an input sequence.
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}
754 Print a line with a user defined string and a ruler to stdout.
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
759 \begin{DoxyParams}{Parameters}
760 {\em s} & A user defined string that will be printed to stdout \\
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}
772 Print structure constraint characters to stdout. (constraint support is specified by option parameter)
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
782 pass a collection of options as one value like this\-: \begin{DoxyVerb}print_tty_constraint(option_1 | option_2 | option_n) \end{DoxyVerb}
786 \begin{DoxyParams}{Parameters}
787 {\em option} & Option switch that tells which constraint help will be printed \\
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}
799 Convert a D\-N\-A input sequence to R\-N\-A alphabet.
801 This function substitudes {\itshape T} and {\itshape t} with {\itshape U} and {\itshape u}, respectively
804 \begin{DoxyParams}{Parameters}
805 {\em sequence} & The sequence to be converted \\
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}
817 Convert an input sequence to uppercase.
820 \begin{DoxyParams}{Parameters}
821 {\em sequence} & The sequence to be converted \\
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}
833 Get an index mapper array (iindx) for accessing the energy matrices, e.\-g. in partition function related functions.
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
838 Consult the implemented code to find out about the mapping formula ;)
840 \begin{DoxySeeAlso}{See Also}
841 \hyperlink{utils_8h_a4d9ee1572c1bfcd02d3d3f2db8a6530f}{get\-\_\-indx()}
844 \begin{DoxyParams}{Parameters}
845 {\em length} & The length of the R\-N\-A sequence \\
848 \begin{DoxyReturn}{Returns}
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}
860 Get an index mapper array (indx) for accessing the energy matrices, e.\-g. in M\-F\-E related functions.
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
865 Consult the implemented code to find out about the mapping formula ;)
867 \begin{DoxySeeAlso}{See Also}
868 \hyperlink{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}{get\-\_\-iindx()}
871 \begin{DoxyParams}{Parameters}
872 {\em length} & The length of the R\-N\-A sequence \\
875 \begin{DoxyReturn}{Returns}
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}
892 Insert constraining pair types according to constraint structure string.
894 \begin{DoxySeeAlso}{See Also}
895 \hyperlink{utils_8h_a4d9ee1572c1bfcd02d3d3f2db8a6530f}{get\-\_\-indx()}, \hyperlink{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}{get\-\_\-iindx()}
898 \begin{DoxyParams}{Parameters}
899 {\em constraint} & The structure constraint string \\
901 {\em length} & The actual length of the sequence (constraint may be shorter) \\
903 {\em ptype} & A pointer to the basepair type array \\
905 {\em min\-\_\-loop\-\_\-size} & The minimal loop size (usually \hyperlink{energy__const_8h_ae646250fd59311356c7e5722a81c3a96}{T\-U\-R\-N} ) \\
907 {\em idx\-\_\-type} & Define the access type for base pair type array (0 = indx, 1 = iindx) \\
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}
918 Current 48 bit random number.
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()}.
922 \begin{DoxySeeAlso}{See Also}
923 \hyperlink{utils_8h_aaa328491c84996e445d027fde9800f2e}{urn()}