]> git.donarmstrong.com Git - mothur.git/blobdiff - getrelabundcommand.cpp
1.12.1
[mothur.git] / getrelabundcommand.cpp
index 8293c9b31485bad93f1bb8875f2e53fc28a1d746..037cd3ee70b970a7f0ecce05e2e0c073e449562e 100644 (file)
@@ -94,7 +94,7 @@ void GetRelAbundCommand::help(){
                m->mothurOut("The label parameter allows you to select what distance levels you would like, and are also separated by dashes.\n");
                m->mothurOut("The scale parameter allows you to select what scale you would like to use. Choices are totalgroup, totalotu, averagegroup, averageotu, default is totalgroup.\n");
                m->mothurOut("The get.relabund command should be in the following format: get.relabund(groups=yourGroups, label=yourLabels).\n");
-               m->mothurOut("Example get.relabund(groups=A-B-C, scale=log10).\n");
+               m->mothurOut("Example get.relabund(groups=A-B-C, scale=averagegroup).\n");
                m->mothurOut("The default value for groups is all the groups in your groupfile, and all labels in your inputfile will be used.\n");
                m->mothurOut("The get.relabund command outputs a .relabund file.\n");
                m->mothurOut("Note: No spaces between parameter labels (i.e. groups), '=' and parameters (i.e.yourGroups).\n\n");
@@ -226,14 +226,6 @@ int GetRelAbundCommand::getRelAbundance(vector<SharedRAbundVector*>& thisLookUp,
        try {
                if (pickedGroups) { eliminateZeroOTUS(thisLookUp); }
 
-               int totalNumSeqs = 0;
-               if ((scale == "totalgroup") || (scale == "averagegroup")) {
-                       for (int i = 0; i < thisLookUp.size(); i++) {
-                               //find total number of sequences in all samples
-                               totalNumSeqs += thisLookUp[i]->getNumSeqs();
-                       }
-               }
-               float averageNumSeqs = totalNumSeqs / (float) thisLookUp.size();
                
                 for (int i = 0; i < thisLookUp.size(); i++) {
                        out << thisLookUp[i]->getLabel() << '\t' << thisLookUp[i]->getGroup() << '\t' << thisLookUp[i]->getNumBins() << '\t';
@@ -246,16 +238,15 @@ int GetRelAbundCommand::getRelAbundance(vector<SharedRAbundVector*>& thisLookUp,
                                
                                float relabund = 0.0;
                                
-                               if (scale == "totalgroup") {  //abund of this otu compared to total number of sequence in my group
-                                       relabund = abund / (float) totalNumSeqs;
+                               if (scale == "totalgroup") { 
+                                       relabund = abund / (float) thisLookUp[i]->getNumSeqs();
                                }else if (scale == "totalotu") {
                                        //calc the total in this otu
                                        int totalOtu = 0;
                                        for (int l = 0; l < thisLookUp.size(); l++) {  totalOtu += thisLookUp[l]->getAbundance(j); }
-                                       
                                        relabund = abund / (float) totalOtu;
                                }else if (scale == "averagegroup") {
-                                       relabund = abund / (float) averageNumSeqs;
+                                       relabund = abund / (float) (thisLookUp[i]->getNumSeqs() / (float) thisLookUp[i]->getNumBins());
                                }else if (scale == "averageotu") {
                                        //calc the total in this otu
                                        int totalOtu = 0;