void serverStart(char *files[], int fileCount) /* Load DNA. Build up indexes, set up listing port, and fall into * accept loop. */ { struct blatzIndex *indexList = NULL; int i; int acceptor; struct bzp *bzp = bzpDefault(); /* Daemonize self. */ bzpSetOptions(bzp); /* Load up all sequences. */ for (i=0; i<fileCount; ++i) { struct dnaLoad *dl = dnaLoadOpen(files[i]); struct blatzIndex *oneList = blatzIndexDl(dl, bzp->weight, bzp->unmask); indexList = slCat(indexList, oneList); dnaLoadClose(&dl); } bzpTime("Loaded and indexed %d sequences", slCount(indexList)); verbose(1, "Ready for queries\n"); /* Turn self into proper daemon. */ logDaemonize("blatzServer"); acceptor = netAcceptingSocket(port, 100); serviceLoop(acceptor, bzp, indexList); }
void usage() /* Explain usage and exit. */ { struct bzp *bzp = bzpDefault(); printf("blatzServer version %d - Set up in-memory server for\n", bzpVersion()); printf("cross-species DNA alignments\n"); printf("usage:\n"); printf(" blatzServer start file(s)\n"); printf("Starts up server. Files are either fasta files, nib files, 2bit files\n"); printf("or text files containing the names of the above files one per line.\n"); printf("It's important that the sequence be repeat masked with repeats in\n"); printf("lower case.\n"); printf("Options: (defaults are shown for numerical parameters)\n"); bzpServerOptionsHelp(bzp); bzpClientOptionsHelp(bzp); printf(" -debug Writes diagnostic output to console and no daemon fork\n"); printf(" -subnet=255.255.255.255 Restrict access to subnet\n"); printf(" -port=%d Use specified TCP/IP port\n", bzpDefaultPort); printf(" -host=%s Query specified host\n", host); printf(" -cpu=%d Use specified number of CPUs (processes)\n", cpuCount); printf("Other uses:\n"); printf(" blatzServer stop\n"); printf(" this terminates server\n"); printf(" blatzServer status\n"); printf(" this prints status info including version\n"); noWarnAbort(); }
static void usage() /* Explain usage and exit. */ { struct bzp *bzp = bzpDefault(); printf("blatzClient version %d - Ask server to do\n", bzpVersion()); printf("cross-species DNA alignments and save results.\n"); printf("usage:\n"); printf(" blatzClient queryFile outputFile.\n"); printf("The queryFile can be in fasta, nib, or 2bit format or a \n"); printf("text file containing the names of the above files one per line.\n"); printf("It's important that the sequence be repeat masked with repeats in\n"); printf("lower case.\n"); printf("Options: (defaults are shown for numerical parameters)\n"); bzpClientOptionsHelp(bzp); printf(" -port=%d Use specified TCP/IP port\n", bzpDefaultPort); printf(" -host=%s Query specified host\n", host); noWarnAbort(); }
int main(int argc, char *argv[]) /* Process command line. */ { struct bzp *bzp = bzpDefault(); /* Do initialization. */ bzpTime(NULL); dnaUtilOpen(); optionInit(&argc, argv, options); if (argc != 4) usage(bzp); /* Fill in parameters from command line options. */ bzpSetOptions(bzp); loadAndAlignAll(bzp, argv[1], argv[2], argv[3]); /* If you were a turtle you'd be home right now. */ return 0; }