1 #ifndef ARGS_H
2 #define ARGS_H
3 #include <stdio.h>
4 #include <getopt.h>
5 #include "pear.h"
6 
7 /** @file args.h
8     @brief Header file for command-line arguments
9 
10     Header file containing the data structure that is used for storing the
11     user-defined command-line arguments */
12 
13 /** @brief User-defined arguments data structure
14   *
15   * Contains all values of optional and mandatory arguments entered
16   * by the user when executing PAIR. It also contains default values
17   * for the parameters that were not specified.
18   */
19 struct user_args
20  {
21    char       * fastq_left;   /**< @brief Forward pairend FASTQ filename */
22    char       * fastq_right;  /**< @brief Reverse pairend FASTQ filename */
23    int          min_asm_len;  /**< @brief Minimum assembly length threshold */
24    int          max_asm_len;  /**< @brief Maximum assembly length threshold */
25    int          qual_thres;   /**< @brief Quality score threshold */
26    int          score_method; /**< @brief Scoring method to use */
27    int          min_overlap;  /**< @brief Minimum overlap threshold */
28    int          phred_base;   /**< @brief Base Phred quality score, i.e. 33 or 64 */
29    double       max_uncalled; /**< @brief Maximum proportion of uncalled bases (N) */
30    int          emp_freqs;    /**< @brief Flag whether to compute/use empirical base frequencies */
31    double       p_value;      /**< @brief P-value to use */
32    double       geom_mean;    /**< @brief Geometric mean */
33    int          test;         /**< @brief Test method */
34    char       * outfile;      /**< @brief Output filename to use */
35    int          min_trim_len; /**< @brief Minimum trim length */
36    size_t       memory;       /**< @brief Amount of memory to be used */
37    int          threads;      /**< @brief Number of threads to use */
38    int          cap;          /**< @brief Quality score cap value */
39    int          nbase;        /**< @brief When merging, use N if one of the two bases is degenerate */
40  };
41 
42 void usage (void);
43 int decode_switches (int argc, char * argv[], struct user_args * sw);
44 #endif
45