]> git.donarmstrong.com Git - mothur.git/blobdiff - libshuffcommand.cpp
put back no command and worked on libshuff
[mothur.git] / libshuffcommand.cpp
index a51b3270f855062a0e2ee92fab63779b38b50877..4b186754a6cd7876aebb17b5eb4c33691d7b4fff 100644 (file)
@@ -105,6 +105,8 @@ int LibShuffCommand::execute(){
                
                coverage->getValues(matrix, cValues, dist, "user");
                
+               float distDiff = dist[0];
+               
                //loop through each distance and load rsumdelta
                for (int p = 0; p < cValues.size(); p++) {      
                        //find delta values
@@ -114,12 +116,16 @@ int LibShuffCommand::execute(){
                                        //don't save AA to AA
                                        if (i != j) {
                                                //(Caa - Cab)^2
-                                               deltaValues[p].push_back((cValues[p][i][i]-cValues[p][i][j]) * (cValues[p][i][i]-cValues[p][i][j]));
+                                               deltaValues[p].push_back(((cValues[p][i][i]-cValues[p][i][j]) * (cValues[p][i][i]-cValues[p][i][j])) * distDiff);
                                                sumDelta[count] += deltaValues[p][count];
                                                count++;
                                        }
                                }
                        }
+                       if (p < cValues.size() - 1) {
+                                       distDiff = dist[p+1] - dist[p]; 
+//cout << distDiff << endl;
+                       }
                }
                        
                printCoverageFile();
@@ -143,6 +149,8 @@ int LibShuffCommand::execute(){
                
                        coverage->getValues(matrix, cValues, dist, "random");
                        
+                       distDiff = 1;
+                       
                        //loop through each distance and load rsumdelta
                        for (int p = 0; p < cValues.size(); p++) {
                                //find delta values
@@ -152,12 +160,15 @@ int LibShuffCommand::execute(){
                                                //don't save AA to AA
                                                if (i != j) {
                                                        //(Caa - Cab)^2
-                                                       rsumDelta[count][m] += ((cValues[p][i][i]-cValues[p][i][j]) * (cValues[p][i][i]-cValues[p][i][j]));
+                                                       rsumDelta[count][m] += (((cValues[p][i][i]-cValues[p][i][j]) * (cValues[p][i][i]-cValues[p][i][j])) * distDiff);
                                                        count++;
                                                }
                                        }
                                }
                                
+                               if (p < cValues.size() - 1) {
+                                       distDiff = dist[p+1] - dist[p]; 
+                               }
                        }
 
                        //clear out old Values