1 /** @file RNALalifold_cmdl.h
2  *  @brief The header file for the command line option parser
3  *  generated by GNU Gengetopt version 2.23
4  *  http://www.gnu.org/software/gengetopt.
5  *  DO NOT modify this file, since it can be overwritten
6  *  @author GNU Gengetopt */
7 
8 #ifndef RNALALIFOLD_CMDL_H
9 #define RNALALIFOLD_CMDL_H
10 
11 /* If we use autoconf.  */
12 #ifdef HAVE_CONFIG_H
13 #include "config.h"
14 #endif
15 
16 #include <stdio.h> /* for FILE */
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif /* __cplusplus */
21 
22 #ifndef RNALALIFOLD_CMDLINE_PARSER_PACKAGE
23 /** @brief the program name (used for printing errors) */
24 #define RNALALIFOLD_CMDLINE_PARSER_PACKAGE "RNALalifold"
25 #endif
26 
27 #ifndef RNALALIFOLD_CMDLINE_PARSER_PACKAGE_NAME
28 /** @brief the complete program name (used for help and version) */
29 #define RNALALIFOLD_CMDLINE_PARSER_PACKAGE_NAME "RNALalifold"
30 #endif
31 
32 #ifndef RNALALIFOLD_CMDLINE_PARSER_VERSION
33 /** @brief the program version */
34 #define RNALALIFOLD_CMDLINE_PARSER_VERSION VERSION
35 #endif
36 
37 /** @brief Where the command line options are stored */
38 struct RNALalifold_args_info
39 {
40   const char *help_help; /**< @brief Print help and exit help description.  */
41   const char *detailed_help_help; /**< @brief Print help, including all details and hidden options, and exit help description.  */
42   const char *full_help_help; /**< @brief Print help, including hidden options, and exit help description.  */
43   const char *version_help; /**< @brief Print version and exit help description.  */
44   int verbose_flag;	/**< @brief Be verbose.
45 
46  (default=off).  */
47   const char *verbose_help; /**< @brief Be verbose.
48 
49  help description.  */
50   int quiet_flag;	/**< @brief Be quiet.
51  (default=off).  */
52   const char *quiet_help; /**< @brief Be quiet.
53  help description.  */
54   int noconv_flag;	/**< @brief Do not automatically substitute nucleotide \"T\" with \"U\"
55 
56  (default=off).  */
57   const char *noconv_help; /**< @brief Do not automatically substitute nucleotide \"T\" with \"U\"
58 
59  help description.  */
60   char * input_format_arg;	/**< @brief File format of the input multiple sequence alignment (MSA).
61 .  */
62   char * input_format_orig;	/**< @brief File format of the input multiple sequence alignment (MSA).
63  original value given at command line.  */
64   const char *input_format_help; /**< @brief File format of the input multiple sequence alignment (MSA).
65  help description.  */
66   int csv_flag;	/**< @brief Create comma separated output (csv)
67 
68  (default=off).  */
69   const char *csv_help; /**< @brief Create comma separated output (csv)
70 
71  help description.  */
72   char * aln_arg;	/**< @brief Produce output alignments and secondary structure plots for each hit found.
73 .  */
74   char * aln_orig;	/**< @brief Produce output alignments and secondary structure plots for each hit found.
75  original value given at command line.  */
76   const char *aln_help; /**< @brief Produce output alignments and secondary structure plots for each hit found.
77  help description.  */
78   char * aln_EPS_arg;	/**< @brief Produce colored and structure annotated subalignment for each hit
79 .  */
80   char * aln_EPS_orig;	/**< @brief Produce colored and structure annotated subalignment for each hit
81  original value given at command line.  */
82   const char *aln_EPS_help; /**< @brief Produce colored and structure annotated subalignment for each hit
83  help description.  */
84   int aln_EPS_cols_arg;	/**< @brief Number of columns in colored EPS alignment output.
85  (default='60').  */
86   char * aln_EPS_cols_orig;	/**< @brief Number of columns in colored EPS alignment output.
87  original value given at command line.  */
88   const char *aln_EPS_cols_help; /**< @brief Number of columns in colored EPS alignment output.
89  help description.  */
90   char * aln_EPS_ss_arg;	/**< @brief Produce colored consensus secondary structure plots in PostScript format
91 .  */
92   char * aln_EPS_ss_orig;	/**< @brief Produce colored consensus secondary structure plots in PostScript format
93  original value given at command line.  */
94   const char *aln_EPS_ss_help; /**< @brief Produce colored consensus secondary structure plots in PostScript format
95  help description.  */
96   char * aln_stk_arg;	/**< @brief Add hits to a multi-Stockholm formatted output file.
97  (default='RNALalifold_results').  */
98   char * aln_stk_orig;	/**< @brief Add hits to a multi-Stockholm formatted output file.
99  original value given at command line.  */
100   const char *aln_stk_help; /**< @brief Add hits to a multi-Stockholm formatted output file.
101  help description.  */
102   int auto_id_flag;	/**< @brief Automatically generate an ID for each alignment.
103  (default=off).  */
104   const char *auto_id_help; /**< @brief Automatically generate an ID for each alignment.
105  help description.  */
106   char * id_prefix_arg;	/**< @brief Prefix for automatically generated IDs (as used in output file names)
107 
108  (default='alignment').  */
109   char * id_prefix_orig;	/**< @brief Prefix for automatically generated IDs (as used in output file names)
110 
111  original value given at command line.  */
112   const char *id_prefix_help; /**< @brief Prefix for automatically generated IDs (as used in output file names)
113 
114  help description.  */
115   char * id_delim_arg;	/**< @brief Change the delimiter between prefix and increasing number for automatically generated IDs (as used in output file names)
116 
117  (default='_').  */
118   char * id_delim_orig;	/**< @brief Change the delimiter between prefix and increasing number for automatically generated IDs (as used in output file names)
119 
120  original value given at command line.  */
121   const char *id_delim_help; /**< @brief Change the delimiter between prefix and increasing number for automatically generated IDs (as used in output file names)
122 
123  help description.  */
124   int id_digits_arg;	/**< @brief Specify the number of digits of the counter in automatically generated alignment IDs.
125  (default='4').  */
126   char * id_digits_orig;	/**< @brief Specify the number of digits of the counter in automatically generated alignment IDs.
127  original value given at command line.  */
128   const char *id_digits_help; /**< @brief Specify the number of digits of the counter in automatically generated alignment IDs.
129  help description.  */
130   long id_start_arg;	/**< @brief Specify the first number in automatically generated alignment IDs.
131  (default='1').  */
132   char * id_start_orig;	/**< @brief Specify the first number in automatically generated alignment IDs.
133  original value given at command line.  */
134   const char *id_start_help; /**< @brief Specify the first number in automatically generated alignment IDs.
135  help description.  */
136   char * filename_delim_arg;	/**< @brief Change the delimiting character that is used for sanitized filenames
137 
138  (default='ID-delimiter').  */
139   char * filename_delim_orig;	/**< @brief Change the delimiting character that is used for sanitized filenames
140 
141  original value given at command line.  */
142   const char *filename_delim_help; /**< @brief Change the delimiting character that is used for sanitized filenames
143 
144  help description.  */
145   int split_contributions_flag;	/**< @brief Split the free energy contributions into separate parts
146  (default=off).  */
147   const char *split_contributions_help; /**< @brief Split the free energy contributions into separate parts
148  help description.  */
149   char ** shape_arg;	/**< @brief Use SHAPE reactivity data to guide structure predictions
150 .  */
151   char ** shape_orig;	/**< @brief Use SHAPE reactivity data to guide structure predictions
152  original value given at command line.  */
153   unsigned int shape_min; /**< @brief Use SHAPE reactivity data to guide structure predictions
154 's minimum occurreces */
155   unsigned int shape_max; /**< @brief Use SHAPE reactivity data to guide structure predictions
156 's maximum occurreces */
157   const char *shape_help; /**< @brief Use SHAPE reactivity data to guide structure predictions
158  help description.  */
159   char * shapeMethod_arg;	/**< @brief Specify the method how to convert SHAPE reactivity data to pseudo energy contributions
160  (default='D').  */
161   char * shapeMethod_orig;	/**< @brief Specify the method how to convert SHAPE reactivity data to pseudo energy contributions
162  original value given at command line.  */
163   const char *shapeMethod_help; /**< @brief Specify the method how to convert SHAPE reactivity data to pseudo energy contributions
164  help description.  */
165   int maxBPspan_arg;	/**< @brief Set the maximum allowed separation of a base pair to span. I.e. no pairs (i,j) with j-i>span will be allowed.
166 
167  (default='70').  */
168   char * maxBPspan_orig;	/**< @brief Set the maximum allowed separation of a base pair to span. I.e. no pairs (i,j) with j-i>span will be allowed.
169 
170  original value given at command line.  */
171   const char *maxBPspan_help; /**< @brief Set the maximum allowed separation of a base pair to span. I.e. no pairs (i,j) with j-i>span will be allowed.
172 
173  help description.  */
174   double threshold_arg;	/**< @brief Energy threshold in kcal/mol per nucleotide above which secondary structure hits are omitted in the output.
175 
176  (default='-0.1').  */
177   char * threshold_orig;	/**< @brief Energy threshold in kcal/mol per nucleotide above which secondary structure hits are omitted in the output.
178 
179  original value given at command line.  */
180   const char *threshold_help; /**< @brief Energy threshold in kcal/mol per nucleotide above which secondary structure hits are omitted in the output.
181 
182  help description.  */
183   int mis_flag;	/**< @brief Output \"most informative sequence\" instead of simple consensus: For each column of the alignment output the set of nucleotides with frequency greater than average in IUPAC notation.
184 
185  (default=off).  */
186   const char *mis_help; /**< @brief Output \"most informative sequence\" instead of simple consensus: For each column of the alignment output the set of nucleotides with frequency greater than average in IUPAC notation.
187 
188  help description.  */
189   int gquad_flag;	/**< @brief Incoorporate G-Quadruplex formation into the structure prediction algorithm
190 
191  (default=off).  */
192   const char *gquad_help; /**< @brief Incoorporate G-Quadruplex formation into the structure prediction algorithm
193 
194  help description.  */
195   double temp_arg;	/**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C.
196 
197 .  */
198   char * temp_orig;	/**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C.
199 
200  original value given at command line.  */
201   const char *temp_help; /**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C.
202 
203  help description.  */
204   int noTetra_flag;	/**< @brief Do not include special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins. Mostly for testing.
205 
206  (default=off).  */
207   const char *noTetra_help; /**< @brief Do not include special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins. Mostly for testing.
208 
209  help description.  */
210   int dangles_arg;	/**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops
211  (default='2').  */
212   char * dangles_orig;	/**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops
213  original value given at command line.  */
214   const char *dangles_help; /**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops
215  help description.  */
216   int noLP_flag;	/**< @brief Produce structures without lonely pairs (helices of length 1).
217  (default=off).  */
218   const char *noLP_help; /**< @brief Produce structures without lonely pairs (helices of length 1).
219  help description.  */
220   int noGU_flag;	/**< @brief Do not allow GU pairs
221 
222  (default=off).  */
223   const char *noGU_help; /**< @brief Do not allow GU pairs
224 
225  help description.  */
226   int noClosingGU_flag;	/**< @brief Do not allow GU pairs at the end of helices
227 
228  (default=off).  */
229   const char *noClosingGU_help; /**< @brief Do not allow GU pairs at the end of helices
230 
231  help description.  */
232   char * paramFile_arg;	/**< @brief Read energy parameters from paramfile, instead of using the default parameter set.
233 .  */
234   char * paramFile_orig;	/**< @brief Read energy parameters from paramfile, instead of using the default parameter set.
235  original value given at command line.  */
236   const char *paramFile_help; /**< @brief Read energy parameters from paramfile, instead of using the default parameter set.
237  help description.  */
238   char * nsp_arg;	/**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs.
239 .  */
240   char * nsp_orig;	/**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs.
241  original value given at command line.  */
242   const char *nsp_help; /**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs.
243  help description.  */
244   int energyModel_arg;	/**< @brief Rarely used option to fold sequences from the artificial ABCD... alphabet, where A pairs B, C-D etc.  Use the energy parameters for GC (-e 1) or AU (-e 2) pairs.
245 
246 .  */
247   char * energyModel_orig;	/**< @brief Rarely used option to fold sequences from the artificial ABCD... alphabet, where A pairs B, C-D etc.  Use the energy parameters for GC (-e 1) or AU (-e 2) pairs.
248 
249  original value given at command line.  */
250   const char *energyModel_help; /**< @brief Rarely used option to fold sequences from the artificial ABCD... alphabet, where A pairs B, C-D etc.  Use the energy parameters for GC (-e 1) or AU (-e 2) pairs.
251 
252  help description.  */
253   double cfactor_arg;	/**< @brief Set the weight of the covariance term in the energy function
254 
255  (default='1.0').  */
256   char * cfactor_orig;	/**< @brief Set the weight of the covariance term in the energy function
257 
258  original value given at command line.  */
259   const char *cfactor_help; /**< @brief Set the weight of the covariance term in the energy function
260 
261  help description.  */
262   double nfactor_arg;	/**< @brief Set the penalty for non-compatible sequences in the covariance term of the energy function
263 
264  (default='1.0').  */
265   char * nfactor_orig;	/**< @brief Set the penalty for non-compatible sequences in the covariance term of the energy function
266 
267  original value given at command line.  */
268   const char *nfactor_help; /**< @brief Set the penalty for non-compatible sequences in the covariance term of the energy function
269 
270  help description.  */
271   char * ribosum_file_arg;	/**< @brief use specified Ribosum Matrix instead of normal energy model. Matrixes to use should be 6x6 matrices, the order of the terms is AU, CG, GC, GU, UA, UG.
272 
273 .  */
274   char * ribosum_file_orig;	/**< @brief use specified Ribosum Matrix instead of normal energy model. Matrixes to use should be 6x6 matrices, the order of the terms is AU, CG, GC, GU, UA, UG.
275 
276  original value given at command line.  */
277   const char *ribosum_file_help; /**< @brief use specified Ribosum Matrix instead of normal energy model. Matrixes to use should be 6x6 matrices, the order of the terms is AU, CG, GC, GU, UA, UG.
278 
279  help description.  */
280   int ribosum_scoring_flag;	/**< @brief use ribosum scoring matrix. The matrix is chosen according to the minimal and maximal pairwise identities of the sequences in the file.
281 
282  (default=off).  */
283   const char *ribosum_scoring_help; /**< @brief use ribosum scoring matrix. The matrix is chosen according to the minimal and maximal pairwise identities of the sequences in the file.
284 
285  help description.  */
286 
287   unsigned int help_given ;	/**< @brief Whether help was given.  */
288   unsigned int detailed_help_given ;	/**< @brief Whether detailed-help was given.  */
289   unsigned int full_help_given ;	/**< @brief Whether full-help was given.  */
290   unsigned int version_given ;	/**< @brief Whether version was given.  */
291   unsigned int verbose_given ;	/**< @brief Whether verbose was given.  */
292   unsigned int quiet_given ;	/**< @brief Whether quiet was given.  */
293   unsigned int noconv_given ;	/**< @brief Whether noconv was given.  */
294   unsigned int input_format_given ;	/**< @brief Whether input-format was given.  */
295   unsigned int csv_given ;	/**< @brief Whether csv was given.  */
296   unsigned int aln_given ;	/**< @brief Whether aln was given.  */
297   unsigned int aln_EPS_given ;	/**< @brief Whether aln-EPS was given.  */
298   unsigned int aln_EPS_cols_given ;	/**< @brief Whether aln-EPS-cols was given.  */
299   unsigned int aln_EPS_ss_given ;	/**< @brief Whether aln-EPS-ss was given.  */
300   unsigned int aln_stk_given ;	/**< @brief Whether aln-stk was given.  */
301   unsigned int auto_id_given ;	/**< @brief Whether auto-id was given.  */
302   unsigned int id_prefix_given ;	/**< @brief Whether id-prefix was given.  */
303   unsigned int id_delim_given ;	/**< @brief Whether id-delim was given.  */
304   unsigned int id_digits_given ;	/**< @brief Whether id-digits was given.  */
305   unsigned int id_start_given ;	/**< @brief Whether id-start was given.  */
306   unsigned int filename_delim_given ;	/**< @brief Whether filename-delim was given.  */
307   unsigned int split_contributions_given ;	/**< @brief Whether split-contributions was given.  */
308   unsigned int shape_given ;	/**< @brief Whether shape was given.  */
309   unsigned int shapeMethod_given ;	/**< @brief Whether shapeMethod was given.  */
310   unsigned int maxBPspan_given ;	/**< @brief Whether maxBPspan was given.  */
311   unsigned int threshold_given ;	/**< @brief Whether threshold was given.  */
312   unsigned int mis_given ;	/**< @brief Whether mis was given.  */
313   unsigned int gquad_given ;	/**< @brief Whether gquad was given.  */
314   unsigned int temp_given ;	/**< @brief Whether temp was given.  */
315   unsigned int noTetra_given ;	/**< @brief Whether noTetra was given.  */
316   unsigned int dangles_given ;	/**< @brief Whether dangles was given.  */
317   unsigned int noLP_given ;	/**< @brief Whether noLP was given.  */
318   unsigned int noGU_given ;	/**< @brief Whether noGU was given.  */
319   unsigned int noClosingGU_given ;	/**< @brief Whether noClosingGU was given.  */
320   unsigned int paramFile_given ;	/**< @brief Whether paramFile was given.  */
321   unsigned int nsp_given ;	/**< @brief Whether nsp was given.  */
322   unsigned int energyModel_given ;	/**< @brief Whether energyModel was given.  */
323   unsigned int cfactor_given ;	/**< @brief Whether cfactor was given.  */
324   unsigned int nfactor_given ;	/**< @brief Whether nfactor was given.  */
325   unsigned int ribosum_file_given ;	/**< @brief Whether ribosum_file was given.  */
326   unsigned int ribosum_scoring_given ;	/**< @brief Whether ribosum_scoring was given.  */
327 
328   char **inputs ; /**< @brief unnamed options (options without names) */
329   unsigned inputs_num ; /**< @brief unnamed options number */
330 } ;
331 
332 /** @brief The additional parameters to pass to parser functions */
333 struct RNALalifold_cmdline_parser_params
334 {
335   int override; /**< @brief whether to override possibly already present options (default 0) */
336   int initialize; /**< @brief whether to initialize the option structure RNALalifold_args_info (default 1) */
337   int check_required; /**< @brief whether to check that all required options were provided (default 1) */
338   int check_ambiguity; /**< @brief whether to check for options already specified in the option structure RNALalifold_args_info (default 0) */
339   int print_errors; /**< @brief whether getopt_long should print an error message for a bad option (default 1) */
340 } ;
341 
342 /** @brief the purpose string of the program */
343 extern const char *RNALalifold_args_info_purpose;
344 /** @brief the usage string of the program */
345 extern const char *RNALalifold_args_info_usage;
346 /** @brief the description string of the program */
347 extern const char *RNALalifold_args_info_description;
348 /** @brief all the lines making the help output */
349 extern const char *RNALalifold_args_info_help[];
350 /** @brief all the lines making the full help output (including hidden options) */
351 extern const char *RNALalifold_args_info_full_help[];
352 /** @brief all the lines making the detailed help output (including hidden options and details) */
353 extern const char *RNALalifold_args_info_detailed_help[];
354 
355 /**
356  * The command line parser
357  * @param argc the number of command line options
358  * @param argv the command line options
359  * @param args_info the structure where option information will be stored
360  * @return 0 if everything went fine, NON 0 if an error took place
361  */
362 int RNALalifold_cmdline_parser (int argc, char **argv,
363   struct RNALalifold_args_info *args_info);
364 
365 /**
366  * The command line parser (version with additional parameters - deprecated)
367  * @param argc the number of command line options
368  * @param argv the command line options
369  * @param args_info the structure where option information will be stored
370  * @param override whether to override possibly already present options
371  * @param initialize whether to initialize the option structure my_args_info
372  * @param check_required whether to check that all required options were provided
373  * @return 0 if everything went fine, NON 0 if an error took place
374  * @deprecated use RNALalifold_cmdline_parser_ext() instead
375  */
376 int RNALalifold_cmdline_parser2 (int argc, char **argv,
377   struct RNALalifold_args_info *args_info,
378   int override, int initialize, int check_required);
379 
380 /**
381  * The command line parser (version with additional parameters)
382  * @param argc the number of command line options
383  * @param argv the command line options
384  * @param args_info the structure where option information will be stored
385  * @param params additional parameters for the parser
386  * @return 0 if everything went fine, NON 0 if an error took place
387  */
388 int RNALalifold_cmdline_parser_ext (int argc, char **argv,
389   struct RNALalifold_args_info *args_info,
390   struct RNALalifold_cmdline_parser_params *params);
391 
392 /**
393  * Save the contents of the option struct into an already open FILE stream.
394  * @param outfile the stream where to dump options
395  * @param args_info the option struct to dump
396  * @return 0 if everything went fine, NON 0 if an error took place
397  */
398 int RNALalifold_cmdline_parser_dump(FILE *outfile,
399   struct RNALalifold_args_info *args_info);
400 
401 /**
402  * Save the contents of the option struct into a (text) file.
403  * This file can be read by the config file parser (if generated by gengetopt)
404  * @param filename the file where to save
405  * @param args_info the option struct to save
406  * @return 0 if everything went fine, NON 0 if an error took place
407  */
408 int RNALalifold_cmdline_parser_file_save(const char *filename,
409   struct RNALalifold_args_info *args_info);
410 
411 /**
412  * Print the help
413  */
414 void RNALalifold_cmdline_parser_print_help(void);
415 /**
416  * Print the full help (including hidden options)
417  */
418 void RNALalifold_cmdline_parser_print_full_help(void);
419 /**
420  * Print the detailed help (including hidden options and details)
421  */
422 void RNALalifold_cmdline_parser_print_detailed_help(void);
423 /**
424  * Print the version
425  */
426 void RNALalifold_cmdline_parser_print_version(void);
427 
428 /**
429  * Initializes all the fields a RNALalifold_cmdline_parser_params structure
430  * to their default values
431  * @param params the structure to initialize
432  */
433 void RNALalifold_cmdline_parser_params_init(struct RNALalifold_cmdline_parser_params *params);
434 
435 /**
436  * Allocates dynamically a RNALalifold_cmdline_parser_params structure and initializes
437  * all its fields to their default values
438  * @return the created and initialized RNALalifold_cmdline_parser_params structure
439  */
440 struct RNALalifold_cmdline_parser_params *RNALalifold_cmdline_parser_params_create(void);
441 
442 /**
443  * Initializes the passed RNALalifold_args_info structure's fields
444  * (also set default values for options that have a default)
445  * @param args_info the structure to initialize
446  */
447 void RNALalifold_cmdline_parser_init (struct RNALalifold_args_info *args_info);
448 /**
449  * Deallocates the string fields of the RNALalifold_args_info structure
450  * (but does not deallocate the structure itself)
451  * @param args_info the structure to deallocate
452  */
453 void RNALalifold_cmdline_parser_free (struct RNALalifold_args_info *args_info);
454 
455 /**
456  * Checks that all the required options were specified
457  * @param args_info the structure to check
458  * @param prog_name the name of the program that will be used to print
459  *   possible errors
460  * @return
461  */
462 int RNALalifold_cmdline_parser_required (struct RNALalifold_args_info *args_info,
463   const char *prog_name);
464 
465 
466 #ifdef __cplusplus
467 }
468 #endif /* __cplusplus */
469 #endif /* RNALALIFOLD_CMDL_H */
470