21DDC01B0F97A8FE0060691C /* bootstrapsharedcommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21DDC01A0F97A8FE0060691C /* bootstrapsharedcommand.cpp */; };
21E859D80FC4632E005E1A48 /* matrixoutputcommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21E859D70FC4632E005E1A48 /* matrixoutputcommand.cpp */; };
370B88070F8A4EE4005AB382 /* getoturepcommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 370B88060F8A4EE4005AB382 /* getoturepcommand.cpp */; };
+ 371B30B40FD7EE67000414CA /* screenseqscommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 371B30B20FD7EE67000414CA /* screenseqscommand.cpp */; };
372E12700F26365B0095CF7E /* readotucommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 372E126F0F26365B0095CF7E /* readotucommand.cpp */; };
372E12960F263D5A0095CF7E /* readdistcommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 372E12950F263D5A0095CF7E /* readdistcommand.cpp */; };
372E12ED0F264D320095CF7E /* commandfactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 372E12EC0F264D320095CF7E /* commandfactory.cpp */; };
21E859D70FC4632E005E1A48 /* matrixoutputcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = matrixoutputcommand.cpp; sourceTree = SOURCE_ROOT; };
370B88050F8A4EE4005AB382 /* getoturepcommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = getoturepcommand.h; sourceTree = SOURCE_ROOT; };
370B88060F8A4EE4005AB382 /* getoturepcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = getoturepcommand.cpp; sourceTree = SOURCE_ROOT; };
+ 371B30B20FD7EE67000414CA /* screenseqscommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = screenseqscommand.cpp; sourceTree = "<group>"; };
+ 371B30B30FD7EE67000414CA /* screenseqscommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = screenseqscommand.h; sourceTree = "<group>"; };
372E126E0F26365B0095CF7E /* readotucommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = readotucommand.h; sourceTree = SOURCE_ROOT; };
372E126F0F26365B0095CF7E /* readotucommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = readotucommand.cpp; sourceTree = SOURCE_ROOT; };
372E12940F263D5A0095CF7E /* readdistcommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = readdistcommand.h; sourceTree = SOURCE_ROOT; };
372E126F0F26365B0095CF7E /* readotucommand.cpp */,
37E5F4900F2A3DA800F8D827 /* readtreecommand.h */,
37E5F4910F2A3DA800F8D827 /* readtreecommand.cpp */,
+ 371B30B30FD7EE67000414CA /* screenseqscommand.h */,
+ 371B30B20FD7EE67000414CA /* screenseqscommand.cpp */,
3799A94E0FD6A58C00E33EDE /* seqsummarycommand.cpp */,
3799A94F0FD6A58C00E33EDE /* seqsummarycommand.h */,
37D928270F21331F001D4494 /* sharedcommand.h */,
37D927D40F21331F001D4494 /* database.hpp */,
37D927D30F21331F001D4494 /* database.cpp */,
37D927D50F21331F001D4494 /* datavector.hpp */,
- 3799A94C0FD6A58C00E33EDE /* distancedb.cpp */,
3799A94D0FD6A58C00E33EDE /* distancedb.hpp */,
+ 3799A94C0FD6A58C00E33EDE /* distancedb.cpp */,
37D927DC0F21331F001D4494 /* fastamap.h */,
37D927DB0F21331F001D4494 /* fastamap.cpp */,
375873EA0F7D64520040F377 /* fullmatrix.h */,
3749273F0FD5956B0031C06B /* getrabundcommand.cpp in Sources */,
3799A9500FD6A58C00E33EDE /* distancedb.cpp in Sources */,
3799A9510FD6A58C00E33EDE /* seqsummarycommand.cpp in Sources */,
+ 371B30B40FD7EE67000414CA /* screenseqscommand.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
*
*/
-using namespace std;
-
-#include <string>
-#include <vector>
-
#include "alignmentcell.hpp"
#include "alignment.hpp"
-#include <iostream>
/**************************************************************************************************/
* As of 12/18/08 these included alignments based on blastn, needleman-wunsch, and the Gotoh algorithms
*
*/
-using namespace std;
#include "mothur.h"
#include "alignmentcell.hpp"
//********************************************************************************************************************
-AlignmentCell::AlignmentCell() : prevCell('x'), cValue(0.0000), dValue(0.0000), iValue(0.0000) {};
+AlignmentCell::AlignmentCell() : prevCell('x'), cValue(0.0000), dValue(0.0000), iValue(0.0000) {}
//********************************************************************************************************************
*
*/
-using namespace std;
#include "alignment.hpp"
#include "blastalign.hpp"
string candidateName, templateName;
- while(d=blastFile.get() != '='){};
+ while(d=blastFile.get() != '='){}
blastFile >> candidateName; // Get the candidate sequence name from flatfile
- while(d=blastFile.get() != '('){};
+ while(d=blastFile.get() != '('){}
blastFile >> candidateLength; // Get the candidate sequence length from flatfile
while(d=blastFile.get()){
}
}
- while(d=blastFile.get() != '='){};
+ while(d=blastFile.get() != '='){}
blastFile >> templateLength; // Get the template sequence length from flatfile
- while(d=blastFile.get() != 'Q'){}; // Suck up everything else until we get to the start of the alignment
+ while(d=blastFile.get() != 'Q'){} // Suck up everything else until we get to the start of the alignment
int queryStart, sbjctStart, queryEnd, sbjctEnd;
string queryLabel, sbjctLabel, query, sbjct;
*
*/
-using namespace std;
-
#include "database.hpp"
#include "sequence.hpp"
cout << "An unknown error has occurred in the Coverage class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
#ifndef CALCULATOR_H
#define CALCULATOR_H
-using namespace std;
#include "mothur.h"
#include "sabundvector.hpp"
EstOutput getValues(SharedRAbundVector* shared1, SharedRAbundVector* shared2), which compares 2 groups. */
-using namespace std;
typedef vector<double> EstOutput;
/***********************************************************************/
cout << "An unknown error has occurred in the Chao1 class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
#ifndef CLUSTER_H
#define CLUSTER_H
-using namespace std;
#include "mothur.h"
#include "sparsematrix.hpp"
#ifndef COLLECT_H
#define COLLECT_H
-using namespace std;
-
-
-
#include "collectorscurvedata.h"
#include "display.h"
#include "ordervector.hpp"
#include "display.h"
-using namespace std;
-
/***********************************************************************/
class CollectDisplay : public Display {
#ifndef COLLECTORSCURVEDATA_H
#define COLLECTORSCURVEDATA_H
-#include "mothur.h"
#include "sabundvector.hpp"
#include "sharedrabundvector.h"
#include "display.h"
#include "observable.h"
-using namespace std;
/***********************************************************************/
/*This class is a parent to all the command classes. It has one pure int execute(). */
-using namespace std;
#include "mothur.h"
else if(commandName == "read.otu") { command = new ReadOtuCommand(); }
else if(commandName == "read.tree") { command = new ReadTreeCommand(); }
else if(commandName == "cluster") { command = new ClusterCommand(); }
- else if(commandName == "deconvolute") { command = new DeconvoluteCommand(); }
+ else if(commandName == "unique.seqs") { command = new DeconvoluteCommand(); }
else if(commandName == "parsimony") { command = new ParsimonyCommand(); }
else if(commandName == "help") { command = new HelpCommand(); }
else if(commandName == "quit") { command = new QuitCommand(); }
*/
-using namespace std;
-
-
#include "globaldata.hpp"
#include "commandoptionparser.hpp"
cout << "An unknown error has occurred in the Coverage class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
*
*/
-using namespace std;
-
-
+#include "mothur.h"
#include "sequence.hpp"
#include "database.hpp"
*
*/
+
+/* This class is a parent to blastdb, distancedb, kmerdb, suffixdb. Which are used to convert a squencedb object into that form. */
+
#include "mothur.h"
class Sequence;
#ifndef datavector_h
#define datavector_h
-using namespace std;
#include "mothur.h"
//the second column is the list of names of identical sequences separated by ','.
fastamap->printNamesFile(out);
fastamap->printCondensedFasta(outFasta);
+
+ out.close();
+ outFasta.close();
return 0;
}
#include "fastamap.h"
#include "globaldata.hpp"
-/* The deconvolute command reads a fasta file, finds the duplicate sequences and outputs a names file
+/* The unique.seqs command reads a fasta file, finds the duplicate sequences and outputs a names file
containing 2 columns. The first being the groupname and the second the list of identical sequence names. */
-using namespace std;
class DeconvoluteCommand : public Command {
#include "fileoutput.h"
-using namespace std;
-
/***********************************************************************/
class Display {
convert(globaldata->getCutOff(), cutoff);
int i;
- if (countends == "T") {
+ if (isTrue(countends) == true) {
for (i=0; i<globaldata->Estimators.size(); i++) {
if (validCalculator->isValidCalculator("distance", globaldata->Estimators[i]) == true) {
if (globaldata->Estimators[i] == "nogaps") {
#include "readseqsphylip.h"
-using namespace std;
-
class DistanceCommand : public Command {
public:
*/
-using namespace std;
-
-
#include "database.hpp"
#include "sequence.hpp"
#include "distancedb.hpp"
*/
-using namespace std;
-
#include "mothur.h"
class DistanceDB : public Database {
cout << "An unknown error has occurred in the Coverage class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
* Fix later, don't have time now.
*
*/
-using namespace std;
+
#include "engine.hpp"
ErrorCheck* errorCheckor = new ErrorCheck();
cout << "mothur v.1.3.0" << endl;
- cout << "Last updated: 4/25/2009" << endl << endl;
+ cout << "Last updated: 5/29/2009" << endl << endl;
cout << "by" << endl;
cout << "Patrick D. Schloss" << endl << endl;
cout << "Department of Microbiology" << endl;
#include "commandfactory.hpp"
#include "errorchecking.h"
-
-using namespace std;
-
class GlobalData;
class Engine {
}
}else if (commandName == "read.tree") {
validateTreeFiles(); //checks the treefile and groupfile parameters
- }else if (commandName == "deconvolute") {
- if (fastafile == "") { cout << "You must enter a fastafile with the deconvolute() command." << endl; return false; }
+ }else if (commandName == "unique.seqs") {
+ if (fastafile == "") { cout << "You must enter a fastafile with the unique.seqs() command." << endl; return false; }
validateReadFiles();
}
}
if ((commandName == "filter.seqs") || (commandName == "dist.seqs")) {
- if ((fastafile == "") && (nexusfile == "") && (clustalfile == "") && (phylipfile == "")) {
- cout << "You must enter either a fasta, nexus, clustal, or phylip file before you can use the filter.seqs or dist.seqs command." << endl; return false;
+ if (fastafile == "") {
+ cout << "You must enter either a fasta file before you can use the filter.seqs or dist.seqs command." << endl; return false;
}
validateSeqsFiles();
}
try {
string name, sequence, line;
sequence = "";
-
- in >> line;
- name = line.substr(1, line.length()); //rips off '>'
-
+ int c;
+ string temp;
+
+
//read through file
- while (!in.eof()) {
- in >> line;
+ while ((c = in.get()) != EOF) {
+ name = ""; sequence = "";
+ //is this a name
+ if (c == '>') {
+ name = readName(in);
+ sequence = readSequence(in);
+ }else { cout << "Error fasta in your file. Please correct." << endl; }
- if (line[0] != '>') { //if it's a sequence line
- sequence += line;
- }
- else{
+ //store info in map
//input sequence info into map
- seqmap[name] = sequence;
-
- it = data.find(sequence);
- if (it == data.end()) { //it's unique.
- data[sequence].groupname = name; //group name will be the name of the first duplicate sequence found.
- data[sequence].groupnumber = 1;
- data[sequence].names = name;
- }else { // its a duplicate.
- data[sequence].names += "," + name;
- data[sequence].groupnumber++;
- }
- name = (line.substr(1, (line.npos))); //The line you just read is a new name so rip off '>'
- sequence = "";
- }
+ seqmap[name] = sequence;
+ it = data.find(sequence);
+ if (it == data.end()) { //it's unique.
+ data[sequence].groupname = name; //group name will be the name of the first duplicate sequence found.
+ data[sequence].groupnumber = 1;
+ data[sequence].names = name;
+ }else { // its a duplicate.
+ data[sequence].names += "," + name;
+ data[sequence].groupnumber++;
+ }
gobble(in);
}
- it = data.find(sequence);
- if (it == data.end()) { //it's unique.
- data[sequence].groupname = name; //group name will be the name of the first duplicate sequence found.
- data[sequence].groupnumber = 1;
- data[sequence].names = name;
- }else { // its a duplicate.
- data[sequence].names += "," + name;
- data[sequence].groupnumber++;
+
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the FastaMap class Function readFastaFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the FastaMap class function readFastaFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+/*******************************************************************************/
+string FastaMap::readName(ifstream& in) {
+ try{
+ string name = "";
+ int c;
+ string temp;
+
+ while ((c = in.get()) != EOF) {
+ //if c is not a line return
+ if (c != 10) {
+ name += c;
+ }else { break; }
}
+
+ return name;
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the FastaMap class Function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the FastaMap class function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+
+/*******************************************************************************/
+string FastaMap::readSequence(ifstream& in) {
+ try{
+ string sequence = "";
+ string line;
+ int pos, c;
+ while (!in.eof()) {
+ //save position in file in case next line is a new name.
+ pos = in.tellg();
+ line = "";
+ in >> line;
+ //if you are at a new name
+ if (line[0] == '>') {
+ //put file pointer back since you are now at a new name
+ in.seekg(pos, ios::beg);
+ c = in.get(); //because you put it back to a newline char
+ break;
+ }else { sequence += line; }
+ }
+ return sequence;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the FastaMap class Function readFastaFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ cout << "Standard Error: " << e.what() << " has occurred in the FastaMap class Function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
catch(...) {
- cout << "An unknown error has occurred in the FastaMap class function readFastaFile. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ cout << "An unknown error has occurred in the FastaMap class function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
}
/*******************************************************************************/
void FastaMap::printCondensedFasta(ostream& out){ //prints data
try {
- // two column file created with groupname and them list of identical sequence names
+ //creates a fasta file
for (it = data.begin(); it != data.end(); it++) {
out << ">" << it->second.groupname << endl;
out << it->first << endl;
*
*/
-using namespace std;
-
#include "mothur.h"
map<string, string> seqmap; //name, sequence - uncondensed representation of file
map<string, group>::iterator it;
map<string, string>::iterator it2;
+
+ string readName(ifstream&);
+ string readSequence(ifstream&);
};
#endif
inFile.close();
outFile.close();
remove(outName.c_str());
-};
+}
/***********************************************************************/
cout << "An unknown error has occurred in the ThreeColumnFile class function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
inFile.close();
outFile.close();
remove(outName.c_str());
-};
+}
/***********************************************************************/
cout << "An unknown error has occurred in the ColumnFile class function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
inFile.close();
outFile.close();
remove(outName.c_str());
-};
+}
/***********************************************************************/
cout << "An unknown error has occurred in the SharedThreeColumnFile class function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
inFile.close();
outFile.close();
remove(outName.c_str());
-};
+}
/***********************************************************************/
cout << "An unknown error has occurred in the OneColumnFile class function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
inFile.close();
outFile.close();
remove(outName.c_str());
-};
+}
/***********************************************************************/
cout << "An unknown error has occurred in the OneColumnFile class function output. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
#include "mothur.h"
#include "globaldata.hpp"
-using namespace std;
-
/***********************************************************************/
class FileOutput {
int FilterSeqsCommand::execute() {
try {
-
ifstream inFASTA;
openInputFile(globaldata->getFastaFile(), inFASTA);
if(globaldata->getHard().compare("") != 0) { doHard(); } // has to be applied first!
if(globaldata->getTrump().compare("") != 0) { doTrump(); }
- if(isTrue(globaldata->getVertical())) { doVertical(); }
+ if(isTrue(globaldata->getVertical()) == true) { doVertical(); }
if(globaldata->getSoft().compare("") != 0) { doSoft(); }
-
-
-
-
-
-
ofstream outfile;
string filterFile = getRootName(globaldata->inputFileName) + "filter";
*/
#include "command.hpp"
-#include "mothur.h"
#include "globaldata.hpp"
#include "readfasta.h"
#include "readnexus.h"
#include "readclustal.h"
#include "readseqsphylip.h"
-using namespace std;
class FilterSeqsCommand : public Command {
#include "globaldata.hpp"
#include "progress.hpp"
-using namespace std;
struct Names {
string seqName;
//option definitions should go here...
helpRequest = "";
clear();
- gListVector == NULL;
- gSparseMatrix == NULL;
+ gListVector = NULL;
+ gSparseMatrix = NULL;
}
/*******************************************************/
step = "0.01";
form = "integral";
sorted = "T"; //F means don't sort, T means sort.
- vertical = "";
+ vertical = "F";
trump = "";
hard = "";
soft = "";
#include "mothur.h"
#include "groupmap.h"
#include "treemap.h"
-
#include "rabundvector.hpp"
#include "sabundvector.hpp"
#include "listvector.hpp"
-
-using namespace std;
-
class ListVector;
class SharedListVector;
class SparseMatrix;
*
*/
-using namespace std;
#include "alignmentcell.hpp"
#include "overlap.hpp"
}
/************************************************************/
- GroupMap::~GroupMap(){};
+ GroupMap::~GroupMap(){}
/************************************************************/
void GroupMap::readMap() {
void HeatMap::getPic(vector<SharedRAbundVector*> lookup) {
try {
//sort lookup so shared bins are on top
- if (sorted == "T") { sortSharedVectors(lookup); }
+ if (isTrue(sorted) == true) { sortSharedVectors(lookup); }
vector<vector<string> > scaleRelAbund;
vector<float> maxRelAbund(lookup.size(), 0.0);
else if(scaler== "log2") { label = maxbin * log2(51*i) / log2(255); }
else if(scaler== "linear") { label = maxbin * 51 * i / 255; }
else { label = maxbin * log10(51*i) / log10(255); }
- file://localhost/Users/westcott/Desktop/c.amazon.fn.0.19.rep.fasta
label = int(label * 1000 + 0.5);
label /= 1000.0;
string text = toString(label, 3);
*
*/
-using namespace std;
-
#include "rabundvector.hpp"
#include "sharedrabundvector.h"
#include "datavector.hpp"
cout << "The cluster command should be in the following format: " << "\n";
cout << "cluster(method=yourMethod, cutoff=yourCutoff, precision=yourPrecision) " << "\n";
cout << "The acceptable cluster methods are furthest, nearest and average. If no method is provided then furthest is assumed." << "\n" << "\n";
- }else if (globaldata->helpRequest == "deconvolute") {
- cout << "The deconvolute command reads a fastafile and creates a namesfile." << "\n";
+ }else if (globaldata->helpRequest == "unique.seqs") {
+ cout << "The unique.seqs command reads a fastafile and creates a namesfile." << "\n";
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";
cout << "If the sequence is unique the second column will just contain its name. " << "\n";
- cout << "The deconvolute command parameter is fasta and it is required." << "\n";
- cout << "The deconvolute command should be in the following format: " << "\n";
- cout << "deconvolute(fasta=yourFastaFile) " << "\n";
+ cout << "The unique.seqs command parameter is fasta and it is required." << "\n";
+ cout << "The unique.seqs command should be in the following format: " << "\n";
+ cout << "unique.seqs(fasta=yourFastaFile) " << "\n";
}else if (globaldata->helpRequest == "dist.seqs") {
cout << "The dist.seqs command reads a file containing sequences and creates a distance file." << "\n";
- cout << "The dist.seqs command parameters are fasta, phylip, clustal, nexus, calc, countends, cutoff and processors. " << "\n";
- cout << "You must use one of the following parameters for your filename: fasta, phylip, clustal or nexus. " << "\n";
+ cout << "The dist.seqs command parameters are fasta, calc, countends, cutoff and processors. " << "\n";
+ cout << "The fasta parameter is required." << "\n";
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";
cout << "The countends parameter allows you to specify whether to include terminal gaps in distance. Your options are: T or F. The default is T." << "\n";
cout << "The cutoff parameter allows you to specify maximum distance to keep. The default is 1.0." << "\n";
}else if (globaldata->helpRequest == "align.seqs") {
cout << "The align.seqs command reads a file containing sequences and creates an alignment file and a report file." << "\n";
cout << "The align.seqs command parameters are fasta, candidate, search, ksize, align, match, mismatch, gapopen and gapextend. " << "\n";
- cout << "The template parameter is also required." << "\n";
+ cout << "The fasta and candidate parameters are required." << "\n";
cout << "The search parameter allows you to specify the method to find most similar template. Your options are: suffix, kmer and blast. The default is kmer." << "\n";
cout << "The align parameter allows you to specify the alignment method to use. Your options are: gotoh, needleman, blast and noalign. The default is needleman." << "\n";
cout << "The ksize parameter allows you to specify the kmer size for finding most similar template to candidate. The default is 7." << "\n";
cout << "The bin.seqs command outputs a .fasta file for each distance you specify appending the OTU number to each name." << "\n";
cout << "If you provide a groupfile, then it also appends the sequences group to the name." << "\n";
cout << "Note: No spaces between parameter labels (i.e. fasta), '=' and parameters (i.e.yourFastaFile)." << "\n" << "\n";
+ }else if (globaldata->helpRequest == "filter.seqs") {
+ cout << "The filter.seqs command reads a file containing sequences and creates a .filter and .filter.fasta file." << "\n";
+ cout << "The filter.seqs command parameters are fasta, trump, soft, hard and vertical. " << "\n";
+ cout << "The fasta parameter is required." << "\n";
+ cout << "The trump parameter .... The default is ...." << "\n";
+ cout << "The soft parameter .... The default is ...." << "\n";
+ cout << "The hard parameter .... The default is ...." << "\n";
+ cout << "The vertical parameter .... The default is ...." << "\n";
+ cout << "The filter.seqs command should be in the following format: " << "\n";
+ cout << "filter.seqs(fasta=yourFastaFile, trump=yourTrump, soft=yourSoft, hard=yourHard, vertical=yourVertical) " << "\n";
+ cout << "Example filter.seqs(fasta=abrecovery.fasta, trump=..., soft=..., hard=..., vertical=...)." << "\n";
+ cout << "Note: No spaces between parameter labels (i.e. fasta), '=' and parameters (i.e.yourFasta)." << "\n" << "\n";
}else if (globaldata->helpRequest == "get.oturep") {
cout << "The get.oturep command can only be executed after a successful read.dist command." << "\n";
cout << "The get.oturep command parameters are list, fasta, name, group, line and label. The fasta and list parameters are required, and you may not use line and label at the same time." << "\n";
#include "listvector.hpp"
-using namespace std;
-
class InputData {
public:
*
*/
-using namespace std;
-
-
#include "kmer.hpp"
/**************************************************************************************************/
*/
-using namespace std;
-
-
#include "sequence.hpp"
#include "kmer.hpp"
#include "database.hpp"
#include "fullmatrix.h"
#include "libshuff.h"
-using namespace std;
class GlobalData;
*
*/
-using namespace std;
-
#include "sabundvector.hpp"
#include "rabundvector.hpp"
/***********************************************************************/
-ListVector::ListVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){};
+ListVector::ListVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){}
/***********************************************************************/
-ListVector::ListVector(int n): DataVector(), data(n, "") , maxRank(0), numBins(0), numSeqs(0){};
+ListVector::ListVector(int n): DataVector(), data(n, "") , maxRank(0), numBins(0), numSeqs(0){}
/***********************************************************************/
#include "engine.hpp"
#include "globaldata.hpp"
-using namespace std;
-
/**************************************************************************************************/
GlobalData* GlobalData::_uniqueInstance = 0;
#include <cmath>
#include <math.h>
#include <algorithm>
+#include <ctime>
+
+#ifdef _WIN32
+ #define exp(x) (exp((double) x))
+ #define sqrt(x) (sqrt((double) x))
+ #define log10(x) (log10((double) x))
+ #define log2(x) (log10(x)/log10(2))
+#endif
+
typedef unsigned long long ull;
f.putback(d);
}
+/***********************************************************************/
+
+inline bool isTrue(string f){
+
+ if ((f == "TRUE") || (f == "T") || (f == "true") || (f == "t")) { return true; }
+ else { return false; }
+}
/***********************************************************************/
-using namespace std;
+
#include "nameassignment.hpp"
#ifndef NAMEASSIGNMENT_HPP
#define NAMEASSIGNMENT_HPP
-using namespace std;
-
#include "mothur.h"
#include "listvector.hpp"
*
*/
-using namespace std;
-
#include "sequence.hpp"
#include "alignment.hpp"
#include "nast.hpp"
*
*/
-using namespace std;
-
#include "sequence.hpp"
#include "nast.hpp"
#include "alignment.hpp"
#include "mothur.h"
-using namespace std;
-
/******************************************************************************************************************/
class NastReport {
*
*/
-using namespace std;
-
#include "alignmentcell.hpp"
#include "alignment.hpp"
#include "overlap.hpp"
* Copyright 2009Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-using namespace std;
#include "mothur.h"
#include "collectdisplay.h"
-using namespace std;
/***********************************************************************/
*
*/
-using namespace std;
-
#include "ordervector.hpp"
/***********************************************************************/
-//OrderVector::OrderVector(int ns) : DataVector(), data(ns, -1) {};
+//OrderVector::OrderVector(int ns) : DataVector(), data(ns, -1) {}
/***********************************************************************/
* issues at the 5' end of the alignment seem to take care of themselves in the traceback.
*
*/
-using namespace std;
#include "alignmentcell.hpp"
#include "overlap.hpp"
#include "sharedutilities.h"
#include "fileoutput.h"
-using namespace std;
class GlobalData;
#include "progress.hpp"
-using namespace std;
-
const int totalTicks = 50;
const char marker = '|';
#include "mothur.h"
-using namespace std;
-
class Progress {
public:
* Copyright 2008 Patrick D. Schloss. All rights reserved.
*
*/
-using namespace std;
#include "rabundvector.hpp"
#include "sabundvector.hpp"
/***********************************************************************/
-RAbundVector::RAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {};
+RAbundVector::RAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {}
/***********************************************************************/
-RAbundVector::RAbundVector(int n) : DataVector(), data(n,0) , maxRank(0), numBins(0), numSeqs(0) {};
+RAbundVector::RAbundVector(int n) : DataVector(), data(n,0) , maxRank(0), numBins(0), numSeqs(0) {}
/***********************************************************************/
-//RAbundVector::RAbundVector(const RAbundVector& rav) : DataVector(rav), data(rav.data), (rav.label), (rav.maxRank), (rav.numBins), (rav.numSeqs){};
+//RAbundVector::RAbundVector(const RAbundVector& rav) : DataVector(rav), data(rav.data), (rav.label), (rav.maxRank), (rav.numBins), (rav.numSeqs){}
/***********************************************************************/
cout << "An unknown error has occurred in the RareDisplay class function update. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
void RareDisplay::update(vector<SharedRAbundVector*> shared, int numSeqs, int numGroupComb) {
cout << "An unknown error has occurred in the RareDisplay class function update. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
#include "fileoutput.h"
#include "display.h"
-
-using namespace std;
-
/***********************************************************************/
class RareDisplay : public Display {
#ifndef RAREFACT_H
#define RAREFACT_H
-using namespace std;
-
#include "rarefactioncurvedata.h"
#include "raredisplay.h"
#include "ordervector.hpp"
#include "display.h"
#include "observable.h"
-using namespace std;
-
/***********************************************************************/
class RarefactionCurveData : public Observable {
* Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-using namespace std;
#include "readseqs.h"
#include "globaldata.hpp"
#include <fstream>
/*******************************************************************************/
-ReadFasta::ReadFasta(string file) : ReadSeqs(file) {
- try {
- }
- catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the ReadTree class Function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the ReadTree class function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
-}
+ReadFasta::ReadFasta(string file) : ReadSeqs(file) {}
/*******************************************************************************/
ReadFasta::~ReadFasta(){
//for(int i = 0; i < sequencedb.getNumSeqs(); i++)
}
/*******************************************************************************/
void ReadFasta::read() {
- string name = "";
+ try {
+ /*string name = "";
string sequence = "";
string temp;
int count = 0;
}
Sequence newSequence(name, sequence);
- sequencedb.add(newSequence);
+ sequencedb.add(newSequence); */
+
+ string name, sequence, line;
+ sequence = "";
+ int c;
+ string temp;
+
+
+ //read through file
+ while ((c = filehandle.get()) != EOF) {
+ name = ""; sequence = "";
+ //is this a name
+ if (c == '>') {
+ name = readName(filehandle);
+ sequence = readSequence(filehandle);
+ }else { cout << "Error fasta in your file. Please correct." << endl; }
- filehandle.close();
+ //input sequence info into sequencedb
+ Sequence newSequence(name, sequence);
+ sequencedb.add(newSequence);
+
+ //takes care of white space
+ gobble(filehandle);
+ }
+
+ filehandle.close();
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the ReadFasta class Function read. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the ReadFasta class function read. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
}
/*********************************************************************************/
SequenceDB* ReadFasta::getDB() {
return &sequencedb;
}
+/*******************************************************************************/
+string ReadFasta::readName(ifstream& in) {
+ try{
+ string name = "";
+ int c;
+ string temp;
+
+ while ((c = in.get()) != EOF) {
+ //if c is not a line return
+ if (c != 10) {
+ name += c;
+ }else { break; }
+ }
+
+ return name;
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the ReadFasta class Function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the ReadFasta class function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+
+/*******************************************************************************/
+string ReadFasta::readSequence(ifstream& in) {
+ try{
+ string sequence = "";
+ string line;
+ int pos, c;
+
+ while (!in.eof()) {
+ //save position in file in case next line is a new name.
+ pos = in.tellg();
+ line = "";
+ in >> line;
+ //if you are at a new name
+ if (line[0] == '>') {
+ //put file pointer back since you are now at a new name
+ in.seekg(pos, ios::beg);
+ c = in.get(); //because you put it back to a newline char
+ break;
+ }else { sequence += line; }
+ }
+
+ return sequence;
+ }
+ catch(exception& e) {
+ cout << "Standard Error: " << e.what() << " has occurred in the ReadFasta class Function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+ catch(...) {
+ cout << "An unknown error has occurred in the ReadFasta class function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ exit(1);
+ }
+}
+/*******************************************************************************/
+
*
*/
-using namespace std;
-
#include "readseqs.h"
#include "globaldata.hpp"
#include "sequencedb.h"
ReadFasta(string);
~ReadFasta();
void read();
- SequenceDB* getDB();
+ SequenceDB* getDB();
+ private:
+ string readName(ifstream&);
+ string readSequence(ifstream&);
+
};
#endif
\ No newline at end of file
* Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-using namespace std;
#include "readseqs.h"
#include "globaldata.hpp"
*
*/
-using namespace std;
-
#include "globaldata.hpp"
#include "sequencedb.h"
-#include "utilities.hpp"
+//#include "utilities.hpp"
/**********************************************************************************/
*/
#include "readseqs.h"
-#include <iostream>
-#include <fstream>
-
/*******************************************************************************/
ReadSeqs::ReadSeqs(string file) {
globaldata = GlobalData::getInstance();
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the ReadTree class Function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ cout << "Standard Error: " << e.what() << " has occurred in the ReadSeqs class Function ReadSeqs. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
catch(...) {
- cout << "An unknown error has occurred in the ReadTree class function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ cout << "An unknown error has occurred in the ReadSeqs class function ReadSeqs. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
}
*
*/
-using namespace std;
-
#include "globaldata.hpp"
#include "sequencedb.h"
#include "mothur.h"
}
/*******************************************************************************/
-ReadPhylip::ReadPhylip(string file) : ReadSeqs(file) {
- try {
- }
- catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the ReadTree class Function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the ReadTree class function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
-}
+ReadPhylip::ReadPhylip(string file) : ReadSeqs(file) { }
/*******************************************************************************/
ReadPhylip::~ReadPhylip(){
// for(int i = 0; i < sequencedb.getNumSeqs(); i++)
* Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-using namespace std;
#include "readseqs.h"
#include "globaldata.hpp"
*
*/
-using namespace std;
-
#include "mothur.h"
#include "globaldata.hpp"
#include "tree.h"
* Copyright 2008 Patrick D. Schloss. All rights resesaved.
*
*/
-using namespace std;
#include "sabundvector.hpp"
#include "calculator.h"
/***********************************************************************/
-SAbundVector::SAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){};
+SAbundVector::SAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){}
/***********************************************************************/
-SAbundVector::SAbundVector(int size) : DataVector(), data(size, 0), maxRank(0), numBins(0), numSeqs(0) {};
+SAbundVector::SAbundVector(int size) : DataVector(), data(size, 0), maxRank(0), numBins(0), numSeqs(0) {}
/***********************************************************************/
#ifndef SABUND_H
#define SABUND_H
-using namespace std;
-
#include "datavector.hpp"
#include "rabundvector.hpp"
#include "ordervector.hpp"
#include "readclustal.h"
#include "readseqsphylip.h"
-using namespace std;
class ScreenSeqsCommand : public Command {
#include "readclustal.h"
#include "readseqsphylip.h"
-using namespace std;
class SeqSummaryCommand : public Command {
public:
*
*/
-using namespace std;
-
#include "sequence.hpp"
/***********************************************************************/
* to set and get these values for the other classes where they are needed. *
*
*/
-using namespace std;
#include "mothur.h"
*/
-using namespace std;
+/* This class is a container to store the sequences. */
+
#include "sequence.hpp"
#include "calculator.h"
-
-
class SequenceDB {
public:
* Copyright 2008 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-
-using namespace std;
#include "mothur.h"
#include "sharedrabundvector.h"
/***************************************************************************************
***************************************************************************************/
-double SharedJackknife::simpson(int abunds[], double numInd, int numBins){
+double SharedJackknife::simpson(vector<int> abunds, double numInd, int numBins){
double denom = numInd*(numInd-1);
double sum = 0;
for(int i = 0; i < numBins; i++)
double* SharedJackknife::jackknife(){
int numBins = groups.at(0)->getNumBins()-1;
- int cArray[numBins];
+ vector<int> cArray(numBins);
for(int i = 0; i < numBins; i++)
cArray[i] = 0;
double baseD = 1/simpson(cArray, numInd, numBins);
- double pseudoVals[numBins];
+ vector<double> pseudoVals(numBins);
double jackknifeEstimate = 0;
for(int i = 0; i < numGroups; i++) {
for(int j = 0; j < numBins-1; j++) {
int numGroups, callCount, count;
bool currentCallDone;
vector<SharedRAbundVector*> groups;
- double simpson(int[], double, int);
+ double simpson(vector<int>, double, int);
double* jackknife();
};
*
*/
-
-using namespace std;
-
-
#include "sabundvector.hpp"
#include "rabundvector.hpp"
#include "ordervector.hpp"
/***********************************************************************/
-SharedListVector::SharedListVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){};
+SharedListVector::SharedListVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){}
/***********************************************************************/
-SharedListVector::SharedListVector(int n): DataVector(), data(n, "") , maxRank(0), numBins(0), numSeqs(0){};
+SharedListVector::SharedListVector(int n): DataVector(), data(n, "") , maxRank(0), numBins(0), numSeqs(0){}
/***********************************************************************/
SharedListVector::SharedListVector(ifstream& f) : DataVector(), maxRank(0), numBins(0), numSeqs(0) {
*
*/
-using namespace std;
-
-
#include "sharedordervector.h"
#include "sharedutilities.h"
the group it is in and the abundance is equal to the OTU number. */
-using namespace std;
-
#include "datavector.hpp"
struct individual {
*
*/
-
-using namespace std;
-
#include "sharedrabundvector.h"
#include "sabundvector.hpp"
#include "ordervector.hpp"
/***********************************************************************/
-SharedRAbundVector::SharedRAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {};
+SharedRAbundVector::SharedRAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0) {}
/***********************************************************************/
newGuy.abundance = 0;
data.push_back(newGuy);
}
-};
+}
/***********************************************************************
#include "sharedsabundvector.h"
#include "sabundvector.hpp"
-using namespace std;
-
/***********************************************************************/
-SharedSAbundVector::SharedSAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){};
+SharedSAbundVector::SharedSAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){}
/***********************************************************************/
newGuy.abundance = 0;
data.push_back(newGuy);
}
-};
+}
/***********************************************************************/
An individual which knows the OTU from which it came,
the group it is in and its abundance. */
-using namespace std;
class SharedSAbundVector : public DataVector {
cout << "An unknown error has occurred in the Coverage class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
exit(1);
}
-};
+}
/***********************************************************************/
#include "sparsematrix.hpp"
#include "listvector.hpp"
-using namespace std;
-
typedef list<PCell>::iterator MatData;
/***********************************************************************/
-SparseMatrix::SparseMatrix() : numNodes(0), minsIndex(0), smallDist(1e6){};
+SparseMatrix::SparseMatrix() : numNodes(0), minsIndex(0), smallDist(1e6){}
/***********************************************************************/
*
*/
-using namespace std;
-
#include "database.hpp"
#include "sequence.hpp"
#include "suffixtree.hpp"
* Copyright 2008 Patrick D. Schloss. All rights reserved.
*
* This is a child class of the Database abstract datatype. The class is basically a database of suffix trees and an
- * encapsulation of the method for finding the most similar tree to an inputted sequence. the suffixForest objecct
+ * encapsulation of the method for finding the most similar tree to an inputted sequence. the suffixForest object
* is a vector of SuffixTrees, with each template sequence being represented by a different SuffixTree. The class also
* provides a method to take an unaligned sequence and find the closest sequence in the suffixForest. The search
* method is inspired by the article and Perl source code provided at http://www.ddj.com/web-development/184416093. I
#include "suffixnodes.hpp"
-using namespace std;
//********************************************************************************************************************
#include "mothur.h"
-using namespace std;
-
//********************************************************************************************************************
class SuffixNode {
#include "suffixnodes.hpp"
#include "suffixtree.hpp"
-using namespace std;
//********************************************************************************************************************
#include "mothur.h"
-using namespace std;
-
class SuffixNode;
//********************************************************************************************************************
#include "display.h"
#include "observable.h"
-using namespace std;
-
/***********************************************************************/
class SummaryData : public Observable {
*
*/
-using namespace std;
-
#include "treenode.h"
#include "globaldata.hpp"
*
*/
-using namespace std;
-
#include "mothur.h"
#include "tree.h"
}
/************************************************************/
- TreeMap::~TreeMap(){};
+ TreeMap::~TreeMap(){}
/************************************************************/
void TreeMap::readMap() {
*
*/
-using namespace std;
-
#include "mothur.h"
/* This class represents a node on a tree. */
#include "fileoutput.h"
-using namespace std;
-
class GlobalData;
class UnifracUnweightedCommand : public Command {
#include "sharedutilities.h"
#include "fileoutput.h"
-using namespace std;
class GlobalData;
/* This class implements the UVEst estimator on two groups.
It is used by sharedJAbund and SharedSorensonAbund. */
-
-using namespace std;
#include "mothur.h"
#include "sharedrabundvector.h"
* Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-using namespace std;
#include "mothur.h"
commands["bin.seqs"] = "bin.seqs";
commands["get.oturep"] = "get.oturep";
commands["cluster"] = "cluster";
- commands["deconvolute"] = "deconvolute";
+ commands["unique.seqs"] = "unique.seqs";
commands["dist.seqs"] = "dist.seqs";
commands["dist.shared"] = "dist.shared";
commands["collect.single"] = "collect.single";
* Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-using namespace std;
#include "mothur.h"
commandParameters["cluster"] = addParameters(clusterArray, sizeof(clusterArray)/sizeof(string));
string deconvoluteArray[] = {"fasta"};
- commandParameters["deconvolute"] = addParameters(deconvoluteArray, sizeof(deconvoluteArray)/sizeof(string));
+ commandParameters["unique.seqs"] = addParameters(deconvoluteArray, sizeof(deconvoluteArray)/sizeof(string));
string collectsingleArray[] = {"freq","line","label","calc","abund","size"};
commandParameters["collect.single"] = addParameters(collectsingleArray, sizeof(collectsingleArray)/sizeof(string));
string heatmapArray[] = {"groups","line","label","sorted","scale"};
commandParameters["heatmap"] = addParameters(heatmapArray, sizeof(heatmapArray)/sizeof(string));
- string filterseqsArray[] = {"fasta","phylip","clustal","nexus", "trump", "soft", "hard", "vertical"};
+ string filterseqsArray[] = {"fasta", "trump", "soft", "hard", "vertical"};
commandParameters["filter.seqs"] = addParameters(filterseqsArray, sizeof(filterseqsArray)/sizeof(string));
string summaryseqsArray[] = {"fasta","phylip","clustal","nexus"};
string concensusArray[] = {};
commandParameters["concensus"] = addParameters(concensusArray, sizeof(concensusArray)/sizeof(string));
- string distanceArray[] = {"fasta","phylip","clustal","nexus", "calc", "countends", "cutoff", "processors"};
+ string distanceArray[] = {"fasta", "calc", "countends", "cutoff", "processors"};
commandParameters["dist.seqs"] = addParameters(distanceArray, sizeof(distanceArray)/sizeof(string));
string AlignArray[] = {"fasta", "candidate", "search", "ksize", "align", "match", "mismatch", "gapopen", "gapextend"};
* Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
*
*/
-using namespace std;
#include "mothur.h"
void initParameterRanges();
private:
- map<string, string> readdist;
- map<string, string> readotu;
- map<string, string> readtree;
- map<string, string> cluster;
- map<string, string> deconvolute;
- map<string, string> parsimony;
- map<string, string> collectsingle;
- map<string, string> collectshared;
- map<string, string> rarefactsingle;
- map<string, string> rarefactshared;
- map<string, string> summarysingle;
- map<string, string> summaryshared;
- map<string, string> unifracweighted;
- map<string, string> unifracunweighted;
- map<string, string> libshuff;
- map<string, string> heatmap;
-
map<string, string>::iterator it;
map<string, vector<string> > commandParameters;
map<string, vector<string> > parameterRanges;
*
*/
-using namespace std;
-
#include "sabundvector.hpp"
#include "sharedrabundvector.h"
#include "datavector.hpp"