Esempio n. 1
0
int appendListToRange(const std::string& FLAG_setList,
                      OrderedMap<std::string, RangeList>* geneRange) {
  std::vector<std::string> fd;
  int ret = stringNaturalTokenize(FLAG_setList, ',', &fd);
  std::string chr;
  unsigned int beg, end;
  for (size_t i = 0; i < fd.size(); ++i) {
    if (!parseRangeFormat(fd[i], &chr, &beg, &end)) {
      logger->error("Cannot parse range: %s", fd[i].c_str());
      continue;
    }

    (*geneRange)[fd[i]].addRange(chr.c_str(), beg, end);
  }
  return ret;
}
Esempio n. 2
0
/**
 * input range such as:
 * 1:100-200,3:200-300
 * X:150
 * MT
 */
void RangeList::addRangeList(const char* argRangeList) {
  if (!strlen(argRangeList)) return;

  std::string rangeList = argRangeList;
  std::vector<std::string> col;
  //col.AddTokens(arg, ',');
  stringTokenize(rangeList, ',', &col);
  for (size_t i = 0; i < col.size(); i++){
    std::string c;
    unsigned int b,e;
    if (!parseRangeFormat(col[i], &c, &b, &e)) {
      this->rangeCollection.addRange(c, b, e);
    } else {
      Rprintf("This range does not conform 1:100-200 format -- skip %s\n", col[i].c_str());
    }
  }
}