src/hg/hgc/retroClick.c 1.14

1.14 2010/04/27 23:07:56 baertsch
fix bug with non human retros, reference ucscRetroSeq instead of gbCdnaInfo for sequence data, to handle different versions
Index: src/hg/hgc/retroClick.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/retroClick.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -b -B -U 4 -r1.13 -r1.14
--- src/hg/hgc/retroClick.c	9 Sep 2009 17:02:02 -0000	1.13
+++ src/hg/hgc/retroClick.c	27 Apr 2010 23:07:56 -0000	1.14
@@ -89,9 +89,9 @@
 /* get source gene info and version from gbCdnaInfo and save in mi */
 {
 char query[512], **row;
 struct sqlResult *sr;
-char *defDb = hDefaultDb();
+char *defDb = database; 
 
 /* if id has been modified for multi-level ancestor mappings:
  *    NM_012345.1-1.1 -> db:NM_012345a.1.1
  * then hack it back to the original accession.  However, don't get version,
@@ -147,16 +147,18 @@
 else if (startsWith("retro", tbl))
     strcpy(mi->geneSet, "Mrna");
 else
     strcpy(mi->geneSet, "Retro");
-if (suffix != NULL)
+if (suffix != NULL && strlen(suffix) > 0)
     mi->pg = sqlQueryObjs(conn, (sqlLoadFunc)retroMrnaInfoLoad, sqlQueryMust|sqlQuerySingle,
                       "select * from %s%sInfo%s where name='%s'", mi->tblPre, mi->geneSet, suffix,
                        mappedId);
 else
+    {
     mi->pg = sqlQueryObjs(conn, (sqlLoadFunc)retroMrnaInfoLoad, sqlQueryMust|sqlQuerySingle,
                       "select * from %s%sInfo where name='%s'", mi->tblPre, mi->geneSet,
                        mappedId);
+    }
 parseSrcId(mi);
 getGenbankInfo(conn, mi);
 return mi;
 }
@@ -796,21 +798,22 @@
 psl = loadAlign(conn, mi, start);
 if (startsWith("August",mi->geneSet))
     safef(acc, sizeof(acc), "aug-%s.T1",mi->seqId);
 else
-    safef(acc, sizeof(acc), "%s.%d",mi->seqId, mi->gbCurVer);
+    safef(acc, sizeof(acc), "%s",mi->seqId);
 // value is: extFile seqTbl extFileTbl
 if ((nwords != (int)ArraySize(words)) || !sameString(words[0], "extFile"))
     errAbort("invalid %s track setting: %s ", BASE_COLOR_USE_SEQUENCE, spec);
 char *seqTable = words[1];
 char *extTable = words[2];
 rnaSeq = hDnaSeqGet(database, acc, seqTable, extTable);
 if (rnaSeq == NULL)
     {
+    safef(acc, sizeof(acc), "%s.%d",mi->seqId, mi->gbCurVer);
     rnaSeq = hDnaSeqGet(database, acc, "seq", "extFile");
     if (rnaSeq == NULL)
-        errAbort("can't get mRNA sequence from %s prefix %s for %s from %s", 
-            database, mi->geneSet, acc, track);
+        errAbort("can't get mRNA sequence from %s prefix %s for %s from %s mappedId %s", 
+            database, mi->geneSet, acc, track, mappedId);
     }
 sqlDisconnect(&defDbConn);
 showSomeAlignment(psl, rnaSeq, gftDna, 0, rnaSeq->size, NULL, cds.start, cds.end);
 pslFree(&psl);