          bool alignedAsPair = false) const = 0; 
 diff -rupN -x Xcode -x .git tmp/snap/SNAPLib/IntersectingPairedEndAligner.cpp snap/SNAPLib/IntersectingPairedEndAligner.cpp
 --- tmp/snap/SNAPLib/IntersectingPairedEndAligner.cpp	2015-07-28 15:15:02.000000000 -0400
-+++ snap/SNAPLib/IntersectingPairedEndAligner.cpp	2015-08-04 17:31:35.000000000 -0400
-@@ -855,6 +855,11 @@ doneScoring:
++++ snap/SNAPLib/IntersectingPairedEndAligner.cpp	2015-08-05 10:58:48.000000000 -0400
+@@ -852,9 +852,23 @@ doneScoring:
+ #endif  // DEBUG
+         }
+     } else {
++		float hits_per_lookup_pair = (float)(totalHashTableHits[0][FORWARD] + totalHashTableHits[0][RC] +
++											 totalHashTableHits[1][FORWARD] + totalHashTableHits[1][RC]) /
++											(countOfHashTableLookups[0] + countOfHashTableLookups[1]);
          for (unsigned whichRead = 0; whichRead < NUM_READS_PER_PAIR; whichRead++) {
              result->location[whichRead] = bestResultGenomeLocation[whichRead];
              result->direction[whichRead] = bestResultDirection[whichRead];
++			float hits_per_lookup = (float)(totalHashTableHits[whichRead][FORWARD] + totalHashTableHits[whichRead][RC]) / countOfHashTableLookups[whichRead];
 +			result->features[whichRead].init(bestResultScore[whichRead],
 +											 0xffff,
 +											 probabilityOfAllPairs,
 +											 probabilityOfBestPair,
-+											 popularSeedsSkipped[0] + popularSeedsSkipped[1]);
++											 popularSeedsSkipped[whichRead],
++											 popularSeedsSkipped[0] + popularSeedsSkipped[1],
++											 countOfHashTableLookups[whichRead],
++											 countOfHashTableLookups[0] + countOfHashTableLookups[1],
++											 hits_per_lookup,
++											 hits_per_lookup_pair);
              result->mapq[whichRead] = computeMAPQ(probabilityOfAllPairs, probabilityOfBestPair, bestResultScore[whichRead], popularSeedsSkipped[0] + popularSeedsSkipped[1]);
              result->status[whichRead] = result->mapq[whichRead] > MAPQ_LIMIT_FOR_SINGLE_HIT ? SingleHit : MultipleHits;
              result->score[whichRead] = bestResultScore[whichRead];

         qnameLen, read->getId(),
         flags,
         contigName,
@@ -1263,7 +1295,10 @@ SAMFormat::writeRead(
         fullLength, quality,
         aux != NULL ? "\t" : "", auxLen, aux != NULL ? aux : "",
         readGroupSeparator, readGroupString,

     GenomeLocation genomeLocation,
     Direction direction,
     bool secondaryAlignment,
@@ -1249,7 +1250,43 @@ SAMFormat::writeRead(
             readGroupString = read->getReadGroup();
         }
     }
