Beispiel #1
0
static void blackListFilter(struct cDnaQuery *cdna)
/* filter for black list */
{
struct cDnaAlign *aln;
for (aln = cdna->alns; aln != NULL; aln = aln->next)
    {
    if (!aln->drop && genbankBlackListFail(aln->psl->qName, gBlackListRanges))
        cDnaAlignDrop(aln, FALSE, &cdna->stats->blackListCnts, "black listed");
    }
}
Beispiel #2
0
static boolean keepGbEntry(boolean isEst)
/* should the current entry in the kvt be kept? */
{
char *acc = gbAccessionField->val->string;
char *cat = kvtGet(kvt, "cat")->val;
char *org = kvtGet(kvt, "org")->val;

if (genbankBlackListFail(acc, blackListRanges))
    return FALSE;
else if (gbOrg && (differentString(org, gbOrg)))
    return FALSE;
else if (gbGuessSrcDb(acc) == GB_REFSEQ)
    {
    return (startsWith("NM_", acc) || startsWith("NR_", acc)
            || ((startsWith("XM_", acc) && inclXMs)));
    }
else if ((sameString(cat, "GSS") || 
         sameString(cat, "HTG") || 
        sameString(cat, "STS") || 
        sameString(cat, "CON")) && !(gbType & GB_DNA))
    return FALSE;   // division to ignore
else
    {
    if (sameString(cat, "EST")) {
        return (gbType & GB_EST) != 0;
        }
    else if (gbType & GB_MRNA)
        {
        // not an EST, keep any type of RNA
        return containsStringNoCase(kvtGet(kvt, "mol")->val, "RNA") != NULL;
        }
    else if (gbType & GB_DNA)
        {
        // keep any type of DNA if DNA filter set
        return containsStringNoCase(kvtGet(kvt, "mol")->val, "DNA") != NULL;
        }
    else
        return FALSE;
    }
}