1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
static char const rcsid[] = "$Id: taxblast_main.c,v";
/* $Id: taxblast_main.c,v
* ===========================================================================
*
* PUBLIC DOMAIN NOTICE
* National Center for Biotechnology Information
*
* This software/database is a "United States Government Work" under the
* terms of the United States Copyright Act. It was written as part of
* the author's official duties as a United States Government employee and
* thus cannot be copyrighted. This software/database is freely available
* to the public for use. The National Library of Medicine and the U.S.
* Government have not placed any restriction on its use or reproduction.
*
* Although all reasonable efforts have been taken to ensure the accuracy
* and reliability of the software and data, the NLM and the U.S.
* Government do not and cannot warrant the performance or results that
* may be obtained by using this software or data. The NLM and the U.S.
* Government disclaim all warranties, express or implied, including
* warranties of performance, merchantability or fitness for any particular
* purpose.
*
* Please cite the author in any work or product based on this material.
*
* ===========================================================================
*
* File Name: $RCSfile: taxblast_main.c,v $
*
* Authors: Tom Madden
*
* ==========================================================================
*/
#include <ncbi.h>
#include <sequtil.h>
#include <treemgr.h>
#include <taxext.h>
#include <txclient.h>
#include <objseq.h>
#include <objgen.h>
#include <taxblast.h>
#define NUMARG (sizeof(myargs)/sizeof(myargs[0]))
static Args myargs [] = {
{ "Input ASN.1 File (SeqAnnot)", /* 0 */
NULL, NULL, NULL, FALSE, 'i', ARG_FILE_IN, 0.0, 0, NULL },
{ "Sequence is DNA", /* 1 */
"F", NULL, NULL, TRUE, 'p', ARG_BOOLEAN, 0.0, 0, NULL },
{ "Database used to get SeqAnnot ASN.1", /* 2 */
"nr", NULL, NULL, TRUE, 'd', ARG_STRING, 0.0, 0, NULL },
{ "Output file name", /* 3 */
"stdout", NULL, NULL, TRUE, 'o', ARG_FILE_OUT, 0.0, 0, NULL }
};
Int2 Main (void)
{
AsnIoPtr aip;
SeqAnnotPtr sap;
Boolean is_na = FALSE;
FILE *outfile;
Char ofile[128];
if (!GetArgs("txblast", NUMARG, myargs)) {
return 1;
}
if (myargs[1].intvalue)
is_na = TRUE;
if((aip = AsnIoOpen(myargs[0].strvalue, "r")) == NULL) {
ErrPostEx(SEV_FATAL, 1,0, "AsnIoOpen failure\n");
return 1;
}
if((sap = SeqAnnotAsnRead (aip, NULL)) == NULL) {
ErrPostEx(SEV_FATAL, 1,0,"SeqAlignAsnRead failure\n");
return 1;
}
if(StringCmp(myargs[3].strvalue, "stdout")) {
sprintf (ofile, "%s.html", myargs[0].strvalue);
outfile = FileOpen(ofile, "w");
} else {
outfile = FileOpen(myargs[3].strvalue, "w");
}
TXBHtmlReport((SeqAlignPtr)sap->data, outfile, is_na, is_na,
myargs[2].strvalue, NULL, NULL, FALSE);
FileClose(outfile);
AsnIoClose(aip);
SeqAnnotFree(sap);
return (0);
}
|