static void ProgressPrefix() { int ElapsedSecs = (int) (time(0) - g_StartTime); unsigned MemUseMB = (GetMemUseBytes() + 500000)/1000000; unsigned RAMMB = (unsigned) ((GetRAMSize() + 500000)/1000000); unsigned MemUsePct = (MemUseMB*100)/RAMMB; fprintf(stderr, "%6d secs %6d Mb (%3d%%) ", ElapsedSecs, MemUseMB, MemUsePct); Log("%6d secs %6d Mb (%3d%%) ", ElapsedSecs, MemUseMB, MemUsePct); }
/*** Alignment parameters can be specified in three ways: (1) All defaults. (2) By -length and -pctid only. (3) All parameters specified: -wordsize -seedlength -seeddiffs -length -pctid Optional parameters: -maxmem (Default = 80% of RAM, 0 = no maximum) -tube (Tube offset, Default = 32) ***/ void GetParams(int SeqLengthT, int SeqLengthQ, bool Self, FilterParams *ptrFP, DPParams *ptrDP) { const char *strLength = ValueOpt("length"); const char *strPctId = ValueOpt("pctid"); const char *strWordSize = ValueOpt("wordsize"); const char *strSeedLength = ValueOpt("seedlength"); const char *strSeedErrors = ValueOpt("seeddiffs"); const char *strMaxMem = ValueOpt("maxmem"); const char *strTubeOffset = ValueOpt("tubeoffset"); const double MaxMem = (0 == strMaxMem) ? GetRAMSize()*RAM_FRACT : atof(strMaxMem); const int TubeOffset = (0 == strTubeOffset) ? -1 : atoi(strTubeOffset); // All parameters specified if (0 != strWordSize || 0 != strSeedLength || 0 != strSeedErrors) { if (0 == strWordSize || 0 == strSeedLength || 0 == strSeedErrors || 0 == strLength || 0 == strPctId) Quit("Missing one or more of: -wordsize, -seedlength, -seeddiffs, -length, -pctid"); ptrFP->SeedDiffs = atoi(strSeedErrors); ptrFP->SeedLength = atoi(strSeedLength); ptrFP->WordSize = atoi(strWordSize); ptrFP->TubeOffset = TubeOffset > 0 ? TubeOffset : ptrFP->SeedDiffs + TUBE_OFFSET_DELTA; ptrDP->MinHitLength = atoi(strLength); ptrDP->MinId = atoi(strPctId)/100.0; } // -length and -pctid else if (0 != strLength || 0 != strPctId) { if (0 == strLength || 0 == strPctId) Quit("Missing option -length or -pctid"); int Length = atoi(strLength); double MinId = atof(strPctId)/100.0; DefParams(Length, MinId, SeqLengthT, SeqLengthQ, Self, MaxMem, ptrFP, ptrDP); } // All defaults else { DefParams(DEFAULT_LENGTH, DEFAULT_MIN_ID, SeqLengthT, SeqLengthQ, Self, MaxMem, ptrFP, ptrDP); } }
double GetRAMSizeMB() { return GetRAMSize()/1e6; }