]> git.donarmstrong.com Git - mothur.git/blobdiff - heatmap.cpp
pcr.seqs bug fix. working on shannon range calc
[mothur.git] / heatmap.cpp
index 514c7af15312b60d4787bb0aa659dbd9f1ccaf08..254b70668f9539929dcd3d60360cd23bd7c6dc2a 100644 (file)
@@ -144,12 +144,17 @@ string HeatMap::getPic(vector<SharedRAbundVector*> lookup) {
                                
                                if (lookup[i]->getAbundance(j) != 0) { //don't want log value of 0.
                                        if (scaler == "log10") {
-                                               scaleRelAbund[i][j] = toHex(int(255 * log10(relAbund) / log10(maxRelAbund[i]))) + "0000";  
+                        if (maxRelAbund[i] == 1) { maxRelAbund[i] -= 0.001; }
+                        if (relAbund == 1) { relAbund -= 0.001; }
+                                               scaleRelAbund[i][j] = toHex(int(255 * log10(relAbund) / log10(maxRelAbund[i]))) + "0000";
                                        }else if (scaler == "log2") {
+                        if (maxRelAbund[i] == 1) { maxRelAbund[i] -= 0.001; }
+                        if (relAbund == 1) { relAbund -= 0.001; }
                                                scaleRelAbund[i][j] = toHex(int(255 * log2(relAbund) / log2(maxRelAbund[i]))) + "0000";  
                                        }else if (scaler == "linear") {
-                                               scaleRelAbund[i][j] = toHex(int(255 * relAbund / maxRelAbund[i])) + "0000";  
+                                               scaleRelAbund[i][j] = toHex(int(255 * relAbund / maxRelAbund[i])) + "0000";
                                        }else {  //if user enters invalid scaler option.
+                        if (maxRelAbund[i] == 1) { maxRelAbund[i] += 0.001; }
                                                scaleRelAbund[i][j] = toHex(int(255 * log10(relAbund / log10(maxRelAbund[i]))))  + "0000"; 
                                        } 
                                }else { scaleRelAbund[i][j] = "FFFFFF";  }
@@ -455,11 +460,15 @@ string HeatMap::getPic(vector<SharedRAbundFloatVector*> lookup) {
                                
                                if (lookup[i]->getAbundance(j) != 0) { //don't want log value of 0.
                                        if (scaler == "log10") {
+                        if (maxRelAbund[i] == 1) { maxRelAbund[i] -= 0.001; }
+                        if (relAbund == 1) { relAbund -= 0.001; }
                                                scaleRelAbund[i][j] = toHex(int(255 * log10(relAbund) / log10(maxRelAbund[i]))) + "0000";  
                                        }else if (scaler == "log2") {
+                        if (maxRelAbund[i] == 1) { maxRelAbund[i] -= 0.001; }
+                        if (relAbund == 1) { relAbund -= 0.001; }
                                                scaleRelAbund[i][j] = toHex(int(255 * log2(relAbund) / log2(maxRelAbund[i]))) + "0000";  
                                        }else if (scaler == "linear") {
-                                               scaleRelAbund[i][j] = toHex(int(255 * relAbund / maxRelAbund[i])) + "0000";  
+                                               scaleRelAbund[i][j] = toHex(int(255 * relAbund / maxRelAbund[i])) + "0000";
                                        }else {  //if user enters invalid scaler option.
                                                scaleRelAbund[i][j] = toHex(int(255 * log10(relAbund / log10(maxRelAbund[i]))))  + "0000"; 
                                        }