1 /*
2  * njdist.h
3  *
4  * $Id$
5  *
6  *****************************************************************************
7  *
8  * Copyright (c) 2004,  Luke Sheneman
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  *
15  *  + Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions and the following disclaimer.
17  *  + Redistributions in binary form must reproduce the above copyright
18  *    notice, this list of conditions and the following disclaimer in
19  *    the documentation and/or other materials provided with the
20  *    distribution.
21  *  + The names of its contributors may not be used to endorse or promote
22  *    products derived  from this software without specific prior
23  *    written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35  * POSSIBILITY OF SUCH DAMAGE.
36  *
37  *****************************************************************************
38  *
39  * AUTHOR:
40  *
41  *   Luke Sheneman
42  *   sheneman@cs.uidaho.edu
43  *
44  */
45 
46 
47 #ifndef _INC_NJ_CMDARGS_H_
48 #define _INC_NJ_CMDARGS_H_ 1
49 
50 #include "clearcut.h"
51 
52 
53 /* some datatypes */
54 typedef struct _STRUCT_NJ_ARGS {
55 
56   char *infilename;   /* the name of the input file                  */
57   char *outfilename;  /* the name of the output tree                 */
58   char *matrixout;    /* the name of the distance matrix output file */
59 
60   int input_mode;
61   int aligned_flag;
62 
63   int verbose_flag;
64   int quiet_flag;
65 
66   int stdin_flag;
67   int stdout_flag;
68 
69   int help;
70   int version;
71 
72   int norandom;
73   int shuffle;
74 
75   int dna_flag;
76   int protein_flag;
77 
78   int seed;
79 
80   /* correction models for distance */
81   int correction_model;
82   int jukes_flag;
83   int kimura_flag;
84 
85   /* flag for using traditional neighbor-joining */
86   int neighbor;
87 
88   /* number of trees to output */
89   int ntrees;
90 
91   /* exponential notation output */
92   int expblen;  /* exp notation for tree branch lengths */
93   int expdist;  /* exp notation for distances in matrix output */
94 
95 } NJ_ARGS;
96 
97 
98 
99 /* some function prototypes */
100 
101 NJ_ARGS *
102 NJ_handle_args(int argc,
103 	       char *argv[]);
104 
105 void
106 NJ_print_args(NJ_ARGS *nj_args);
107 
108 void
109 NJ_usage(void);
110 
111 
112 #endif /* _INC_NJ_CMDARGS_H_ */
113 
114