71ed0396fa7e2e1f9c0a5254beaace62f95ede06 max Thu Oct 30 08:24:47 2025 -0700 fixing INTNAN bug, woodchuck-liver/healthy-liver-pbmc/, marc diff --git src/cbPyLib/cellbrowser/cellbrowser.py src/cbPyLib/cellbrowser/cellbrowser.py index 13a9b34..71066e9 100755 --- src/cbPyLib/cellbrowser/cellbrowser.py +++ src/cbPyLib/cellbrowser/cellbrowser.py @@ -2050,32 +2050,30 @@ def exprEncode(geneDesc, exprArr, matType): """ convert an array of numbers of type matType (int or float) to a compressed string of float32s The format of a record is: - 2 bytes: length of descStr, e.g. gene identifier or else - len(descStr) bytes: the descriptive string descStr - array of n 4-byte floats (n = number of cells) or 4-byte unsigned ints """ geneDesc = str(geneDesc) # make sure no unicode geneIdLen = struct.pack("<H", len(geneDesc)) nanValue = None if matType=="float": nanValue = FLOATNAN - else: - nanValue = INTNAN # on cortex-dev, numpy was around 30% faster. Not a huge difference. if numpyLoaded: if matType=="float": exprArr = exprArr.astype("float32") exprArr[np.isnan(exprArr)] = nanValue elif matType=="int": has_nan = np.any(np.isnan(exprArr)) if has_nan: assert(False) # integer matrices with Nans are not supported right now. Email the programmer. exprArr = exprArr.astype("uint32") else: assert(False) # internal error minVal = np.amin(exprArr)