From a86aff4f80701bf0d436f02c0095920114e1cba2 Mon Sep 17 00:00:00 2001 From: westcott Date: Wed, 30 Jun 2010 16:56:43 +0000 Subject: [PATCH] modified trim.seqs to split by primer name if primer name is given, and warn if duplicate barcodes are used. made get.sharedseqs compatible with other fasta formatted software, started adding memory checks to error reporter in mothurout.cpp --- getsharedotucommand.cpp | 8 +- helpcommand.cpp | 1 - makefile | 1804 ++------------------------------------- mothur.h | 3 + mothurout.cpp | 394 +++++---- mothurout.h | 94 +- setdircommand.cpp | 2 +- trimseqscommand.cpp | 159 +++- trimseqscommand.h | 8 +- 9 files changed, 485 insertions(+), 1988 deletions(-) diff --git a/getsharedotucommand.cpp b/getsharedotucommand.cpp index 7f87556..d2e4088 100644 --- a/getsharedotucommand.cpp +++ b/getsharedotucommand.cpp @@ -334,7 +334,7 @@ int GetSharedOTUCommand::process(ListVector* shared) { //find group string seqGroup = groupMap->getGroup(name); if (output != "accnos") { - namesOfSeqsInThisBin.push_back((name + "\t" + seqGroup + "\t" + toString(i+1))); + namesOfSeqsInThisBin.push_back((name + "|" + seqGroup + "|" + toString(i+1))); }else { namesOfSeqsInThisBin.push_back(name); } if (seqGroup == "not found") { m->mothurOut(name + " is not in your groupfile. Please correct."); m->mothurOutEndLine(); exit(1); } @@ -348,7 +348,7 @@ int GetSharedOTUCommand::process(ListVector* shared) { //get last name string seqGroup = groupMap->getGroup(names); if (output != "accnos") { - namesOfSeqsInThisBin.push_back((names + "\t" + seqGroup + "\t" + toString(i+1))); + namesOfSeqsInThisBin.push_back((names + "|" + seqGroup + "|" + toString(i+1))); }else { namesOfSeqsInThisBin.push_back(names); } if (seqGroup == "not found") { m->mothurOut(names + " is not in your groupfile. Please correct."); m->mothurOutEndLine(); exit(1); } @@ -379,8 +379,8 @@ int GetSharedOTUCommand::process(ListVector* shared) { if (fastafile != "") { if (output != "accnos") { - string seqName = namesOfSeqsInThisBin[j].substr(0,namesOfSeqsInThisBin[j].find_last_of('\t')); - seqName = seqName.substr(0,seqName.find_last_of('\t')); + string seqName = namesOfSeqsInThisBin[j].substr(0,namesOfSeqsInThisBin[j].find_last_of('|')); + seqName = seqName.substr(0,seqName.find_last_of('|')); fastaMap[seqName] = namesOfSeqsInThisBin[j]; //fastaMap needs to contain just the seq name for output later }else { fastaMap[namesOfSeqsInThisBin[j]] = namesOfSeqsInThisBin[j]; diff --git a/helpcommand.cpp b/helpcommand.cpp index 608ff3e..0403276 100644 --- a/helpcommand.cpp +++ b/helpcommand.cpp @@ -23,7 +23,6 @@ HelpCommand::~HelpCommand(){} //********************************************************************************************************************** int HelpCommand::execute(){ - validCommands->printCommands(cout); m->mothurOut("For more information about a specific command type 'commandName(help)' i.e. 'read.dist(help)'"); m->mothurOutEndLine(); diff --git a/makefile b/makefile index 08dee23..052519e 100644 --- a/makefile +++ b/makefile @@ -1,1736 +1,68 @@ -################################################### -# -# Makefile for mothur -# Creator [Xcode -> Makefile Ver: Feb 14 2007 09:18:41] -# Created: April 16, 2010 -# -################################################### - -# -# Macros -# - -CC = g++ -CC_OPTIONS = -O3 - -# if you do not want to use the readline library set to no, default yes. -# make sure you have the library installed - -64BIT_VERSION ?= yes - -ifeq ($(strip $(64BIT_VERSION)),yes) - CC_OPTIONS += -arch x86_64 - LNK_OPTIONS += -arch x86_64 -endif - -USEREADLINE ?= yes - -ifeq ($(strip $(USEREADLINE)),yes) - CC_OPTIONS += -DUSE_READLINE - LNK_OPTIONS += \ - -lreadline\ - -lncurses\ - -L../readline-6.0 -endif - -USEMPI ?= no - -ifeq ($(strip $(USEMPI)),yes) - CC = mpic++ - CC_OPTIONS += -DUSE_MPI -endif - -# -# INCLUDE directories for mothur -# - - INCLUDE = -I. - -# -# Build mothur -# - -mothur : \ - ./sharedutilities.o\ - ./treegroupscommand.o\ - ./bootstrapsharedcommand.o\ - ./matrixoutputcommand.o\ - ./getoturepcommand.o\ - ./screenseqscommand.o\ - ./chimera.o\ - ./decalc.o\ - ./readotucommand.o\ - ./readdistcommand.o\ - ./commandfactory.o\ - ./alignment.o\ - ./alignmentcell.o\ - ./gotohoverlap.o\ - ./overlap.o\ - ./needlemanoverlap.o\ - ./blastalign.o\ - ./noalign.o\ - ./suffixdb.o\ - ./suffixnodes.o\ - ./suffixtree.o\ - ./blastdb.o\ - ./nast.o\ - ./nastreport.o\ - ./boneh.o\ - ./efron.o\ - ./solow.o\ - ./unifracweightedcommand.o\ - ./weighted.o\ - ./unweighted.o\ - ./unifracunweightedcommand.o\ - ./getsabundcommand.o\ - ./getrabundcommand.o\ - ./bellerophon.o\ - ./pintail.o\ - ./sharedanderbergs.o\ - ./venncommand.o\ - ./venn.o\ - ./fullmatrix.o\ - ./heatmap.o\ - ./heatmapcommand.o\ - ./libshuffcommand.o\ - ./nocommands.o\ - ./sharedbraycurtis.o\ - ./sharedkulczynski.o\ - ./sharedlennon.o\ - ./sharedkulczynskicody.o\ - ./sharedmorisitahorn.o\ - ./sharedochiai.o\ - ./readcolumn.o\ - ./readotu.o\ - ./readphylip.o\ - ./consensuscommand.o\ - ./heatmapsimcommand.o\ - ./heatmapsim.o\ - ./optionparser.o\ - ./filterseqscommand.o\ - ./goodscoverage.o\ - ./sequencedb.o\ - ./sharedjackknife.o\ - ./sharedmarczewski.o\ - ./aligncommand.o\ - ./treemap.o\ - ./parsimonycommand.o\ - ./parsimony.o\ - ./seqsummarycommand.o\ - ./chimeraccodecommand.o\ - ./chimerabellerophoncommand.o\ - ./chimeracheckcommand.o\ - ./chimeraslayercommand.o\ - ./chimerapintailcommand.o\ - ./chimeraseqscommand.o\ - ./sharedlistvector.o\ - ./tree.o\ - ./readtree.o\ - ./sharedsobscollectsummary.o\ - ./deconvolutecommand.o\ - ./listseqscommand.o\ - ./getseqscommand.o\ - ./removeseqscommand.o\ - ./degapseqscommand.o\ - ./systemcommand.o\ - ./binsequencecommand.o\ - ./distancecommand.o\ - ./ace.o\ - ./averagelinkage.o\ - ./bootstrap.o\ - ./calculator.o\ - ./chao1.o\ - ./cluster.o\ - ./clustercommand.o\ - ./collect.o\ - ./collectcommand.o\ - ./collectsharedcommand.o\ - ./commandoptionparser.o\ - ./completelinkage.o\ - ./database.o\ - ./engine.o\ - ./fastamap.o\ - ./fileoutput.o\ - ./globaldata.o\ - ./groupmap.o\ - ./helpcommand.o\ - ./makegroupcommand.o\ - ./chopseqscommand.o\ - ./clearcutcommand.o\ - ./catchallcommand.o\ - ./splitabundcommand.o\ - ./splitmatrix.o\ - ./clustersplitcommand.o\ - ./weightedlinkage.o\ - ./inputdata.o\ - ./jackknife.o\ - ./kmer.o\ - ./kmerdb.o\ - ./listvector.o\ - ./mothur.o\ - ./nameassignment.o\ - ./npshannon.o\ - ./ordervector.o\ - ./progress.o\ - ./quitcommand.o\ - ./rabundvector.o\ - ./rarecalc.o\ - ./raredisplay.o\ - ./rarefact.o\ - ./rarefactcommand.o\ - ./rarefactsharedcommand.o\ - ./sabundvector.o\ - ./sequence.o\ - ./shannon.o\ - ./sharedace.o\ - ./sharedchao1.o\ - ./sharedcommand.o\ - ./sharedjabund.o\ - ./sharedjclass.o\ - ./sharedjest.o\ - ./sharedordervector.o\ - ./sharedrabundvector.o\ - ./sharedsabundvector.o\ - ./sharedsobs.o\ - ./sharedsorabund.o\ - ./sharedsorclass.o\ - ./sharedsorest.o\ - ./sharedthetan.o\ - ./sharedthetayc.o\ - ./simpson.o\ - ./singlelinkage.o\ - ./sparsematrix.o\ - ./summarycommand.o\ - ./summarysharedcommand.o\ - ./uvest.o\ - ./validcalculator.o\ - ./validparameter.o\ - ./treenode.o\ - ./readtreecommand.o\ - ./reversecommand.o\ - ./trimseqscommand.o\ - ./slibshuff.o\ - ./libshuff.o\ - ./dlibshuff.o\ - ./mergefilecommand.o\ - ./coverage.o\ - ./whittaker.o\ - ./preclustercommand.o\ - ./otuhierarchycommand.o\ - ./setdircommand.o\ - ./getgroupcommand.o\ - ./getlabelcommand.o\ - ./secondarystructurecommand.o\ - ./mothurout.o\ - ./parselistscommand.o\ - ./readblast.o\ - ./chimeracheckrdp.o\ - ./hclustercommand.o\ - ./hcluster.o\ - ./getlistcountcommand.o\ - ./getrelabundcommand.o\ - ./readcluster.o\ - ./ccode.o\ - ./taxonomyequalizer.o\ - ./phylotypecommand.o\ - ./classifyseqscommand.o\ - ./classifyotucommand.o\ - ./parsesffcommand.o\ - ./classify.o\ - ./phylotree.o\ - ./phylodiversity.o\ - ./phylodiversitycommand.o\ - ./bayesian.o\ - ./phylosummary.o\ - ./alignmentdb.o\ - ./knn.o\ - ./distancedb.o\ - ./chimeraslayer.o\ - ./slayer.o\ - ./pcacommand.o\ - ./formatcolumn.o\ - ./formatphylip.o\ - ./mgclustercommand.o\ - ./getsharedotucommand.o\ - ./maligner.o\ - ./chimerarealigner.o\ - ./bergerparker.o\ - ./bstick.o\ - ./sharedkstest.o\ - ./qstat.o\ - ./shen.o\ - ./logsd.o\ - ./geom.o\ - ./setlogfilecommand.o - $(CC) $(LNK_OPTIONS) \ - ./sharedutilities.o\ - ./treegroupscommand.o\ - ./bootstrapsharedcommand.o\ - ./matrixoutputcommand.o\ - ./getoturepcommand.o\ - ./screenseqscommand.o\ - ./chimera.o\ - ./decalc.o\ - ./readotucommand.o\ - ./readdistcommand.o\ - ./commandfactory.o\ - ./alignment.o\ - ./alignmentcell.o\ - ./gotohoverlap.o\ - ./overlap.o\ - ./needlemanoverlap.o\ - ./blastalign.o\ - ./noalign.o\ - ./suffixdb.o\ - ./suffixnodes.o\ - ./suffixtree.o\ - ./blastdb.o\ - ./nast.o\ - ./nastreport.o\ - ./boneh.o\ - ./efron.o\ - ./solow.o\ - ./unifracweightedcommand.o\ - ./weighted.o\ - ./unweighted.o\ - ./unifracunweightedcommand.o\ - ./getsabundcommand.o\ - ./getrabundcommand.o\ - ./bellerophon.o\ - ./pintail.o\ - ./sharedanderbergs.o\ - ./venncommand.o\ - ./venn.o\ - ./fullmatrix.o\ - ./heatmap.o\ - ./heatmapcommand.o\ - ./libshuffcommand.o\ - ./nocommands.o\ - ./sharedbraycurtis.o\ - ./sharedkulczynski.o\ - ./sharedlennon.o\ - ./sharedkulczynskicody.o\ - ./sharedmorisitahorn.o\ - ./sharedochiai.o\ - ./readcolumn.o\ - ./readotu.o\ - ./readphylip.o\ - ./consensuscommand.o\ - ./heatmapsimcommand.o\ - ./heatmapsim.o\ - ./optionparser.o\ - ./filterseqscommand.o\ - ./goodscoverage.o\ - ./sequencedb.o\ - ./sharedjackknife.o\ - ./sharedmarczewski.o\ - ./aligncommand.o\ - ./treemap.o\ - ./parsimonycommand.o\ - ./parsimony.o\ - ./seqsummarycommand.o\ - ./chimeraccodecommand.o\ - ./chimerabellerophoncommand.o\ - ./chimeracheckcommand.o\ - ./chimeraslayercommand.o\ - ./chimerapintailcommand.o\ - ./chimeraseqscommand.o\ - ./sharedlistvector.o\ - ./tree.o\ - ./readtree.o\ - ./sharedsobscollectsummary.o\ - ./deconvolutecommand.o\ - ./listseqscommand.o\ - ./getseqscommand.o\ - ./removeseqscommand.o\ - ./degapseqscommand.o\ - ./systemcommand.o\ - ./binsequencecommand.o\ - ./distancecommand.o\ - ./ace.o\ - ./averagelinkage.o\ - ./bootstrap.o\ - ./calculator.o\ - ./chao1.o\ - ./cluster.o\ - ./clustercommand.o\ - ./collect.o\ - ./collectcommand.o\ - ./collectsharedcommand.o\ - ./commandoptionparser.o\ - ./completelinkage.o\ - ./database.o\ - ./engine.o\ - ./fastamap.o\ - ./fileoutput.o\ - ./globaldata.o\ - ./groupmap.o\ - ./helpcommand.o\ - ./makegroupcommand.o\ - ./chopseqscommand.o\ - ./clearcutcommand.o\ - ./catchallcommand.o\ - ./splitabundcommand.o\ - ./splitmatrix.o\ - ./clustersplitcommand.o\ - ./weightedlinkage.o\ - ./inputdata.o\ - ./jackknife.o\ - ./kmer.o\ - ./kmerdb.o\ - ./listvector.o\ - ./mothur.o\ - ./nameassignment.o\ - ./npshannon.o\ - ./ordervector.o\ - ./progress.o\ - ./quitcommand.o\ - ./rabundvector.o\ - ./rarecalc.o\ - ./raredisplay.o\ - ./rarefact.o\ - ./rarefactcommand.o\ - ./rarefactsharedcommand.o\ - ./sabundvector.o\ - ./sequence.o\ - ./shannon.o\ - ./sharedace.o\ - ./sharedchao1.o\ - ./sharedcommand.o\ - ./sharedjabund.o\ - ./sharedjclass.o\ - ./sharedjest.o\ - ./sharedordervector.o\ - ./sharedrabundvector.o\ - ./sharedsabundvector.o\ - ./sharedsobs.o\ - ./sharedsorabund.o\ - ./sharedsorclass.o\ - ./sharedsorest.o\ - ./sharedthetan.o\ - ./sharedthetayc.o\ - ./simpson.o\ - ./singlelinkage.o\ - ./sparsematrix.o\ - ./summarycommand.o\ - ./summarysharedcommand.o\ - ./uvest.o\ - ./validcalculator.o\ - ./validparameter.o\ - ./treenode.o\ - ./readtreecommand.o\ - ./reversecommand.o\ - ./trimseqscommand.o\ - ./slibshuff.o\ - ./libshuff.o\ - ./dlibshuff.o\ - ./mergefilecommand.o\ - ./coverage.o\ - ./whittaker.o\ - ./preclustercommand.o\ - ./otuhierarchycommand.o\ - ./setdircommand.o\ - ./getgroupcommand.o\ - ./getlabelcommand.o\ - ./secondarystructurecommand.o\ - ./mothurout.o\ - ./parselistscommand.o\ - ./readblast.o\ - ./chimeracheckrdp.o\ - ./hclustercommand.o\ - ./hcluster.o\ - ./getlistcountcommand.o\ - ./getrelabundcommand.o\ - ./readcluster.o\ - ./ccode.o\ - ./taxonomyequalizer.o\ - ./phylotypecommand.o\ - ./classifyseqscommand.o\ - ./classifyotucommand.o\ - ./parsesffcommand.o\ - ./classify.o\ - ./phylotree.o\ - ./phylodiversity.o\ - ./phylodiversitycommand.o\ - ./bayesian.o\ - ./phylosummary.o\ - ./alignmentdb.o\ - ./knn.o\ - ./distancedb.o\ - ./chimeraslayer.o\ - ./slayer.o\ - ./pcacommand.o\ - ./formatcolumn.o\ - ./formatphylip.o\ - ./mgclustercommand.o\ - ./getsharedotucommand.o\ - ./maligner.o\ - ./chimerarealigner.o\ - ./bergerparker.o\ - ./bstick.o\ - ./sharedkstest.o\ - ./qstat.o\ - ./shen.o\ - ./logsd.o\ - ./geom.o\ - ./setlogfilecommand.o\ - -o ../Release/mothur - -clean : - rm \ - ./sharedutilities.o\ - ./treegroupscommand.o\ - ./bootstrapsharedcommand.o\ - ./matrixoutputcommand.o\ - ./getoturepcommand.o\ - ./screenseqscommand.o\ - ./chimera.o\ - ./decalc.o\ - ./readotucommand.o\ - ./readdistcommand.o\ - ./commandfactory.o\ - ./alignment.o\ - ./alignmentcell.o\ - ./gotohoverlap.o\ - ./overlap.o\ - ./needlemanoverlap.o\ - ./blastalign.o\ - ./noalign.o\ - ./suffixdb.o\ - ./suffixnodes.o\ - ./suffixtree.o\ - ./blastdb.o\ - ./nast.o\ - ./nastreport.o\ - ./boneh.o\ - ./efron.o\ - ./solow.o\ - ./unifracweightedcommand.o\ - ./weighted.o\ - ./unweighted.o\ - ./unifracunweightedcommand.o\ - ./getsabundcommand.o\ - ./getrabundcommand.o\ - ./bellerophon.o\ - ./pintail.o\ - ./sharedanderbergs.o\ - ./venncommand.o\ - ./venn.o\ - ./fullmatrix.o\ - ./heatmap.o\ - ./heatmapcommand.o\ - ./libshuffcommand.o\ - ./nocommands.o\ - ./sharedbraycurtis.o\ - ./sharedkulczynski.o\ - ./sharedlennon.o\ - ./sharedkulczynskicody.o\ - ./sharedmorisitahorn.o\ - ./sharedochiai.o\ - ./readcolumn.o\ - ./readotu.o\ - ./readphylip.o\ - ./consensuscommand.o\ - ./heatmapsimcommand.o\ - ./heatmapsim.o\ - ./optionparser.o\ - ./filterseqscommand.o\ - ./goodscoverage.o\ - ./sequencedb.o\ - ./sharedjackknife.o\ - ./sharedmarczewski.o\ - ./aligncommand.o\ - ./treemap.o\ - ./parsimonycommand.o\ - ./parsimony.o\ - ./seqsummarycommand.o\ - ./chimeraccodecommand.o\ - ./chimerabellerophoncommand.o\ - ./chimeracheckcommand.o\ - ./chimeraslayercommand.o\ - ./chimerapintailcommand.o\ - ./chimeraseqscommand.o\ - ./sharedlistvector.o\ - ./tree.o\ - ./readtree.o\ - ./sharedsobscollectsummary.o\ - ./deconvolutecommand.o\ - ./listseqscommand.o\ - ./getseqscommand.o\ - ./removeseqscommand.o\ - ./degapseqscommand.o\ - ./systemcommand.o\ - ./binsequencecommand.o\ - ./distancecommand.o\ - ./ace.o\ - ./averagelinkage.o\ - ./bootstrap.o\ - ./calculator.o\ - ./chao1.o\ - ./cluster.o\ - ./clustercommand.o\ - ./collect.o\ - ./collectcommand.o\ - ./collectsharedcommand.o\ - ./commandoptionparser.o\ - ./completelinkage.o\ - ./database.o\ - ./engine.o\ - ./fastamap.o\ - ./fileoutput.o\ - ./globaldata.o\ - ./groupmap.o\ - ./helpcommand.o\ - ./makegroupcommand.o\ - ./chopseqscommand.o\ - ./clearcutcommand.o\ - ./catchallcommand.o\ - ./splitabundcommand.o\ - ./splitmatrix.o\ - ./clustersplitcommand.o\ - ./weightedlinkage.o\ - ./inputdata.o\ - ./jackknife.o\ - ./kmer.o\ - ./kmerdb.o\ - ./listvector.o\ - ./mothur.o\ - ./nameassignment.o\ - ./npshannon.o\ - ./ordervector.o\ - ./progress.o\ - ./quitcommand.o\ - ./rabundvector.o\ - ./rarecalc.o\ - ./raredisplay.o\ - ./rarefact.o\ - ./rarefactcommand.o\ - ./rarefactsharedcommand.o\ - ./sabundvector.o\ - ./sequence.o\ - ./shannon.o\ - ./sharedace.o\ - ./sharedchao1.o\ - ./sharedcommand.o\ - ./sharedjabund.o\ - ./sharedjclass.o\ - ./sharedjest.o\ - ./sharedordervector.o\ - ./sharedrabundvector.o\ - ./sharedsabundvector.o\ - ./sharedsobs.o\ - ./sharedsorabund.o\ - ./sharedsorclass.o\ - ./sharedsorest.o\ - ./sharedthetan.o\ - ./sharedthetayc.o\ - ./simpson.o\ - ./singlelinkage.o\ - ./sparsematrix.o\ - ./summarycommand.o\ - ./summarysharedcommand.o\ - ./uvest.o\ - ./validcalculator.o\ - ./validparameter.o\ - ./treenode.o\ - ./readtreecommand.o\ - ./reversecommand.o\ - ./trimseqscommand.o\ - ./slibshuff.o\ - ./libshuff.o\ - ./dlibshuff.o\ - ./mergefilecommand.o\ - ./coverage.o\ - ./whittaker.o\ - ./preclustercommand.o\ - ./otuhierarchycommand.o\ - ./setdircommand.o\ - ./getgroupcommand.o\ - ./getlabelcommand.o\ - ./secondarystructurecommand.o\ - ./mothurout.o\ - ./parselistscommand.o\ - ./readblast.o\ - ./chimeracheckrdp.o\ - ./hclustercommand.o\ - ./hcluster.o\ - ./getlistcountcommand.o\ - ./getrelabundcommand.o\ - ./readcluster.o\ - ./ccode.o\ - ./taxonomyequalizer.o\ - ./phylotypecommand.o\ - ./classifyseqscommand.o\ - ./classifyotucommand.o\ - ./parsesffcommand.o\ - ./classify.o\ - ./phylotree.o\ - ./phylodiversity.o\ - ./phylodiversitycommand.o\ - ./bayesian.o\ - ./phylosummary.o\ - ./alignmentdb.o\ - ./knn.o\ - ./distancedb.o\ - ./chimeraslayer.o\ - ./slayer.o\ - ./pcacommand.o\ - ./formatcolumn.o\ - ./formatphylip.o\ - ./mgclustercommand.o\ - ./getsharedotucommand.o\ - ./maligner.o\ - ./chimerarealigner.o\ - ./bergerparker.o\ - ./bstick.o\ - ./sharedkstest.o\ - ./qstat.o\ - ./shen.o\ - ./logsd.o\ - ./geom.o\ - ./setlogfilecommand.o\ - mothur - -install : mothur - #cp mothur ../Release/mothur - -# -# Build the parts of mothur -# - - -# Item # 1 -- sharedutilities -- -./sharedutilities.o : sharedutilities.cpp - $(CC) $(CC_OPTIONS) sharedutilities.cpp -c $(INCLUDE) -o ./sharedutilities.o - - -# Item # 2 -- treegroupscommand -- -./treegroupscommand.o : treegroupscommand.cpp - $(CC) $(CC_OPTIONS) treegroupscommand.cpp -c $(INCLUDE) -o ./treegroupscommand.o - - -# Item # 3 -- bootstrapsharedcommand -- -./bootstrapsharedcommand.o : bootstrapsharedcommand.cpp - $(CC) $(CC_OPTIONS) bootstrapsharedcommand.cpp -c $(INCLUDE) -o ./bootstrapsharedcommand.o - - -# Item # 4 -- matrixoutputcommand -- -./matrixoutputcommand.o : matrixoutputcommand.cpp - $(CC) $(CC_OPTIONS) matrixoutputcommand.cpp -c $(INCLUDE) -o ./matrixoutputcommand.o - - -# Item # 5 -- getoturepcommand -- -./getoturepcommand.o : getoturepcommand.cpp - $(CC) $(CC_OPTIONS) getoturepcommand.cpp -c $(INCLUDE) -o ./getoturepcommand.o - - -# Item # 6 -- screenseqscommand -- -./screenseqscommand.o : screenseqscommand.cpp - $(CC) $(CC_OPTIONS) screenseqscommand.cpp -c $(INCLUDE) -o ./screenseqscommand.o - - -# Item # 7 -- chimera -- -./chimera.o : chimera.cpp - $(CC) $(CC_OPTIONS) chimera.cpp -c $(INCLUDE) -o ./chimera.o - - -# Item # 8 -- decalc -- -./decalc.o : decalc.cpp - $(CC) $(CC_OPTIONS) decalc.cpp -c $(INCLUDE) -o ./decalc.o - - -# Item # 9 -- readotucommand -- -./readotucommand.o : readotucommand.cpp - $(CC) $(CC_OPTIONS) readotucommand.cpp -c $(INCLUDE) -o ./readotucommand.o - - -# Item # 10 -- readdistcommand -- -./readdistcommand.o : readdistcommand.cpp - $(CC) $(CC_OPTIONS) readdistcommand.cpp -c $(INCLUDE) -o ./readdistcommand.o - - -# Item # 11 -- commandfactory -- -./commandfactory.o : commandfactory.cpp - $(CC) $(CC_OPTIONS) commandfactory.cpp -c $(INCLUDE) -o ./commandfactory.o - - -# Item # 12 -- alignment -- -./alignment.o : alignment.cpp - $(CC) $(CC_OPTIONS) alignment.cpp -c $(INCLUDE) -o ./alignment.o - - -# Item # 13 -- alignmentcell -- -./alignmentcell.o : alignmentcell.cpp - $(CC) $(CC_OPTIONS) alignmentcell.cpp -c $(INCLUDE) -o ./alignmentcell.o - - -# Item # 14 -- gotohoverlap -- -./gotohoverlap.o : gotohoverlap.cpp - $(CC) $(CC_OPTIONS) gotohoverlap.cpp -c $(INCLUDE) -o ./gotohoverlap.o - - -# Item # 15 -- overlap -- -./overlap.o : overlap.cpp - $(CC) $(CC_OPTIONS) overlap.cpp -c $(INCLUDE) -o ./overlap.o - - -# Item # 16 -- needlemanoverlap -- -./needlemanoverlap.o : needlemanoverlap.cpp - $(CC) $(CC_OPTIONS) needlemanoverlap.cpp -c $(INCLUDE) -o ./needlemanoverlap.o - - -# Item # 17 -- blastalign -- -./blastalign.o : blastalign.cpp - $(CC) $(CC_OPTIONS) blastalign.cpp -c $(INCLUDE) -o ./blastalign.o - - -# Item # 18 -- noalign -- -./noalign.o : noalign.cpp - $(CC) $(CC_OPTIONS) noalign.cpp -c $(INCLUDE) -o ./noalign.o - - -# Item # 19 -- suffixdb -- -./suffixdb.o : suffixdb.cpp - $(CC) $(CC_OPTIONS) suffixdb.cpp -c $(INCLUDE) -o ./suffixdb.o - - -# Item # 20 -- suffixnodes -- -./suffixnodes.o : suffixnodes.cpp - $(CC) $(CC_OPTIONS) suffixnodes.cpp -c $(INCLUDE) -o ./suffixnodes.o - - -# Item # 21 -- suffixtree -- -./suffixtree.o : suffixtree.cpp - $(CC) $(CC_OPTIONS) suffixtree.cpp -c $(INCLUDE) -o ./suffixtree.o - - -# Item # 22 -- blastdb -- -./blastdb.o : blastdb.cpp - $(CC) $(CC_OPTIONS) blastdb.cpp -c $(INCLUDE) -o ./blastdb.o - - -# Item # 23 -- nast -- -./nast.o : nast.cpp - $(CC) $(CC_OPTIONS) nast.cpp -c $(INCLUDE) -o ./nast.o - - -# Item # 24 -- nastreport -- -./nastreport.o : nastreport.cpp - $(CC) $(CC_OPTIONS) nastreport.cpp -c $(INCLUDE) -o ./nastreport.o - - -# Item # 25 -- boneh -- -./boneh.o : boneh.cpp - $(CC) $(CC_OPTIONS) boneh.cpp -c $(INCLUDE) -o ./boneh.o - - -# Item # 26 -- efron -- -./efron.o : efron.cpp - $(CC) $(CC_OPTIONS) efron.cpp -c $(INCLUDE) -o ./efron.o - - -# Item # 27 -- solow -- -./solow.o : solow.cpp - $(CC) $(CC_OPTIONS) solow.cpp -c $(INCLUDE) -o ./solow.o - - -# Item # 28 -- unifracweightedcommand -- -./unifracweightedcommand.o : unifracweightedcommand.cpp - $(CC) $(CC_OPTIONS) unifracweightedcommand.cpp -c $(INCLUDE) -o ./unifracweightedcommand.o - - -# Item # 29 -- weighted -- -./weighted.o : weighted.cpp - $(CC) $(CC_OPTIONS) weighted.cpp -c $(INCLUDE) -o ./weighted.o - - -# Item # 30 -- unweighted -- -./unweighted.o : unweighted.cpp - $(CC) $(CC_OPTIONS) unweighted.cpp -c $(INCLUDE) -o ./unweighted.o - - -# Item # 31 -- unifracunweightedcommand -- -./unifracunweightedcommand.o : unifracunweightedcommand.cpp - $(CC) $(CC_OPTIONS) unifracunweightedcommand.cpp -c $(INCLUDE) -o ./unifracunweightedcommand.o - - -# Item # 32 -- getsabundcommand -- -./getsabundcommand.o : getsabundcommand.cpp - $(CC) $(CC_OPTIONS) getsabundcommand.cpp -c $(INCLUDE) -o ./getsabundcommand.o - - -# Item # 33 -- getrabundcommand -- -./getrabundcommand.o : getrabundcommand.cpp - $(CC) $(CC_OPTIONS) getrabundcommand.cpp -c $(INCLUDE) -o ./getrabundcommand.o - - -# Item # 34 -- bellerophon -- -./bellerophon.o : bellerophon.cpp - $(CC) $(CC_OPTIONS) bellerophon.cpp -c $(INCLUDE) -o ./bellerophon.o - - -# Item # 35 -- pintail -- -./pintail.o : pintail.cpp - $(CC) $(CC_OPTIONS) pintail.cpp -c $(INCLUDE) -o ./pintail.o - - -# Item # 36 -- sharedanderbergs -- -./sharedanderbergs.o : sharedanderbergs.cpp - $(CC) $(CC_OPTIONS) sharedanderbergs.cpp -c $(INCLUDE) -o ./sharedanderbergs.o - - -# Item # 37 -- venncommand -- -./venncommand.o : venncommand.cpp - $(CC) $(CC_OPTIONS) venncommand.cpp -c $(INCLUDE) -o ./venncommand.o - - -# Item # 38 -- venn -- -./venn.o : venn.cpp - $(CC) $(CC_OPTIONS) venn.cpp -c $(INCLUDE) -o ./venn.o - - -# Item # 39 -- fullmatrix -- -./fullmatrix.o : fullmatrix.cpp - $(CC) $(CC_OPTIONS) fullmatrix.cpp -c $(INCLUDE) -o ./fullmatrix.o - - -# Item # 40 -- heatmap -- -./heatmap.o : heatmap.cpp - $(CC) $(CC_OPTIONS) heatmap.cpp -c $(INCLUDE) -o ./heatmap.o - - -# Item # 41 -- heatmapcommand -- -./heatmapcommand.o : heatmapcommand.cpp - $(CC) $(CC_OPTIONS) heatmapcommand.cpp -c $(INCLUDE) -o ./heatmapcommand.o - - -# Item # 42 -- libshuffcommand -- -./libshuffcommand.o : libshuffcommand.cpp - $(CC) $(CC_OPTIONS) libshuffcommand.cpp -c $(INCLUDE) -o ./libshuffcommand.o - - -# Item # 43 -- nocommands -- -./nocommands.o : nocommands.cpp - $(CC) $(CC_OPTIONS) nocommands.cpp -c $(INCLUDE) -o ./nocommands.o - - -# Item # 44 -- sharedbraycurtis -- -./sharedbraycurtis.o : sharedbraycurtis.cpp - $(CC) $(CC_OPTIONS) sharedbraycurtis.cpp -c $(INCLUDE) -o ./sharedbraycurtis.o - - -# Item # 45 -- sharedkulczynski -- -./sharedkulczynski.o : sharedkulczynski.cpp - $(CC) $(CC_OPTIONS) sharedkulczynski.cpp -c $(INCLUDE) -o ./sharedkulczynski.o - - -# Item # 46 -- sharedlennon -- -./sharedlennon.o : sharedlennon.cpp - $(CC) $(CC_OPTIONS) sharedlennon.cpp -c $(INCLUDE) -o ./sharedlennon.o - - -# Item # 47 -- sharedkulczynskicody -- -./sharedkulczynskicody.o : sharedkulczynskicody.cpp - $(CC) $(CC_OPTIONS) sharedkulczynskicody.cpp -c $(INCLUDE) -o ./sharedkulczynskicody.o - - -# Item # 48 -- sharedmorisitahorn -- -./sharedmorisitahorn.o : sharedmorisitahorn.cpp - $(CC) $(CC_OPTIONS) sharedmorisitahorn.cpp -c $(INCLUDE) -o ./sharedmorisitahorn.o - - -# Item # 49 -- sharedochiai -- -./sharedochiai.o : sharedochiai.cpp - $(CC) $(CC_OPTIONS) sharedochiai.cpp -c $(INCLUDE) -o ./sharedochiai.o - - -# Item # 50 -- readcolumn -- -./readcolumn.o : readcolumn.cpp - $(CC) $(CC_OPTIONS) readcolumn.cpp -c $(INCLUDE) -o ./readcolumn.o - - -# Item # 51 -- readotu -- -./readotu.o : readotu.cpp - $(CC) $(CC_OPTIONS) readotu.cpp -c $(INCLUDE) -o ./readotu.o - - -# Item # 52 -- readphylip -- -./readphylip.o : readphylip.cpp - $(CC) $(CC_OPTIONS) readphylip.cpp -c $(INCLUDE) -o ./readphylip.o - - -# Item # 53 -- consensuscommand -- -./consensuscommand.o : consensuscommand.cpp - $(CC) $(CC_OPTIONS) consensuscommand.cpp -c $(INCLUDE) -o ./consensuscommand.o - - -# Item # 54 -- heatmapsimcommand -- -./heatmapsimcommand.o : heatmapsimcommand.cpp - $(CC) $(CC_OPTIONS) heatmapsimcommand.cpp -c $(INCLUDE) -o ./heatmapsimcommand.o - - -# Item # 55 -- heatmapsim -- -./heatmapsim.o : heatmapsim.cpp - $(CC) $(CC_OPTIONS) heatmapsim.cpp -c $(INCLUDE) -o ./heatmapsim.o - - -# Item # 56 -- optionparser -- -./optionparser.o : optionparser.cpp - $(CC) $(CC_OPTIONS) optionparser.cpp -c $(INCLUDE) -o ./optionparser.o - - -# Item # 57 -- filterseqscommand -- -./filterseqscommand.o : filterseqscommand.cpp - $(CC) $(CC_OPTIONS) filterseqscommand.cpp -c $(INCLUDE) -o ./filterseqscommand.o - - -# Item # 58 -- goodscoverage -- -./goodscoverage.o : goodscoverage.cpp - $(CC) $(CC_OPTIONS) goodscoverage.cpp -c $(INCLUDE) -o ./goodscoverage.o - - -# Item # 59 -- sequencedb -- -./sequencedb.o : sequencedb.cpp - $(CC) $(CC_OPTIONS) sequencedb.cpp -c $(INCLUDE) -o ./sequencedb.o - - -# Item # 60 -- sharedjackknife -- -./sharedjackknife.o : sharedjackknife.cpp - $(CC) $(CC_OPTIONS) sharedjackknife.cpp -c $(INCLUDE) -o ./sharedjackknife.o - - -# Item # 61 -- sharedmarczewski -- -./sharedmarczewski.o : sharedmarczewski.cpp - $(CC) $(CC_OPTIONS) sharedmarczewski.cpp -c $(INCLUDE) -o ./sharedmarczewski.o - - -# Item # 62 -- aligncommand -- -./aligncommand.o : aligncommand.cpp - $(CC) $(CC_OPTIONS) aligncommand.cpp -c $(INCLUDE) -o ./aligncommand.o - - -# Item # 63 -- treemap -- -./treemap.o : treemap.cpp - $(CC) $(CC_OPTIONS) treemap.cpp -c $(INCLUDE) -o ./treemap.o - - -# Item # 64 -- parsimonycommand -- -./parsimonycommand.o : parsimonycommand.cpp - $(CC) $(CC_OPTIONS) parsimonycommand.cpp -c $(INCLUDE) -o ./parsimonycommand.o - - -# Item # 65 -- parsimony -- -./parsimony.o : parsimony.cpp - $(CC) $(CC_OPTIONS) parsimony.cpp -c $(INCLUDE) -o ./parsimony.o - - -# Item # 66 -- seqsummarycommand -- -./seqsummarycommand.o : seqsummarycommand.cpp - $(CC) $(CC_OPTIONS) seqsummarycommand.cpp -c $(INCLUDE) -o ./seqsummarycommand.o - - -# Item # 67 -- chimeraseqscommand -- -./chimeraseqscommand.o : chimeraseqscommand.cpp - $(CC) $(CC_OPTIONS) chimeraseqscommand.cpp -c $(INCLUDE) -o ./chimeraseqscommand.o - - -# Item # 68 -- sharedlistvector -- -./sharedlistvector.o : sharedlistvector.cpp - $(CC) $(CC_OPTIONS) sharedlistvector.cpp -c $(INCLUDE) -o ./sharedlistvector.o - - -# Item # 69 -- tree -- -./tree.o : tree.cpp - $(CC) $(CC_OPTIONS) tree.cpp -c $(INCLUDE) -o ./tree.o - - -# Item # 70 -- readtree -- -./readtree.o : readtree.cpp - $(CC) $(CC_OPTIONS) readtree.cpp -c $(INCLUDE) -o ./readtree.o - - -# Item # 71 -- sharedsobscollectsummary -- -./sharedsobscollectsummary.o : sharedsobscollectsummary.cpp - $(CC) $(CC_OPTIONS) sharedsobscollectsummary.cpp -c $(INCLUDE) -o ./sharedsobscollectsummary.o - - -# Item # 72 -- deconvolutecommand -- -./deconvolutecommand.o : deconvolutecommand.cpp - $(CC) $(CC_OPTIONS) deconvolutecommand.cpp -c $(INCLUDE) -o ./deconvolutecommand.o - - -# Item # 73 -- listseqscommand -- -./listseqscommand.o : listseqscommand.cpp - $(CC) $(CC_OPTIONS) listseqscommand.cpp -c $(INCLUDE) -o ./listseqscommand.o - - -# Item # 74 -- getseqscommand -- -./getseqscommand.o : getseqscommand.cpp - $(CC) $(CC_OPTIONS) getseqscommand.cpp -c $(INCLUDE) -o ./getseqscommand.o - - -# Item # 75 -- removeseqscommand -- -./removeseqscommand.o : removeseqscommand.cpp - $(CC) $(CC_OPTIONS) removeseqscommand.cpp -c $(INCLUDE) -o ./removeseqscommand.o - - -# Item # 76 -- systemcommand -- -./systemcommand.o : systemcommand.cpp - $(CC) $(CC_OPTIONS) systemcommand.cpp -c $(INCLUDE) -o ./systemcommand.o - - -# Item # 77 -- binsequencecommand -- -./binsequencecommand.o : binsequencecommand.cpp - $(CC) $(CC_OPTIONS) binsequencecommand.cpp -c $(INCLUDE) -o ./binsequencecommand.o - - -# Item # 78 -- distancecommand -- -./distancecommand.o : distancecommand.cpp - $(CC) $(CC_OPTIONS) distancecommand.cpp -c $(INCLUDE) -o ./distancecommand.o - - -# Item # 79 -- ace -- -./ace.o : ace.cpp - $(CC) $(CC_OPTIONS) ace.cpp -c $(INCLUDE) -o ./ace.o - - -# Item # 80 -- averagelinkage -- -./averagelinkage.o : averagelinkage.cpp - $(CC) $(CC_OPTIONS) averagelinkage.cpp -c $(INCLUDE) -o ./averagelinkage.o - - -# Item # 81 -- bootstrap -- -./bootstrap.o : bootstrap.cpp - $(CC) $(CC_OPTIONS) bootstrap.cpp -c $(INCLUDE) -o ./bootstrap.o - - -# Item # 82 -- calculator -- -./calculator.o : calculator.cpp - $(CC) $(CC_OPTIONS) calculator.cpp -c $(INCLUDE) -o ./calculator.o - - -# Item # 83 -- chao1 -- -./chao1.o : chao1.cpp - $(CC) $(CC_OPTIONS) chao1.cpp -c $(INCLUDE) -o ./chao1.o - - -# Item # 84 -- cluster -- -./cluster.o : cluster.cpp - $(CC) $(CC_OPTIONS) cluster.cpp -c $(INCLUDE) -o ./cluster.o - - -# Item # 85 -- clustercommand -- -./clustercommand.o : clustercommand.cpp - $(CC) $(CC_OPTIONS) clustercommand.cpp -c $(INCLUDE) -o ./clustercommand.o - - -# Item # 86 -- collect -- -./collect.o : collect.cpp - $(CC) $(CC_OPTIONS) collect.cpp -c $(INCLUDE) -o ./collect.o - - -# Item # 87 -- collectcommand -- -./collectcommand.o : collectcommand.cpp - $(CC) $(CC_OPTIONS) collectcommand.cpp -c $(INCLUDE) -o ./collectcommand.o - - -# Item # 88 -- collectsharedcommand -- -./collectsharedcommand.o : collectsharedcommand.cpp - $(CC) $(CC_OPTIONS) collectsharedcommand.cpp -c $(INCLUDE) -o ./collectsharedcommand.o - - -# Item # 89 -- commandoptionparser -- -./commandoptionparser.o : commandoptionparser.cpp - $(CC) $(CC_OPTIONS) commandoptionparser.cpp -c $(INCLUDE) -o ./commandoptionparser.o - - -# Item # 90 -- completelinkage -- -./completelinkage.o : completelinkage.cpp - $(CC) $(CC_OPTIONS) completelinkage.cpp -c $(INCLUDE) -o ./completelinkage.o - - -# Item # 91 -- database -- -./database.o : database.cpp - $(CC) $(CC_OPTIONS) database.cpp -c $(INCLUDE) -o ./database.o - - -# Item # 92 -- engine -- -./engine.o : engine.cpp - $(CC) $(CC_OPTIONS) engine.cpp -c $(INCLUDE) -o ./engine.o - - -# Item # 93 -- fastamap -- -./fastamap.o : fastamap.cpp - $(CC) $(CC_OPTIONS) fastamap.cpp -c $(INCLUDE) -o ./fastamap.o - - -# Item # 94 -- fileoutput -- -./fileoutput.o : fileoutput.cpp - $(CC) $(CC_OPTIONS) fileoutput.cpp -c $(INCLUDE) -o ./fileoutput.o - - -# Item # 95 -- globaldata -- -./globaldata.o : globaldata.cpp - $(CC) $(CC_OPTIONS) globaldata.cpp -c $(INCLUDE) -o ./globaldata.o - - -# Item # 96 -- groupmap -- -./groupmap.o : groupmap.cpp - $(CC) $(CC_OPTIONS) groupmap.cpp -c $(INCLUDE) -o ./groupmap.o - - -# Item # 97 -- helpcommand -- -./helpcommand.o : helpcommand.cpp - $(CC) $(CC_OPTIONS) helpcommand.cpp -c $(INCLUDE) -o ./helpcommand.o - - -# Item # 98 -- inputdata -- -./inputdata.o : inputdata.cpp - $(CC) $(CC_OPTIONS) inputdata.cpp -c $(INCLUDE) -o ./inputdata.o - - -# Item # 99 -- jackknife -- -./jackknife.o : jackknife.cpp - $(CC) $(CC_OPTIONS) jackknife.cpp -c $(INCLUDE) -o ./jackknife.o - - -# Item # 100 -- kmer -- -./kmer.o : kmer.cpp - $(CC) $(CC_OPTIONS) kmer.cpp -c $(INCLUDE) -o ./kmer.o - - -# Item # 101 -- kmerdb -- -./kmerdb.o : kmerdb.cpp - $(CC) $(CC_OPTIONS) kmerdb.cpp -c $(INCLUDE) -o ./kmerdb.o - - -# Item # 102 -- listvector -- -./listvector.o : listvector.cpp - $(CC) $(CC_OPTIONS) listvector.cpp -c $(INCLUDE) -o ./listvector.o - - -# Item # 103 -- mothur -- -./mothur.o : mothur.cpp - $(CC) $(CC_OPTIONS) mothur.cpp -c $(INCLUDE) -o ./mothur.o - - -# Item # 104 -- nameassignment -- -./nameassignment.o : nameassignment.cpp - $(CC) $(CC_OPTIONS) nameassignment.cpp -c $(INCLUDE) -o ./nameassignment.o - - -# Item # 105 -- npshannon -- -./npshannon.o : npshannon.cpp - $(CC) $(CC_OPTIONS) npshannon.cpp -c $(INCLUDE) -o ./npshannon.o - - -# Item # 106 -- ordervector -- -./ordervector.o : ordervector.cpp - $(CC) $(CC_OPTIONS) ordervector.cpp -c $(INCLUDE) -o ./ordervector.o - - -# Item # 107 -- progress -- -./progress.o : progress.cpp - $(CC) $(CC_OPTIONS) progress.cpp -c $(INCLUDE) -o ./progress.o - - -# Item # 108 -- quitcommand -- -./quitcommand.o : quitcommand.cpp - $(CC) $(CC_OPTIONS) quitcommand.cpp -c $(INCLUDE) -o ./quitcommand.o - - -# Item # 109 -- rabundvector -- -./rabundvector.o : rabundvector.cpp - $(CC) $(CC_OPTIONS) rabundvector.cpp -c $(INCLUDE) -o ./rabundvector.o - - -# Item # 110 -- rarecalc -- -./rarecalc.o : rarecalc.cpp - $(CC) $(CC_OPTIONS) rarecalc.cpp -c $(INCLUDE) -o ./rarecalc.o - - -# Item # 111 -- raredisplay -- -./raredisplay.o : raredisplay.cpp - $(CC) $(CC_OPTIONS) raredisplay.cpp -c $(INCLUDE) -o ./raredisplay.o - - -# Item # 112 -- rarefact -- -./rarefact.o : rarefact.cpp - $(CC) $(CC_OPTIONS) rarefact.cpp -c $(INCLUDE) -o ./rarefact.o - - -# Item # 113 -- rarefactcommand -- -./rarefactcommand.o : rarefactcommand.cpp - $(CC) $(CC_OPTIONS) rarefactcommand.cpp -c $(INCLUDE) -o ./rarefactcommand.o - - -# Item # 114 -- rarefactsharedcommand -- -./rarefactsharedcommand.o : rarefactsharedcommand.cpp - $(CC) $(CC_OPTIONS) rarefactsharedcommand.cpp -c $(INCLUDE) -o ./rarefactsharedcommand.o - - -# Item # 115 -- sabundvector -- -./sabundvector.o : sabundvector.cpp - $(CC) $(CC_OPTIONS) sabundvector.cpp -c $(INCLUDE) -o ./sabundvector.o - - -# Item # 116 -- sequence -- -./sequence.o : sequence.cpp - $(CC) $(CC_OPTIONS) sequence.cpp -c $(INCLUDE) -o ./sequence.o - - -# Item # 117 -- shannon -- -./shannon.o : shannon.cpp - $(CC) $(CC_OPTIONS) shannon.cpp -c $(INCLUDE) -o ./shannon.o - - -# Item # 118 -- sharedace -- -./sharedace.o : sharedace.cpp - $(CC) $(CC_OPTIONS) sharedace.cpp -c $(INCLUDE) -o ./sharedace.o - - -# Item # 119 -- sharedchao1 -- -./sharedchao1.o : sharedchao1.cpp - $(CC) $(CC_OPTIONS) sharedchao1.cpp -c $(INCLUDE) -o ./sharedchao1.o - - -# Item # 120 -- sharedcommand -- -./sharedcommand.o : sharedcommand.cpp - $(CC) $(CC_OPTIONS) sharedcommand.cpp -c $(INCLUDE) -o ./sharedcommand.o - - -# Item # 121 -- sharedjabund -- -./sharedjabund.o : sharedjabund.cpp - $(CC) $(CC_OPTIONS) sharedjabund.cpp -c $(INCLUDE) -o ./sharedjabund.o - - -# Item # 122 -- sharedjclass -- -./sharedjclass.o : sharedjclass.cpp - $(CC) $(CC_OPTIONS) sharedjclass.cpp -c $(INCLUDE) -o ./sharedjclass.o - - -# Item # 123 -- sharedjest -- -./sharedjest.o : sharedjest.cpp - $(CC) $(CC_OPTIONS) sharedjest.cpp -c $(INCLUDE) -o ./sharedjest.o - - -# Item # 124 -- sharedordervector -- -./sharedordervector.o : sharedordervector.cpp - $(CC) $(CC_OPTIONS) sharedordervector.cpp -c $(INCLUDE) -o ./sharedordervector.o - - -# Item # 125 -- sharedrabundvector -- -./sharedrabundvector.o : sharedrabundvector.cpp - $(CC) $(CC_OPTIONS) sharedrabundvector.cpp -c $(INCLUDE) -o ./sharedrabundvector.o - - -# Item # 126 -- sharedsabundvector -- -./sharedsabundvector.o : sharedsabundvector.cpp - $(CC) $(CC_OPTIONS) sharedsabundvector.cpp -c $(INCLUDE) -o ./sharedsabundvector.o - - -# Item # 127 -- sharedsobs -- -./sharedsobs.o : sharedsobs.cpp - $(CC) $(CC_OPTIONS) sharedsobs.cpp -c $(INCLUDE) -o ./sharedsobs.o - - -# Item # 128 -- sharedsorabund -- -./sharedsorabund.o : sharedsorabund.cpp - $(CC) $(CC_OPTIONS) sharedsorabund.cpp -c $(INCLUDE) -o ./sharedsorabund.o - - -# Item # 129 -- sharedsorclass -- -./sharedsorclass.o : sharedsorclass.cpp - $(CC) $(CC_OPTIONS) sharedsorclass.cpp -c $(INCLUDE) -o ./sharedsorclass.o - - -# Item # 130 -- sharedsorest -- -./sharedsorest.o : sharedsorest.cpp - $(CC) $(CC_OPTIONS) sharedsorest.cpp -c $(INCLUDE) -o ./sharedsorest.o - - -# Item # 131 -- sharedthetan -- -./sharedthetan.o : sharedthetan.cpp - $(CC) $(CC_OPTIONS) sharedthetan.cpp -c $(INCLUDE) -o ./sharedthetan.o - - -# Item # 132 -- sharedthetayc -- -./sharedthetayc.o : sharedthetayc.cpp - $(CC) $(CC_OPTIONS) sharedthetayc.cpp -c $(INCLUDE) -o ./sharedthetayc.o - - -# Item # 133 -- simpson -- -./simpson.o : simpson.cpp - $(CC) $(CC_OPTIONS) simpson.cpp -c $(INCLUDE) -o ./simpson.o - - -# Item # 134 -- singlelinkage -- -./singlelinkage.o : singlelinkage.cpp - $(CC) $(CC_OPTIONS) singlelinkage.cpp -c $(INCLUDE) -o ./singlelinkage.o - - -# Item # 135 -- sparsematrix -- -./sparsematrix.o : sparsematrix.cpp - $(CC) $(CC_OPTIONS) sparsematrix.cpp -c $(INCLUDE) -o ./sparsematrix.o - - -# Item # 136 -- summarycommand -- -./summarycommand.o : summarycommand.cpp - $(CC) $(CC_OPTIONS) summarycommand.cpp -c $(INCLUDE) -o ./summarycommand.o - - -# Item # 137 -- summarysharedcommand -- -./summarysharedcommand.o : summarysharedcommand.cpp - $(CC) $(CC_OPTIONS) summarysharedcommand.cpp -c $(INCLUDE) -o ./summarysharedcommand.o - - -# Item # 138 -- uvest -- -./uvest.o : uvest.cpp - $(CC) $(CC_OPTIONS) uvest.cpp -c $(INCLUDE) -o ./uvest.o - - -# Item # 139 -- validcalculator -- -./validcalculator.o : validcalculator.cpp - $(CC) $(CC_OPTIONS) validcalculator.cpp -c $(INCLUDE) -o ./validcalculator.o - - -# Item # 140 -- validparameter -- -./validparameter.o : validparameter.cpp - $(CC) $(CC_OPTIONS) validparameter.cpp -c $(INCLUDE) -o ./validparameter.o - - -# Item # 141 -- treenode -- -./treenode.o : treenode.cpp - $(CC) $(CC_OPTIONS) treenode.cpp -c $(INCLUDE) -o ./treenode.o - - -# Item # 142 -- readtreecommand -- -./readtreecommand.o : readtreecommand.cpp - $(CC) $(CC_OPTIONS) readtreecommand.cpp -c $(INCLUDE) -o ./readtreecommand.o - - -# Item # 143 -- reversecommand -- -./reversecommand.o : reversecommand.cpp - $(CC) $(CC_OPTIONS) reversecommand.cpp -c $(INCLUDE) -o ./reversecommand.o - - -# Item # 144 -- trimseqscommand -- -./trimseqscommand.o : trimseqscommand.cpp - $(CC) $(CC_OPTIONS) trimseqscommand.cpp -c $(INCLUDE) -o ./trimseqscommand.o - - -# Item # 145 -- slibshuff -- -./slibshuff.o : slibshuff.cpp - $(CC) $(CC_OPTIONS) slibshuff.cpp -c $(INCLUDE) -o ./slibshuff.o - - -# Item # 146 -- libshuff -- -./libshuff.o : libshuff.cpp - $(CC) $(CC_OPTIONS) libshuff.cpp -c $(INCLUDE) -o ./libshuff.o - - -# Item # 147 -- dlibshuff -- -./dlibshuff.o : dlibshuff.cpp - $(CC) $(CC_OPTIONS) dlibshuff.cpp -c $(INCLUDE) -o ./dlibshuff.o - - -# Item # 148 -- mergefilecommand -- -./mergefilecommand.o : mergefilecommand.cpp - $(CC) $(CC_OPTIONS) mergefilecommand.cpp -c $(INCLUDE) -o ./mergefilecommand.o - - -# Item # 149 -- coverage -- -./coverage.o : coverage.cpp - $(CC) $(CC_OPTIONS) coverage.cpp -c $(INCLUDE) -o ./coverage.o - - -# Item # 150 -- whittaker -- -./whittaker.o : whittaker.cpp - $(CC) $(CC_OPTIONS) whittaker.cpp -c $(INCLUDE) -o ./whittaker.o - - -# Item # 151 -- preclustercommand -- -./preclustercommand.o : preclustercommand.cpp - $(CC) $(CC_OPTIONS) preclustercommand.cpp -c $(INCLUDE) -o ./preclustercommand.o - - -# Item # 152 -- otuhierarchycommand -- -./otuhierarchycommand.o : otuhierarchycommand.cpp - $(CC) $(CC_OPTIONS) otuhierarchycommand.cpp -c $(INCLUDE) -o ./otuhierarchycommand.o - - -# Item # 153 -- setdircommand -- -./setdircommand.o : setdircommand.cpp - $(CC) $(CC_OPTIONS) setdircommand.cpp -c $(INCLUDE) -o ./setdircommand.o - - -# Item # 154 -- getgroupcommand -- -./getgroupcommand.o : getgroupcommand.cpp - $(CC) $(CC_OPTIONS) getgroupcommand.cpp -c $(INCLUDE) -o ./getgroupcommand.o - - -# Item # 155 -- getlabelcommand -- -./getlabelcommand.o : getlabelcommand.cpp - $(CC) $(CC_OPTIONS) getlabelcommand.cpp -c $(INCLUDE) -o ./getlabelcommand.o - - -# Item # 156 -- secondarystructurecommand -- -./secondarystructurecommand.o : secondarystructurecommand.cpp - $(CC) $(CC_OPTIONS) secondarystructurecommand.cpp -c $(INCLUDE) -o ./secondarystructurecommand.o - - -# Item # 157 -- mothurout -- -./mothurout.o : mothurout.cpp - $(CC) $(CC_OPTIONS) mothurout.cpp -c $(INCLUDE) -o ./mothurout.o - - -# Item # 158 -- parselistscommand -- -./parselistscommand.o : parselistscommand.cpp - $(CC) $(CC_OPTIONS) parselistscommand.cpp -c $(INCLUDE) -o ./parselistscommand.o - - -# Item # 159 -- readblast -- -./readblast.o : readblast.cpp - $(CC) $(CC_OPTIONS) readblast.cpp -c $(INCLUDE) -o ./readblast.o - - -# Item # 160 -- chimeracheckrdp -- -./chimeracheckrdp.o : chimeracheckrdp.cpp - $(CC) $(CC_OPTIONS) chimeracheckrdp.cpp -c $(INCLUDE) -o ./chimeracheckrdp.o - - -# Item # 161 -- hclustercommand -- -./hclustercommand.o : hclustercommand.cpp - $(CC) $(CC_OPTIONS) hclustercommand.cpp -c $(INCLUDE) -o ./hclustercommand.o - - -# Item # 162 -- hcluster -- -./hcluster.o : hcluster.cpp - $(CC) $(CC_OPTIONS) hcluster.cpp -c $(INCLUDE) -o ./hcluster.o - - -# Item # 163 -- getlistcountcommand -- -./getlistcountcommand.o : getlistcountcommand.cpp - $(CC) $(CC_OPTIONS) getlistcountcommand.cpp -c $(INCLUDE) -o ./getlistcountcommand.o - - -# Item # 164 -- readcluster -- -./readcluster.o : readcluster.cpp - $(CC) $(CC_OPTIONS) readcluster.cpp -c $(INCLUDE) -o ./readcluster.o - - -# Item # 165 -- ccode -- -./ccode.o : ccode.cpp - $(CC) $(CC_OPTIONS) ccode.cpp -c $(INCLUDE) -o ./ccode.o - - -# Item # 166 -- taxonomyequalizer -- -./taxonomyequalizer.o : taxonomyequalizer.cpp - $(CC) $(CC_OPTIONS) taxonomyequalizer.cpp -c $(INCLUDE) -o ./taxonomyequalizer.o - - -# Item # 167 -- phylotypecommand -- -./phylotypecommand.o : phylotypecommand.cpp - $(CC) $(CC_OPTIONS) phylotypecommand.cpp -c $(INCLUDE) -o ./phylotypecommand.o - - -# Item # 168 -- classifyseqscommand -- -./classifyseqscommand.o : classifyseqscommand.cpp - $(CC) $(CC_OPTIONS) classifyseqscommand.cpp -c $(INCLUDE) -o ./classifyseqscommand.o - - -# Item # 169 -- classify -- -./classify.o : classify.cpp - $(CC) $(CC_OPTIONS) classify.cpp -c $(INCLUDE) -o ./classify.o - - -# Item # 170 -- phylotree -- -./phylotree.o : phylotree.cpp - $(CC) $(CC_OPTIONS) phylotree.cpp -c $(INCLUDE) -o ./phylotree.o - - -# Item # 171 -- bayesian -- -./bayesian.o : bayesian.cpp - $(CC) $(CC_OPTIONS) bayesian.cpp -c $(INCLUDE) -o ./bayesian.o - - -# Item # 172 -- alignmentdb -- -./alignmentdb.o : alignmentdb.cpp - $(CC) $(CC_OPTIONS) alignmentdb.cpp -c $(INCLUDE) -o ./alignmentdb.o - - -# Item # 173 -- knn -- -./knn.o : knn.cpp - $(CC) $(CC_OPTIONS) knn.cpp -c $(INCLUDE) -o ./knn.o - - -# Item # 174 -- distancedb -- -./distancedb.o : distancedb.cpp - $(CC) $(CC_OPTIONS) distancedb.cpp -c $(INCLUDE) -o ./distancedb.o - - -# Item # 175 -- chimeraslayer -- -./chimeraslayer.o : chimeraslayer.cpp - $(CC) $(CC_OPTIONS) chimeraslayer.cpp -c $(INCLUDE) -o ./chimeraslayer.o - - -# Item # 176 -- slayer -- -./slayer.o : slayer.cpp - $(CC) $(CC_OPTIONS) slayer.cpp -c $(INCLUDE) -o ./slayer.o - - -# Item # 177 -- pcacommand -- -./pcacommand.o : pcacommand.cpp - $(CC) $(CC_OPTIONS) pcacommand.cpp -c $(INCLUDE) -o ./pcacommand.o - - -# Item # 178 -- formatcolumn -- -./formatcolumn.o : formatcolumn.cpp - $(CC) $(CC_OPTIONS) formatcolumn.cpp -c $(INCLUDE) -o ./formatcolumn.o - - -# Item # 179 -- formatphylip -- -./formatphylip.o : formatphylip.cpp - $(CC) $(CC_OPTIONS) formatphylip.cpp -c $(INCLUDE) -o ./formatphylip.o - - -# Item # 180 -- mgclustercommand -- -./mgclustercommand.o : mgclustercommand.cpp - $(CC) $(CC_OPTIONS) mgclustercommand.cpp -c $(INCLUDE) -o ./mgclustercommand.o - - -# Item # 181 -- getsharedotucommand -- -./getsharedotucommand.o : getsharedotucommand.cpp - $(CC) $(CC_OPTIONS) getsharedotucommand.cpp -c $(INCLUDE) -o ./getsharedotucommand.o - - -# Item # 182 -- maligner -- -./maligner.o : maligner.cpp - $(CC) $(CC_OPTIONS) maligner.cpp -c $(INCLUDE) -o ./maligner.o - - -# Item # 183 -- chimerarealigner -- -./chimerarealigner.o : chimerarealigner.cpp - $(CC) $(CC_OPTIONS) chimerarealigner.cpp -c $(INCLUDE) -o ./chimerarealigner.o - - -# Item # 184 -- bergerparker -- -./bergerparker.o : bergerparker.cpp - $(CC) $(CC_OPTIONS) bergerparker.cpp -c $(INCLUDE) -o ./bergerparker.o - - -# Item # 185 -- bstick -- -./bstick.o : bstick.cpp - $(CC) $(CC_OPTIONS) bstick.cpp -c $(INCLUDE) -o ./bstick.o - - -# Item # 186 -- sharedkstest -- -./sharedkstest.o : sharedkstest.cpp - $(CC) $(CC_OPTIONS) sharedkstest.cpp -c $(INCLUDE) -o ./sharedkstest.o - - -# Item # 187 -- qstat -- -./qstat.o : qstat.cpp - $(CC) $(CC_OPTIONS) qstat.cpp -c $(INCLUDE) -o ./qstat.o - - -# Item # 188 -- shen -- -./shen.o : shen.cpp - $(CC) $(CC_OPTIONS) shen.cpp -c $(INCLUDE) -o ./shen.o - - -# Item # 189 -- logsd -- -./logsd.o : logsd.cpp - $(CC) $(CC_OPTIONS) logsd.cpp -c $(INCLUDE) -o ./logsd.o - - -# Item # 190 -- geom -- -./geom.o : geom.cpp - $(CC) $(CC_OPTIONS) geom.cpp -c $(INCLUDE) -o ./geom.o - -# Item # 191 -- parsesffcommand -- -./parsesffcommand.o : parsesffcommand.cpp - $(CC) $(CC_OPTIONS) parsesffcommand.cpp -c $(INCLUDE) -o ./parsesffcommand.o - -# Item # 192 -- chimeraccodecommand -- -./chimeraccodecommand.o : chimeraccodecommand.cpp - $(CC) $(CC_OPTIONS) chimeraccodecommand.cpp -c $(INCLUDE) -o ./chimeraccodecommand.o - -# Item # 193 -- chimeracheckcommand -- -./chimeracheckcommand.o : chimeracheckcommand.cpp - $(CC) $(CC_OPTIONS) chimeracheckcommand.cpp -c $(INCLUDE) -o ./chimeracheckcommand.o - - -# Item # 194 -- chimeraslayercommand -- -./chimeraslayercommand.o : chimeraslayercommand.cpp - $(CC) $(CC_OPTIONS) chimeraslayercommand.cpp -c $(INCLUDE) -o ./chimeraslayercommand.o - -# Item # 195 -- chimerapintailcommand -- -./chimerapintailcommand.o : chimerapintailcommand.cpp - $(CC) $(CC_OPTIONS) chimerapintailcommand.cpp -c $(INCLUDE) -o ./chimerapintailcommand.o - -# Item # 196 -- chimerabellerophoncommand -- -./chimerabellerophoncommand.o : chimerabellerophoncommand.cpp - $(CC) $(CC_OPTIONS) chimerabellerophoncommand.cpp -c $(INCLUDE) -o ./chimerabellerophoncommand.o - -# Item # 197 -- phylosummary -- -./phylosummary.o : phylosummary.cpp - $(CC) $(CC_OPTIONS) phylosummary.cpp -c $(INCLUDE) -o ./phylosummary.o - -# Item # 198 -- setlogfilecommand -- -./setlogfilecommand.o : setlogfilecommand.cpp - $(CC) $(CC_OPTIONS) setlogfilecommand.cpp -c $(INCLUDE) -o ./setlogfilecommand.o - -# Item # 199 -- phylodiversity -- -./phylodiversity.o : phylodiversity.cpp - $(CC) $(CC_OPTIONS) phylodiversity.cpp -c $(INCLUDE) -o ./phylodiversity.o - -# Item # 200 -- phylodiversitycommand -- -./phylodiversitycommand.o : phylodiversitycommand.cpp - $(CC) $(CC_OPTIONS) phylodiversitycommand.cpp -c $(INCLUDE) -o ./phylodiversitycommand.o - -# Item # 201 -- makegroupcommand -- -./makegroupcommand.o : makegroupcommand.cpp - $(CC) $(CC_OPTIONS) makegroupcommand.cpp -c $(INCLUDE) -o ./makegroupcommand.o - -# Item # 202 -- chopseqscommand -- -./chopseqscommand.o : chopseqscommand.cpp - $(CC) $(CC_OPTIONS) chopseqscommand.cpp -c $(INCLUDE) -o ./chopseqscommand.o - -# Item # 203 -- clearcutcommand -- -./clearcutcommand.o : clearcutcommand.cpp - $(CC) $(CC_OPTIONS) clearcutcommand.cpp -c $(INCLUDE) -o ./clearcutcommand.o - -# Item # 204 -- catchallcommand -- -./catchallcommand.o : catchallcommand.cpp - $(CC) $(CC_OPTIONS) catchallcommand.cpp -c $(INCLUDE) -o ./catchallcommand.o - -# Item # 205 -- splitabundcommand -- -./splitabundcommand.o : splitabundcommand.cpp - $(CC) $(CC_OPTIONS) splitabundcommand.cpp -c $(INCLUDE) -o ./splitabundcommand.o - -# Item # 206 -- splitmatrix -- -./splitmatrix.o : splitmatrix.cpp - $(CC) $(CC_OPTIONS) splitmatrix.cpp -c $(INCLUDE) -o ./splitmatrix.o - -# Item # 207 -- clustersplit -- -./clustersplitcommand.o : clustersplitcommand.cpp - $(CC) $(CC_OPTIONS) clustersplitcommand.cpp -c $(INCLUDE) -o ./clustersplitcommand.o - -# Item # 208 -- classifyotu -- -./classifyotucommand.o : classifyotucommand.cpp - $(CC) $(CC_OPTIONS) classifyotucommand.cpp -c $(INCLUDE) -o ./classifyotucommand.o - -# Item # 209 -- weightedlinkage -- -./weightedlinkage.o : weightedlinkage.cpp - $(CC) $(CC_OPTIONS) weightedlinkage.cpp -c $(INCLUDE) -o ./weightedlinkage.o - -# Item # 210 -- degapseqscommand -- -./degapseqscommand.o : degapseqscommand.cpp - $(CC) $(CC_OPTIONS) degapseqscommand.cpp -c $(INCLUDE) -o ./degapseqscommand.o - -# Item # 211 -- getrelabundcommand -- -./getrelabundcommand.o : getrelabundcommand.cpp - $(CC) $(CC_OPTIONS) getrelabundcommand.cpp -c $(INCLUDE) -o ./getrelabundcommand.o - -##### END RUN #### +################################################### +# +# Makefile for mothur +# Created: June 29, 2010 +# +################################################### + +# +# Macros +# + +# Optimize to level 3: + +CXXFLAGS += -O3 + +CYGWIN_BUILD ?= no +ifeq ($(strip $(CYGWIN_BUILD)),yes) + CXXFLAGS += -mno-cygwin + LDFLAGS += -mno-cygwin +#-lpsapi +endif + +64BIT_VERSION ?= yes + +ifeq ($(strip $(64BIT_VERSION)),yes) + TARGET_ARCH += -arch x86_64 +endif + +# if you do not want to use the readline library, set this to no. +# make sure you have the library installed + +USEREADLINE ?= yes + +ifeq ($(strip $(USEREADLINE)),yes) + CXXFLAGS += -DUSE_READLINE + LDFLAGS += \ + -lreadline\ + -lncurses\ + -L../readline-6.0 +endif + +USEMPI ?= no + +ifeq ($(strip $(USEMPI)),yes) + CXX = mpic++ + CXXFLAGS += -DUSE_MPI +endif + +# +# INCLUDE directories for mothur +# + + CXXFLAGS += -I. + +# +# Get the list of all .cpp files, rename to .o files +# + +OBJECTS=$(patsubst %.cpp,%.o,$(wildcard *.cpp)) + +mothur : $(OBJECTS) + $(CXX) $(LDFLAGS) $(TARGET_ARCH) -o $@ $(OBJECTS) + +install : mothur + cp mothur ../Release/mothur + +clean : + @rm -f $(OBJECTS) diff --git a/mothur.h b/mothur.h index 2404a84..93f96df 100644 --- a/mothur.h +++ b/mothur.h @@ -64,6 +64,9 @@ #else #include //allows unbuffered screen capture from stdin #include //get cwd + #include + #include + #endif using namespace std; diff --git a/mothurout.cpp b/mothurout.cpp index ca1a40b..8bf216a 100644 --- a/mothurout.cpp +++ b/mothurout.cpp @@ -1,154 +1,240 @@ -/* - * m->mothurOut.cpp - * Mothur - * - * Created by westcott on 2/25/10. - * Copyright 2010 Schloss Lab. All rights reserved. - * - */ - -#include "mothurout.h" - -/******************************************************/ -MothurOut* MothurOut::getInstance() { - if( _uniqueInstance == 0) { - _uniqueInstance = new MothurOut(); - } - return _uniqueInstance; -} -/*********************************************************************************************/ -void MothurOut::setFileName(string filename) { - try { - logFileName = filename; - - #ifdef USE_MPI - int pid; - MPI_Comm_rank(MPI_COMM_WORLD, &pid); - - if (pid == 0) { //only one process should output to screen - #endif - - openOutputFile(filename, out); - - #ifdef USE_MPI - } - #endif - } - catch(exception& e) { - errorOut(e, "MothurOut", "setFileName"); - exit(1); - } -} -/*********************************************************************************************/ -void MothurOut::closeLog() { - try { - - #ifdef USE_MPI - int pid; - MPI_Comm_rank(MPI_COMM_WORLD, &pid); - - if (pid == 0) { //only one process should output to screen - #endif - - out.close(); - - #ifdef USE_MPI - } - #endif - } - catch(exception& e) { - errorOut(e, "MothurOut", "closeLog"); - exit(1); - } -} - -/*********************************************************************************************/ -MothurOut::~MothurOut() { - try { - _uniqueInstance = 0; - - } - catch(exception& e) { - errorOut(e, "MothurOut", "MothurOut"); - exit(1); - } -} -/*********************************************************************************************/ -void MothurOut::mothurOut(string output) { - try { - - #ifdef USE_MPI - int pid; - MPI_Comm_rank(MPI_COMM_WORLD, &pid); - - if (pid == 0) { //only one process should output to screen - #endif - - cout << output; - out << output; - - #ifdef USE_MPI - } - #endif - } - catch(exception& e) { - errorOut(e, "MothurOut", "MothurOut"); - exit(1); - } -} -/*********************************************************************************************/ -void MothurOut::mothurOutEndLine() { - try { - #ifdef USE_MPI - int pid; - MPI_Comm_rank(MPI_COMM_WORLD, &pid); - - if (pid == 0) { //only one process should output to screen - #endif - - cout << endl; - out << endl; - - #ifdef USE_MPI - } - #endif - } - catch(exception& e) { - errorOut(e, "MothurOut", "MothurOutEndLine"); - exit(1); - } -} -/*********************************************************************************************/ -void MothurOut::mothurOutJustToLog(string output) { - try { - #ifdef USE_MPI - int pid; - MPI_Comm_rank(MPI_COMM_WORLD, &pid); - - if (pid == 0) { //only one process should output to screen - #endif - - out << output; - - #ifdef USE_MPI - } - #endif - } - catch(exception& e) { - errorOut(e, "MothurOut", "MothurOutJustToLog"); - exit(1); - } -} -/*********************************************************************************************/ -void MothurOut::errorOut(exception& e, string object, string function) { - mothurOut("Error: "); - mothurOut(toString(e.what())); - mothurOut(" has occurred in the " + object + " class function " + function + ". Please contact Pat Schloss at mothur.bugs@gmail.com, and be sure to include the mothur.logFile with your inquiry."); - mothurOutEndLine(); -} -/*********************************************************************************************/ - - - - - +/* + * m->mothurOut.cpp + * Mothur + * + * Created by westcott on 2/25/10. + * Copyright 2010 Schloss Lab. All rights reserved. + * + */ + +#include "mothurout.h" + +/******************************************************/ +MothurOut* MothurOut::getInstance() { + if( _uniqueInstance == 0) { + _uniqueInstance = new MothurOut(); + } + return _uniqueInstance; +} +/*********************************************************************************************/ +void MothurOut::setFileName(string filename) { + try { + logFileName = filename; + + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if (pid == 0) { //only one process should output to screen + #endif + + openOutputFile(filename, out); + + #ifdef USE_MPI + } + #endif + } + catch(exception& e) { + errorOut(e, "MothurOut", "setFileName"); + exit(1); + } +} +/*********************************************************************************************/ +void MothurOut::closeLog() { + try { + + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if (pid == 0) { //only one process should output to screen + #endif + + out.close(); + + #ifdef USE_MPI + } + #endif + } + catch(exception& e) { + errorOut(e, "MothurOut", "closeLog"); + exit(1); + } +} + +/*********************************************************************************************/ +MothurOut::~MothurOut() { + try { + _uniqueInstance = 0; + + } + catch(exception& e) { + errorOut(e, "MothurOut", "MothurOut"); + exit(1); + } +} +/*********************************************************************************************/ +void MothurOut::mothurOut(string output) { + try { + + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if (pid == 0) { //only one process should output to screen + #endif + + cout << output; + out << output; + + #ifdef USE_MPI + } + #endif + } + catch(exception& e) { + errorOut(e, "MothurOut", "MothurOut"); + exit(1); + } +} +/*********************************************************************************************/ +void MothurOut::mothurOutEndLine() { + try { + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if (pid == 0) { //only one process should output to screen + #endif + + cout << endl; + out << endl; + + #ifdef USE_MPI + } + #endif + } + catch(exception& e) { + errorOut(e, "MothurOut", "MothurOutEndLine"); + exit(1); + } +} +/*********************************************************************************************/ +void MothurOut::mothurOutJustToLog(string output) { + try { + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if (pid == 0) { //only one process should output to screen + #endif + + out << output; + + #ifdef USE_MPI + } + #endif + } + catch(exception& e) { + errorOut(e, "MothurOut", "MothurOutJustToLog"); + exit(1); + } +} +/*********************************************************************************************/ +void MothurOut::errorOut(exception& e, string object, string function) { + double vm, rss; + mem_usage(vm, rss); + + mothurOut("Error: "); + mothurOut(toString(e.what())); + mothurOut(" has occurred in the " + object + " class function " + function + ". Please contact Pat Schloss at mothur.bugs@gmail.com, and be sure to include the mothur.logFile with your inquiry."); + mothurOutEndLine(); +} +/*********************************************************************************************/ +//The following was originally from http://stackoverflow.com/questions/669438/how-to-get-memory-usage-at-run-time-in-c +// process_mem_usage(double &, double &) - takes two doubles by reference, +// attempts to read the system-dependent data for a process' virtual memory +// size and resident set size, and return the results in KB. +// +// On failure, returns 0.0, 0.0 +int MothurOut::mem_usage(double& vm_usage, double& resident_set) { + #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) + + vm_usage = 0.0; + resident_set = 0.0; + + // 'file' stat seems to give the most reliable results + // + ifstream stat_stream("/proc/self/stat",ios_base::in); + + // dummy vars for leading entries in stat that we don't care about + // + string pid, comm, state, ppid, pgrp, session, tty_nr; + string tpgid, flags, minflt, cminflt, majflt, cmajflt; + string utime, stime, cutime, cstime, priority, nice; + string O, itrealvalue, starttime; + + // the two fields we want + // + unsigned long vsize; + long rss; + + stat_stream >> pid >> comm >> state >> ppid >> pgrp >> session >> tty_nr + >> tpgid >> flags >> minflt >> cminflt >> majflt >> cmajflt + >> utime >> stime >> cutime >> cstime >> priority >> nice + >> O >> itrealvalue >> starttime >> vsize >> rss; // don't care about the rest + + long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages + vm_usage = vsize / 1024.0; + resident_set = rss * page_size_kb; + + mothurOut("Memory Usage: vm = " + toString(vm_usage) + " rss = " + toString(resident_set) + "\n"); + return 0; + + #else +/* //windows memory usage + // Get the list of process identifiers. + DWORD aProcesses[1024], cbNeeded, cProcesses; + + if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ){ return 1; } + + // Calculate how many process identifiers were returned. + cProcesses = cbNeeded / sizeof(DWORD); + + // Print the memory usage for each process + for (int i = 0; i < cProcesses; i++ ) { + DWORD processID = aProcesses[i]; + + PROCESS_MEMORY_COUNTERS pmc; + + HANDLE hProcess = OpenProcess((PROCESS_QUERY_INFORMATION | PROCESS_VM_READ), FALSE, processID); + + // Print the process identifier. + printf( "\nProcess ID: %u\n", processID); + + if (NULL != hProcess) { + + if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) ) { + printf( "\tPageFaultCount: 0x%08X\n", pmc.PageFaultCount ); + printf( "\tPeakWorkingSetSize: 0x%08X\n", pmc.PeakWorkingSetSize ); + printf( "\tWorkingSetSize: 0x%08X\n", pmc.WorkingSetSize ); + printf( "\tQuotaPeakPagedPoolUsage: 0x%08X\n", pmc.QuotaPeakPagedPoolUsage ); + printf( "\tQuotaPagedPoolUsage: 0x%08X\n", pmc.QuotaPagedPoolUsage ); + printf( "\tQuotaPeakNonPagedPoolUsage: 0x%08X\n", pmc.QuotaPeakNonPagedPoolUsage ); + printf( "\tQuotaNonPagedPoolUsage: 0x%08X\n", pmc.QuotaNonPagedPoolUsage ); + printf( "\tPagefileUsage: 0x%08X\n", pmc.PagefileUsage ); + printf( "\tPeakPagefileUsage: 0x%08X\n", pmc.PeakPagefileUsage ); + } + CloseHandle(hProcess); + } + } +*/ + return 0; + + #endif +} +/*********************************************************************************************/ + + + + + diff --git a/mothurout.h b/mothurout.h index d2ba6b9..bf356ae 100644 --- a/mothurout.h +++ b/mothurout.h @@ -1,46 +1,48 @@ -#ifndef MOTHUROUT_H -#define MOTHUROUT_H - -/* - * mothurOut.h - * Mothur - * - * Created by westcott on 2/25/10. - * Copyright 2010 Schloss Lab. All rights reserved. - * - */ - -#include "mothur.h" - -/***********************************************/ - -class MothurOut { - - public: - static MothurOut* getInstance(); - void setFileName(string); - - void mothurOut(string); - void mothurOutEndLine(); - void mothurOutJustToLog(string); - void errorOut(exception&, string, string); - void closeLog(); - - int control_pressed; - bool executing; - - private: - static MothurOut* _uniqueInstance; - MothurOut( const MothurOut& ); // Disable copy constructor - void operator=( const MothurOut& ); // Disable assignment operator - MothurOut() { control_pressed = false; }; - ~MothurOut(); - - string logFileName; - ofstream out; - -}; -/***********************************************/ - -#endif - +#ifndef MOTHUROUT_H +#define MOTHUROUT_H + +/* + * mothurOut.h + * Mothur + * + * Created by westcott on 2/25/10. + * Copyright 2010 Schloss Lab. All rights reserved. + * + */ + +#include "mothur.h" + +/***********************************************/ + +class MothurOut { + + public: + static MothurOut* getInstance(); + void setFileName(string); + + void mothurOut(string); + void mothurOutEndLine(); + void mothurOutJustToLog(string); + void errorOut(exception&, string, string); + void closeLog(); + + int control_pressed; + bool executing; + + private: + static MothurOut* _uniqueInstance; + MothurOut( const MothurOut& ); // Disable copy constructor + void operator=( const MothurOut& ); // Disable assignment operator + MothurOut() { control_pressed = false; }; + ~MothurOut(); + + string logFileName; + ofstream out; + + int mem_usage(double&, double&); + +}; +/***********************************************/ + +#endif + diff --git a/setdircommand.cpp b/setdircommand.cpp index b6626b8..238ffa5 100644 --- a/setdircommand.cpp +++ b/setdircommand.cpp @@ -134,7 +134,7 @@ int SetDirectoryCommand::execute(){ return 0; } catch(exception& e) { - m->errorOut(e, "SetDirectoryCommand", "SetDirectoryCommand"); + m->errorOut(e, "SetDirectoryCommand", "execute"); exit(1); } } diff --git a/trimseqscommand.cpp b/trimseqscommand.cpp index dcd95cb..944e2cd 100644 --- a/trimseqscommand.cpp +++ b/trimseqscommand.cpp @@ -16,6 +16,7 @@ TrimSeqsCommand::TrimSeqsCommand(string option) { try { abort = false; + comboStarts = 0; //allow user to run help if(option == "help") { help(); abort = true; } @@ -281,25 +282,36 @@ int TrimSeqsCommand::execute(){ for(int i=0;i'){ - inFASTA >> seqName; - outGroups << seqName << '\t' << groupVector[i] << endl; + if (isBlank(fastaFileNames[i])) { remove(fastaFileNames[i].c_str()); } + else { + ifstream inFASTA; + string seqName; + //openInputFile(getRootName(fastaFile) + groupVector[i] + ".fasta", inFASTA); + openInputFile(fastaFileNames[i], inFASTA); + ofstream outGroups; + string outGroupFilename = outputDir + getRootName(getSimpleName(fastaFileNames[i])) + "groups"; + openOutputFile(outGroupFilename, outGroups); + //openOutputFile(outputDir + getRootName(getSimpleName(fastaFile)) + groupVector[i] + ".groups", outGroups); + outputNames.push_back(outGroupFilename); + + string thisGroup = ""; + if (i > comboStarts) { + map::iterator itCombo; + for(itCombo=combos.begin();itCombo!=combos.end(); itCombo++){ + if(itCombo->second == i){ thisGroup = itCombo->first; combos.erase(itCombo); break; } + } + }else{ thisGroup = groupVector[i]; } + + while(!inFASTA.eof()){ + if(inFASTA.get() == '>'){ + inFASTA >> seqName; + outGroups << seqName << '\t' << thisGroup << endl; + } + while (!inFASTA.eof()) { char c = inFASTA.get(); if (c == 10 || c == 13){ break; } } } - while (!inFASTA.eof()) { char c = inFASTA.get(); if (c == 10 || c == 13){ break; } } + outGroups.close(); + inFASTA.close(); } - outGroups.close(); - inFASTA.close(); } if (m->control_pressed) { @@ -368,7 +380,7 @@ int TrimSeqsCommand::driverCreateTrim(string filename, string qFileName, string string origSeq = currSeq.getUnaligned(); if (origSeq != "") { - int group; + int groupBar, groupPrime; string trashCode = ""; int currentSeqsDiffs = 0; @@ -384,13 +396,13 @@ int TrimSeqsCommand::driverCreateTrim(string filename, string qFileName, string } if(barcodes.size() != 0){ - success = stripBarcode(currSeq, group); + success = stripBarcode(currSeq, groupBar); if(success > bdiffs){ trashCode += 'b'; } else{ currentSeqsDiffs += success; } } if(numFPrimers != 0){ - success = stripForward(currSeq); + success = stripForward(currSeq, groupPrime); if(success > pdiffs){ trashCode += 'f'; } else{ currentSeqsDiffs += success; } } @@ -421,10 +433,19 @@ int TrimSeqsCommand::driverCreateTrim(string filename, string qFileName, string currSeq.setAligned(currSeq.getUnaligned()); currSeq.printSequence(outFASTA); if(barcodes.size() != 0){ - outGroups << currSeq.getName() << '\t' << groupVector[group] << endl; + string thisGroup = groupVector[groupBar]; + int indexToFastaFile = groupBar; + if (primers.size() != 0){ + //does this primer have a group + if (groupVector[groupPrime] != "") { + thisGroup += "." + groupVector[groupPrime]; + indexToFastaFile = combos[thisGroup]; + } + } + outGroups << currSeq.getName() << '\t' << thisGroup << endl; if(allFiles){ - currSeq.printSequence(*fastaFileNames[group]); + currSeq.printSequence(*fastaFileNames[indexToFastaFile]); } } } @@ -558,6 +579,7 @@ void TrimSeqsCommand::getOligos(vector& outFASTAVec){ //vector> type; @@ -574,7 +596,29 @@ void TrimSeqsCommand::getOligos(vector& outFASTAVec){ //vector::iterator itPrime = primers.find(oligo); + if (itPrime != primers.end()) { m->mothurOut("primer " + oligo + " is in your oligos file already."); m->mothurOutEndLine(); } + + primers[oligo]=index; index++; + groupVector.push_back(group); + + if(allFiles){ + if (group != "") { //there is a group for this primer + outputNames.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + toString(index) + "." + group + ".fasta")); + outFASTAVec.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + toString(index) + "." + group + ".fasta")); + } + } } else if(type == "reverse"){ Sequence oligoRC("reverse", oligo); @@ -583,21 +627,40 @@ void TrimSeqsCommand::getOligos(vector& outFASTAVec){ //vector> group; + + //check for repeat barcodes + map::iterator itBar = barcodes.find(oligo); + if (itBar != barcodes.end()) { m->mothurOut("barcode " + oligo + " is in your oligos file already."); m->mothurOutEndLine(); } + barcodes[oligo]=index; index++; groupVector.push_back(group); if(allFiles){ - //outFASTAVec.push_back(new ofstream((outputDir + getRootName(getSimpleName(fastaFile)) + group + ".fasta").c_str(), ios::ate)); outputNames.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + toString(index) + "." + group + ".fasta")); outFASTAVec.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + toString(index) + "." + group + ".fasta")); } }else{ m->mothurOut(type + " is not recognized as a valid type. Choices are forward, reverse, and barcode. Ignoring " + oligo + "."); m->mothurOutEndLine(); } } + gobble(inOligos); } inOligos.close(); - numFPrimers = forPrimer.size(); + //add in potential combos + if(allFiles){ + comboStarts = outFASTAVec.size()-1; + for (map::iterator itBar = barcodes.begin(); itBar != barcodes.end(); itBar++) { + for (map::iterator itPrime = primers.begin(); itPrime != primers.end(); itPrime++) { + if (groupVector[itPrime->second] != "") { //there is a group for this primer + outputNames.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + toString(itBar->second) + "." + groupVector[itBar->second] + "." + toString(itPrime->second) + "." + groupVector[itPrime->second] + ".fasta")); + outFASTAVec.push_back((outputDir + getRootName(getSimpleName(fastaFile)) + toString(itBar->second) + "." + groupVector[itBar->second] + "." + toString(itPrime->second) + "." + groupVector[itPrime->second] + ".fasta")); + combos[(groupVector[itBar->second] + "." + groupVector[itPrime->second])] = outFASTAVec.size()-1; + } + } + } + } + + numFPrimers = primers.size(); numRPrimers = revPrimer.size(); } @@ -727,27 +790,27 @@ int TrimSeqsCommand::stripBarcode(Sequence& seq, int& group){ //*************************************************************************************************************** -int TrimSeqsCommand::stripForward(Sequence& seq){ +int TrimSeqsCommand::stripForward(Sequence& seq, int& group){ try { string rawSequence = seq.getUnaligned(); int success = pdiffs + 1; //guilty until proven innocent //can you find the primer - for(int i=0;i::iterator it=primers.begin();it!=primers.end();it++){ + string oligo = it->first; + if(rawSequence.length() < oligo.length()){ //let's just assume that the primers are the same length + success = pdiffs + 10; //if the sequence is shorter than the barcode then bail out + break; } if(compareDNASeq(oligo, rawSequence.substr(0,oligo.length()))){ + group = it->second; seq.setUnaligned(rawSequence.substr(oligo.length())); success = 0; break; } } - + //if you found the barcode or if you don't want to allow for diffs // cout << success; if ((pdiffs == 0) || (success == 0)) { return success; } @@ -758,11 +821,12 @@ int TrimSeqsCommand::stripForward(Sequence& seq){ int maxLength = 0; Alignment* alignment; - if (numFPrimers > 0) { + if (primers.size() > 0) { + map::iterator it=primers.begin(); - for(int i=0;i maxLength){ - maxLength = forPrimer[i].length(); + for(it;it!=primers.end();it++){ + if(it->first.length() > maxLength){ + maxLength = it->first.length(); } } alignment = new NeedlemanOverlap(-1.0, 1.0, -1.0, (maxLength+pdiffs+1)); @@ -772,10 +836,12 @@ int TrimSeqsCommand::stripForward(Sequence& seq){ //can you find the barcode int minDiff = 1e6; int minCount = 1; + int minGroup = -1; int minPos = 0; - for(int i=0;i::iterator it=primers.begin();it!=primers.end();it++){ + string oligo = it->first; +// int length = oligo.length(); if(rawSequence.length() < maxLength){ success = pdiffs + 100; @@ -794,12 +860,16 @@ int TrimSeqsCommand::stripForward(Sequence& seq){ } oligo = oligo.substr(0,alnLength); temp = temp.substr(0,alnLength); - + int newStart=0; int numDiff = countDiffs(oligo, temp); + +// cout << oligo << '\t' << temp << '\t' << numDiff << endl; + if(numDiff < minDiff){ minDiff = numDiff; minCount = 1; + minGroup = it->second; minPos = 0; for(int i=0;i pdiffs) { success = minDiff; } - else if(minCount > 1) { success = pdiffs + 10; } - else{ + + if(minDiff > pdiffs) { success = minDiff; } //no good matches + else if(minCount > 1) { success = pdiffs + 10; } //can't tell the difference between multiple primers + else{ //use the best match + group = minGroup; seq.setUnaligned(rawSequence.substr(minPos)); success = minDiff; } @@ -822,6 +894,7 @@ int TrimSeqsCommand::stripForward(Sequence& seq){ if (alignment != NULL) { delete alignment; } } + return success; } diff --git a/trimseqscommand.h b/trimseqscommand.h index a4a4215..b5357b3 100644 --- a/trimseqscommand.h +++ b/trimseqscommand.h @@ -33,7 +33,7 @@ private: bool stripQualThreshold(Sequence&, ifstream&); bool cullQualAverage(Sequence&, ifstream&); int stripBarcode(Sequence&, int&); - int stripForward(Sequence&); + int stripForward(Sequence&, int&); bool stripReverse(Sequence&); bool cullLength(Sequence&); bool cullHomoP(Sequence&); @@ -45,10 +45,12 @@ private: string fastaFile, oligoFile, qFileName, outputDir; bool flip, allFiles, qtrim; - int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, qThreshold, qAverage, processors, tdiffs, bdiffs, pdiffs; - vector forPrimer, revPrimer, outputNames; + int numFPrimers, numRPrimers, maxAmbig, maxHomoP, minLength, maxLength, qThreshold, qAverage, processors, tdiffs, bdiffs, pdiffs, comboStarts; + vector revPrimer, outputNames; map barcodes; vector groupVector; + map primers; + map combos; vector processIDS; //processid vector lines; -- 2.39.2