std::vector<iArray*> getTestIndividuals(const char *pName){
  iArray *testList = typecast_stringarray_to_iArray(readarray(std::string(pName)));
  
  int numTrues=0;
  for(int i=0;i<testList->x;i++)
    if(testList->array[i])
      numTrues++;
  //printf("numTrues:%d\n",numTrues);
  //testList->print("testlist",NULL);
  std::vector<iArray*> returnVal;
  int pos1 = getNext(testList,0);
  while(pos1!=-1){
    int pos2 = getNext(testList,pos1+1);
    while(pos2!=-1){
      if(pos2!=-1){
	//printf("p1:%d\tp2:%d\n",pos1,pos2);
	iArray *pr = allocIntArray(2);
	pr->array[0]=pos1;pr->array[1]=pos2;
	returnVal.push_back(pr);
      }
      pos2 = getNext(testList,pos2+1);
    }
    pos1 = getNext(testList,pos1+1);
  }
  killArray(testList);
  return returnVal;

}
Esempio n. 2
0
int main(int argc, char *argv[]){
  toCargs *pars;
  if(argc<12){
    std::cout << "\t-> Please input -g GENOTYPEFILE -LD {0,1} -back BACK -threshold prune_val -filename OUTPUTDATA -snps KEEPLIST\n";
    return 0;
  }
  //get commandline args
  pars = readArgs(argc,argv);
  pars->doPrune = 1;
  
  //check if fileexists
  if(fexists(pars->data_filename)){
    printf("\t-> outputfile:%s exists, will exit\n",pars->data_filename.c_str());
    return 0;
  }
  if(fexists(pars->usedSnps_filename)){
    printf("\t-> outputfile:%s exists will exit\n",pars->usedSnps_filename.c_str());
    return 0;
  }

  //run prune
  prune object;
  print_functionPars(pars);
  fromCres *fromObject = object.main_run(pars);


  //write results
  write_iMatrix_to_file(pars->data_filename,fromObject->data);
  write_iArray_to_file(pars->usedSnps_filename,fromObject->usedSnps);

  killArray(fromObject->usedSnps);
  killMatrix(fromObject->data);
  killMatrix(pars->data);

  return 0;
}