A7E9B7E812D37EC400DA6239 /* shannoneven.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shannoneven.h; sourceTree = "<group>"; };
A7E9B7E912D37EC400DA6239 /* sharedace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sharedace.cpp; sourceTree = "<group>"; };
A7E9B7EA12D37EC400DA6239 /* sharedace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sharedace.h; sourceTree = "<group>"; };
- A7E9B7EB12D37EC400DA6239 /* sharedanderberg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sharedanderberg.h; sourceTree = "<group>"; };
A7E9B7EC12D37EC400DA6239 /* sharedanderbergs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sharedanderbergs.cpp; sourceTree = "<group>"; };
A7E9B7ED12D37EC400DA6239 /* sharedanderbergs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sharedanderbergs.h; sourceTree = "<group>"; };
A7E9B7EE12D37EC400DA6239 /* sharedbraycurtis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sharedbraycurtis.cpp; sourceTree = "<group>"; };
A7E9B7E812D37EC400DA6239 /* shannoneven.h */,
A7E9B7E912D37EC400DA6239 /* sharedace.cpp */,
A7E9B7EA12D37EC400DA6239 /* sharedace.h */,
- A7E9B7EB12D37EC400DA6239 /* sharedanderberg.h */,
A7E9B7EC12D37EC400DA6239 /* sharedanderbergs.cpp */,
A7E9B7ED12D37EC400DA6239 /* sharedanderbergs.h */,
A7E9B7EE12D37EC400DA6239 /* sharedbraycurtis.cpp */,
Ace(int n) : abund(n), Calculator("ace", 3, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Ace"; }
private:
int abund;
};
string getCommandName() { return "align.seqs"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Align.seqs"; }
+ string getCitation() { return "DeSantis TZ, Jr., Hugenholtz P, Keller K, Brodie EL, Larsen N, Piceno YM, Phan R, Andersen GL (2006). NAST: a multiple sequence alignment server for comparative analysis of 16S rRNA genes. Nucleic Acids Res 34: W394-9.\nSchloss PD (2009). A high-throughput DNA sequence aligner for microbial ecology studies. PLoS ONE 4: e8230.\nSchloss PD (2010). The effects of alignment quality, distance calculation method, sequence filtering, and region on the analysis of 16S rRNA gene-based studies. PLoS Comput Biol 6: e1000844.\nhttp://www.mothur.org/wiki/Align.seqs http://www.mothur.org/wiki/Align.seqs"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "amova"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "Referenced: Anderson MJ (2001). A new method for non-parametric multivariate analysis of variance. Austral Ecol 26: 32-46. http://www.mothur.org/wiki/Amova"; }
+ string getCitation() { return "Anderson MJ (2001). A new method for non-parametric multivariate analysis of variance. Austral Ecol 26: 32-46.\nhttp://www.mothur.org/wiki/Amova"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "anosim"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "Referenced: Clarke, K. R. (1993). Non-parametric multivariate analysis of changes in community structure. _Australian Journal of Ecology_ 18, 117-143. http://www.mothur.org/wiki/Anosim"; }
+ string getCitation() { return "Clarke, K. R. (1993). Non-parametric multivariate analysis of changes in community structure. _Australian Journal of Ecology_ 18, 117-143.\nhttp://www.mothur.org/wiki/Anosim"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
BergerParker() : Calculator("bergerparker", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Bergerparker"; }
private:
};
// wordsize used in megablast. I'm sure we're sacrificing accuracy for speed, but anyother way would take way too
// long. With this setting, it seems comparable in speed to the suffix tree approach.
//7000004128189528left 0 100 66 0 0 1 66 61 126 1e-31 131
+ string blastCommand;
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ blastCommand = path + "blast/bin/megablast -e 1e-10 -d " + dbFileName + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn
+ blastCommand += (" -i " + (queryFileName+seq->getName()) + " -o " + blastFileName+seq->getName());
+ #else
+ blastCommand = path + "blast\\bin\\megablast -e 1e-10 -d " + dbFileName + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn
+ blastCommand += (" -i " + (queryFileName+seq->getName()) + " -o " + blastFileName+seq->getName());
+ #endif
- string blastCommand = path + "blast/bin/megablast -e 1e-10 -d " + dbFileName + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn
- blastCommand += (" -i " + (queryFileName+seq->getName()) + " -o " + blastFileName+seq->getName());
system(blastCommand.c_str());
ifstream m8FileHandle;
for (int i = 0; i < path.length(); i++) { tempPath[i] = tolower(path[i]); }
path = path.substr(0, (tempPath.find_last_of('m')));
- string formatdbCommand = path + "blast/bin/formatdb -p F -o T -i " + dbFileName; // format the database, -o option gives us the ability
+ string formatdbCommand;
+
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ formatdbCommand = path + "blast/bin/formatdb -p F -o T -i " + dbFileName; // format the database, -o option gives us the ability
+ #else
+ formatdbCommand = path + "blast\\bin\\formatdb -p F -o T -i " + dbFileName;
+ #endif
system(formatdbCommand.c_str()); // to get the right sequence names, i think. -p F
// option tells formatdb that seqs are DNA, not prot
//m->mothurOut("DONE."); m->mothurOutEndLine(); m->mothurOutEndLine(); cout.flush();
Boneh(int size) : f(size), Calculator("boneh", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Boneh"; }
private:
double getV(double, double, double);
int f;
Bootstrap() : Calculator("bootstrap", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Bootstrap"; }
};
if (calc == "default") { calc = "jclass-thetayc"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
string temp;
temp = validParameter.validFile(parameters, "iters", false); if (temp == "not found") { temp = "1000"; }
BStick() : Calculator("bstick", 3, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
-
+ string getCitation() { return "http://www.mothur.org/wiki/Bstick"; }
private:
double invSum(int, double);
RAbundVector getRAbundVector(SAbundVector*);
virtual int getCols() { return cols; }
virtual bool getMultiple() { return multiple; }
virtual bool getNeedsAll() { return needsAll; }
+ virtual string getCitation() = 0;
+ void citation() { m->mothurOut(getCitation()); m->mothurOutEndLine(); }
protected:
MothurOut* m;
EstOutput data;
Canberra() : Calculator("canberra", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Canberra"; }
private:
};
string getCommandName() { return "catchall"; }
string getCommandCategory() { return "OTU-Based Approaches"; }
string getHelpString();
- string getCitation() { return "http://www.northeastern.edu/catchall/index.html http://www.mothur.org/wiki/Catchall"; }
+ string getCitation() { return "Bunge, J. (2011). Estimating the number of species with CatchAll. Forthcoming in Proceedings of the Pacific Symposium on Biocomputing 2011.\nhttp://www.northeastern.edu/catchall/index.html http://www.mothur.org/wiki/Catchall"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
Chao1() : Calculator("chao", 3, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Chao"; }
};
string getCommandName() { return "chimera.bellerophon"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Chimera.bellerophon"; }
+ string getCitation() { return "Huber T, Faulkner G, Hugenholtz P (2004). Bellerophon: a program to detect chimeric sequences in multiple sequence alignments. Bioinformatics 20: 2317-9. \nhttp://www.mothur.org/wiki/Chimera.bellerophon"; }
int execute();
string getCommandName() { return "chimera.ccode"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "Evaluating putative chimeric sequences from PCR-amplified products' paper by Juan M. Gonzalez, Johannes Zimmerman and Cesareo Saiz-Jimenez. http://www.mothur.org/wiki/Chimera.ccode"; }
+ string getCitation() { return "Gonzalez JM, Zimmermann J, Saiz-Jimenez C (2005). Evaluating putative chimeric sequences from PCR-amplified products. Bioinformatics 21: 333-7. \nhttp://www.mothur.org/wiki/Chimera.ccode"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "chimera.check"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "CHIMERA_CHECK version 2.7 written by Niels Larsen. http://www.mothur.org/wiki/Chimera.check"; }
+ string getCitation() { return "CHIMERA_CHECK version 2.7 written by Niels Larsen (http://wdcm.nig.ac.jp/RDP/docs/chimera_doc.html) \nhttp://www.mothur.org/wiki/Chimera.check"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "chimera.pintail"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "At Least 1 in 20 16S rRNA Sequence Records Currently Held in the Public Repositories is Estimated To Contain Substantial Anomalies' paper by Kevin E. Ashelford 1, Nadia A. Chuzhanova 3, John C. Fry 1, Antonia J. Jones 2 and Andrew J. Weightman 1. http://www.mothur.org/wiki/Chimera.pintail"; }
+ string getCitation() { return "Ashelford KE, Chuzhanova NA, Fry JC, Jones AJ, Weightman AJ (2005). At least 1 in 20 16S rRNA sequence records currently held in public repositories is estimated to contain substantial anomalies. Appl Environ Microbiol 71: 7724-36. \nAshelford KE, Chuzhanova NA, Fry JC, Jones AJ, Weightman AJ (2006). New screening software shows that most recent large 16S rRNA gene clone libraries contain chimeras. Appl Environ Microbiol 72: 5734-41. \nhttp://www.mothur.org/wiki/Chimera.pintail"; }
-
int execute();
void help() { m->mothurOut(getHelpString()); }
private:
string getCommandName() { return "chimera.slayer"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Chimera.slayer"; }
+ string getCitation() { return "Haas BJ, Gevers D, Earl A, Feldgarden M, Ward DV, Giannokous G, Ciulla D, Tabbaa D, Highlander SK, Sodergren E, Methe B, Desantis TZ, Petrosino JF, Knight R, Birren BW (2011). Chimeric 16S rRNA sequence formation and detection in Sanger and 454-pyrosequenced PCR amplicons. Genome Res. \nhttp://www.mothur.org/wiki/Chimera.slayer"; }
int execute();
string getCommandName() { return "classify.otu"; }
string getCommandCategory() { return "Phylotype Analysis"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Classify.otu"; }
+ string getCitation() { return "Schloss PD, Westcott SL (2011). Assessing and improving methods used in OTU-based approaches for 16S rRNA gene sequence analysis. Appl Environ Microbiol. \nhttp://www.mothur.org/wiki/Classify.otu"; }
int execute();
string getCommandName() { return "classify.seqs"; }
string getCommandCategory() { return "Phylotype Analysis"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Classify.seqs"; }
+ string getCitation() { return "Wang Q, Garrity GM, Tiedje JM, Cole JR (2007). Naive Bayesian classifier for rapid assignment of rRNA sequences into the new bacterial taxonomy. Appl Environ Microbiol 73: 5261-7. [ for Bayesian classifier ] \nAltschul SF, Madden TL, Schaffer AA, Zhang J, Zhang Z, Miller W, Lipman DJ (1997). Gapped BLAST and PSI-BLAST: a new generation of protein database search programs. Nucleic Acids Res 25: 3389-402. [ for BLAST ] \nDeSantis TZ, Hugenholtz P, Larsen N, Rojas M, Brodie EL, Keller K, Huber T, Dalevi D, Hu P, Andersen GL (2006). Greengenes, a chimera-checked 16S rRNA gene database and workbench compatible with ARB. Appl Environ Microbiol 72: 5069-72. [ for kmer ] \nhttp://www.mothur.org/wiki/Classify.seqs"; }
int execute();
string getCommandName() { return "clearcut"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "The clearcut program written by Initiative for Bioinformatics and Evolutionary Studies (IBEST) at the University of Idaho. http://www.mothur.org/wiki/Clearcut"; }
+ string getCitation() { return "Sheneman L, Evans J, Foster JA (2006). Clearcut: a fast implementation of relaxed neighbor joining. Bioinformatics 22: 2823-4. \nhttp://www.mothur.org/wiki/Clearcut"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "cluster"; }
string getCommandCategory() { return "Clustering"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Cluster"; }
+ string getCitation() { return "Schloss PD, Westcott SL (2011). Assessing and improving methods used in OTU-based approaches for 16S rRNA gene sequence analysis. Appl Environ Microbiol. \nhttp://www.mothur.org/wiki/Cluster"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "cluster.classic"; }
string getCommandCategory() { return "Clustering"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Cluster.classic"; }
+ string getCitation() { return "Schloss PD, Handelsman J (2005). Introducing DOTUR, a computer program for defining operational taxonomic units and estimating species richness. Appl Environ Microbiol 71: 1501-6. \nhttp://www.mothur.org/wiki/Cluster.classic"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "cluster.split"; }
string getCommandCategory() { return "Clustering"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Cluster.split"; }
+ string getCitation() { return "Schloss PD, Westcott SL (2011). Assessing and improving methods used in OTU-based approaches for 16S rRNA gene sequence analysis. Appl Environ Microbiol. \nhttp://www.mothur.org/wiki/Cluster.split"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
if (calc == "default") { calc = "sobs-chao-ace-jack-shannon-npshannon-simpson"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
string temp;
temp = validParameter.validFile(parameters, "freq", false); if (temp == "not found") { temp = "100"; }
vector<string> setParameters();
string getCommandName() { return "collect.single"; }
string getCommandCategory() { return "OTU-Based Approaches"; }
- string getCitation() { return "http://www.mothur.org/wiki/Collect.single"; }
+ string getCitation() { return "Schloss PD, Handelsman J (2006). Introducing SONS, A tool that compares the membership of microbial communities. Appl Environ Microbiol 72: 6773-9. \nhttp://www.mothur.org/wiki/Collect.single"; }
string getHelpString();
int execute();
if (calc == "default") { calc = "sharedsobs-sharedchao-sharedace-jabund-sorabund-jclass-sorclass-jest-sorest-thetayc-thetan"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
groups = validParameter.validFile(parameters, "groups", false);
if (groups == "not found") { groups = ""; }
string getCommandName() { return "collect.shared"; }
string getCommandCategory() { return "OTU-Based Approaches"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Collect.shared"; }
+ string getCitation() { return "Schloss PD, Handelsman J (2006). Introducing SONS, A tool that compares the membership of microbial communities. Appl Environ Microbiol 72: 6773-9. \nhttp://www.mothur.org/wiki/Collect.shared"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "corr.axes"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Corr.axes"; }
+ string getCitation() { return "McCune B, Grace JB, Urban DL (2002). Analysis of ecological communities. MjM Software Design: Gleneden Beach, OR. \nLegendre P, Legendre L (1998). Numerical Ecology. Elsevier: New York. \nhttp://www.mothur.org/wiki/Corr.axes"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
Coverage() : Calculator("coverage", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Coverage"; }
};
virtual ~Dist() {}
virtual void calcDist(Sequence, Sequence) = 0;
double getDist() { return dist; }
+
protected:
double dist;
MothurOut* m;
string getCommandName() { return "dist.seqs"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Dist.seqs"; }
+ string getCitation() { return "Schloss PD (2010). The effects of alignment quality, distance calculation method, sequence filtering, and region on the analysis of 16S rRNA gene-based studies. PLoS Comput Biol 6: e1000844. \nhttp://www.mothur.org/wiki/Dist.seqs"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
class eachGapDist : public Dist {
public:
+
void calcDist(Sequence A, Sequence B){
int diff = 0;
int length = 0;
Efron(int size) : f(size), Calculator("efron", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Efron"; }
private:
int f;
};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
-
+ string getCitation() { return "http://www.mothur.org/wiki/Geometric"; }
private:
double kEq(double, double);
RAbundVector getRAbundVector(SAbundVector*);
//general info
out << "commandName=" << thisCommand->getCommandName() << endl;
+ //cout << thisCommand->getCommandName() << " current citation = " << thisCommand->getCitation() << endl;
out << "commandCategory=" << thisCommand->getCommandCategory() << endl;
//remove /n from help string since gui reads line by line
GoodsCoverage() : Calculator("goodscoverage", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/GoodsCoverage"; }
private:
};
Gower() : Calculator("gower", 1, false, true) {}; //the true means this calculator needs all groups to calculate the pair value
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Gower"; }
private:
};
Hamming() : Calculator("hamming", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Hamming"; }
private:
};
string getCommandName() { return "hcluster"; }
string getCommandCategory() { return "Clustering"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Hcluster"; }
+ string getCitation() { return "Sun Y, Cai Y, Liu L, Yu F, Farrell ML, Mckendree W, Farmerie W (2009). ESPRIT: estimating species richness using large collections of 16S rRNA pyrosequences. Nucleic Acids Res 37: e76. \nhttp://www.mothur.org/wiki/Hcluster"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
if (calc == "default") { calc = "jest-thetayc"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
groups = validParameter.validFile(parameters, "groups", false);
if (groups == "not found") { groups = ""; }
Heip() : Calculator("heip", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Heip"; }
};
/***********************************************************************/
Hellinger() : Calculator("hellinger", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Hellinger"; }
private:
};
string getCommandName() { return "homova"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "Stewart CN, Excoffier L (1996). Assessing population genetic structure and variability with RAPD data: Application to Vaccinium macrocarpon (American Cranberry). J Evol Biol 9: 153-71. http://www.mothur.org/wiki/Homova"; }
+ string getCitation() { return "Stewart CN, Excoffier L (1996). Assessing population genetic structure and variability with RAPD data: Application to Vaccinium macrocarpon (American Cranberry). J Evol Biol 9: 153-71. \nhttp://www.mothur.org/wiki/Homova"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "indicator"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Indicator"; }
+ string getCitation() { return "Dufrene M, Legendre P (1997). Species assemblages and indicator species: The need for a flexible asymmetrical approach. Ecol Monogr 67: 345-66.\n McCune B, Grace JB, Urban DL (2002). Analysis of ecological communities. MjM Software Design: Gleneden Beach, OR. \nLegendre P, Legendre L (1998). Numerical Ecology. Elsevier: New York. \nhttp://www.mothur.org/wiki/Indicator"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
InvSimpson() : Calculator("invsimpson", 3, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/InvSimpson"; }
};
/***********************************************************************/
Jackknife() : Calculator("jackknife", 3, false) { getAMatrix(); };
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Jackknife"; }
private:
static const int maxOrder = 30;
string getCommandName() { return "libshuff"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Libshuff"; }
+ string getCitation() { return "Singleton DR, Furlong MA, Rathbun SL, Whitman WB (2001). Quantitative comparisons of 16S rRNA gene sequence libraries from environmental samples. Appl Environ Microbiol 67: 4374-6. \nSchloss PD, Larget BR, Handelsman J (2004). Integration of microbial ecology and statistics: a test to compare gene libraries. Appl Environ Microbiol 70: 5485-92. \nhttp://www.mothur.org/wiki/Libshuff"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
LogSD() : Calculator("logseries", 3, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/LogSeries"; }
private:
double logS(double);
Manhattan() : Calculator("manhattan", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Manhattan"; }
private:
};
string getCommandName() { return "mantel"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "Sokal, R. R., & Rohlf, F. J. (1995). Biometry, 3rd edn. New York: Freeman. http://www.mothur.org/wiki/Mantel"; }
+ string getCitation() { return "McCune B, Grace JB, Urban DL (2002). Analysis of ecological communities. MjM Software Design: Gleneden Beach, OR. \nLegendre P, Legendre L (1998). Numerical Ecology. Elsevier: New York. \nhttp://www.mothur.org/wiki/Mantel"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
if (calc == "default") { calc = "jclass-thetayc"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
if (abort == false) {
MemChi2() : Calculator("memchi2", 1, false, true) {}; //the true means this calculator needs all groups to calculate the pair value
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Memchi2"; }
private:
};
MemChord() : Calculator("memchord", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Memchord"; }
private:
};
MemEuclidean() : Calculator("memeuclidean", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Memeuclidean"; }
private:
};
MemPearson() : Calculator("mempearson", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Mempearson"; }
private:
};
string getCommandName() { return "metastats"; }
string getCommandCategory() { return "OTU-Based Approaches"; }
string getHelpString();
- string getCitation() { return "White, J.R., Nagarajan, N. & Pop, M. Statistical methods for detecting differentially abundant features in clinical metagenomic samples. PLoS Comput Biol 5, e1000352 (2009). http://www.mothur.org/wiki/Metastats"; }
+ string getCitation() { return "White JR, Nagarajan N, Pop M (2009). Statistical methods for detecting differentially abundant features in clinical metagenomic samples. PLoS Comput Biol 5: e1000352. \nhttp://www.mothur.org/wiki/Metastats"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "mgcluster"; }
string getCommandCategory() { return "Clustering"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Mgcluster"; }
+ string getCitation() { return "Schloss PD, Handelsman J (2008). A statistical toolbox for metagenomics. BMC Bioinformatics 9: 34. \nhttp://www.mothur.org/wiki/Mgcluster"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "nmds"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "Non-metric multidimensional scaling function using the majorization algorithm from Borg & Groenen 1997, Modern Multidimensional Scaling. http://www.mothur.org/wiki/Nmds"; }
+ string getCitation() { return "Borg, Groenen (1997). Non-metric multidimensional scaling function using the majorization algorithm, in Modern Multidimensional Scaling. Ed. T.F. Cox and M.A.A. Cox. Chapman and Hall. \nhttp://www.mothur.org/wiki/Nmds"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
NPShannon() : Calculator("npshannon", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Npshannon"; }
private:
};
return data;
}
+ string getCitation() { return "http://www.mothur.org/wiki/Nseqs"; }
};
/***********************************************************************/
Odum() : Calculator("odum", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Odum"; }
private:
};
string getCommandName() { return "pairwise.seqs"; }
string getCommandCategory() { return "Sequence Processing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Pairwise.seqs"; }
+ string getCitation() { return "Needleman SB, Wunsch CD (1970). A general method applicable to the search for similarities in the amino acid sequence of two proteins. J Mol Biol 48: 443-53. [ for needleman ]\nGotoh O (1982). An improved algorithm for matching biological sequences. J Mol Biol 162: 705-8. [ for gotoh ] \nhttp://www.mothur.org/wiki/Pairwise.seqs"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "parsimony"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Parsimony"; }
+ string getCitation() { return "Slatkin M, Maddison WP (1989). A cladistic measure of gene flow inferred from the phylogenies of alleles. Genetics 123: 603-13. \nSlatkin M, Maddison WP (1990). Detecting isolation by distance using phylogenies of genes. Genetics 126: 249-60. \nMartin AP (2002). Phylogenetic approaches for describing and comparing the diversity of microbial communities. Appl Environ Microbiol 68: 3673-82. \nSchloss PD, Handelsman J (2006). Introducing TreeClimber, a test to compare microbial community structure. Appl Environ Microbiol 72: 2379-84.\nhttp://www.mothur.org/wiki/Parsimony"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "pca"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Pca"; }
+ string getCitation() { return "McCune B, Grace JB, Urban DL (2002). Analysis of ecological communities. MjM Software Design: Gleneden Beach, OR. \nLegendre P, Legendre L (1998). Numerical Ecology. Elsevier: New York. \nhttp://www.mothur.org/wiki/Pca"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "pcoa"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Pcoa"; }
+ string getCitation() { return "McCune B, Grace JB, Urban DL (2002). Analysis of ecological communities. MjM Software Design: Gleneden Beach, OR. \nLegendre P, Legendre L (1998). Numerical Ecology. Elsevier: New York. \nhttp://www.mothur.org/wiki/Pcoa"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "phylo.diversity"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Phylo.diversity"; }
+ string getCitation() { return "Faith DP (1994). Phylogenetic pattern and the quantification of organismal biodiversity. Philos Trans R Soc Lond B Biol Sci 345: 45-58. \nhttp://www.mothur.org/wiki/Phylo.diversity"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Qstat"; }
private:
RAbundVector rdata;
if (calc == "default") { calc = "sobs"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
string temp;
temp = validParameter.validFile(parameters, "freq", false); if (temp == "not found") { temp = "100"; }
string getCommandName() { return "rarefaction.single"; }
string getCommandCategory() { return "OTU-Based Approaches"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Rarefaction.single"; }
+ string getCitation() { return "Magurran AE (2004). Measuring biological diversity. Blackwell Pub.: Malden, Ma. \nhttp://www.mothur.org/wiki/Rarefaction.single"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
if (calc == "default") { calc = "sharedobserved"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
groups = validParameter.validFile(parameters, "groups", false);
if (groups == "not found") { groups = ""; }
string getCommandName() { return "rarefaction.shared"; }
string getCommandCategory() { return "OTU-Based Approaches"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Rarefaction.shared"; }
+ string getCitation() { return "Magurran AE (2004). Measuring biological diversity. Blackwell Pub.: Malden, Ma. \nhttp://www.mothur.org/wiki/Rarefaction.shared"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "sens.spec"; }
string getCommandCategory() { return "OTU-Based Approaches"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Sens.spec"; }
+ string getCitation() { return "Schloss PD, Westcott SL (2011). Assessing and improving methods used in OTU-based approaches for 16S rRNA gene sequence analysis. Appl Environ Microbiol. \nhttp://www.mothur.org/wiki/Sens.spec"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
Shannon() : Calculator("shannon", 3, false) {};
EstOutput getValues(SAbundVector* rank);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Shannon"; }
private:
};
ShannonEven() : Calculator("shannoneven", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Shannoneven"; }
};
/***********************************************************************/
SharedAce(int n=10) : abund(n), Calculator("sharedace", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/SharedAce"; }
private:
int abund;
};
+++ /dev/null
-#ifndef SHAREDANDERBERG_H
-#define SHAREDANDERBERG_H
-/*
- * sharedanderberg.h
- * Mothur
- *
- * Created by Sarah Westcott on 3/23/09.
- * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
- *
- */
-
-#include "calculator.h"
-
-/***********************************************************************/
-
-class SharedAnderberg : public Calculator {
-
-public:
- SharedAnderberg() : Calculator("anderberg", 1) {};
- EstOutput getValues(SAbundVector*) {return data;};
- EstOutput getValues(SharedRAbundVector*, SharedRAbundVector*);
-private:
-
-};
-
-/***********************************************************************/
-
-
-
-#endif
\ No newline at end of file
Anderberg() : Calculator("anderberg", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Anderberg"; }
private:
};
BrayCurtis() : Calculator("braycurtis", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Braycurtis"; }
private:
};
SharedChao1() : Calculator("sharedchao", 1, true) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Sharedchao"; }
private:
IntNode* f1root;
IntNode* f2root;
JAbund() : Calculator("jabund", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Jabund"; }
private:
UVEst* uv;
SharedJackknife() : numGroups(-1), callCount(0), count(0), currentCallDone(true), Calculator("sharedjackknife", 3, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Sharedjackknife"; }
private:
int numGroups, callCount, count;
Jclass() : Calculator("jclass", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Jclass"; }
private:
};
Jest() : Calculator("jest", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Jest"; }
private:
};
KSTest() : Calculator("kstest", 3, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Kstest"; }
private:
};
Kulczynski() : Calculator("kulczynski", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Kulczynski"; }
private:
};
KulczynskiCody() : Calculator("kulczynskicody", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Kulczynskicody"; }
private:
};
Lennon() : Calculator("lennon", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Lennon"; }
private:
};
SharedMarczewski() : Calculator("sharedmarczewski", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Sharedmarczewski"; }
private:
};
MorHorn() : Calculator("morisitahorn", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Morisitahorn"; }
private:
};
data[0] = (double)shared[0]->getNumSeqs() + (double)shared[1]->getNumSeqs();
return data;
}
+ string getCitation() { return "http://www.mothur.org/wiki/Sharednseqs"; }
};
/***********************************************************************/
Ochiai() : Calculator("ochiai", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/ochiai"; }
private:
};
SharedSobs() : Calculator("sharedsobs", 1, false) {};
EstOutput getValues(SAbundVector* rank){ return data; };
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/sharedsobs"; }
};
/***********************************************************************/
SharedSobsCS() : Calculator("sharedsobs", 1, true) {};
EstOutput getValues(SAbundVector* rank){ return data; };
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Sharedsobs"; }
};
/***********************************************************************/
SorAbund() : Calculator("sorabund", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Sorabund"; }
private:
UVEst* uv;
SorClass() : Calculator("sorclass", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Sorclass"; }
private:
};
SorEst() : Calculator("sorest", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Sorest"; }
private:
};
ThetaN() : Calculator("thetan", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Thetan"; }
private:
};
ThetaYC() : Calculator("thetayc", 3, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Thetayc"; }
private:
};
Shen(int size, int n) : f(size), abund(n), Calculator("shen", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Shen"; }
private:
int f;
int abund;
Simpson() : Calculator("simpson", 3, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Simpson"; }
};
/***********************************************************************/
SimpsonEven() : Calculator("simpsoneven", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Simpsoneven"; }
};
/***********************************************************************/
SmithWilson() : Calculator("smithwilson", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Smithwilson"; }
};
/***********************************************************************/
return data;
}
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Sobs"; }
};
/***********************************************************************/
Soergel() : Calculator("soergel", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Soergel"; }
private:
};
Solow(int size) : f(size), Calculator("solow", 1, false) {};
EstOutput getValues(SAbundVector*);
EstOutput getValues(vector<SharedRAbundVector*>) {return data;};
+ string getCitation() { return "http://www.mothur.org/wiki/Solow"; }
private:
int f;
};
Spearman() : Calculator("spearman", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Spearman"; }
private:
};
SpeciesProfile() : Calculator("speciesprofile", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Speciesprofile"; }
private:
};
StructChi2() : Calculator("structchi2", 1, false, true) {}; //the true means this calculator needs all groups to calculate the pair value
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Structchi2"; }
private:
};
StructChord() : Calculator("structchord", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Structchord"; }
private:
};
StructEuclidean() : Calculator("structeuclidean", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Structeuclidean"; }
private:
};
StructKulczynski() : Calculator("structkulczynski", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Structkulczynski"; }
private:
};
StructPearson() : Calculator("structpearson", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Structpearson"; }
private:
};
if (calc == "default") { calc = "sobs-chao-ace-jack-shannon-npshannon-simpson"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
string temp;
temp = validParameter.validFile(parameters, "abund", false); if (temp == "not found") { temp = "10"; }
if (calc == "default") { calc = "sharedsobs-sharedchao-sharedace-jabund-sorabund-jclass-sorclass-jest-sorest-thetayc-thetan"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
groups = validParameter.validFile(parameters, "groups", false);
if (groups == "not found") { groups = ""; }
if (calc == "default") { calc = "jclass-thetayc"; }
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
string temp;
temp = validParameter.validFile(parameters, "precision", false); if (temp == "not found") { temp = "100"; }
int TrimSeqsCommand::setLines(string filename, string qfilename, vector<unsigned long int>& fastaFilePos, vector<unsigned long int>& qfileFilePos) {
try {
-
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
//set file positions for fasta file
fastaFilePos = m->divideFile(filename, processors);
qfileFilePos.push_back(size);
return processors;
+
+ #else
+
+ fastaFilePos.push_back(0); qfileFilePos.push_back(0);
+ //get last file position of fastafile
+ FILE * pFile;
+ unsigned long int size;
+
+ //get num bytes in file
+ pFile = fopen (filename.c_str(),"rb");
+ if (pFile==NULL) perror ("Error opening file");
+ else{
+ fseek (pFile, 0, SEEK_END);
+ size=ftell (pFile);
+ fclose (pFile);
+ }
+ fastaFilePos.push_back(size);
+
+ //get last file position of fastafile
+ FILE * qFile;
+
+ //get num bytes in file
+ qFile = fopen (qfilename.c_str(),"rb");
+ if (qFile==NULL) perror ("Error opening file");
+ else{
+ fseek (qFile, 0, SEEK_END);
+ size=ftell (qFile);
+ fclose (qFile);
+ }
+ qfileFilePos.push_back(size);
+
+ return 1;
+
+ #endif
}
catch(exception& e) {
m->errorOut(e, "TrimSeqsCommand", "setLines");
string getCommandName() { return "unifrac.unweighted"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Unifrac.unweighted"; }
+ string getCitation() { return "Lozupone C, Knight R (2005). UniFrac: a new phylogenetic method for comparing microbial communities. Appl Environ Microbiol 71: 8228-35. \nhttp://www.mothur.org/wiki/Unifrac.unweighted"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
string getCommandName() { return "unifrac.weighted"; }
string getCommandCategory() { return "Hypothesis Testing"; }
string getHelpString();
- string getCitation() { return "http://www.mothur.org/wiki/Unifrac.weighted"; }
+ string getCitation() { return "Lozupone CA, Hamady M, Kelley ST, Knight R (2007). Quantitative and qualitative beta diversity measures lead to different insights into factors that structure microbial communities. Appl Environ Microbiol 73: 1576-85. \nhttp://www.mothur.org/wiki/Unifrac.weighted"; }
int execute();
void help() { m->mothurOut(getHelpString()); }
*/
#include "validcalculator.h"
+#include "ace.h"
+#include "sobs.h"
+#include "nseqs.h"
+#include "chao1.h"
+#include "bootstrap.h"
+#include "simpson.h"
+#include "simpsoneven.h"
+#include "invsimpson.h"
+#include "npshannon.h"
+#include "shannon.h"
+#include "smithwilson.h"
+#include "heip.h"
+#include "shannoneven.h"
+#include "jackknife.h"
+#include "geom.h"
+#include "qstat.h"
+#include "logsd.h"
+#include "bergerparker.h"
+#include "bstick.h"
+#include "goodscoverage.h"
+#include "efron.h"
+#include "boneh.h"
+#include "solow.h"
+#include "shen.h"
+#include "coverage.h"
+#include "sharedsobscollectsummary.h"
+#include "sharedchao1.h"
+#include "sharedace.h"
+#include "sharedjabund.h"
+#include "sharedsorabund.h"
+#include "sharedjclass.h"
+#include "sharedsorclass.h"
+#include "sharedjest.h"
+#include "sharedsorest.h"
+#include "sharedthetayc.h"
+#include "sharedthetan.h"
+#include "sharedkstest.h"
+#include "whittaker.h"
+#include "sharednseqs.h"
+#include "sharedochiai.h"
+#include "sharedanderbergs.h"
+#include "sharedkulczynski.h"
+#include "sharedkulczynskicody.h"
+#include "sharedlennon.h"
+#include "sharedmorisitahorn.h"
+#include "sharedbraycurtis.h"
+#include "sharedjackknife.h"
+#include "whittaker.h"
+#include "odum.h"
+#include "canberra.h"
+#include "structeuclidean.h"
+#include "structchord.h"
+#include "hellinger.h"
+#include "manhattan.h"
+#include "structpearson.h"
+#include "soergel.h"
+#include "spearman.h"
+#include "structkulczynski.h"
+#include "structchi2.h"
+#include "speciesprofile.h"
+#include "hamming.h"
+#include "gower.h"
+#include "memchi2.h"
+#include "memchord.h"
+#include "memeuclidean.h"
+#include "mempearson.h"
+#include "sharedsobs.h"
+#include "sharednseqs.h"
+
/********************************************************************/
ValidCalculators::ValidCalculators() {
try {
- m = MothurOut::getInstance();
+ m = MothurOut::getInstance();
+
+ initialSingle();
+ initialShared();
+ initialRarefaction();
+ initialSharedRarefact();
+ initialSummary();
+ initialSharedSummary();
+ initialVennSingle();
+ initialVennShared();
+ initialTreeGroups();
+ initialBoot();
+ initialDistance();
+ initialMatrix();
+ initialHeat();
+
+ for(it = single.begin(); it != single.end(); it++) { allCalcs.insert(it->first); }
+ for(it = shared.begin(); it != shared.end(); it++) { allCalcs.insert(it->first); }
+ for(it = rarefaction.begin(); it != rarefaction.end(); it++) { allCalcs.insert(it->first); }
+ for(it = summary.begin(); it != summary.end(); it++) { allCalcs.insert(it->first); }
+ for(it = sharedrarefaction.begin(); it != sharedrarefaction.end(); it++) { allCalcs.insert(it->first); }
+ for(it = sharedsummary.begin(); it != sharedsummary.end(); it++) { allCalcs.insert(it->first); }
+ for(it = vennsingle.begin(); it != vennsingle.end(); it++) { allCalcs.insert(it->first); }
+ for(it = vennshared.begin(); it != vennshared.end(); it++) { allCalcs.insert(it->first); }
+ for(it = treegroup.begin(); it != treegroup.end(); it++) { allCalcs.insert(it->first); }
+ for(it = matrix.begin(); it != matrix.end(); it++) { allCalcs.insert(it->first); }
+ for(it = heat.begin(); it != heat.end(); it++) { allCalcs.insert(it->first); }
+ for(it = boot.begin(); it != boot.end(); it++) { allCalcs.insert(it->first); }
+ for(it = distance.begin(); it != distance.end(); it++) { allCalcs.insert(it->first); }
- initialSingle();
- initialShared();
- initialRarefaction();
- initialSharedRarefact();
- initialSummary();
- initialSharedSummary();
- initialVennSingle();
- initialVennShared();
- initialTreeGroups();
- initialBoot();
- initialDistance();
- initialMatrix();
- initialHeat();
}
catch(exception& e) {
m->errorOut(e, "ValidCalculator", "ValidCalculator");
exit(1);
}
}
-
/********************************************************************/
-
ValidCalculators::~ValidCalculators() {}
-
+/********************************************************************/
+void ValidCalculators::printCitations(vector<string> Estimators) {
+ try {
+
+ for (int i = 0; i < Estimators.size(); i++) {
+ //is this citation, do nothing
+ if ((Estimators[i] == "citation") || (Estimators[i] == "default") || (Estimators[i] == "eachgap") || (Estimators[i] == "nogaps") || (Estimators[i] == "onegap")) {}
+ //is this a valid calculator
+ else if (allCalcs.count(Estimators[i]) != 0) {
+ if (Estimators[i] == "sobs") { Calculator* temp = new Sobs(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "chao") { Calculator* temp = new Chao1(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "nseqs") { Calculator* temp = new NSeqs(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "coverage") { Calculator* temp = new Coverage(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "ace") { Calculator* temp = new Ace(10); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "jack") { Calculator* temp = new Jackknife(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "shannon") { Calculator* temp = new Shannon(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "shannoneven") { Calculator* temp = new ShannonEven(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "npshannon") { Calculator* temp = new NPShannon(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "heip") { Calculator* temp = new Heip(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "smithwilson") { Calculator* temp = new SmithWilson(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "simpson") { Calculator* temp = new Simpson(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "simpsoneven") { Calculator* temp = new SimpsonEven(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "invsimpson") { Calculator* temp = new InvSimpson(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "bootstrap") { Calculator* temp = new Bootstrap(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "geometric") { Calculator* temp = new Geom(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "qstat") { Calculator* temp = new QStat(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "logseries") { Calculator* temp = new LogSD(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "bergerparker") { Calculator* temp = new BergerParker(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "bstick") { Calculator* temp = new BStick(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "goodscoverage") { Calculator* temp = new GoodsCoverage(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "efron") { Calculator* temp = new Efron(10); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "boneh") { Calculator* temp = new Boneh(10); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "solow") { Calculator* temp = new Solow(10); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "shen") { Calculator* temp = new Shen(10, 10); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "sharedchao") { Calculator* temp = new SharedChao1(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "sharedsobs") { Calculator* temp = new SharedSobsCS(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "sharedace") { Calculator* temp = new SharedAce(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "jabund") { Calculator* temp = new JAbund(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "sorabund") { Calculator* temp = new SorAbund(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "jclass") { Calculator* temp = new Jclass(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "sorclass") { Calculator* temp = new SorClass(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "jest") { Calculator* temp = new Jest(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "sorest") { Calculator* temp = new SorEst(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "thetayc") { Calculator* temp = new ThetaYC(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "thetan") { Calculator* temp = new ThetaN(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "kstest") { Calculator* temp = new KSTest(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "whittaker") { Calculator* temp = new Whittaker(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "sharednseqs") { Calculator* temp = new SharedNSeqs(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "ochiai") { Calculator* temp = new Ochiai(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "anderberg") { Calculator* temp = new Anderberg(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "skulczynski") { Calculator* temp = new Kulczynski(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "kulczynskicody") { Calculator* temp = new KulczynskiCody(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "lennon") { Calculator* temp = new Lennon(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "morisitahorn") { Calculator* temp = new MorHorn(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "braycurtis") { Calculator* temp = new BrayCurtis(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "odum") { Calculator* temp = new Odum(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "canberra") { Calculator* temp = new Canberra(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "structeuclidean") { Calculator* temp = new StructEuclidean(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "structchord") { Calculator* temp = new StructChord(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "hellinger") { Calculator* temp = new Hellinger(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "manhattan") { Calculator* temp = new Manhattan(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "structpearson") { Calculator* temp = new StructPearson(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "soergel") { Calculator* temp = new Soergel(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "spearman") { Calculator* temp = new Spearman(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "structkulczynski") { Calculator* temp = new StructKulczynski(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "speciesprofile") { Calculator* temp = new SpeciesProfile(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "hamming") { Calculator* temp = new Hamming(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "structchi2") { Calculator* temp = new StructChi2(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "gower") { Calculator* temp = new Gower(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+
+ }else if (Estimators[i] == "memchi2") { Calculator* temp = new MemChi2(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "memchord") { Calculator* temp = new MemChord(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "memeuclidean") { Calculator* temp = new MemEuclidean(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "mempearson") { Calculator* temp = new MemPearson(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "sharedobserved") { Calculator* temp = new SharedSobs(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else if (Estimators[i] == "kulczynski") { Calculator* temp = new Kulczynski(); m->mothurOut(temp->getName() + ": "); temp->citation(); delete temp;
+ }else { m->mothurOut("[ERROR]: Missing else if for " + Estimators[i] + " in printCitations."); m->mothurOutEndLine(); }
+ }else { m->mothurOut(Estimators[i] + " is not a valid calculator, no citation will be given."); m->mothurOutEndLine(); }
+ }
+
+ }
+ catch(exception& e) {
+ m->errorOut(e, "ValidCalculator", "printCitations");
+ exit(1);
+ }
+}
/********************************************************************/
bool ValidCalculators::isValidCalculator(string parameter, string calculator) {
bool isValidCalculator(string, string);
void printCalc(string, ostream&);
string printCalc(string);
+ void printCitations(vector<string>);
private:
map<string, string> single;
map<string, string> boot;
map<string, string> distance;
map<string, string>::iterator it;
+ set<string> allCalcs;
void initialSingle();
void initialShared();
}
}
m->splitAtDash(calc, Estimators);
+ if (m->inUsersGroups("citation", Estimators)) {
+ ValidCalculators validCalc; validCalc.printCitations(Estimators);
+ //remove citation from list of calcs
+ for (int i = 0; i < Estimators.size(); i++) { if (Estimators[i] == "citation") { Estimators.erase(Estimators.begin()+i); break; } }
+ }
string temp;
temp = validParameter.validFile(parameters, "abund", false); if (temp == "not found") { temp = "10"; }
Whittaker() : Calculator("whittaker", 1, false) {};
EstOutput getValues(SAbundVector*) {return data;};
EstOutput getValues(vector<SharedRAbundVector*>);
+ string getCitation() { return "http://www.mothur.org/wiki/Whittaker"; }
};