From af2ce19e213e5191f8c9fac4061e43f6e31a7fbf Mon Sep 17 00:00:00 2001 From: westcott Date: Mon, 21 Jun 2010 16:58:45 +0000 Subject: [PATCH] added degap.seqs command --- Mothur.xcodeproj/project.pbxproj | 4 ++++ commandfactory.cpp | 3 +++ filterseqscommand.cpp | 32 +++++++++++++------------------- makefile | 7 +++++++ reversecommand.h | 1 - 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/Mothur.xcodeproj/project.pbxproj b/Mothur.xcodeproj/project.pbxproj index 1609df9..61b8070 100644 --- a/Mothur.xcodeproj/project.pbxproj +++ b/Mothur.xcodeproj/project.pbxproj @@ -10,6 +10,8 @@ 7EC61A0911BEA6AF00F668D9 /* weightedlinkage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = weightedlinkage.cpp; sourceTree = ""; }; A703FE931194645F002C397E /* makegroupcommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = makegroupcommand.h; sourceTree = SOURCE_ROOT; }; A703FE941194645F002C397E /* makegroupcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = makegroupcommand.cpp; sourceTree = SOURCE_ROOT; }; + A7118EE511CFCAC000CFDE03 /* degapseqscommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = degapseqscommand.h; sourceTree = ""; }; + A7118EE611CFCAC000CFDE03 /* degapseqscommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = degapseqscommand.cpp; sourceTree = ""; }; A71D924211AEB42400D00CBC /* clustersplitcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = clustersplitcommand.cpp; sourceTree = ""; }; A71D924311AEB42400D00CBC /* clustersplitcommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = clustersplitcommand.h; sourceTree = ""; }; A71D924411AEB42400D00CBC /* splitabundcommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = splitabundcommand.cpp; sourceTree = ""; }; @@ -690,6 +692,8 @@ A7DA202A113FECD400BF472F /* collectsharedcommand.h */, A7DA2031113FECD400BF472F /* consensuscommand.cpp */, A7DA2032113FECD400BF472F /* consensuscommand.h */, + A7118EE511CFCAC000CFDE03 /* degapseqscommand.h */, + A7118EE611CFCAC000CFDE03 /* degapseqscommand.cpp */, A7DA203A113FECD400BF472F /* deconvolutecommand.cpp */, A7DA203B113FECD400BF472F /* deconvolutecommand.h */, A7DA203E113FECD400BF472F /* distancecommand.cpp */, diff --git a/commandfactory.cpp b/commandfactory.cpp index bd519ee..7de4d06 100644 --- a/commandfactory.cpp +++ b/commandfactory.cpp @@ -80,6 +80,7 @@ #include "splitabundcommand.h" #include "clustersplitcommand.h" #include "classifyotucommand.h" +#include "degapseqscommand.h" /*******************************************************/ @@ -167,6 +168,7 @@ CommandFactory::CommandFactory(){ commands["split.abund"] = "split.abund"; commands["cluster.split"] = "cluster.split"; commands["classify.otu"] = "classify.otu"; + commands["degap.seqs"] = "degap.seqs"; commands["classify.seqs"] = "MPIEnabled"; commands["dist.seqs"] = "MPIEnabled"; commands["filter.seqs"] = "MPIEnabled"; @@ -291,6 +293,7 @@ Command* CommandFactory::getCommand(string commandName, string optionString){ else if(commandName == "split.abund") { command = new SplitAbundCommand(optionString); } else if(commandName == "cluster.split") { command = new ClusterSplitCommand(optionString); } else if(commandName == "classify.otu") { command = new ClassifyOtuCommand(optionString); } + else if(commandName == "degap.seqs") { command = new DegapSeqsCommand(optionString); } else { command = new NoCommand(optionString); } return command; diff --git a/filterseqscommand.cpp b/filterseqscommand.cpp index a6290a6..2bf0fa3 100644 --- a/filterseqscommand.cpp +++ b/filterseqscommand.cpp @@ -102,6 +102,9 @@ FilterSeqsCommand::FilterSeqsCommand(string option) { // ...at some point should added some additional type checking... string temp; + hard = validParameter.validFile(parameters, "hard", true); if (hard == "not found") { hard = ""; } + else if (hard == "not open") { hard = ""; abort = true; } + temp = validParameter.validFile(parameters, "trump", false); if (temp == "not found") { temp = "*"; } trump = temp[0]; @@ -111,13 +114,13 @@ FilterSeqsCommand::FilterSeqsCommand(string option) { temp = validParameter.validFile(parameters, "processors", false); if (temp == "not found"){ temp = "1"; } convert(temp, processors); - hard = validParameter.validFile(parameters, "hard", true); if (hard == "not found") { hard = ""; } - else if (hard == "not open") { abort = true; } - - vertical = validParameter.validFile(parameters, "vertical", false); if (vertical == "not found") { vertical = "T"; } + vertical = validParameter.validFile(parameters, "vertical", false); + if (vertical == "not found") { + if ((hard == "") && (trump == '*')) { vertical = "T"; } //you have not given a hard file or set the trump char. + else { vertical = "F"; } + } numSeqs = 0; - } } @@ -138,11 +141,11 @@ void FilterSeqsCommand::help(){ m->mothurOut("For example: fasta=abrecovery.fasta-amazon.fasta \n"); m->mothurOut("The trump parameter .... The default is ...\n"); m->mothurOut("The soft parameter .... The default is ....\n"); - m->mothurOut("The hard parameter .... The default is ....\n"); - m->mothurOut("The vertical parameter .... The default is T.\n"); + m->mothurOut("The hard parameter allows you to enter a file containing the filter you want to use.\n"); + m->mothurOut("The vertical parameter removes columns where all sequences contain a gap character. The default is T.\n"); m->mothurOut("The filter.seqs command should be in the following format: \n"); - m->mothurOut("filter.seqs(fasta=yourFastaFile, trump=yourTrump, soft=yourSoft, hard=yourHard, vertical=yourVertical) \n"); - m->mothurOut("Example filter.seqs(fasta=abrecovery.fasta, trump=..., soft=..., hard=..., vertical=T).\n"); + m->mothurOut("filter.seqs(fasta=yourFastaFile, trump=yourTrump) \n"); + m->mothurOut("Example filter.seqs(fasta=abrecovery.fasta, trump=.).\n"); m->mothurOut("Note: No spaces between parameter labels (i.e. fasta), '=' and parameters (i.e.yourFasta).\n\n"); } @@ -256,23 +259,14 @@ int FilterSeqsCommand::filterSequences() { int outMode=MPI_MODE_CREATE|MPI_MODE_WRONLY; int inMode=MPI_MODE_RDONLY; - //char* outFilename = new char[filteredFasta.length()]; - //memcpy(outFilename, filteredFasta.c_str(), filteredFasta.length()); - char outFilename[1024]; strcpy(outFilename, filteredFasta.c_str()); - - //char* inFileName = new char[fastafileNames[s].length()]; - //memcpy(inFileName, fastafileNames[s].c_str(), fastafileNames[s].length()); - + char inFileName[1024]; strcpy(inFileName, fastafileNames[s].c_str()); MPI_File_open(MPI_COMM_WORLD, inFileName, inMode, MPI_INFO_NULL, &inMPI); //comm, filename, mode, info, filepointer MPI_File_open(MPI_COMM_WORLD, outFilename, outMode, MPI_INFO_NULL, &outMPI); - - //delete inFileName; - //delete outFilename; if (m->control_pressed) { MPI_File_close(&inMPI); MPI_File_close(&outMPI); return 0; } diff --git a/makefile b/makefile index 999664f..415d699 100644 --- a/makefile +++ b/makefile @@ -131,6 +131,7 @@ mothur : \ ./listseqscommand.o\ ./getseqscommand.o\ ./removeseqscommand.o\ + ./degapseqscommand.o\ ./systemcommand.o\ ./binsequencecommand.o\ ./distancecommand.o\ @@ -341,6 +342,7 @@ mothur : \ ./listseqscommand.o\ ./getseqscommand.o\ ./removeseqscommand.o\ + ./degapseqscommand.o\ ./systemcommand.o\ ./binsequencecommand.o\ ./distancecommand.o\ @@ -554,6 +556,7 @@ clean : ./listseqscommand.o\ ./getseqscommand.o\ ./removeseqscommand.o\ + ./degapseqscommand.o\ ./systemcommand.o\ ./binsequencecommand.o\ ./distancecommand.o\ @@ -1718,5 +1721,9 @@ install : mothur # 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 ##### END RUN #### diff --git a/reversecommand.h b/reversecommand.h index aad4543..874bde6 100644 --- a/reversecommand.h +++ b/reversecommand.h @@ -10,7 +10,6 @@ * */ -#include "mothur.h" #include "command.hpp" class ReverseSeqsCommand : public Command { -- 2.39.2