b2de9d458c5a1afbcb1eda2ee6d636e2fbc21c76
hiram
  Mon Feb 21 15:04:36 2022 -0800
correctly use specified index file for cram file types no redmine

diff --git src/lib/bamFile.c src/lib/bamFile.c
index 2ffdc9f..164b1cc 100644
--- src/lib/bamFile.c
+++ src/lib/bamFile.c
@@ -11,31 +11,36 @@
 #include "cram/sam_header.h"
 #include "cram/cram_structs.h"
 #include "htslib/cram.h"
 #include "udc.h"
 #include "psl.h"
 
 // If KNETFILE_HOOKS is used (as recommended!), then we can simply call bam_index_load
 // without worrying about the samtools lib creating local cache files in cgi-bin:
 
 static bam_index_t *bamOpenIndexGivenUrl(samfile_t *sam, char *fileOrUrl, char *baiFileOrUrl)
 /* If fileOrUrl has a valid accompanying .bai file, parse and return the index;
  * otherwise return NULL. baiFileOrUrl can be NULL. 
  * The difference to bamOpenIndex is that the URL/filename of the bai file can be specified. */
 {
 if (sam->format.format == cram) 
+    {
+    if (baiFileOrUrl)
+       return sam_index_load2(sam, fileOrUrl, baiFileOrUrl);
+    else
        return sam_index_load(sam, fileOrUrl);
+    }
 
 // assume that index is a .bai file 
 char indexName[4096];
 bam_index_t *ret = NULL;
 if (baiFileOrUrl==NULL)
     {
     // first try tacking .bai on the end of the bam file name
     safef(indexName, sizeof indexName, "%s.bai", fileOrUrl);
     if ((ret =  sam_index_load2(sam, fileOrUrl, indexName)) == NULL)
         {
         // since the open didn't work, try replacing suffix (if any) with .bai
         safef(indexName, sizeof indexName - sizeof(".bai"), "%s", fileOrUrl);
         char *lastDot = strrchr(indexName, '.');
         if (lastDot)
             {