]> git.donarmstrong.com Git - mothur.git/blob - helpcommand.cpp
changed name of distance command to dist.seqs
[mothur.git] / helpcommand.cpp
1 /*
2  *  helpcommand.cpp
3  *  Dotur
4  *
5  *  Created by Sarah Westcott on 1/2/09.
6  *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
7  *
8  */
9
10 #include "helpcommand.h"
11
12 //**********************************************************************************************************************
13
14 HelpCommand::HelpCommand(){
15         globaldata = GlobalData::getInstance();
16         validCommands = new ValidCommands();
17         validCalcs = new ValidCalculators();
18 }
19
20 //**********************************************************************************************************************
21
22 HelpCommand::~HelpCommand(){}
23
24 //**********************************************************************************************************************
25
26 int HelpCommand::execute(){
27
28         if (globaldata->helpRequest == "read.dist") {
29                 cout << "The read.dist command parameter options are phylip or column, group, name, cutoff and precision" << "\n";
30                 cout << "The read.dist command must be run before using the cluster or libshuff commands" << "\n";
31                 cout << "The read.dist command can be used in two ways.  The first is to read a phylip or column and run the cluster command" << "\n";
32                 cout << "For this use the read.dist command should be in the following format: " << "\n";
33                 cout << "read.dist(phylip=yourDistFile, name=yourNameFile, cutoff=yourCutoff, precision=yourPrecision) " << "\n";
34                 cout << "The phylip or column parameter is required, but only one may be used.  If you use a column file the name filename is required. " << "\n";
35                 cout << "If you do not provide a cutoff value 10.00 is assumed. If you do not provide a precision value then 100 is assumed." << "\n";
36                 cout << "The second way to use the read.dist command is to read a phylip or column and a group, so you can use the libshuff command." << "\n";
37                 cout << "For this use the read.dist command should be in the following format: " << "\n";
38                 cout << "read.dist(phylip=yourPhylipfile, group=yourGroupFile). The cutoff and precision parameters are not valid with this use.  " << "\n";
39                 cout << "Note: No spaces between parameter labels (i.e. phylip), '=' and parameters (i.e.yourPhylipfile)." << "\n" << "\n";
40         }else if (globaldata->helpRequest == "read.otu") {
41                 cout << "The read.otu command must be run before you execute a collect.single, rarefaction.single, summary.single, " << "\n";
42                 cout << "collect.shared, rarefaction.shared or summary.shared command.   Mothur will generate a .list, .rabund and .sabund upon completion of the cluster command " << "\n";
43                 cout << "or you may use your own. The read.otu command parameter options are list, rabund, sabund, shared, group, order, line and label." << "\n";
44                 cout << "The read.otu command can be used in two ways.  The first is to read a list, rabund or sabund and run the collect.single, rarefaction.single or summary.single." << "\n";
45                 cout << "For this use the read.otu command should be in the following format: read.otu(list=yourListFile, order=yourOrderFile, label=yourLabels)." << "\n";
46                 cout << "The list, rabund or sabund parameter is required, but you may only use one of them." << "\n";
47                 cout << "The line and label parameters are optional but you may not use both the line and label parameters at the same time." << "\n";
48                 cout << "The label and line parameters are used to read specific lines in your input." << "\n";
49                 cout << "The second way to use the read.otu command is to read a list and a group, or a shared so you can use the collect.shared, rarefaction.shared or summary.shared commands." << "\n";
50                 cout << "In this case the read.otu command should be in the following format: read.otu(list=yourListFile, group=yourGroupFile, line=yourLines) or read.otu(shared=yourSharedFile).  " << "\n";
51                 cout << "The list parameter and group paramaters or the shared paremeter is required. When using the command the second way with a list and group file read.otu command parses the .list file" << "\n";
52                 cout << "and separates it into groups.  It outputs a .shared file containing the OTU information for each group. The read.otu command also outputs a .list file for each group. " << "\n";
53                 cout << "Note: No spaces between parameter labels (i.e. list), '=' and parameters (i.e.yourListfile)." << "\n" << "\n";
54         }else if (globaldata->helpRequest == "read.tree") {
55                 cout << "The read.tree command must be run before you execute a unifrac.weighted, unifrac.unweighted. " << "\n";
56                 cout << "It also must be run before using the parsimony command, unless you are using the randomtree parameter." << "\n";
57                 cout << "The read.tree command should be in the following format: read.tree(tree=yourTreeFile, group=yourGroupFile)." << "\n";
58                 cout << "The tree and group parameters are both required." << "\n";
59                 cout << "Note: No spaces between parameter labels (i.e. tree), '=' and parameters (i.e.yourTreefile)." << "\n" << "\n";
60         }else if (globaldata->helpRequest == "cluster") {
61                 cout << "The cluster command can only be executed after a successful read.dist command." << "\n";
62                 cout << "The cluster command parameter options are method, cuttoff and precision. No parameters are required." << "\n";
63                 cout << "The cluster command should be in the following format: " << "\n";
64                 cout << "cluster(method=yourMethod, cutoff=yourCutoff, precision=yourPrecision) " << "\n";
65                 cout << "The acceptable cluster methods are furthest, nearest and average.  If no method is provided then furthest is assumed." << "\n" << "\n";
66         }else if (globaldata->helpRequest == "deconvolute") {
67                 cout << "The deconvolute command reads a fastafile and creates a namesfile." << "\n";
68                 cout << "It creates a file where the first column is the groupname and the second column is a list of sequence names who have the same sequence. " << "\n";
69                 cout << "If the sequence is unique the second column will just contain its name. " << "\n";
70                 cout << "The deconvolute command parameter is fasta and it is required." << "\n";
71                 cout << "The deconvolute command should be in the following format: " << "\n";
72                 cout << "deconvolute(fasta=yourFastaFile) " << "\n";
73         }else if (globaldata->helpRequest == "dist.seq") {
74                 cout << "The dist.seq command reads a file containing sequences and creates a distance file." << "\n";
75                 cout << "The dist.seq command parameters are fasta, phylip, clustal, nexus, calc, ends, cutoff and processors.  " << "\n";
76                 cout << "You must use one of the following parameters for your filename: fasta, phylip, clustal or nexus. " << "\n";
77                 cout << "The calc parameter allows you to specify the method of calculating the distances.  Your options are: nogaps, onegap or eachgap. The default is onegap." << "\n";
78                 cout << "The ends parameter allows you to specify whether to include terminal gaps in distance.  Your options are: T or F. The default is T." << "\n";
79                 cout << "The cutoff parameter allows you to specify maximum distance to keep. The default is 1.0." << "\n";
80                 cout << "The processors parameter allows you to specify number of processors to use.  The default is 1, but you can use up to 4 processors." << "\n";
81                 cout << "The dist.seq command should be in the following format: " << "\n";
82                 cout << "dist.seq(fasta=yourFastaFile, calc=yourCalc, ends=yourEnds, cutoff= yourCutOff, processors=yourProcessors) " << "\n";
83                 cout << "Example dist.seq(fasta=amazon.fasta, calc=eachgap, ends=F, cutoff= 2.0, processors=3)." << "\n";
84                 cout << "Note: No spaces between parameter labels (i.e. calc), '=' and parameters (i.e.yourCalc)." << "\n" << "\n";
85         }else if (globaldata->helpRequest == "collect.single") {
86                 cout << "The collect.single command can only be executed after a successful read.otu command. WITH ONE EXECEPTION. " << "\n";
87                 cout << "The collect.single command can be executed after a successful cluster command.  It will use the .list file from the output of the cluster." << "\n";
88                 cout << "The collect.single command parameters are label, line, freq, calc and abund.  No parameters are required, but you may not use " << "\n";
89                 cout << "both the line and label parameters at the same time. The collect.single command should be in the following format: " << "\n";
90                 cout << "collect.single(label=yourLabel, line=yourLines, iters=yourIters, freq=yourFreq, calc=yourEstimators)." << "\n";
91                 cout << "Example collect(label=unique-.01-.03, line=0-5-10, iters=10000, freq=10, calc=sobs-chao-ace-jack)." << "\n";
92                 cout << "The default values for freq is 100, and calc are sobs-chao-ace-jack-shannon-npshannon-simpson." << "\n";
93                 validCalcs->printCalc("single", cout);
94                 cout << "The label and line parameters are used to analyze specific lines in your input." << "\n";
95                 cout << "Note: No spaces between parameter labels (i.e. freq), '=' and parameters (i.e.yourFreq)." << "\n" << "\n";
96         }else if (globaldata->helpRequest == "collect.shared") {
97                 cout << "The collect.shared command can only be executed after a successful read.otu command." << "\n";
98                 cout << "The collect.shared command parameters are label, line, freq, calc and groups.  No parameters are required, but you may not use " << "\n";
99                 cout << "both the line and label parameters at the same time. The collect.shared command should be in the following format: " << "\n";
100                 cout << "collect.shared(label=yourLabel, line=yourLines, freq=yourFreq, calc=yourEstimators, groups=yourGroups)." << "\n";
101                 cout << "Example collect.shared(label=unique-.01-.03, line=0-5-10, freq=10, groups=B-C, calc=sharedchao-sharedace-jabund-sorensonabund-jclass-sorclass-jest-sorest-thetayc-thetan)." << "\n";
102                 cout << "The default values for freq is 100 and calc are sharedsobs-sharedchao-sharedace-jabund-sorensonabund-jclass-sorclass-jest-sorest-thetayc-thetan." << "\n";
103                 cout << "The default value for groups is all the groups in your groupfile." << "\n";
104                 validCalcs->printCalc("shared", cout);
105                 cout << "The label and line parameters are used to analyze specific lines in your input." << "\n";
106                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like analyzed.  You must enter at least 2 valid groups." << "\n";
107                 cout << "Note: No spaces between parameter labels (i.e. list), '=' and parameters (i.e.yourListfile)." << "\n" << "\n";
108         }else if (globaldata->helpRequest == "get.group") {
109                 cout << "The get.group command can only be executed after a successful read.otu command of a group file." << "\n";
110                 cout << "You may not use any parameters with the get.group command." << "\n";
111                 cout << "The get.group command should be in the following format: " << "\n";
112                 cout << "get.group()" << "\n";
113                 cout << "Example get.group()." << "\n";
114         }else if (globaldata->helpRequest == "get.label") {
115                 cout << "The get.label command can only be executed after a successful read.otu command." << "\n";
116                 cout << "You may not use any parameters with the get.label command." << "\n";
117                 cout << "The get.label command should be in the following format: " << "\n";
118                 cout << "get.label()" << "\n";
119                 cout << "Example get.label()." << "\n";
120         }else if (globaldata->helpRequest == "get.line") {
121                 cout << "The get.line command can only be executed after a successful read.otu command." << "\n";
122                 cout << "You may not use any parameters with the get.line command." << "\n";
123                 cout << "The get.line command should be in the following format: " << "\n";
124                 cout << "get.line()" << "\n";
125                 cout << "Example get.line()." << "\n";
126         }else if (globaldata->helpRequest == "rarefaction.single") {
127                 cout << "The rarefaction.single command can only be executed after a successful read.otu WTIH ONE EXECEPTION." << "\n";
128                 cout << "The rarefaction.single command can be executed after a successful cluster command.  It will use the .list file from the output of the cluster." << "\n";
129                 cout << "The rarefaction.single command parameters are label, line, iters, freq, calc and abund.  No parameters are required, but you may not use " << "\n";
130                 cout << "both the line and label parameters at the same time. The rarefaction.single command should be in the following format: " << "\n";
131                 cout << "rarefaction.single(label=yourLabel, line=yourLines, iters=yourIters, freq=yourFreq, calc=yourEstimators)." << "\n";
132                 cout << "Example rarefaction.single(label=unique-.01-.03, line=0-5-10, iters=10000, freq=10, calc=sobs-rchao-race-rjack-rbootstrap-rshannon-rnpshannon-rsimpson)." << "\n";
133                 cout << "The default values for iters is 1000, freq is 100, and calc is rarefaction which calculates the rarefaction curve for the observed richness." << "\n";
134                 validCalcs->printCalc("rarefaction", cout);
135                 cout << "The label and line parameters are used to analyze specific lines in your input." << "\n";
136                 cout << "Note: No spaces between parameter labels (i.e. freq), '=' and parameters (i.e.yourFreq)." << "\n" << "\n";
137         }else if (globaldata->helpRequest == "rarefaction.shared") {
138                 cout << "The rarefaction.shared command can only be executed after a successful read.otu command." << "\n";
139                 cout << "The rarefaction.shared command parameters are label, line, iters, jumble, groups and calc.  No parameters are required, but you may not use " << "\n";
140                 cout << "both the line and label parameters at the same time. The rarefaction command should be in the following format: " << "\n";
141                 cout << "rarefaction.shared(label=yourLabel, line=yourLines, iters=yourIters, jumble=yourJumble, calc=yourEstimators, groups=yourGroups)." << "\n";
142                 cout << "Example rarefaction.shared(label=unique-.01-.03, line=0-5-10, iters=10000, jumble=1, groups=B-C, calc=sharedobserved)." << "\n";
143                 cout << "The default values for iters is 1000, jumble is 1 (meaning jumble, if it’s set to 0 then it will not jumble), freq is 100, and calc is sharedobserved which calculates the shared rarefaction curve for the observed richness." << "\n";
144                 cout << "The default value for groups is all the groups in your groupfile." << "\n";
145                 validCalcs->printCalc("sharedrarefaction", cout);
146                 cout << "The label and line parameters are used to analyze specific lines in your input." << "\n";
147                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like analyzed.  You must enter at least 2 valid groups." << "\n";
148                 cout << "Note: No spaces between parameter labels (i.e. freq), '=' and parameters (i.e.yourFreq)." << "\n" << "\n";
149         }else if (globaldata->helpRequest == "summary.single") { 
150                 cout << "The summary.single command can only be executed after a successful read.otu WTIH ONE EXECEPTION." << "\n";
151                 cout << "The summary.single command can be executed after a successful cluster command.  It will use the .list file from the output of the cluster." << "\n";
152                 cout << "The summary.single command parameters are label, line, calc, abund.  No parameters are required, but you may not use " << "\n";
153                 cout << "both the line and label parameters at the same time. The summary.single command should be in the following format: " << "\n";
154                 cout << "summary.single(label=yourLabel, line=yourLines, calc=yourEstimators)." << "\n";
155                 cout << "Example summary.single(label=unique-.01-.03, line=0,5,10, calc=sobs-chao-ace-jack-bootstrap-shannon-npshannon-simpson)." << "\n";
156                 validCalcs->printCalc("summary", cout);
157                 cout << "The default value calc is sobs-chao-ace-jack-shannon-npshannon-simpson" << "\n";
158                 cout << "The label and line parameters are used to analyze specific lines in your input." << "\n";
159                 cout << "Note: No spaces between parameter labels (i.e. line), '=' and parameters (i.e.yourLines)." << "\n" << "\n";
160         }else if (globaldata->helpRequest == "summary.shared") { 
161                 cout << "The summary.shared command can only be executed after a successful read.otu command." << "\n";
162                 cout << "The summary.shared command parameters are label, line and calc.  No parameters are required, but you may not use " << "\n";
163                 cout << "both the line and label parameters at the same time. The summary.shared command should be in the following format: " << "\n";
164                 cout << "summary.shared(label=yourLabel, line=yourLines, calc=yourEstimators, groups=yourGroups)." << "\n";
165                 cout << "Example summary.shared(label=unique-.01-.03, line=0,5,10, groups=B-C, calc=sharedchao-sharedace-jabund-sorensonabund-jclass-sorclass-jest-sorest-thetayc-thetan)." << "\n";
166                 validCalcs->printCalc("sharedsummary", cout);
167                 cout << "The default value for calc is sharedsobs-sharedchao-sharedace-jabund-sorensonabund-jclass-sorclass-jest-sorest-thetayc-thetan" << "\n";
168                 cout << "The default value for groups is all the groups in your groupfile." << "\n";
169                 cout << "The label and line parameters are used to analyze specific lines in your input." << "\n";
170                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like analyzed.  You must enter at least 2 valid groups." << "\n";
171                 cout << "Note: No spaces between parameter labels (i.e. line), '=' and parameters (i.e.yourLines)." << "\n" << "\n";
172         }else if (globaldata->helpRequest == "parsimony") { 
173                 cout << "The parsimony command can only be executed after a successful read.tree command, unless you use the random parameter." << "\n";
174                 cout << "The parsimony command parameters are random, groups and iters.  No parameters are required." << "\n";
175                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like analyzed.  You must enter at least 1 valid group." << "\n";
176                 cout << "The group names are separated by dashes.  The iters parameter allows you to specify how many random trees you would like compared to your tree." << "\n";
177                 cout << "The parsimony command should be in the following format: parsimony(random=yourOutputFilename, groups=yourGroups, iters=yourIters)." << "\n";
178                 cout << "Example parsimony(random=out, iters=500)." << "\n";
179                 cout << "The default value for random is "" (meaning you want to use the trees in your inputfile, randomtree=out means you just want the random distribution of trees outputted to out.rd_parsimony)," << "\n";
180                 cout << "and iters is 1000.  The parsimony command output two files: .parsimony and .psummary their descriptions are in the manual." << "\n";
181                 cout << "Note: No spaces between parameter labels (i.e. random), '=' and parameters (i.e.yourOutputFilename)." << "\n" << "\n";
182         }else if (globaldata->helpRequest == "unifrac.weighted") { 
183                 cout << "The unifrac.weighted command can only be executed after a successful read.tree command." << "\n";
184                 cout << "The unifrac.weighted command parameters are groups and iters.  No parameters are required." << "\n";
185                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like analyzed.  You must enter at least 2 valid groups." << "\n";
186                 cout << "The group names are separated by dashes.  The iters parameter allows you to specify how many random trees you would like compared to your tree." << "\n";
187                 cout << "The unifrac.weighted command should be in the following format: unifrac.weighted(groups=yourGroups, iters=yourIters)." << "\n";
188                 cout << "Example unifrac.weighted(groups=A-B-C, iters=500)." << "\n";
189                 cout << "The default value for groups is all the groups in your groupfile, and iters is 1000." << "\n";
190                 cout << "The unifrac.weighted command output two files: .weighted and .wsummary their descriptions are in the manual." << "\n";
191                 cout << "Note: No spaces between parameter labels (i.e. list), '=' and parameters (i.e.yourListfile)." << "\n" << "\n";
192         }else if (globaldata->helpRequest == "unifrac.unweighted") { 
193                 cout << "The unifrac.unweighted command can only be executed after a successful read.tree command." << "\n";
194                 cout << "The unifrac.unweighted command parameters are groups and iters.  No parameters are required." << "\n";
195                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like analyzed.  You must enter at least 1 valid group." << "\n";
196                 cout << "The group names are separated by dashes.  The iters parameter allows you to specify how many random trees you would like compared to your tree." << "\n";
197                 cout << "The unifrac.unweighted command should be in the following format: unifrac.unweighted(groups=yourGroups, iters=yourIters)." << "\n";
198                 cout << "Example unifrac.unweighted(groups=A-B-C, iters=500)." << "\n";
199                 cout << "The default value for groups is all the groups in your groupfile, and iters is 1000." << "\n";
200                 cout << "The unifrac.unweighted command output two files: .unweighted and .uwsummary their descriptions are in the manual." << "\n";
201                 cout << "Note: No spaces between parameter labels (i.e. list), '=' and parameters (i.e.yourListfile)." << "\n" << "\n";
202         }else if (globaldata->helpRequest == "libshuff") { 
203                 cout << "The libshuff command can only be executed after a successful read.dist command." << "\n";
204                 cout << "The libshuff command parameters are groups, iters, step, form and cutoff.  No parameters are required." << "\n";
205                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like analyzed.  You must enter at least 2 valid groups." << "\n";
206                 cout << "The group names are separated by dashes.  The iters parameter allows you to specify how many random matrices you would like compared to your matrix." << "\n";
207                 cout << "The step parameter allows you to specify change in distance you would like between each output if you are using the discrete form." << "\n";
208                 cout << "The form parameter allows you to specify if you would like to analyze your matrix using the discrete or integral form. Your options are integral or discrete." << "\n";
209                 cout << "The libshuff command should be in the following format: libshuff(groups=yourGroups, iters=yourIters, cutOff=yourCutOff, form=yourForm, step=yourStep)." << "\n";
210                 cout << "Example libshuff(groups=A-B-C, iters=500, form=discrete, step=0.01, cutOff=2.0)." << "\n";
211                 cout << "The default value for groups is all the groups in your groupfile, iters is 10000, cutoff is 1.0, form is integral and step is 0.01." << "\n";
212                 cout << "The libshuff command output two files: .coverage and .slsummary their descriptions are in the manual." << "\n";
213                 cout << "Note: No spaces between parameter labels (i.e. iters), '=' and parameters (i.e.yourIters)." << "\n" << "\n";
214         }else if (globaldata->helpRequest == "heatmap") { 
215                 cout << "The heatmap command can only be executed after a successful read.otu command." << "\n";
216                 cout << "The heatmap command parameters are groups, sorted, scale, line and label.  No parameters are required, but you may not use line and label at the same time." << "\n";
217                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like included in your heatmap." << "\n";
218                 cout << "The sorted parameter allows you to choose to see the file with the shared otus at the top or the otus in the order they appear in your input file. " << "\n";
219                 cout << "The scale parameter allows you to choose the range of color your bin information will be displayed with." << "\n";
220                 cout << "The group names are separated by dashes. The line and label allow you to select what distance levels you would like a heatmap created for, and are also separated by dashes." << "\n";
221                 cout << "The heatmap command should be in the following format: heatmap(groups=yourGroups, sorted=yourSorted, line=yourLines, label=yourLabels)." << "\n";
222                 cout << "Example heatmap(groups=A-B-C, line=1-3-5, sorted=F, scale=log10)." << "\n";
223                 cout << "The default value for groups is all the groups in your groupfile, and all lines in your inputfile will be used." << "\n";
224                 cout << "The default value for sorted is T meaning you want the shared otus on top, you may change it to F meaning the exact representation of your input file." << "\n";
225                 cout << "The default value for scale is log10; your other options are log2 and linear." << "\n";
226                 cout << "The heatmap command outputs a .svg file for each line or label you specify." << "\n";
227                 cout << "Note: No spaces between parameter labels (i.e. groups), '=' and parameters (i.e.yourGroups)." << "\n" << "\n";
228         }else if (globaldata->helpRequest == "venn") { 
229                 cout << "The venn command can only be executed after a successful read.otu command." << "\n";
230                 cout << "The venn command parameters are groups, calc, line and label.  No parameters are required, but you may not use line and label at the same time." << "\n";
231                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like included in your venn diagram, you may only use a maximum of 4 groups." << "\n";
232                 cout << "The group names are separated by dashes. The line and label allow you to select what distance levels you would like a venn diagram created for, and are also separated by dashes." << "\n";
233                 cout << "The venn command should be in the following format: venn(groups=yourGroups, calc=yourCalcs, line=yourLines, label=yourLabels)." << "\n";
234                 cout << "Example venn(groups=A-B-C, line=1-3-5, calc=sharedsobs-sharedchao)." << "\n";
235                 cout << "The default value for groups is all the groups in your groupfile up to 4, and all lines in your inputfile will be used." << "\n";
236                 cout << "The default value for calc is sobs if you have only read a list file or if you have selected only one group, and sharedsobs if you have multiple groups." << "\n";
237                 cout << "The default available estimators for calc are sobs, chao and ace if you have only read a list file, and sharedsobs, sharedchao and sharedace if you have read a list and group file or a shared file." << "\n";
238                 cout << "The only estmiator available four 4 groups is sharedsobs." << "\n";
239                 cout << "The venn command outputs a .svg file for each calculator you specify at each distance you choose." << "\n";
240                 cout << "Note: No spaces between parameter labels (i.e. groups), '=' and parameters (i.e.yourGroups)." << "\n" << "\n";
241         }else if (globaldata->helpRequest == "tree.shared") { 
242                 cout << "The tree.shared command can only be executed after a successful read.otu command." << "\n";
243                 cout << "The tree.shared command parameters are groups, calc, line and label.  The calc parameter is required, and you may not use line and label at the same time." << "\n";
244                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like included used." << "\n";
245                 cout << "The group names are separated by dashes. The line and label allow you to select what distance levels you would like trees created for, and are also separated by dashes." << "\n";
246                 cout << "The tree.shared command should be in the following format: tree.shared(groups=yourGroups, calc=yourCalcs, line=yourLines, label=yourLabels)." << "\n";
247                 cout << "Example tree.shared(groups=A-B-C, line=1-3-5, calc=jabund-sorabund)." << "\n";
248                 cout << "The default value for groups is all the groups in your groupfile." << "\n";
249                 cout << "There is no default value for calc." << "\n";
250                 validCalcs->printCalc("treegroup", cout);
251                 cout << "The tree.shared command outputs a .tre file for each calculator you specify at each distance you choose." << "\n";
252                 cout << "Note: No spaces between parameter labels (i.e. groups), '=' and parameters (i.e.yourGroups)." << "\n" << "\n";
253         }else if (globaldata->helpRequest == "bootstrap.shared") { 
254                 cout << "The bootstrap.shared command can only be executed after a successful read.otu command." << "\n";
255                 cout << "The bootstrap.shared command parameters are groups, calc, iters, line and label.  The calc parameter is required, and you may not use line and label at the same time." << "\n";
256                 cout << "The groups parameter allows you to specify which of the groups in your groupfile you would like included used." << "\n";
257                 cout << "The group names are separated by dashes. The line and label allow you to select what distance levels you would like trees created for, and are also separated by dashes." << "\n";
258                 cout << "The bootstrap.shared command should be in the following format: bootstrap.shared(groups=yourGroups, calc=yourCalcs, line=yourLines, label=yourLabels, iters=yourIters)." << "\n";
259                 cout << "Example bootstrap.shared(groups=A-B-C, line=1-3-5, calc=jabund-sorabund, iters=100)." << "\n";
260                 cout << "The default value for groups is all the groups in your groupfile." << "\n";
261                 cout << "There is no default value for calc. The default for iters is 1000." << "\n";
262                 validCalcs->printCalc("boot", cout);
263                 cout << "The bootstrap.shared command outputs a .tre file for each calculator you specify at each distance you choose containing iters number of trees." << "\n";
264                 cout << "Note: No spaces between parameter labels (i.e. groups), '=' and parameters (i.e.yourGroups)." << "\n" << "\n";
265         }else if (globaldata->helpRequest == "concensus") { 
266                 cout << "The concensus command can only be executed after a successful read.tree command." << "\n";
267                 cout << "The concensus command has no parameters." << "\n";
268                 cout << "The concensus command should be in the following format: concensus()." << "\n";
269                 cout << "The concensus command output two files: .concensus.tre and .concensuspairs." << "\n";
270                 cout << "The .concensus.tre file contains the concensus tree of the trees in your input file." << "\n";
271                 cout << "The branch lengths are the percentage of trees in your input file that had the given pair." << "\n";
272                 cout << "The .concensuspairs file contains a list of the internal nodes in your tree.  For each node, the pair that was used in the concensus tree " << "\n";
273                 cout << "is reported with its percentage, as well as the other pairs that were seen for that node but not used and their percentages." << "\n" << "\n";
274         }else if (globaldata->helpRequest == "bin.seqs") { 
275                 cout << "The bin.seqs command can only be executed after a successful read.otu command of a list file." << "\n";
276                 cout << "The bin.seqs command parameters are fasta, name, line and label.  The fasta parameter is required, and you may not use line and label at the same time." << "\n";
277                 cout << "The line and label allow you to select what distance levels you would like a output files created for, and are separated by dashes." << "\n";
278                 cout << "The bin.seqs command should be in the following format: bin.seqs(fasta=yourFastaFile, name=yourNamesFile, line=yourLines, label=yourLabels)." << "\n";
279                 cout << "Example bin.seqs(fasta=amazon.fasta, line=1-3-5, name=amazon.names)." << "\n";
280                 cout << "The default value for line and label are all lines in your inputfile." << "\n";
281                 cout << "The bin.seqs command outputs a .fasta file for each distance you specify appending the OTU number to each name." << "\n";
282                 cout << "Note: No spaces between parameter labels (i.e. fasta), '=' and parameters (i.e.yourFastaFile)." << "\n" << "\n";
283         }else if (globaldata->helpRequest == "get.oturep") { 
284                 cout << "The get.oturep command can only be executed after a successful read.dist command." << "\n";
285                 cout << "The get.oturep command parameters are list, fasta, name, line and label.  The fasta and list parameters are required, and you may not use line and label at the same time." << "\n";
286                 cout << "The line and label allow you to select what distance levels you would like a output files created for, and are separated by dashes." << "\n";
287                 cout << "The get.oturep command should be in the following format: get.oturep(fasta=yourFastaFile, list=yourListFile, name=yourNamesFile, line=yourLines, label=yourLabels)." << "\n";
288                 cout << "Example get.oturep(fasta=amazon.fasta, list=amazon.fn.list, line=1-3-5, name=amazon.names)." << "\n";
289                 cout << "The default value for line and label are all lines in your inputfile." << "\n";
290                 cout << "The get.oturep command outputs a .fastarep file for each distance you specify, selecting one OTU representative for each bin." << "\n";
291                 cout << "Note: No spaces between parameter labels (i.e. fasta), '=' and parameters (i.e.yourFastaFile)." << "\n" << "\n";
292         }else if (globaldata->helpRequest == "quit") {
293                 cout << "The quit command will terminate Dotur and should be in the following format: " << "\n";
294                 cout << "quit()" << "\n" << "\n";
295         }else if (globaldata->helpRequest == "") {
296                 validCommands->printCommands(cout);
297                 cout << "For more information about a specific command type 'help(commandName)' i.e. 'help(read.dist)'" << endl;
298         }else {
299                 cout << globaldata->helpRequest << " is not a valid command" << endl;
300         }
301         
302         cout << endl << "For further assistance please refer to the Mothur manual on our wiki at http://schloss.micro.umass.edu/mothur/, or contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
303         return 0;
304 }
305
306 //**********************************************************************************************************************/