e70152e44cc66cc599ff6b699eb8adc07f3e656a
kent
  Sat May 24 21:09:34 2014 -0700
Adding Copyright NNNN Regents of the University of California to all files I believe with reasonable certainty were developed under UCSC employ or as part of Genome Browser copyright assignment.
diff --git src/hg/hgSpeciesRna/hgSpeciesRna.c src/hg/hgSpeciesRna/hgSpeciesRna.c
index fad6e1f..b777fdd 100644
--- src/hg/hgSpeciesRna/hgSpeciesRna.c
+++ src/hg/hgSpeciesRna/hgSpeciesRna.c
@@ -1,90 +1,93 @@
 /* hgSpeciesRna - Create fasta file with RNA from one species. */
+
+/* Copyright (C) 2013 The Regents of the University of California 
+ * See README in this or parent directory for licensing information. */
 #include "common.h"
 #include "linefile.h"
 #include "hash.h"
 #include "options.h"
 #include "fa.h"
 #include "jksql.h"
 #include "hdb.h"
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "hgSpeciesRna - Create fasta file with RNA from one species\n"
   "usage:\n"
   "   hgSpeciesRna database Genus species output.fa\n"
   "options:\n"
   "   -est         - If set will get ESTs rather than mRNAs\n"
   "   -filter=file - only read accessions listed in file\n"
   );
 }
 
 static struct optionSpec options[] = {
    {"est", OPTION_BOOLEAN},
    {"filter", OPTION_STRING},
    {NULL, 0},
 };
 
 void hgSpeciesRna(char *database, char *genus, char *species, char *outFile)
 /* hgSpeciesRna - Create fasta file with RNA from one species. */
 {
 char query[256];
 struct sqlConnection *conn;
 struct sqlResult *sr;
 char **row;
 int taxon;
 char *type = "mRNA";
 char *filter = NULL;
 FILE *f = mustOpen(outFile, "w");
 char *line;
 struct lineFile *lf = NULL;
 struct hash *filterHash = newHash(0);
 
 filter = optionVal("filter", NULL);
 if (filter != NULL)
     {
     lf = lineFileOpen(filter, TRUE);
     while (lineFileNext(lf, &line, NULL))
         {
         char *name = nextWord(&line);
         if (name == NULL)
            errAbort("bad line %d of %s", lf->lineIx, lf->fileName);
         hashStoreName(filterHash, name);
         }
     lineFileClose(&lf);
     }
 if (optionExists("est"))
     type = "EST";
 conn = hAllocConn(database);
 sqlSafef(query, sizeof(query),
 	"select id from organism where name = '%s %s'", genus, species);
 taxon = sqlQuickNum(conn, query);
 if (taxon <= 0)
     errAbort("Can't find taxon for %s %s", genus, species);
 sqlSafef(query, sizeof(query), 
     "select acc from gbCdnaInfo where organism=%d and type='%s'",
     taxon, type);
 sr = sqlGetResult(conn, query);
 while ((row = sqlNextRow(sr)) != NULL)
     {
     struct dnaSeq *seq = NULL;
     if ( filter == NULL || hashLookup(filterHash, row[0]) != NULL)
         {
         seq = hGenBankGetMrna(database, row[0], NULL);
         faWriteNext(f, seq->name, seq->dna, seq->size);
         dnaSeqFree(&seq);
         }
     }
 carefulClose(&f);
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 if (argc != 5)
     usage();
 hgSpeciesRna(argv[1], argv[2], argv[3], argv[4]);
 return 0;
 }