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 {