X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=globaldata.cpp;h=a8e88c52ffbd9d9fe9bb711d4be2cf0c361c9212;hb=a8f5a612bba54ceb74e17efc027d3a7f5aa93c9a;hp=67c49bd28c942d5c432538b6f965406c0b592ae6;hpb=2e5ec5cbbd23637ed20da9bdd544d178a3b5d949;p=mothur.git diff --git a/globaldata.cpp b/globaldata.cpp index 67c49bd..a8e88c5 100644 --- a/globaldata.cpp +++ b/globaldata.cpp @@ -1,9 +1,6 @@ #include "globaldata.hpp" -#include "sparsematrix.hpp" #include "tree.h" -#include "rabundvector.hpp" -#include "sabundvector.hpp" -#include "listvector.hpp" +#include "sparsematrix.hpp" /*******************************************************/ @@ -29,9 +26,11 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ if ((commandName == "read.dist") || (commandName == "read.otu") || (commandName == "read.tree")) { clear(); gGroupmap = NULL; + gListVector = NULL; + gSparseMatrix = NULL; gTree.clear(); Treenames.clear(); - labels.clear(); lines.clear(); groups.clear(); + labels.clear(); lines.clear(); Groups.clear(); allLines = 1; } @@ -45,6 +44,9 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ cutoff = "1.0"; } + //set default value for cutoff + if (commandName == "dist.seqs") { cutoff = "1.0"; } + string key, value; //reads in parameters and values if((optionText != "") && (commandName != "help")){ @@ -57,7 +59,9 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ if (key == "list" ) { listfile = value; inputFileName = value; fileroot = value; format = "list"; } if (key == "rabund" ) { rabundfile = value; inputFileName = value; fileroot = value; format = "rabund"; } if (key == "sabund" ) { sabundfile = value; inputFileName = value; fileroot = value; format = "sabund"; } - if (key == "fasta" ) { fastafile = value; inputFileName = value; fileroot = value; format = "fasta"; } + if (key == "fasta" ) { fastafile = value; inputFileName = value; fileroot = value; format = "fasta"; } + if (key == "nexus" ) { nexusfile = value; inputFileName = value; fileroot = value; format = "nexus"; } + if (key == "clustal" ) { clustalfile = value; inputFileName = value; fileroot = value; format = "clustal"; } if (key == "tree" ) { treefile = value; inputFileName = value; fileroot = value; format = "tree"; } if (key == "shared" ) { sharedfile = value; inputFileName = value; fileroot = value; format = "sharedfile"; } if (key == "name" ) { namefile = value; } @@ -76,24 +80,39 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ if (key == "step") { step = value; } if (key == "form") { form = value; } if (key == "sorted") { sorted = value; } + if (key == "vertical") { vertical = value; } + if (key == "trump") { trump = value; } + if (key == "hard") { hard = value; } + if (key == "soft") { soft = value; } + if (key == "scale") { scale = value; } + if (key == "countends" ) { countends = value; } + if (key == "processors" ) { processors = value; } + if (key == "size" ) { size = value; } + if (key == "candidate") { candidatefile = value; } + if (key == "search") { search = value; } + if (key == "ksize") { ksize = value; } + if (key == "align") { align = value; } + if (key == "match") { match = value; } + if (key == "mismatch") { mismatch = value; } + if (key == "gapopen") { gapopen = value; } + if (key == "gapextend" ) { gapextend = value; } - - - if (key == "line") {//stores lines to be used in a set + if (key == "line") {//stores lines to be used in a vector lines.clear(); labels.clear(); line = value; label = ""; - splitAtDash(value, lines); - allLines = 0; + if (line != "all") { splitAtDash(value, lines); allLines = 0; } + else { allLines = 1; } } - if (key == "label") {//stores labels to be used in a set + + if (key == "label") {//stores lines to be used in a vector labels.clear(); lines.clear(); label = value; line = ""; - splitAtDash(value, labels); - allLines = 0; + if (label != "all") { splitAtDash(value, labels); allLines = 0; } + else { allLines = 1; } } if (key == "groups") {//stores groups to be used in a vector @@ -113,6 +132,8 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ if (key == "rabund" ) { rabundfile = value; inputFileName = value; fileroot = value; format = "rabund"; } if (key == "sabund" ) { sabundfile = value; inputFileName = value; fileroot = value; format = "sabund"; } if (key == "fasta" ) { fastafile = value; inputFileName = value; fileroot = value; format = "fasta"; } + if (key == "nexus" ) { nexusfile = value; inputFileName = value; fileroot = value; format = "nexus"; } + if (key == "clustal" ) { clustalfile = value; inputFileName = value; fileroot = value; format = "clustal"; } if (key == "tree" ) { treefile = value; inputFileName = value; fileroot = value; format = "tree"; } if (key == "shared" ) { sharedfile = value; inputFileName = value; fileroot = value; format = "sharedfile"; } if (key == "name" ) { namefile = value; } @@ -131,6 +152,22 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ if (key == "step") { step = value; } if (key == "form") { form = value; } if (key == "sorted") { sorted = value; } + if (key == "vertical") { vertical = value; } + if (key == "trump") { trump = value; } + if (key == "hard") { hard = value; } + if (key == "soft") { soft = value; } + if (key == "scale") { scale = value; } + if (key == "countends" ) { countends = value; } + if (key == "processors" ) { processors = value; } + if (key == "size" ) { size = value; } + if (key == "candidate") { candidatefile = value; } + if (key == "search") { search = value; } + if (key == "ksize") { ksize = value; } + if (key == "align") { align = value; } + if (key == "match") { match = value; } + if (key == "mismatch") { mismatch = value; } + if (key == "gapopen") { gapopen = value; } + if (key == "gapextend" ) { gapextend = value; } if (key == "line") {//stores lines to be used in a vector lines.clear(); @@ -140,6 +177,7 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ if (line != "all") { splitAtDash(value, lines); allLines = 0; } else { allLines = 1; } } + if (key == "label") {//stores lines to be used in a vector labels.clear(); lines.clear(); @@ -162,7 +200,8 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ //input defaults for calculators if (commandName == "collect.single") { - if ((calc == "default") || (calc == "")) { calc = "sobs-chao-ace-jack-bootstrap-shannon-npshannon-simpson-geom-qstat-logsd-bergerparker-bstick"; } + + if ((calc == "default") || (calc == "")) { calc = "sobs-chao-ace-jack-shannon-npshannon-simpson"; } Estimators.clear(); splitAtDash(calc, Estimators); } @@ -172,17 +211,18 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ splitAtDash(calc, Estimators); } if (commandName == "collect.shared") { - if ((calc == "default") || (calc == "")) { calc = "sharedsobs-sharedchao-sharedace-sharedjabund-sharedsorensonabund-sharedjclass-sharedsorclass-sharedjest-sharedsorest-sharedthetayc-sharedthetan-sharedkstest-sharedbdiversity"; } + + if ((calc == "default") || (calc == "")) { calc = "sharedsobs-sharedchao-sharedace-jabund-sorabund-jclass-sorclass-jest-sorest-thetayc-thetan"; } Estimators.clear(); splitAtDash(calc, Estimators); } if (commandName == "summary.single") { - if ((calc == "default") || (calc == "")) { calc = "sobs-chao-ace-jack-bootstrap-shannon-npshannon-simpson-geom-logsd-qstat-bergerparker-bstick"; } + if ((calc == "default") || (calc == "")) { calc = "sobs-chao-ace-jack-shannon-npshannon-simpson"; } Estimators.clear(); splitAtDash(calc, Estimators); } if (commandName == "summary.shared") { - if ((calc == "default") || (calc == "")) { calc = "sharedsobs-sharedchao-sharedace-sharedjabund-sharedsorensonabund-sharedjclass-sharedsorclass-sharedjest-sharedsorest-sharedthetayc-sharedthetan-sharedkstest-sharedbdiversity"; } + if ((calc == "default") || (calc == "")) { calc = "sharedsobs-sharedchao-sharedace-jabund-sorabund-jclass-sorclass-jest-sorest-thetayc-thetan"; } Estimators.clear(); splitAtDash(calc, Estimators); } @@ -191,6 +231,12 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ Estimators.clear(); splitAtDash(calc, Estimators); } + if (commandName == "dist.seqs") { + if ((calc == "default") || (calc == "")) { calc = "onegap"; } + if (countends == "") { countends = "T"; } + Estimators.clear(); + splitAtDash(calc, Estimators); + } if (commandName == "venn") { if ((calc == "default") || (calc == "")) { if (format == "list") { calc = "sobs"; } @@ -199,6 +245,20 @@ void GlobalData::parseGlobalData(string commandString, string optionText){ Estimators.clear(); splitAtDash(calc, Estimators); } + if ((commandName == "tree.shared") || (commandName == "bootstrap.shared") || (commandName == "dist.shared")) { + if ((calc == "default") || (calc == "")) { + calc = "jclass-thetayc"; + } + Estimators.clear(); + splitAtDash(calc, Estimators); + } + + if(commandName == "filter.seqs"){ + if(trump == "" && vertical == "" && hard == "" && soft == ""){ + trump = '.'; + } + + } //if you have done a read.otu with a groupfile but don't want to use it anymore because you want to do single commands if ((commandName == "collect.single") || (commandName == "rarefaction.single") || (commandName == "summary.single")) { @@ -231,6 +291,8 @@ string GlobalData::getOrderFile() { return orderfile; } string GlobalData::getTreeFile() { return treefile; } string GlobalData::getSharedFile() { return sharedfile; } string GlobalData::getFastaFile() { return fastafile; } +string GlobalData::getNexusFile() { return nexusfile; } +string GlobalData::getClustalFile() { return clustalfile; } string GlobalData::getCutOff() { return cutoff; } string GlobalData::getFormat() { return format; } string GlobalData::getPrecision() { return precision; } @@ -245,16 +307,39 @@ string GlobalData::getGroups() { return groups; } string GlobalData::getStep() { return step; } string GlobalData::getForm() { return form; } string GlobalData::getSorted() { return sorted; } -void GlobalData::setListFile(string file) { listfile = file; inputFileName = file;} -void GlobalData::setRabundFile(string file) { rabundfile = file; inputFileName = file;} -void GlobalData::setSabundFile(string file) { sabundfile = file; inputFileName = file;} -void GlobalData::setPhylipFile(string file) { phylipfile = file; inputFileName = file;} -void GlobalData::setColumnFile(string file) { columnfile = file; inputFileName = file;} +string GlobalData::getVertical() { return vertical; } +string GlobalData::getTrump() { return trump; } +string GlobalData::getSoft() { return soft; } +string GlobalData::getHard() { return hard; } +string GlobalData::getScale() { return scale; } +string GlobalData::getCountEnds() { return countends; } +string GlobalData::getProcessors() { return processors; } +string GlobalData::getSize() { return size; } +string GlobalData::getCandidateFile() { return candidatefile;} +string GlobalData::getSearch() { return search; } +string GlobalData::getKSize() { return ksize; } +string GlobalData::getAlign() { return align; } +string GlobalData::getMatch() { return match; } +string GlobalData::getMismatch() { return mismatch; } +string GlobalData::getGapopen() { return gapopen; } +string GlobalData::getGapextend() { return gapextend; } + + +void GlobalData::setListFile(string file) { listfile = file; inputFileName = file; } +void GlobalData::setRabundFile(string file) { rabundfile = file; inputFileName = file; } +void GlobalData::setSabundFile(string file) { sabundfile = file; inputFileName = file; } +void GlobalData::setPhylipFile(string file) { phylipfile = file; inputFileName = file; } +void GlobalData::setColumnFile(string file) { columnfile = file; inputFileName = file; } +void GlobalData::setGroupFile(string file) { groupfile = file; } +void GlobalData::setSharedFile(string file) { sharedfile = file; inputFileName = file; fileroot = file; } void GlobalData::setNameFile(string file) { namefile = file; } void GlobalData::setFormat(string Format) { format = Format; } void GlobalData::setRandomTree(string Random) { randomtree = Random; } void GlobalData::setGroups(string g) { groups = g; } void GlobalData::setCalc(string Calc) { calc = Calc; } +void GlobalData::setCountEnds(string e) { countends = e; } +void GlobalData::setProcessors(string p) { processors = p; } + /*******************************************************/ @@ -263,6 +348,8 @@ GlobalData::GlobalData() { //option definitions should go here... helpRequest = ""; clear(); + gListVector == NULL; + gSparseMatrix == NULL; } /*******************************************************/ @@ -278,8 +365,11 @@ void GlobalData::clear() { groupfile = ""; orderfile = ""; fastafile = ""; + nexusfile = ""; + clustalfile = ""; treefile = ""; sharedfile = ""; + candidatefile = ""; cutoff = "10.00"; format = ""; precision = "100"; @@ -295,7 +385,22 @@ void GlobalData::clear() { abund = "10"; step = "0.01"; form = "integral"; - sorted = "1"; //0 means don't sort, 1 means sort. + sorted = "T"; //F means don't sort, T means sort. + vertical = ""; + trump = ""; + hard = ""; + soft = ""; + scale = "log10"; + countends = "T"; //yes + processors = "1"; + size = "0"; + search = "kmer"; + ksize = "7"; + align = "needleman"; + match = "1.0"; + mismatch = "-1.0"; + gapopen = "-1.0"; + gapextend = "-2.0"; } //*******************************************************/ @@ -307,7 +412,7 @@ void GlobalData::reset() { iters = "1000"; groups = ""; jumble = "1"; //0 means don't jumble, 1 means jumble. - sorted = "1"; //0 means don't sort, 1 means sort. + sorted = "T"; //F means don't sort, T means sort. randomtree = ""; //"" means user will enter some user trees, "outputfile" means they just want the random tree distribution to be outputted to outputfile. freq = "100"; method = "furthest"; @@ -315,6 +420,21 @@ void GlobalData::reset() { abund = "10"; step = "0.01"; form = "integral"; + countends = "T"; + processors = "1"; + size = "0"; + search = "kmer"; + ksize = "7"; + align = "needleman"; + match = "1.0"; + mismatch = "-1.0"; + gapopen = "-1.0"; + gapextend = "-2.0"; + vertical = ""; + trump = ""; + hard = ""; + soft = ""; + } /*******************************************************/ @@ -382,7 +502,7 @@ void GlobalData::parseTreeFile() { //use nexus translation rather than parsing tree to save time if ((holder == "translate") || (holder == "Translate")) { -cout << "there is a translate " << endl; + string number, name, h; h = ""; // so it enters the loop the first time while((h != ";") && (number != ";")) {