51bd7d1443d629518ab0f9beed9b2c223a6342ae
angie
  Mon Jun 18 14:19:44 2018 -0700
gtexGeneBed.sql used PRIMARY KEY(geneId), which excluded nearly all mappings to chr*_alt.  Change it to (chrom,geneId) to allow mapping to multiple sequences. refs #18853

diff --git src/hg/lib/gtexGeneBed.c src/hg/lib/gtexGeneBed.c
index 1b3348b..00946fb 100644
--- src/hg/lib/gtexGeneBed.c
+++ src/hg/lib/gtexGeneBed.c
@@ -224,31 +224,33 @@
 char query[1024];
 
 sqlSafef(query, sizeof(query),
 "CREATE TABLE %s (\n"
 "   chrom varchar(255) not null,	# Reference sequence chromosome or scaffold\n"
 "   chromStart int unsigned not null,	# Start position in chromosome\n"
 "   chromEnd int unsigned not null,	# End position in chromosome\n"
 "   name varchar(255) not null,	# Gene symbol\n"
 "   score int unsigned not null,	# Score from 0-1000\n"
 "   strand char(1) not null,	# + or - for strand\n"
 "   geneId varchar(255) not null,	# Ensembl gene ID, referenced in GTEx data tables\n"
 "   geneType varchar(255) not null,	# GENCODE gene biotype\n"
 "   expCount int unsigned not null,	# Number of experiment values\n"
 "   expScores longblob not null,	# Comma separated list of experiment scores\n"
           "#Indices\n"
-"   PRIMARY KEY(geneId)\n"
+"   PRIMARY KEY(chrom,geneId)\n"
+"   INDEX(geneId)\n"
+"   INDEX(chrom,chromStart)\n"
 ")\n",
     table);
 sqlRemakeTable(conn, table, query);
 }
 
 char *gtexGeneClass(struct gtexGeneBed *geneBed)
 /* Return gene "class" (analogous to GENCODE transcriptClass) for a GENCODE gene biotype 
  * Mapped as follows:
 
  * coding: IG_C_gene, IG_D_gene, IG_J_gene, IG_V_gene, 
                TR_C_gene, TR_D_gene, TR_J_gene, TR_V_gene 
                polymorphic_pseudogene, protein_coding
 
  * pseudo: IG_C_pseudogene, IG_J_pseudogene, IG_V_pseudogene, TR_J_pseudogene, TR_V_pseudogene,
                pseudogene