X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=heatmap.cpp;h=254b70668f9539929dcd3d60360cd23bd7c6dc2a;hp=514c7af15312b60d4787bb0aa659dbd9f1ccaf08;hb=a65438a717aba8cad1ff86c53279b191710b8810;hpb=9a808b553f14a25f9c5e94da92a7077a57054e8e diff --git a/heatmap.cpp b/heatmap.cpp index 514c7af..254b706 100644 --- a/heatmap.cpp +++ b/heatmap.cpp @@ -144,12 +144,17 @@ string HeatMap::getPic(vector 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 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"; }