Changed dealing with rGU array to record readI. Results matched 2.7.1a.
@@ -86,7 +86,9 @@ uint32 graphNumberOfConnectedComponents(uint32 N, vector<array<uint32,2>> V) {//
uint32 nConnComp=0;
for (uint32 ii=0; ii<N; ii++) {
- if (V[ii].size()==0) {//this node is not connected, no need to check. Save time beacuse this happens often
+ //if (V[ii].size()==0) {//this node is not connected, no need to check. Save time beacuse this happens often
+ //wrong: should be
+ if (nodeEdges[ii].size()==0) {//this node is not connected, no need to check. Save time beacuse this happens often
++nConnComp;
continue;
};
@@ -127,7 +129,9 @@ void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nU
for (uint32 iG=0; iG<nGenes; iG++) {//collapse UMIs for each gene
uint32 *rGU1=rGU+gReadS[iG];
- qsort(rGU1, (gReadS[iG+1]-gReadS[iG])/rGUarrayStride, rGUarrayStride*sizeof(uint32), funCompareNumbers<uint32>);
+// qsort(rGU1+1, (gReadS[iG+1]-gReadS[iG])/rGUarrayStride, rGUarrayStride*sizeof(uint32), funCompareNumbers<uint32>);
+ // +1 to point to UMIs
+ qsort(rGU1, (gReadS[iG+1]-gReadS[iG])/rGUarrayStride, rGUarrayStride*sizeof(uint32), funCompareTypeShift<uint32,1>);
//exact collapse
uint32 iR1=-umiArrayStride; //number of distinct UMIs for this gene
