Пример #1
0
void doMiddle(struct cart *theCart)
/* Write header and body of html page. */
{
char *userSeq;
char *db, *organism;
boolean clearUserSeq = cgiBoolean("Clear");

cart = theCart;
dnaUtilOpen();

orgChange = sameOk(cgiOptionalString("changeInfo"),"orgChange");
if (orgChange)
    {
    cgiVarSet("db", hDefaultDbForGenome(cgiOptionalString("org"))); 
    }
getDbAndGenome(cart, &db, &organism, oldVars);
char *oldDb = cloneString(db);
findClosestServer(&db, &organism);

/* Get sequence - from userSeq variable, or if 
 * that is empty from a file. */
if (clearUserSeq)
    {
    cartSetString(cart, "userSeq", "");
    cartSetString(cart, "seqFile", "");
    }
userSeq = cartUsualString(cart, "userSeq", "");
if (isEmpty(userSeq))
    {
    userSeq = cartOptionalString(cart, "seqFile");
    }
if (isEmpty(userSeq) || orgChange)
    {
    cartWebStart(theCart, db, "%s BLAT Search", trackHubSkipHubName(organism));
    if (differentString(oldDb, db))
	printf("<HR><P><EM><B>Note:</B> BLAT search is not available for %s %s; "
	       "defaulting to %s %s</EM></P><HR>\n",
	       hGenome(oldDb), hFreezeDate(oldDb), organism, hFreezeDate(db));
    askForSeq(organism,db);
    cartWebEnd();
    }
else 
    {
    blatSeq(skipLeadingSpaces(userSeq), organism);
    }
}
Пример #2
0
void addAssemblyToSupportedList(struct dyString* dy, char* assembly)
{
char* organism = hOrganism(assembly);
char* freezeDate = hFreezeDate(assembly);
dyStringPrintf(dy, "%s %s", organism, freezeDate);
freeMem(organism);
freeMem(freezeDate);
}
Пример #3
0
void redoDbAndOrgIfNoServer(struct pcrServer *serverList, char **pDb, char **pOrg)
/* Check that database and organism are on our serverList.  If not, then update
 * them to first thing that is. */
{
    struct pcrServer *server, *orgServer = NULL;
    char *organism = *pOrg;
    char *db = *pDb;
    boolean gotDb = FALSE;

    /*  Find first server for our organism */
    for (server = serverList; server != NULL; server = server->next)
    {
        if (sameString(server->genome, organism))
        {
            orgServer = server;
            break;
        }
    }

    /* If no server, change our organism to the one of the first server in list. */
    if (orgServer == NULL)
    {
        orgServer = serverList;
        *pOrg = organism = orgServer->genome;
    }

    /* Search for our database. */
    for (server = serverList; server != NULL; server = server->next)
    {
        if (sameString(db, server->db))
        {
            gotDb = TRUE;
            break;
        }
    }

    /* If no server for db, change db. */
    if (!gotDb)
    {
        if (differentString(db, orgServer->db))
            printf("<HR><P><EM><B>Note:</B> In-Silico PCR is not available for %s %s; "
                   "defaulting to %s %s</EM></P><HR>\n",
                   hGenome(db), hFreezeDate(db), organism, hFreezeDate(orgServer->db));
        *pDb = db = orgServer->db;
    }
}
Пример #4
0
static void getAssemblyInfo(struct cartJson *cj, struct hash *paramHash)
/* Return useful things from dbDb (or track hub) and assembly description html (possibly NULL).
 * If db param is NULL, use db from cart. */
{
char *db = cartJsonOptionalParam(paramHash, "db");
if (db == NULL)
    db = cartString(cj->cart, "db");
jsonWriteString(cj->jw, "db", db);
jsonWriteString(cj->jw, "commonName", hGenome(db));
jsonWriteString(cj->jw, "scientificName", hScientificName(db));
jsonWriteString(cj->jw, "dbLabel", hFreezeDate(db));
//#*** TODO: move jsonStringEscape inside jsonWriteString
jsonWriteString(cj->jw, "assemblyDescription", jsonStringEscape(hAssemblyDescription(db)));
}