1 /** @file RNAduplex_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 RNADUPLEX_CMDL_H 9 #define RNADUPLEX_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 RNADUPLEX_CMDLINE_PARSER_PACKAGE 23 /** @brief the program name (used for printing errors) */ 24 #define RNADUPLEX_CMDLINE_PARSER_PACKAGE "RNAduplex" 25 #endif 26 27 #ifndef RNADUPLEX_CMDLINE_PARSER_PACKAGE_NAME 28 /** @brief the complete program name (used for help and version) */ 29 #define RNADUPLEX_CMDLINE_PARSER_PACKAGE_NAME "RNAduplex" 30 #endif 31 32 #ifndef RNADUPLEX_CMDLINE_PARSER_VERSION 33 /** @brief the program version */ 34 #define RNADUPLEX_CMDLINE_PARSER_VERSION VERSION 35 #endif 36 37 /** @brief Where the command line options are stored */ 38 struct RNAduplex_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 sorted_flag; /**< @brief sort the printed output by free energy 45 46 (default=off). */ 47 const char *sorted_help; /**< @brief sort the printed output by free energy 48 49 help description. */ 50 int noconv_flag; /**< @brief Do not automatically substitude nucleotide \"T\" with \"U\" 51 52 (default=off). */ 53 const char *noconv_help; /**< @brief Do not automatically substitude nucleotide \"T\" with \"U\" 54 55 help description. */ 56 float deltaEnergy_arg; /**< @brief Compute suboptimal structures with energy in a certain range of the optimum (kcal/mol). Default is calculation of mfe structure only. 57 58 . */ 59 char * deltaEnergy_orig; /**< @brief Compute suboptimal structures with energy in a certain range of the optimum (kcal/mol). Default is calculation of mfe structure only. 60 61 original value given at command line. */ 62 const char *deltaEnergy_help; /**< @brief Compute suboptimal structures with energy in a certain range of the optimum (kcal/mol). Default is calculation of mfe structure only. 63 64 help description. */ 65 double temp_arg; /**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C. 66 67 . */ 68 char * temp_orig; /**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C. 69 70 original value given at command line. */ 71 const char *temp_help; /**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C. 72 73 help description. */ 74 int noTetra_flag; /**< @brief Do not include special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins. Mostly for testing. 75 76 (default=off). */ 77 const char *noTetra_help; /**< @brief Do not include special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins. Mostly for testing. 78 79 help description. */ 80 int dangles_arg; /**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops 81 (default='2'). */ 82 char * dangles_orig; /**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops 83 original value given at command line. */ 84 const char *dangles_help; /**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops 85 help description. */ 86 int noLP_flag; /**< @brief Produce structures without lonely pairs (helices of length 1). 87 (default=off). */ 88 const char *noLP_help; /**< @brief Produce structures without lonely pairs (helices of length 1). 89 help description. */ 90 int noGU_flag; /**< @brief Do not allow GU pairs 91 92 (default=off). */ 93 const char *noGU_help; /**< @brief Do not allow GU pairs 94 95 help description. */ 96 int noClosingGU_flag; /**< @brief Do not allow GU pairs at the end of helices 97 98 (default=off). */ 99 const char *noClosingGU_help; /**< @brief Do not allow GU pairs at the end of helices 100 101 help description. */ 102 char * paramFile_arg; /**< @brief Read energy parameters from paramfile, instead of using the default parameter set. 103 . */ 104 char * paramFile_orig; /**< @brief Read energy parameters from paramfile, instead of using the default parameter set. 105 original value given at command line. */ 106 const char *paramFile_help; /**< @brief Read energy parameters from paramfile, instead of using the default parameter set. 107 help description. */ 108 char * nsp_arg; /**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs. 109 . */ 110 char * nsp_orig; /**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs. 111 original value given at command line. */ 112 const char *nsp_help; /**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs. 113 help description. */ 114 115 unsigned int help_given ; /**< @brief Whether help was given. */ 116 unsigned int detailed_help_given ; /**< @brief Whether detailed-help was given. */ 117 unsigned int full_help_given ; /**< @brief Whether full-help was given. */ 118 unsigned int version_given ; /**< @brief Whether version was given. */ 119 unsigned int sorted_given ; /**< @brief Whether sorted was given. */ 120 unsigned int noconv_given ; /**< @brief Whether noconv was given. */ 121 unsigned int deltaEnergy_given ; /**< @brief Whether deltaEnergy was given. */ 122 unsigned int temp_given ; /**< @brief Whether temp was given. */ 123 unsigned int noTetra_given ; /**< @brief Whether noTetra was given. */ 124 unsigned int dangles_given ; /**< @brief Whether dangles was given. */ 125 unsigned int noLP_given ; /**< @brief Whether noLP was given. */ 126 unsigned int noGU_given ; /**< @brief Whether noGU was given. */ 127 unsigned int noClosingGU_given ; /**< @brief Whether noClosingGU was given. */ 128 unsigned int paramFile_given ; /**< @brief Whether paramFile was given. */ 129 unsigned int nsp_given ; /**< @brief Whether nsp was given. */ 130 131 } ; 132 133 /** @brief The additional parameters to pass to parser functions */ 134 struct RNAduplex_cmdline_parser_params 135 { 136 int override; /**< @brief whether to override possibly already present options (default 0) */ 137 int initialize; /**< @brief whether to initialize the option structure RNAduplex_args_info (default 1) */ 138 int check_required; /**< @brief whether to check that all required options were provided (default 1) */ 139 int check_ambiguity; /**< @brief whether to check for options already specified in the option structure RNAduplex_args_info (default 0) */ 140 int print_errors; /**< @brief whether getopt_long should print an error message for a bad option (default 1) */ 141 } ; 142 143 /** @brief the purpose string of the program */ 144 extern const char *RNAduplex_args_info_purpose; 145 /** @brief the usage string of the program */ 146 extern const char *RNAduplex_args_info_usage; 147 /** @brief the description string of the program */ 148 extern const char *RNAduplex_args_info_description; 149 /** @brief all the lines making the help output */ 150 extern const char *RNAduplex_args_info_help[]; 151 /** @brief all the lines making the full help output (including hidden options) */ 152 extern const char *RNAduplex_args_info_full_help[]; 153 /** @brief all the lines making the detailed help output (including hidden options and details) */ 154 extern const char *RNAduplex_args_info_detailed_help[]; 155 156 /** 157 * The command line parser 158 * @param argc the number of command line options 159 * @param argv the command line options 160 * @param args_info the structure where option information will be stored 161 * @return 0 if everything went fine, NON 0 if an error took place 162 */ 163 int RNAduplex_cmdline_parser (int argc, char **argv, 164 struct RNAduplex_args_info *args_info); 165 166 /** 167 * The command line parser (version with additional parameters - deprecated) 168 * @param argc the number of command line options 169 * @param argv the command line options 170 * @param args_info the structure where option information will be stored 171 * @param override whether to override possibly already present options 172 * @param initialize whether to initialize the option structure my_args_info 173 * @param check_required whether to check that all required options were provided 174 * @return 0 if everything went fine, NON 0 if an error took place 175 * @deprecated use RNAduplex_cmdline_parser_ext() instead 176 */ 177 int RNAduplex_cmdline_parser2 (int argc, char **argv, 178 struct RNAduplex_args_info *args_info, 179 int override, int initialize, int check_required); 180 181 /** 182 * The command line parser (version with additional parameters) 183 * @param argc the number of command line options 184 * @param argv the command line options 185 * @param args_info the structure where option information will be stored 186 * @param params additional parameters for the parser 187 * @return 0 if everything went fine, NON 0 if an error took place 188 */ 189 int RNAduplex_cmdline_parser_ext (int argc, char **argv, 190 struct RNAduplex_args_info *args_info, 191 struct RNAduplex_cmdline_parser_params *params); 192 193 /** 194 * Save the contents of the option struct into an already open FILE stream. 195 * @param outfile the stream where to dump options 196 * @param args_info the option struct to dump 197 * @return 0 if everything went fine, NON 0 if an error took place 198 */ 199 int RNAduplex_cmdline_parser_dump(FILE *outfile, 200 struct RNAduplex_args_info *args_info); 201 202 /** 203 * Save the contents of the option struct into a (text) file. 204 * This file can be read by the config file parser (if generated by gengetopt) 205 * @param filename the file where to save 206 * @param args_info the option struct to save 207 * @return 0 if everything went fine, NON 0 if an error took place 208 */ 209 int RNAduplex_cmdline_parser_file_save(const char *filename, 210 struct RNAduplex_args_info *args_info); 211 212 /** 213 * Print the help 214 */ 215 void RNAduplex_cmdline_parser_print_help(void); 216 /** 217 * Print the full help (including hidden options) 218 */ 219 void RNAduplex_cmdline_parser_print_full_help(void); 220 /** 221 * Print the detailed help (including hidden options and details) 222 */ 223 void RNAduplex_cmdline_parser_print_detailed_help(void); 224 /** 225 * Print the version 226 */ 227 void RNAduplex_cmdline_parser_print_version(void); 228 229 /** 230 * Initializes all the fields a RNAduplex_cmdline_parser_params structure 231 * to their default values 232 * @param params the structure to initialize 233 */ 234 void RNAduplex_cmdline_parser_params_init(struct RNAduplex_cmdline_parser_params *params); 235 236 /** 237 * Allocates dynamically a RNAduplex_cmdline_parser_params structure and initializes 238 * all its fields to their default values 239 * @return the created and initialized RNAduplex_cmdline_parser_params structure 240 */ 241 struct RNAduplex_cmdline_parser_params *RNAduplex_cmdline_parser_params_create(void); 242 243 /** 244 * Initializes the passed RNAduplex_args_info structure's fields 245 * (also set default values for options that have a default) 246 * @param args_info the structure to initialize 247 */ 248 void RNAduplex_cmdline_parser_init (struct RNAduplex_args_info *args_info); 249 /** 250 * Deallocates the string fields of the RNAduplex_args_info structure 251 * (but does not deallocate the structure itself) 252 * @param args_info the structure to deallocate 253 */ 254 void RNAduplex_cmdline_parser_free (struct RNAduplex_args_info *args_info); 255 256 /** 257 * Checks that all the required options were specified 258 * @param args_info the structure to check 259 * @param prog_name the name of the program that will be used to print 260 * possible errors 261 * @return 262 */ 263 int RNAduplex_cmdline_parser_required (struct RNAduplex_args_info *args_info, 264 const char *prog_name); 265 266 267 #ifdef __cplusplus 268 } 269 #endif /* __cplusplus */ 270 #endif /* RNADUPLEX_CMDL_H */ 271