]> git.donarmstrong.com Git - mothur.git/commitdiff
Merge remote-tracking branch 'mothur/master'
authorSarah Westcott <mothur.westcott@gmail.com>
Tue, 1 May 2012 12:19:31 +0000 (08:19 -0400)
committerSarah Westcott <mothur.westcott@gmail.com>
Tue, 1 May 2012 12:19:31 +0000 (08:19 -0400)
1  2 
cooccurrencecommand.cpp

diff --combined cooccurrencecommand.cpp
index 45bc0f58dd9cbf5fbcb32a7038fde29fb749551d,f0a46aaf9dfc0a729df15549a7d8fecc4c02d52a..cfde0a906d7a3138160205623bd42b59f9c2918f
@@@ -318,7 -318,7 +318,7 @@@ int CooccurrenceCommand::getCooccurrenc
              }
          }
          //don't need a prob matrix because we just shuffle the rows, may use this in the future
 -//        else if (matrix == "sim2") {
 +        else if (matrix == "sim2") { }
  //            for(int i=0;i<nrows;i++) {
  //                start = 0.0;
  //                for(int j=0;j<ncols;j++) {
                  }
              }
          }
-         else if (matrix == "sim9") { }
+         else if (matrix == "sim9" || matrix == "sim2") { }
          else {
              m->mothurOut("[ERROR]: No model selected! \n");
              m->control_pressed = true;
  
          //burn-in for sim9    
          if(matrix == "sim9") {
-             for(int i=0;i<10000;i++) trial.swap_checkerboards (co_matrix, rowtotal, columntotal, ncols, nrows);
+             for(int i=0;i<10000;i++) trial.swap_checkerboards (co_matrix, ncols, nrows);
          }
  
          //populate null matrix from probability matrix, do this a lot.
 -        for(int k=0;k<runs;k++){
 +        for(int h=0;h<runs;h++){
              nullmatrix.clear();
              //zero-fill the null matrix
              nullmatrix.assign(nrows, vector<int>(ncols, 0));
              if(matrix == "sim1" || matrix == "sim6" || matrix == "sim8" || matrix == "sim7") {
                  count = 0;
                  while(count < n) {
 +                    if (m->control_pressed) { return 0; }
                  nextnum2:
                      previous = 0.0;
                      randnum = rand() / double(RAND_MAX);
              
              else if(matrix == "sim4") {
                  for(int i=0;i<nrows;i++) {
-                     previous = 0.0;
                      count = 0;
                      while(count < rowtotal[i]) {
                          previous = 0.0;
 +                        if (m->control_pressed) { return 0; }
                          randnum = rand() / double(RAND_MAX);
                          for(int j=0;j<ncols;j++) {
                              current = probabilityMatrix[ncols * i + j];
 -                            if(randnum <= current && randnum > previous && nullmatrix[i][j] != 1) {
 +                            if((randnum <= current && randnum > previous && nullmatrix[i][j] != 1) || (previous==current)){
                                  nullmatrix[i][j] = 1;
                                  count++;
                                  previous = 0.0;
                  for(int j=0;j<ncols;j++) {
                      count = 0;
                      while(count < columntotal[j]) {
 +                        if (m->control_pressed) { return 0; }
                          randnum = rand() / double(RAND_MAX);
                          for(int i=0;i<nrows;i++) {
                              current = probabilityMatrix[ncols * i + j];
              
              //swap_checkerboards takes the original matrix and swaps checkerboards
              else if(matrix == "sim9") {
-                 trial.swap_checkerboards (co_matrix, rowtotal, columntotal, ncols, nrows);
+                 trial.swap_checkerboards (co_matrix, ncols, nrows);
              }
              else {
                  m->mothurOut("[ERROR]: No null model selected!\n\n"); m->control_pressed = true;