}
}
//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++) {
}
//populate null matrix from probability matrix, do this a lot.
- for(int i=0;i<runs;i++){
+ 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);
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];
//find different types of files
map<string, map<string, string> > typesFiles;
- map<string, string> temp;
for (int i = 0; i < outputNames.size(); i++) {
string extension = m->getExtension(outputNames[i]);
string newLine = labels.substr(0, labels.find_first_of('\t'));
newLine += "\tGroup" + labels.substr(labels.find_first_of('\t'));
-
- temp[outputNames[i]] = file2Group[i];
- typesFiles[extension] = temp;
+
+ map<string, map<string, string> >::iterator itfind = typesFiles.find(extension);
+ if (itfind != typesFiles.end()) {
+ (itfind->second)[outputNames[i]] = file2Group[i];
+ }else {
+ map<string, string> temp;
+ temp[outputNames[i]] = file2Group[i];
+ typesFiles[extension] = temp;
+ }
string combineFileName = outputDir + m->getRootName(m->getSimpleName(sharedfile)) + "groups" + extension;
string combineFileName = outputDir + m->getRootName(m->getSimpleName(sharedfile)) + "groups" + it->first;
m->openOutputFileAppend(combineFileName, out);
newFileNames.push_back(combineFileName);
-
map<string, string> thisTypesFiles = it->second;
//open each type summary file
string thisfilename = itFileNameGroup->first;
string group = itFileNameGroup->second;
-
+
ifstream temp;
m->openInputFile(thisfilename, temp);
count++;
thisFilesLines.push_back(thisLine);
-
m->gobble(temp);
}
for (map<string, string>::iterator itFileNameGroup = thisTypesFiles.begin(); itFileNameGroup != thisTypesFiles.end(); itFileNameGroup++) {
string thisfilename = itFileNameGroup->first;
-
map<int, int>::iterator itLine = lineToNumber.find(k);
if (itLine != lineToNumber.end()) {
string output = toString(itLine->second);
double calc_pvalue_lessthan (vector<double>, double);
double calc_pvalue_greaterthan (vector<double>, double);
- void swap_checkerboards (vector<vector<int> > &, vector<int>, vector<int>, int, int);
+ int swap_checkerboards (vector<vector<int> > &, vector<int>, vector<int>, int, int);
int calc_combo (int, int, vector<vector<int> > &);
double calc_vratio (int, int, vector<int>, vector<int>);
int calc_checker (vector<vector<int> > &, vector<int>, int, int);