X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=listvector.cpp;fp=listvector.cpp;h=0000000000000000000000000000000000000000;hb=4a877efa127e56e81a21f53cfdbbfd3bfbe8c4ff;hp=9369a12280b35cd41a6a6e3548258f27ebb36b5c;hpb=a6cf29fa4dac0909c7582cb1094151d34093ee76;p=mothur.git diff --git a/listvector.cpp b/listvector.cpp deleted file mode 100644 index 9369a12..0000000 --- a/listvector.cpp +++ /dev/null @@ -1,268 +0,0 @@ -/* - * list.cpp - * - * - * Created by Pat Schloss on 8/8/08. - * Copyright 2008 Patrick D. Schloss. All rights reserved. - * - */ - - -#include "sabundvector.hpp" -#include "rabundvector.hpp" -#include "ordervector.hpp" -#include "listvector.hpp" - - -/***********************************************************************/ - -ListVector::ListVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){} - -/***********************************************************************/ - -ListVector::ListVector(int n): DataVector(), data(n, "") , maxRank(0), numBins(0), numSeqs(0){} - -/***********************************************************************/ - -ListVector::ListVector(string id, vector lv) : DataVector(id), data(lv){ - try { - for(int i=0;igetNumNames(data[i]); - numBins = i+1; - if(binSize > maxRank) { maxRank = binSize; } - numSeqs += binSize; - } - } - } - catch(exception& e) { - m->errorOut(e, "ListVector", "ListVector"); - exit(1); - } -} - -/**********************************************************************/ - -ListVector::ListVector(ifstream& f) : DataVector(), maxRank(0), numBins(0), numSeqs(0) { - try { - int hold; - f >> label >> hold; - - data.assign(hold, ""); - string inputData = ""; - - for(int i=0;i> inputData; - set(i, inputData); - } - m->gobble(f); - } - catch(exception& e) { - m->errorOut(e, "ListVector", "ListVector"); - exit(1); - } -} - -/***********************************************************************/ - -void ListVector::set(int binNumber, string seqNames){ - try { - int nNames_old = m->getNumNames(data[binNumber]); - data[binNumber] = seqNames; - int nNames_new = m->getNumNames(seqNames); - - if(nNames_old == 0) { numBins++; } - if(nNames_new == 0) { numBins--; } - if(nNames_new > maxRank) { maxRank = nNames_new; } - - numSeqs += (nNames_new - nNames_old); - } - catch(exception& e) { - m->errorOut(e, "ListVector", "set"); - exit(1); - } -} - -/***********************************************************************/ - -string ListVector::get(int index){ - return data[index]; -} - -/***********************************************************************/ - -void ListVector::push_back(string seqNames){ - try { - data.push_back(seqNames); - int nNames = m->getNumNames(seqNames); - - numBins++; - - if(nNames > maxRank) { maxRank = nNames; } - - numSeqs += nNames; - } - catch(exception& e) { - m->errorOut(e, "ListVector", "push_back"); - exit(1); - } -} - -/***********************************************************************/ - -void ListVector::resize(int size){ - data.resize(size); -} - -/***********************************************************************/ - -int ListVector::size(){ - return data.size(); -} -/***********************************************************************/ - -void ListVector::clear(){ - numBins = 0; - maxRank = 0; - numSeqs = 0; - return data.clear(); - -} - -/***********************************************************************/ - -void ListVector::print(ostream& output){ - try { - output << label << '\t' << numBins << '\t'; - - for(int i=0;ierrorOut(e, "ListVector", "print"); - exit(1); - } -} - - -/***********************************************************************/ - -RAbundVector ListVector::getRAbundVector(){ - try { - RAbundVector rav; - - for(int i=0;igetNumNames(data[i]); - rav.push_back(binSize); - } - - // This was here before to output data in a nice format, but it screws up the name mapping steps - // sort(rav.rbegin(), rav.rend()); - // - // for(int i=data.size()-1;i>=0;i--){ - // if(rav.get(i) == 0){ rav.pop_back(); } - // else{ - // break; - // } - // } - rav.setLabel(label); - - return rav; - } - catch(exception& e) { - m->errorOut(e, "ListVector", "getRAbundVector"); - exit(1); - } -} - -/***********************************************************************/ - -SAbundVector ListVector::getSAbundVector(){ - try { - SAbundVector sav(maxRank+1); - - for(int i=0;igetNumNames(data[i]); - sav.set(binSize, sav.get(binSize) + 1); - } - sav.set(0, 0); - sav.setLabel(label); - - return sav; - } - catch(exception& e) { - m->errorOut(e, "ListVector", "getSAbundVector"); - exit(1); - } -} - -/***********************************************************************/ - -OrderVector ListVector::getOrderVector(map* orderMap = NULL){ - - try { - if(orderMap == NULL){ - OrderVector ov; - - for(int i=0;igetNumNames(data[i]); - for(int j=0;jcount(seqName) == 0){ - m->mothurOut(seqName + " not found, check *.names file\n"); - exit(1); - } - - ov.set((*orderMap)[seqName], i); - seqName = ""; - } - } - - if(orderMap->count(seqName) == 0){ - m->mothurOut(seqName + " not found, check *.names file\n"); - exit(1); - } - ov.set((*orderMap)[seqName], i); - } - - ov.setLabel(label); - ov.getNumBins(); - - return ov; - } - } - catch(exception& e) { - m->errorOut(e, "ListVector", "getOrderVector"); - exit(1); - } -} - -/***********************************************************************/