@Override
	public void analyzeCoverage() {
		// in this analysis, skip and count the read pair where either read
		// or mate are flagged as unmapped
		if (this.getSamRecord().getReadUnmappedFlag()
				|| this.getSamRecord().getMateUnmappedFlag()) {
			readMateUnmappedCount++;
			return;
		}

		// in this analysis, skip and count the reads located on different
		// chromosomes
		// ReferenceIndex seems to be the Index which is 0-based Chromosome
		// Number
		if (this.getSamRecord().getReferenceIndex() != this.getSamRecord()
				.getMateReferenceIndex()) {
			readMateSplittedChromosome++;
			return;
		}

		// in this analysis, skip and count the pairs where read and mate
		// have same orientation
		if (this.getSamRecord().getReadNegativeStrandFlag()
				&& this.getSamRecord().getMateNegativeStrandFlag()) {
			bothSameOrientated++;
			return;
		}

		if (!this.getSamRecord().getReadNegativeStrandFlag()
				&& !this.getSamRecord().getMateNegativeStrandFlag()) {
			bothSameOrientated++;
			return;
		}

		// in this analysis, skip and count the read pairs with InsertSize >
		// 1000 bp
		if (Math.abs(this.getSamRecord().getInferredInsertSize()) > 10000) {
			highDistance++;
			return;
		}
		super.analyzeCoverage();
		
	} // end analyzeCoverage()