447f4cc79938d078c168f9f7e65e7b1469681c7d
chmalee
  Fri May 17 14:40:18 2019 -0700
bamToPsl skips reads with the '*' cigar string, refs #23506

diff --git src/utils/bamToPsl/bamToPsl.c src/utils/bamToPsl/bamToPsl.c
index fa9c96e..3bf2acb 100644
--- src/utils/bamToPsl/bamToPsl.c
+++ src/utils/bamToPsl/bamToPsl.c
@@ -92,42 +92,45 @@
 if (outFasta != NULL)
     {
     faF = mustOpen(outFasta, "w");
     fastaSums = newHashExt(20, TRUE);  /* using stack local memory */
     }
 
 bam1_t one;
 ZeroVar(&one);	// This seems to be necessary!
 /* Write next sequence to fa file. */
 for (;;)
     {
     if (sam_read1(in, head, &one) < 0)
 	{
 	break;
 	}
+    if (one.core.n_cigar != 0)
+        {
     struct psl *psl = bamToPslUnscored(&one, head);
     if (psl != NULL)
        {
        if (chromAlias)
            {
            struct hashEl *hel = NULL;
            if ((hel = hashLookup(chromAlias, psl->tName)) != NULL)
               psl->tName = cloneString((char *)hel->val); /* memory leak */
            }
         pslTabOut(psl, f);  /* no free of this psl data, memory leak */
         pslFree(&psl);
     }
+        }
     ++processCount;
     if (dots)
        if (0 == processCount % dots)
           verbose(1,".");
     if (faF != NULL)
         {
 	char *dna = bamGetQuerySequence(&one, TRUE);
 	char *qName = bam1_qname(&one);
         if (allowDups)
 	    faWriteNext(faF, qName, dna, strlen(dna));
         else
             {
             struct hashEl *hel = NULL;
             if ((hel = hashLookup(fastaSums, qName)) == NULL) // first seen
                {