ChunkGraph::ChunkGraph(set<uint32> *restrict) { _maxFragment = 0; _restrict = restrict; for (set<uint32>::iterator it=_restrict->begin(); it != _restrict->end(); it++) _idMap[*it] = _maxFragment++; _pathLen = new uint32 [_maxFragment * 2 + 2]; _chunkLength = new ChunkLength [_maxFragment]; _chunkLengthIter = 0; memset(_pathLen, 0, sizeof(uint32) * (_maxFragment * 2 + 2)); memset(_chunkLength, 0, sizeof(ChunkLength) * (_maxFragment)); for (set<uint32>::iterator it=_restrict->begin(); it != _restrict->end(); it++) { uint32 fid = *it; // Actual fragment ID uint32 fit = _idMap[fid]; // Local array index if (OG->isContained(fid)) continue; _chunkLength[fit].fragId = fid; _chunkLength[fit].cnt = (countFullWidth(FragmentEnd(fid, false)) + countFullWidth(FragmentEnd(fid, true))); } delete [] _pathLen; _pathLen = NULL; std::sort(_chunkLength, _chunkLength + _maxFragment); }
ChunkGraph::ChunkGraph(const char *output_prefix) { setLogFile(output_prefix, "ChunkGraph"); _maxFragment = FI->numFragments(); _pathLen = new uint32 [_maxFragment * 2 + 2]; _chunkLength = new ChunkLength [_maxFragment]; _chunkLengthIter = 0; memset(_pathLen, 0, sizeof(uint32) * (_maxFragment * 2 + 2)); memset(_chunkLength, 0, sizeof(ChunkLength) * (_maxFragment)); for (uint32 fid=1; fid <= _maxFragment; fid++) { if (OG->isContained(fid)) continue; _chunkLength[fid-1].fragId = fid; _chunkLength[fid-1].cnt = (countFullWidth(FragmentEnd(fid, false)) + countFullWidth(FragmentEnd(fid, true))); } delete [] _pathLen; _pathLen = NULL; std::sort(_chunkLength, _chunkLength + _maxFragment); }
ChunkGraph::ChunkGraph(const char *output_prefix) { setLogFile(output_prefix, "ChunkGraph"); _maxFragment = FI->numFragments(); _restrict = NULL; _pathLen = new uint32 [_maxFragment * 2 + 2]; _chunkLength = new ChunkLength [_maxFragment]; _chunkLengthIter = 0; memset(_pathLen, 0, sizeof(uint32) * (_maxFragment * 2 + 2)); memset(_chunkLength, 0, sizeof(ChunkLength) * (_maxFragment)); for (uint32 fid=1; fid <= _maxFragment; fid++) { if (OG->isContained(fid)) continue; if (OG->isSuspicious(fid)) // Fragment is suspicious. We won't seed a BOG from it, and populateUnitig will make only a // singleton. continue; _chunkLength[fid-1].fragId = fid; _chunkLength[fid-1].cnt = (countFullWidth(FragmentEnd(fid, false)) + countFullWidth(FragmentEnd(fid, true))); } delete [] _pathLen; _pathLen = NULL; std::sort(_chunkLength, _chunkLength + _maxFragment); }
ChunkGraph::ChunkGraph(const char *output_prefix) { setLogFile(output_prefix, "ChunkGraph"); _maxFragment = FI->numFragments(); _restrict = NULL; _pathLen = new uint32 [_maxFragment * 2 + 2]; _chunkLength = new ChunkLength [_maxFragment]; _chunkLengthIter = 0; memset(_pathLen, 0, sizeof(uint32) * (_maxFragment * 2 + 2)); memset(_chunkLength, 0, sizeof(ChunkLength) * (_maxFragment)); for (uint32 fid=1; fid <= _maxFragment; fid++) { if (OG->isContained(fid)) { if (logFileFlagSet(LOG_CHUNK_GRAPH)) writeLog("read %u contained\n", fid); continue; } if (OG->isSuspicious(fid)) { if (logFileFlagSet(LOG_CHUNK_GRAPH)) writeLog("read %u suspicious\n", fid); continue; } uint32 l5 = countFullWidth(FragmentEnd(fid, false)); uint32 l3 = countFullWidth(FragmentEnd(fid, true)); _chunkLength[fid-1].fragId = fid; _chunkLength[fid-1].cnt = l5 + l3; } delete [] _pathLen; _pathLen = NULL; std::sort(_chunkLength, _chunkLength + _maxFragment); }