std::string QtUtils::GetOpenFileName( const std::string &filter, const std::string &caption, const std::string &dir) { QString qcaption(caption.c_str()); QString qdir(dir.c_str()); QString qfilter(filter.c_str()); QWidget *parent = 0; QString filename = QFileDialog::getOpenFileName(parent, qcaption, qdir, qfilter); return filename.toStdString(); }
QStringList QtUtils::GetOpenRexFilenames(const std::string &dir) { QString qfilter( "Images (*.tga; *.bmp; *.jpg; *.jpeg; *.png);;" "Sounds (*.ogg; *.wav);;" "Ogre 3D Models (*.mesh);;" "Ogre Particle Scripts (*.particle);;" "Ogre Skeleton (*.skeleton);;" "Ogre Material (*.material);;" "Flash Animation (*.swf);;" "All Files (*.*)"); QString qcaption("Open"); QString qdir(dir.c_str()); QWidget *parent = 0; return QFileDialog::getOpenFileNames(parent, qcaption, qdir, qfilter); }
StringList QtUtils::GetOpenFileNames( const std::string &filter, const std::string &caption, const std::string &dir) { QString qcaption(caption.c_str()); QString qdir(dir.c_str()); QString qfilter(filter.c_str()); QWidget *parent = 0; StringList filelist; QStringList filenames = QFileDialog::getOpenFileNames(parent, qcaption, qdir, qfilter); // Convert QStringList to std::list<std::string> list. for(QStringList::iterator q_it = filenames.begin(); q_it != filenames.end(); ++q_it) filelist.push_back(q_it->toStdString()); return filelist; }
StringList QtUtils::GetOpenRexFileNames(const std::string &dir) { QString qfilter( "Images (*.tga; *.bmp; *.jpg; *.jpeg; *.png);;" "Sounds (*.ogg; *.wav);;" "Ogre 3D Models (*.mesh);;" "Ogre Particle Scripts (*.particle);;" "Ogre Skeleton (*.skeleton);;" "Ogre Material (*.material);;" "Flash Animation (*.swf);;" "All Files (*.*)"); QString qcaption("Open"); QString qdir(dir.c_str()); QWidget *parent = 0; StringList filelist; QStringList filenames = QFileDialog::getOpenFileNames(parent, qcaption, qdir, qfilter); // Convert QStringList to std::list<std::string> list. for(QStringList::iterator q_it = filenames.begin(); q_it != filenames.end(); ++q_it) filelist.push_back(q_it->toStdString()); return filelist; }
int make_ld(unsigned int tid, unsigned int pos, int n, const bam_pileup1_t *pl, void *data) { int i; int fq; unsigned long long sample_cov; unsigned long long *cb = NULL; ldData *t = NULL; // get control data structure t = (ldData*)data; // only consider sites located in designated region if ((t->beg <= (int)pos) && (t->end > (int)pos)) { // allocate memory pileup data try { cb = new unsigned long long [t->sm->n](); } catch (std::bad_alloc& ba) { std::cerr << "bad_alloc caught: " << ba.what() << std::endl; } // call bases t->call_base(n, pl, cb); // resolve heterozygous sites if (!(t->flag & BAM_HETEROZYGOTE)) clean_heterozygotes(t->sm->n, cb, (int)t->ref_base[pos], t->min_snpQ); // determine if site is segregating fq = segbase(t->sm->n, cb, t->ref_base[pos], t->min_snpQ); // determine how many samples pass the quality filters sample_cov = qfilter(t->sm->n, cb, t->min_rmsQ, t->min_depth, t->max_depth); for (i=0; i < t->sm->npops; i++) t->pop_sample_mask[i] = sample_cov & t->pop_mask[i]; if (popcount64(sample_cov) == t->sm->n) { // calculate the site type t->types[t->num_sites] = t->cal_site_type(cb); if (fq > 0) { t->hap.pos[t->segsites] = pos; t->hap.ref[t->segsites] = bam_nt16_table[(int)t->ref_base[pos]]; for (i=0; i < t->sm->n; i++) { t->hap.rms[i][t->segsites] = (cb[i]>>(CHAR_BIT*6))&0xffff; t->hap.snpq[i][t->segsites] = (cb[i]>>(CHAR_BIT*4))&0xffff; t->hap.num_reads[i][t->segsites] = (cb[i]>>(CHAR_BIT*2))&0xffff; t->hap.base[i][t->segsites] = bam_nt16_table[(int)iupac[(cb[i]>>CHAR_BIT)&0xff]]; if (cb[i]&0x2ULL) t->hap.seq[i][t->segsites/64] |= 0x1ULL << t->segsites%64; } t->hap.idx[t->segsites] = t->num_sites; t->segsites++; } t->num_sites++; }