]> git.donarmstrong.com Git - mothur.git/blobdiff - nseqs.h
Revert to previous commit
[mothur.git] / nseqs.h
diff --git a/nseqs.h b/nseqs.h
new file mode 100644 (file)
index 0000000..c0f9549
--- /dev/null
+++ b/nseqs.h
@@ -0,0 +1,52 @@
+#ifndef NSEQS_H
+#define NSEQS_H
+
+/*
+ *  nseqs.h
+ *  Mothur
+ *
+ *  Created by Sarah Westcott on 3/16/09.
+ *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
+ *
+ */
+
+
+
+#include "calculator.h"
+
+/***********************************************************************/
+
+class NSeqs : public Calculator {
+
+public:
+       NSeqs() : Calculator("nseqs", 1, false) {};
+       EstOutput getValues(SAbundVector* rank){
+               data.resize(1,0);
+               data[0] = (double)rank->getNumSeqs();
+               return data;
+       }
+       
+       EstOutput getValues(vector<SharedRAbundVector*> shared) { //return number of sequences in the sharedotus
+               
+               int numGroups = shared.size();
+               data.clear(); data.resize(numGroups,0);
+
+               for (int i = 0; i < shared[0]->getNumBins(); i++) {
+                       //get bin values and set sharedByAll 
+                       bool sharedByAll = true;
+                       for (int j = 0; j < numGroups; j++) {
+                               if (shared[j]->getAbundance(i) == 0) { sharedByAll = false; }
+                       }
+                       
+                       //they are shared
+                       if (sharedByAll == true) {  for (int j = 0; j < numGroups; j++) {  data[j] += shared[j]->getAbundance(i);  } }
+               }
+
+               return data;
+       }
+       string getCitation() { return "http://www.mothur.org/wiki/Nseqs"; }
+};
+
+/***********************************************************************/
+
+#endif