Exemple #1
0
static void pslCDnaFilter(char *inPsl, char *outPsl)
/* filter cDNA alignments in psl format */
{
struct outFiles outFiles;
ZeroVar(&outFiles);
outFiles.passFh = mustOpen(outPsl, "w");
if (gDropped != NULL)
    outFiles.dropFh = mustOpen(gDropped, "w");
if (gWeirdOverlappped != NULL)
    outFiles.weirdOverFh = mustOpen(gWeirdOverlappped, "w");
if (gHapRefMapped != NULL)
    outFiles.hapRefMappedFh = mustOpen(gHapRefMapped, "w");
if (gHapRefCDnaAlns != NULL)
    outFiles.hapRefCDnaAlnsFh = mustOpen(gHapRefCDnaAlns, "w");
if (gHapLociAlns != NULL)
    outFiles.hapLociAlnsFh = mustOpen(gHapLociAlns, "w");
struct hapRegions *hapRegions = (gHapRegions == NULL) ? NULL
    : hapRegionsNew(gHapRegions, outFiles.hapRefMappedFh, outFiles.hapRefCDnaAlnsFh);
struct cDnaReader *reader = cDnaReaderNew(inPsl, gCDnaOpts, gPolyASizes, hapRegions);

while (cDnaReaderNext(reader))
    filterQuery(reader->cdna, hapRegions, &outFiles);

carefulClose(&outFiles.hapRefMappedFh);
carefulClose(&outFiles.hapRefCDnaAlnsFh);
carefulClose(&outFiles.hapLociAlnsFh);
carefulClose(&outFiles.dropFh);
carefulClose(&outFiles.weirdOverFh);
carefulClose(&outFiles.passFh);
cDnaStatsPrint(&reader->stats, 1);
hapRegionsFree(&hapRegions);
cDnaReaderFree(&reader);
}
void DBWorker::getHistory(const QString &filter)
{
    // Skip empty titles always
    QString filterQuery("WHERE (NULLIF(title, '') IS NOT NULL AND url NOT LIKE 'about:%' AND %1) ");
    QString order;

    if (!filter.isEmpty()) {
        filterQuery = filterQuery.arg(QString("(url LIKE :search OR title LIKE :search)"));
        order = QString("visited_count DESC, date ASC, LENGTH(url), title");
    } else {
        filterQuery = filterQuery.arg(1);
        order = QString("date DESC");
    }

    QString queryString = QString("SELECT DISTINCT id, url, title "
                                  "FROM browser_history "
                                  "%1"
                                  "ORDER BY %2 LIMIT 20;").arg(filterQuery).arg(order);
    QSqlQuery query = prepare(queryString);
    if (!filter.isEmpty()) {
        query.bindValue(QString(":search"), QString("%%1%").arg(filter));
    }

    if (!execute(query)) {
        return;
    }

    QList<Link> linkList;
    while (query.next()) {
        Link link(query.value(0).toInt(),
                  query.value(1).toString(),
                  "",
                  query.value(2).toString());
#if DEBUG_LOGS
        qDebug() << &link;
#endif
        linkList.append(link);
    }

    emit historyAvailable(linkList);
}