int main(int argc, char** argv){ if(strcmp(ZLIB_VERSION,zlib_version)){ fprintf(stderr,"\t-> Problem with difference in zlib version used for compiling and linking\n"); fprintf(stderr,"\t-> ZLIB_VERSION: %s zlibversion: %s \n",ZLIB_VERSION,zlib_version); //return 0; } fprintf(stderr,"\t-> angsd version: %s (htslib: %s) build(%s %s)\n",ANGSD_VERSION,hts_version(),__DATE__,__TIME__); //no arguments supplied -> print info if(argc==1||(argc==2&&(strcasecmp(argv[1],"--version")==0||strcasecmp(argv[1],"--help")==0))){//if haven't been supplied with arguments, load default,print, and exit printProgInfo(stderr); return 0; } if(!strcasecmp("sites",argv[1])){ //from prep_sites.* used for indexing -sites files int main_sites(int argc,char **argv); main_sites(--argc,++argv); return 0; } //print time clock_t t=clock(); time_t t2=time(NULL); //intialize our signal handler for ctrl+c catchkill(); argStruct *args=NULL; if(argc==2){ fprintf(stderr,"\t-> Analysis helpbox/synopsis information:\n"); multiReader mr(argc,argv); args = mr.getargs(); init(args);//program dies here after printing info, if a match is found fprintf(stderr,"\nUnknown argument supplied: \'%s\'\n\n",argv[1]); printProgInfo(stderr); exit(0);//important otherwise the abc classes will try to clean up, which doesnt make sense in this context // return 0; } multiReader *mr= new multiReader(argc,argv); args = mr->getargs(); init(args); // fprintf(stderr,"adsfadsf\n");exit(0); parseArgStruct(args); //Below is main loop which will run until nomore data assert(args->hd); assert(args->revMap); int lastRefId=-1; while(SIG_COND) { funkyPars *tmp = mr->fetch(); //YES MISTER FETCH if(tmp==NULL) break; if(lastRefId==-1||lastRefId!=tmp->refId){ lastRefId=tmp->refId; void changeChr(int refId);//<-ugly is located in shared.cpp, to force a change of chr, when notusing bamfiles changeChr(lastRefId); } selector(tmp); } //now we have no more data lets wait and cleanup fprintf(stderr,"\t-> Done reading data waiting for calculations to finish\n"); destroy_shared(); //printout the filenames generated fprintf(stderr,"\t-> Output filenames:\n"); for(int i=0;i<(int)dumpedFiles.size();i++){ fprintf(stderr,"\t\t->\"%s\"\n",dumpedFiles[i]); fprintf(args->argumentFile,"\t\t->\"%s\"\n",dumpedFiles[i]); free(dumpedFiles[i]); } // fprintf(stderr,"\n"); fprintf(args->argumentFile,"\n"); // fprintf(stderr,"\t"); printTime(stderr); //print out nice messages fprintf(stderr,"\t-> Arguments and parameters for all analysis are located in .arg file\n"); fprintf(stderr, "\t[ALL done] cpu-time used = %.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC); fprintf(stderr, "\t[ALL done] walltime used = %.2f sec\n", (float)(time(NULL) - t2)); fprintf(args->argumentFile, "\t[ALL done] cpu-time used = %.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC); fprintf(args->argumentFile, "\t[ALL done] walltime used = %.2f sec\n", (float)(time(NULL) - t2)); //make better below extern int *bamSortedIds; delete [] bamSortedIds; delete mr; return 0; }
int main(int argc,char**argv){ main_sites(--argc,++argv); }