diff --git a/bin/coverageBed b/bin/coverageBed
index 3f9086fe300f9409f985f2c0b89f7e01561c096d..6ee16e6ef711715bda3a8f81732120d8247f5115 100755
Binary files a/bin/coverageBed and b/bin/coverageBed differ
diff --git a/bin/windowBed b/bin/windowBed
index a8047ab1f7133f2136476956490a683761d65767..0432862f09d5d3e93a0b871ce8045ca2455eb016 100755
Binary files a/bin/windowBed and b/bin/windowBed differ
diff --git a/obj/bedFile.o b/obj/bedFile.o
index 677732840635a3d2c8010733f735c461e5dc04d0..63bdc5d40ec60ccd1463a783a9481ed25c825b7a 100644
Binary files a/obj/bedFile.o and b/obj/bedFile.o differ
diff --git a/obj/coverageBed.o b/obj/coverageBed.o
index d06f390598f3a5fd967228e9d62dcf704b6c9c67..795a5a9733910bcdedb9665c3dc359c73b829fb4 100644
Binary files a/obj/coverageBed.o and b/obj/coverageBed.o differ
diff --git a/obj/coverageMain.o b/obj/coverageMain.o
index 3abada83c36e08187f4d1bc9676e90c36284872e..3c9d29313fecb8571879892c04cee1fa6d346348 100644
Binary files a/obj/coverageMain.o and b/obj/coverageMain.o differ
diff --git a/obj/lineFileUtilities.o b/obj/lineFileUtilities.o
index 64bf51a50e59e402409a9245a6cf4d74a08f53dc..631ef944a81a79b8ab415f90d1734efd8c94ee78 100644
Binary files a/obj/lineFileUtilities.o and b/obj/lineFileUtilities.o differ
diff --git a/obj/windowBed.o b/obj/windowBed.o
index 035265a30a33f863bc4bc1e1507e2ddd27cabbad..facaff63abac2a58b946a155fa13dc8b45e463f3 100644
Binary files a/obj/windowBed.o and b/obj/windowBed.o differ
diff --git a/obj/windowMain.o b/obj/windowMain.o
index f170f6166eda2ca3cac4ac3aae49aafa5bada8ca..b9a16ed7294b69b4758ea933f2250ab8ead4d30a 100644
Binary files a/obj/windowMain.o and b/obj/windowMain.o differ
diff --git a/src/closestBed/b.bed b/src/closestBed/b.bed
index 807c0cd01f2c9c9841060c2adca918f19ab7c102..9b0e3730019c266cdf3a5f07ae54d772d289598b 100644
--- a/src/closestBed/b.bed
+++ b/src/closestBed/b.bed
@@ -1,3 +1,5 @@
 chr1	20000	30000	geneA	100	+
 chr1	20000	30000	geneB	100	-
-
+chr1	19999	30000	geneC	100	+
+chr1	80	90	geneD	100	+
+chr1	112	1000	geneE	100	+
diff --git a/src/closestBed/closestBed.cpp b/src/closestBed/closestBed.cpp
index e3d0bb6997f109aa5300aebb30a61a0f1bd8ff13..07aeaa87cabb700b1c8f150718d71439c6c48758 100755
--- a/src/closestBed/closestBed.cpp
+++ b/src/closestBed/closestBed.cpp
@@ -83,51 +83,39 @@ void BedClosest::FindWindowOverlaps(BED &a, vector<BED> &hits) {
 
 		while ((numOverlaps == 0) && (slop <= MAXSLOP)) {
 		
-			if ((a.start - slop) > 0) {
-				aFudgeStart = a.start - slop;
-			}
-			else {
-				aFudgeStart = 0;
-			}
-			if ((a.start + slop) < 2 * MAXSLOP) {
-				aFudgeEnd = a.end + slop;
-			}
-			else {
-				aFudgeEnd = 2 * MAXSLOP;
-			}
+			// add some slop (starting at 0 bases) to a in hopes
+			// of finding a hit in B
+			if ((a.start - slop) > 0) aFudgeStart = a.start - slop;
+			else aFudgeStart = 0;
+			
+			if ((a.start + slop) < 2 * MAXSLOP) aFudgeEnd = a.end + slop;
+			else aFudgeEnd = 2 * MAXSLOP;
 		
-			bedB->binKeeperFind(bedB->bedMap[a.chrom], aFudgeStart, aFudgeEnd, hits);
+			bedB->FindOverlapsPerBin(a.chrom, aFudgeStart, aFudgeEnd, a.strand, hits, this->forceStrand);
 	
-			for (vector<BED>::iterator h = hits.begin(); h != hits.end(); ++h) {
-				
-				// if forcing strandedness, move on if the hit
-				// is not on the same strand as A.
-				if ((this->forceStrand) && (a.strand != h->strand)) {
-					continue;		// continue force the next iteration of the for loop.
-				}
-		
+			vector<BED>::const_iterator h = hits.begin();
+			vector<BED>::const_iterator hitsEnd = hits.end();
+			for (; h != hitsEnd; ++h) {
+						
 				numOverlaps++;
 
 				// do the actual features overlap?		
 				int s = max(a.start, h->start);
 				int e = min(a.end, h->end);
-		
+				int overlapBases = (e - s);				// the number of overlapping bases b/w a and b
+				int aLength = (a.end - a.start);		// the length of a in b.p.
+				
 				if (s < e) {
-
 					// is there enough overlap (default ~ 1bp)
-					float overlap = (float)(e-s) / (float)(a.end - a.start);
-	
-					if ( overlap > 0 ) {
-					
+					float overlap = (float) overlapBases / (float) aLength;
+					if ( overlap > 0 ) {			
 						// is this hit the closest?
 						if (overlap > maxOverlap) {
 							closestB.clear();
 							closestB.push_back(*h);
 							maxOverlap = overlap;
 						}
-						else if (overlap == maxOverlap) {
-							closestB.push_back(*h);
-						}
+						else if (overlap == maxOverlap) closestB.push_back(*h);
 					}
 				}
 				else if (h->end < a.start){
@@ -136,9 +124,7 @@ void BedClosest::FindWindowOverlaps(BED &a, vector<BED> &hits) {
 						closestB.push_back(*h);
 						minDistance = a.start - h->end;
 					}
-					else if ((a.start - h->end) == minDistance) {
-						closestB.push_back(*h);
-					}
+					else if ((a.start - h->end) == minDistance) closestB.push_back(*h);
 				}
 				else {
 					if ((h->start - a.end) < minDistance) {
@@ -146,16 +132,11 @@ void BedClosest::FindWindowOverlaps(BED &a, vector<BED> &hits) {
 						closestB.push_back(*h);
 						minDistance = h->start - a.end;
 					}
-					else if ((h->start - a.end) == minDistance) {
-						closestB.push_back(*h);
-					}	
+					else if ((h->start - a.end) == minDistance) closestB.push_back(*h);	
 				}
-				
 			}
-			/* if no overlaps were found, we'll 
-			   widen the range by SLOPGROWTH in each direction
-			   and search again.
-			*/
+			// if no overlaps were found, we'll widen the range 
+			// by SLOPGROWTH in each direction and search again.
 			slop += SLOPGROWTH;
 		}
 	}
diff --git a/src/coverageBed/a.bed b/src/coverageBed/a.bed
index 85f3053569196656a50374b959849c6fa916139b..0f5d644c0ea294599ab8dd2c494404ea8243b36d 100644
--- a/src/coverageBed/a.bed
+++ b/src/coverageBed/a.bed
@@ -1,5 +1,5 @@
-chr1	10	20
-chr1	20	30
-chr1	30	40
-chr1	100	200
+chr1	10	20	a1	1	-
+chr1	20	30	a2	1	-
+chr1	30	40	a3	1	-
+chr1	100	200	a4	1	+
 
diff --git a/src/coverageBed/b.bed b/src/coverageBed/b.bed
index 771446e580ea023462e0dd0c72efb1a06aef6b64..d881601d94bd1bca15c0760d353537965c164cf7 100644
--- a/src/coverageBed/b.bed
+++ b/src/coverageBed/b.bed
@@ -1,3 +1,3 @@
-chr1	0	100
-chr1	100	200
-chr2	0	100
+chr1	0	100	b1	1	+
+chr1	100	200	b2	1	-
+chr2	0	100	b3	1	+
diff --git a/src/coverageBed/coverageBed.cpp b/src/coverageBed/coverageBed.cpp
index 388122e49c7601b11bc06496858e4648a6ebaef8..d7d6f94954faf74fbe595f986e7c45aa3329bc80 100755
--- a/src/coverageBed/coverageBed.cpp
+++ b/src/coverageBed/coverageBed.cpp
@@ -40,7 +40,6 @@ void BedCoverage::GetCoverage(istream &bedInput) {
 	string bedLine;                                                                                                                    
 	int lineNum = 0;					// current input line number
 	vector<string> bedFields;			// vector for a BED entry
-	
 	bedFields.reserve(12);	
 		
 	// process each entry in A
@@ -49,55 +48,76 @@ void BedCoverage::GetCoverage(istream &bedInput) {
 		lineNum++;
 		Tokenize(bedLine,bedFields);
 		BED a;
-		
-		// find the overlaps with B if it's a valid BED entry. 
-		if (bedA->parseLine(a, bedFields, lineNum)) {
-	
-			// increment the count of overlaps for each feature in B that
-			// overlaps the current A interval
-			bedB->countHits(bedB->bedMap[a.chrom], a, this->forceStrand);
+
+		if (bedA->parseLine(a, bedFields, lineNum)) {	
+			// count a as a hit with all the relevant features in B
+			bedB->countHits(a, this->forceStrand);
 		}	
 		// reset for the next input line
 		bedFields.clear();
 	}
 	
-	// now, report the count of hist for each feature in B.
-	for (masterBedMap::iterator c = bedB->bedMap.begin(); c != bedB->bedMap.end(); ++c) {
-		map<int, vector<BED> > bin2Beds = c->second;
-
-		for (map<int, vector<BED> >::iterator b = bin2Beds.begin(); b != bin2Beds.end(); ++b) {
-
-			vector<BED> beds = b->second;
-			for (unsigned int i = 0; i < beds.size(); i++) {
-							
+	//vector<int> depths;	// track the discrete depths for each base in B
+						// used to calculate, min, max, median, etc.
+						
+	// now, report the count of hits for each feature in B.
+	masterBedMap::const_iterator chromItr = bedB->bedMap.begin();
+	masterBedMap::const_iterator chromEnd = bedB->bedMap.end();
+	for (; chromItr != chromEnd; ++chromItr) {
+	
+		binsToBeds::const_iterator binItr = chromItr->second.begin();
+		binsToBeds::const_iterator binEnd = chromItr->second.end();
+		for (; binItr != binEnd; ++binItr) {
+
+			vector<BED>::const_iterator bedItr = binItr->second.begin();
+			vector<BED>::const_iterator bedEnd = binItr->second.end();
+			for (; bedItr != bedEnd; ++bedItr) {
+									
 				int zeroDepthCount = 0;
 				int depth = 0;
+				int start = min(bedItr->minOverlapStart, bedItr->start);
 				
-				int start = min(beds[i].minOverlapStart, beds[i].start);
-				
-				for (int pos = start+1; pos <= beds[i].end; pos++) {
-
-					if (beds[i].depthMap.find(pos) != beds[i].depthMap.end()) {
-						depth += beds[i].depthMap[pos].starts;
+				for (int pos = start+1; pos <= bedItr->end; pos++) {
+					
+					if (bedItr->depthMap.find(pos) != bedItr->depthMap.end()) {
+						
+						map<unsigned int, DEPTH> dMap = bedItr->depthMap;
+						depth += dMap[pos].starts;
+						//depths.push_back(depth);
 																				
-						if ((depth == 0) && (pos > beds[i].start) && (pos <= beds[i].end)) {
+						if ((depth == 0) && (pos > bedItr->start) && (pos <= bedItr->end)) {
 							zeroDepthCount++;
 						}
 						
-						depth = depth - beds[i].depthMap[pos].ends;
+						depth = depth - dMap[pos].ends;
 					}
 					else {
-						if ((depth == 0) && (pos > beds[i].start) && (pos <= beds[i].end)) {
+						if ((depth == 0) && (pos > bedItr->start) && (pos <= bedItr->end)) {
 							zeroDepthCount++;
 						}
+						//depths.push_back(depth);
 					}
 				}
 
 				// Report the coverage for the current interval.
-				int length = beds[i].end - beds[i].start;
-
-				bedB->reportBedTab(beds[i]);
-				printf("%d\t%d\t%d\t%0.7f\n", beds[i].count, (length-zeroDepthCount), length, (float) (length-zeroDepthCount)/length);
+				int length = bedItr->end - bedItr->start;
+				int nonZeroBases =  (length-zeroDepthCount);
+				float fractCovered = (float) nonZeroBases /length;
+				//sort(depths.begin(), depths.end());
+				
+				bedB->reportBedTab(*bedItr);
+				printf("%d\t%d\t%d\t%0.7f\n", bedItr->count, nonZeroBases, length, fractCovered);
+				/*
+				cout << bedItr->count << "\t";
+				cout << (length-zeroDepthCount) << "\t";
+				cout << length << "\t";
+				cout << setw (10);
+				cout << fractCovered << "\t";							
+				cout << *min_element(depths.begin(), depths.end()) << "\t";
+				cout << *max_element(depths.begin(), depths.end()) << "\t";
+				cout << *(depths.begin()+depths.size()/2) << "\n";
+				depths.clear();
+				*/				
 			}
 		}
 	}
diff --git a/src/coverageBed/coverageBed.h b/src/coverageBed/coverageBed.h
index e4654e646e2b0936b8f8922f356243b58e77c8e5..25d340a0a033e643344272701aa419d788b69604 100755
--- a/src/coverageBed/coverageBed.h
+++ b/src/coverageBed/coverageBed.h
@@ -14,7 +14,9 @@
 
 #include "bedFile.h"
 #include <vector>
+#include <algorithm>
 #include <iostream>
+#include <iomanip>
 #include <fstream>
 #include <stdlib.h>
 
diff --git a/src/coverageBed/coverageMain.cpp b/src/coverageBed/coverageMain.cpp
index 7fb04ef2b886ac1768960a573f4135342366c278..81b6f230a10acadeaae4d59483a22ed510509355 100755
--- a/src/coverageBed/coverageMain.cpp
+++ b/src/coverageBed/coverageMain.cpp
@@ -103,6 +103,11 @@ void ShowHelp(void) {
 	
 	cerr << "Usage:   " << PROGRAM_NAME << " [OPTIONS] -a <a.bed> -b <b.bed>" << endl << endl;
 
+	cerr << "Options: " << endl;
+	cerr << "\t-s\t"	 	    << "Force strandedness.  That is, only include hits in A that" << endl;
+	cerr						<< "\t\toverlap B on the same strand." << endl;
+	cerr						<< "\t\t- By default, hits are included without respect to strand." << endl << endl;
+
 	cerr << "Output:  " << endl;
 	cerr << "\t" << " After each entry in B, reports: " << endl; 
 	cerr << "\t  1) The number of features in A that overlapped the B interval." << endl;
diff --git a/src/coverageBed/new b/src/coverageBed/new
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/intersectBed/chr21.genes.bed b/src/intersectBed/chr21.genes.bed
new file mode 100644
index 0000000000000000000000000000000000000000..73d1706a4f45c164f05860a00d5edecaffe4fdaf
--- /dev/null
+++ b/src/intersectBed/chr21.genes.bed
@@ -0,0 +1,828 @@
+chr21	9928613	10012791	uc002yip.1	24	-
+chr21	9928613	10012791	uc002yiq.1	23	-
+chr21	9928613	10012791	uc002yir.1	22	-
+chr21	9928613	10012791	uc010gkv.1	19	-
+chr21	9928613	10061300	uc002yis.1	33	-
+chr21	10042683	10120808	uc002yiu.1	9	-
+chr21	10042683	10120796	uc002yit.1	10	-
+chr21	10079666	10120808	uc002yiv.1	4	-
+chr21	10080031	10081687	uc002yiw.1	2	-
+chr21	10081660	10120796	uc002yix.2	3	-
+chr21	13332351	13346202	uc002yiy.2	5	+
+chr21	13336975	13346202	uc002yiz.2	4	+
+chr21	13361138	13412440	uc002yja.2	3	+
+chr21	13904368	13935777	uc002yjb.1	11	+
+chr21	13944438	13944477	uc002yjc.1	1	+
+chr21	13945076	13945106	uc002yjd.1	1	+
+chr21	13973491	13975330	uc002yje.1	1	-
+chr21	14137333	14142556	uc002yjf.1	6	-
+chr21	14200023	14200052	uc002yjg.1	1	+
+chr21	14202070	14202096	uc002yjh.1	1	-
+chr21	14237966	14274631	uc002yji.1	6	-
+chr21	14270940	14274631	uc002yjj.2	2	-
+chr21	14321612	14438647	uc002yjk.2	3	+
+chr21	14321612	14438730	uc002yjl.2	3	+
+chr21	14403005	14501125	uc002yjm.1	10	-
+chr21	14459414	14483611	uc010gkw.1	4	-
+chr21	14510336	14522564	uc002yjp.2	4	+
+chr21	14510336	14522564	uc002yjn.2	5	+
+chr21	14510336	14522564	uc002yjo.2	5	+
+chr21	14567990	14585577	uc002yjq.1	5	+
+chr21	14567990	14595563	uc002yjr.1	6	+
+chr21	14567990	14595563	uc010gkx.1	5	+
+chr21	14567990	14632206	uc002yjs.2	14	+
+chr21	14665307	14677380	uc002yjt.1	5	-
+chr21	14779419	14877594	uc002yjv.1	9	-
+chr21	14779419	14840535	uc010gky.1	4	-
+chr21	14779419	14840535	uc002yju.1	8	-
+chr21	15117160	15151900	uc002yjw.1	3	-
+chr21	15255426	15262718	uc002yjx.1	1	-
+chr21	15258731	15358997	uc010gkz.1	4	-
+chr21	16024366	16174248	uc010gla.1	11	+
+chr21	16024366	16174248	uc002yjz.1	25	+
+chr21	16024366	16174248	uc002yjy.1	24	+
+chr21	16085691	16113036	uc010glb.1	5	+
+chr21	16364712	16901413	uc002yka.1	8	+
+chr21	16364712	16901413	uc002ykb.1	8	+
+chr21	16365304	16365529	uc010glc.1	1	+
+chr21	16488569	16901413	uc002ykc.1	6	+
+chr21	16833279	16833360	uc002ykd.1	1	+
+chr21	16834014	16834106	uc002yke.1	1	+
+chr21	16884427	16884516	uc002ykf.1	1	+
+chr21	17733107	17743132	uc002ykg.1	4	+
+chr21	17807200	17861137	uc002yki.1	7	+
+chr21	17807200	17859800	uc010gle.1	3	+
+chr21	17807200	17859800	uc010gld.1	4	+
+chr21	17807200	17859800	uc002ykh.1	5	+
+chr21	17841215	17887768	uc002ykj.1	7	+
+chr21	17887841	17907033	uc002ykk.1	5	-
+chr21	17887841	17907033	uc002ykl.1	6	-
+chr21	18071593	18086697	uc002ykn.2	3	-
+chr21	18071593	18086697	uc002ykm.2	4	-
+chr21	18083154	18113574	uc002ykq.2	5	-
+chr21	18083154	18113574	uc002yko.2	5	-
+chr21	18083154	18113574	uc002ykp.2	4	-
+chr21	18195450	18561558	uc002ykr.1	7	+
+chr21	18211407	18561558	uc002yku.1	5	+
+chr21	18211407	18561558	uc002ykt.1	6	+
+chr21	18211407	18561558	uc002yks.1	7	+
+chr21	18539020	18561558	uc002ykv.1	6	+
+chr21	18563560	18697844	uc002ykw.1	25	-
+chr21	18855455	19032214	uc010glf.1	4	-
+chr21	18855455	19054001	uc002ykx.2	4	-
+chr21	21036784	21097287	uc002ylc.2	7	-
+chr21	21036784	21097287	uc002ylb.2	7	-
+chr21	21036784	21097287	uc002yla.2	7	-
+chr21	21036784	21097287	uc002ykz.2	8	-
+chr21	21036784	21097287	uc002yky.2	8	-
+chr21	21292503	21833085	uc002yld.1	18	+
+chr21	22041175	22091604	uc002yle.2	5	+
+chr21	22303349	22392649	uc002ylf.2	6	-
+chr21	22392806	22410718	uc002ylg.1	6	+
+chr21	22462158	22462605	uc002ylh.1	1	-
+chr21	24722924	24784492	uc002yli.1	6	+
+chr21	25134734	25351923	uc002ylj.2	4	+
+chr21	25680009	25725884	uc002ylk.1	5	-
+chr21	25680009	25725884	uc010glg.1	4	-
+chr21	25856312	25869344	uc002ylm.2	3	+
+chr21	25856375	25869344	uc002yll.1	1	+
+chr21	25879838	25901672	uc002yln.1	11	-
+chr21	25879838	25901672	uc002ylo.1	10	-
+chr21	25933459	26009106	uc010gli.1	8	+
+chr21	25933459	26009106	uc010glh.1	10	+
+chr21	25933459	26009106	uc002ylr.1	9	+
+chr21	25933459	26009106	uc002ylq.1	10	+
+chr21	25933459	26009106	uc002ylp.1	10	+
+chr21	26018661	26029836	uc002yls.1	4	-
+chr21	26018661	26029836	uc002ylt.1	4	-
+chr21	26018661	26029836	uc002ylu.1	4	-
+chr21	26018661	26029836	uc002ylv.1	4	-
+chr21	26018661	26029836	uc002ylw.1	4	-
+chr21	26028751	26066642	uc002ylx.2	10	+
+chr21	26029199	26066642	uc002yly.2	10	+
+chr21	26174731	26465003	uc010glj.1	15	-
+chr21	26174731	26465003	uc002ylz.1	18	-
+chr21	26174731	26465003	uc002yma.1	17	-
+chr21	26174731	26465003	uc002ymb.1	16	-
+chr21	26316026	26434649	uc010glk.1	6	-
+chr21	26460085	26461513	uc002ymc.1	1	-
+chr21	26760398	26867452	uc002ymd.1	4	-
+chr21	26762117	26867452	uc002yme.2	4	-
+chr21	27130476	27139599	uc002ymf.1	9	-
+chr21	27212111	27260703	uc002ymg.1	8	-
+chr21	27653075	27742769	uc002ymh.2	4	-
+chr21	28307571	28317143	uc002ymj.2	2	+
+chr21	28342603	28431799	uc002ymk.1	5	+
+chr21	28410287	28522857	uc002yml.2	6	-
+chr21	28833510	28834547	uc002ymm.2	2	+
+chr21	28833510	28834547	uc002ymn.2	2	+
+chr21	29166383	29179564	uc002ymp.1	5	-
+chr21	29166383	29179564	uc002ymo.1	6	-
+chr21	29166384	29179564	uc002ymq.1	7	-
+chr21	29222336	29287095	uc002ymr.1	30	-
+chr21	29260562	29281126	uc010gll.1	10	-
+chr21	29299950	29313554	uc002ymv.1	4	-
+chr21	29299950	29313554	uc002ymu.1	4	-
+chr21	29299950	29313554	uc002ymt.1	6	-
+chr21	29299950	29313554	uc002yms.1	5	-
+chr21	29318808	29348678	uc002ymw.1	19	+
+chr21	29318808	29348678	uc002ymy.1	18	+
+chr21	29318808	29348678	uc002ymx.1	18	+
+chr21	29350518	29367881	uc010glm.1	14	-
+chr21	29350518	29367881	uc002ync.1	15	-
+chr21	29350518	29367881	uc002ynb.1	15	-
+chr21	29350518	29367827	uc002yna.1	15	-
+chr21	29350518	29357059	uc002ymz.1	5	-
+chr21	29371824	29470073	uc002ynd.1	10	+
+chr21	29371824	29470073	uc010gln.1	9	+
+chr21	29371824	29470073	uc002yne.1	8	+
+chr21	29374743	29470073	uc002ynf.1	9	+
+chr21	29416245	29470073	uc010glo.1	4	+
+chr21	29424835	29470073	uc002yng.1	5	+
+chr21	29439770	29470073	uc010glp.1	4	+
+chr21	29487671	29582396	uc002ynh.2	4	+
+chr21	29487685	29582396	uc002yni.2	2	+
+chr21	29593090	29640340	uc002ynj.1	5	+
+chr21	29593607	29640340	uc002ynk.1	5	+
+chr21	29599430	29656086	uc002ynl.1	8	+
+chr21	29831124	30234153	uc002ynn.1	16	-
+chr21	29847736	30234153	uc002yno.1	17	-
+chr21	29875615	30234153	uc010glq.1	10	-
+chr21	29890230	29924938	uc002ynp.1	3	+
+chr21	29892990	30234153	uc002ynr.2	8	-
+chr21	30043127	30058182	uc002yns.1	3	+
+chr21	30460131	30460806	uc002ynt.1	1	-
+chr21	30508200	30510189	uc002ynu.1	1	-
+chr21	30575497	30577147	uc002ynv.1	1	-
+chr21	30583333	30583703	uc010glr.1	1	-
+chr21	30613320	30614478	uc002ynw.1	1	-
+chr21	30631201	30631883	uc002ynx.1	1	-
+chr21	30642587	30642795	uc002yny.1	1	-
+chr21	30665579	30666428	uc002ynz.2	1	-
+chr21	30690262	30691009	uc002yoa.1	1	+
+chr21	30719581	30720101	uc002yob.1	1	-
+chr21	30724464	30724947	uc002yoc.1	1	+
+chr21	30734516	30734969	uc002yod.1	1	+
+chr21	30774234	30774507	uc002yoe.1	1	-
+chr21	30781379	30781538	uc002yof.1	1	-
+chr21	30785652	30786146	uc002yog.1	1	-
+chr21	30791044	30791299	uc002yoh.1	1	-
+chr21	30796060	30796279	uc002yoi.1	1	-
+chr21	30835724	30836052	uc002yok.1	1	-
+chr21	30855287	30855479	uc002yol.1	1	-
+chr21	30886629	30887245	uc002yom.1	1	+
+chr21	30892875	30893064	uc002yon.1	1	-
+chr21	30895310	30895457	uc002yoo.1	1	+
+chr21	30907875	30908094	uc002yop.1	1	-
+chr21	30910644	30910815	uc002yoq.1	1	+
+chr21	30929453	30929651	uc002yor.1	1	+
+chr21	30937053	30937326	uc010gls.1	1	+
+chr21	31041139	31041391	uc002yos.1	1	-
+chr21	31049327	31049567	uc002yot.1	1	-
+chr21	31106885	31107441	uc002you.1	1	-
+chr21	31174834	31175745	uc002yov.1	1	-
+chr21	31332348	31332666	uc010glt.1	1	-
+chr21	31412606	31853161	uc002yow.1	29	-
+chr21	31506817	31854161	uc002yox.1	9	-
+chr21	31853428	31854471	uc002yoy.2	2	+
+chr21	31948741	31953684	uc002yoz.1	3	-
+chr21	31953805	31963114	uc002ypa.1	5	+
+chr21	31953849	31963114	uc002ypb.1	5	+
+chr21	31953892	31963114	uc002ypc.1	5	+
+chr21	31965417	32026133	uc002ypd.1	20	-
+chr21	31965417	32026133	uc002ype.1	20	-
+chr21	31965417	32026133	uc010glu.1	19	-
+chr21	31978178	31996102	uc002ypf.1	14	-
+chr21	31994942	32026133	uc002ypg.1	7	-
+chr21	32167498	32298248	uc002yph.1	11	+
+chr21	32562400	32573247	uc002ypi.1	5	-
+chr21	32585994	32608965	uc002ypk.1	5	+
+chr21	32585994	32606470	uc002ypj.1	5	+
+chr21	32585994	32606470	uc010glv.1	4	+
+chr21	32593031	32606470	uc002ypl.1	3	+
+chr21	32600647	32602916	uc002ypm.2	2	-
+chr21	32607648	32687021	uc002ypn.1	39	-
+chr21	32671366	32671502	uc002ypo.1	1	-
+chr21	32706622	32809568	uc002ypt.1	6	+
+chr21	32706622	32809568	uc010glw.1	8	+
+chr21	32706622	32809568	uc002yps.1	7	+
+chr21	32706622	32809568	uc002ypr.1	8	+
+chr21	32706622	32762234	uc002ypq.1	4	+
+chr21	32746363	32809568	uc002ypu.1	7	+
+chr21	32866419	32870062	uc002ypv.1	4	-
+chr21	32870732	32879714	uc002ypw.2	5	-
+chr21	32876380	32906537	uc002ypz.1	6	-
+chr21	32876380	32906537	uc002ypy.1	7	-
+chr21	32876380	32901897	uc002ypx.1	3	-
+chr21	32895854	32898694	uc002yqa.2	2	-
+chr21	32895854	32906537	uc002yqb.2	5	-
+chr21	32895977	32906537	uc002yqc.1	7	-
+chr21	32895977	32906537	uc002yqd.1	6	-
+chr21	32895977	32906537	uc010glx.1	6	-
+chr21	32922943	33022148	uc002yqi.1	33	-
+chr21	32922943	33022148	uc002yqh.1	32	-
+chr21	32922943	33022105	uc002yqg.1	28	-
+chr21	32922943	33022105	uc002yqf.1	32	-
+chr21	32922943	32936331	uc002yqe.2	6	-
+chr21	33022296	33027093	uc002yqj.1	2	+
+chr21	33022296	33037303	uc002yqk.2	4	+
+chr21	33028080	33066040	uc002yqo.1	18	-
+chr21	33028080	33066040	uc002yqn.1	18	-
+chr21	33028080	33050976	uc002yqm.1	11	-
+chr21	33028080	33046092	uc002yql.1	10	-
+chr21	33035520	33066040	uc002yqp.1	16	-
+chr21	33049593	33066040	uc002yqq.1	8	-
+chr21	33053537	33066040	uc002yqr.2	6	-
+chr21	33066281	33091884	uc002yqs.2	4	+
+chr21	33066306	33091884	uc002yqt.2	2	+
+chr21	33066387	33091884	uc002yqu.2	4	+
+chr21	33084854	33107876	uc010gly.1	4	-
+chr21	33084854	33107876	uc002yqv.1	3	-
+chr21	33084854	33107876	uc002yqw.1	2	-
+chr21	33087858	33088602	uc010glz.1	1	-
+chr21	33320108	33323370	uc002yqx.1	2	+
+chr21	33321040	33322012	uc002yqy.2	1	+
+chr21	33364442	33366596	uc002yqz.1	1	+
+chr21	33459786	33464411	uc002yra.1	4	-
+chr21	33524100	33558690	uc002yrf.1	8	+
+chr21	33524100	33558690	uc002yre.1	9	+
+chr21	33524100	33558690	uc002yrd.1	9	+
+chr21	33524100	33556932	uc002yrc.1	9	+
+chr21	33524100	33556932	uc002yrb.1	9	+
+chr21	33539667	33556932	uc002yrg.1	6	+
+chr21	33542883	33577416	uc002yrh.1	6	+
+chr21	33542883	33577416	uc002yri.1	5	+
+chr21	33558047	33560435	uc002yrj.1	2	-
+chr21	33560541	33591390	uc002yrk.1	7	+
+chr21	33562102	33591390	uc002yrl.1	6	+
+chr21	33619083	33653998	uc002yrn.1	11	+
+chr21	33697071	33731698	uc002yrp.2	7	+
+chr21	33697071	33731698	uc002yrq.2	8	+
+chr21	33697071	33731698	uc010gma.1	8	+
+chr21	33709055	33731698	uc002yrr.2	6	+
+chr21	33726662	33774151	uc002yrs.1	9	-
+chr21	33742958	33774151	uc002yrt.1	7	-
+chr21	33742958	33774151	uc010gmb.1	8	-
+chr21	33782107	33785660	uc002yrv.1	2	-
+chr21	33782107	33785893	uc002yrw.1	2	-
+chr21	33782403	33783570	uc010gmc.1	1	-
+chr21	33798141	33837065	uc010gmd.1	22	-
+chr21	33798141	33837006	uc002yrz.1	22	-
+chr21	33798141	33836995	uc002yry.1	22	-
+chr21	33798141	33836286	uc002yrx.1	22	-
+chr21	33818186	33836286	uc002ysa.1	11	-
+chr21	33837219	33851844	uc002ysb.1	5	+
+chr21	33837219	33854843	uc002ysc.1	7	+
+chr21	33837219	33871654	uc002ysd.2	13	+
+chr21	33837219	33871682	uc002ysf.1	11	+
+chr21	33837219	33871682	uc002yse.1	12	+
+chr21	33846423	33861642	uc002ysg.2	5	+
+chr21	33866544	33871654	uc002ysh.2	5	+
+chr21	33869652	33880357	uc002ysi.1	9	-
+chr21	33872080	33889790	uc002ysm.1	13	-
+chr21	33872080	33883137	uc002ysl.1	9	-
+chr21	33872080	33883137	uc002ysk.1	10	-
+chr21	33872080	33883137	uc010gme.1	9	-
+chr21	33872080	33881778	uc002ysj.1	8	-
+chr21	33878765	34206573	uc002ysn.1	5	-
+chr21	33883517	33936030	uc010gmf.1	13	-
+chr21	33888837	33889792	uc002ysp.2	1	-
+chr21	33889437	33891577	uc002ysq.2	2	-
+chr21	33889906	33936030	uc002yst.1	10	-
+chr21	33889906	33936030	uc002yss.1	11	-
+chr21	33889906	33936030	uc002ysr.1	12	-
+chr21	33910469	33936030	uc002ysu.2	6	-
+chr21	33933921	33936030	uc002ysv.2	3	-
+chr21	33936653	34183479	uc002ytb.1	39	+
+chr21	33936653	34183479	uc002yta.1	40	+
+chr21	33936653	34132672	uc002ysx.1	29	+
+chr21	33936653	34132672	uc002ysy.1	29	+
+chr21	33936653	34132672	uc010gmj.1	28	+
+chr21	33936653	34132672	uc010gmi.1	30	+
+chr21	33936653	34132672	uc002ysw.1	30	+
+chr21	33936653	34132672	uc010gmh.1	26	+
+chr21	33936653	34132672	uc010gmg.1	27	+
+chr21	33936653	34132672	uc002ysz.1	27	+
+chr21	33936653	34132672	uc002yth.2	28	+
+chr21	34012971	34111788	uc002ytc.1	21	+
+chr21	34012971	34183479	uc010gmm.1	37	+
+chr21	34012971	34183479	uc002ytj.2	37	+
+chr21	34012971	34132672	uc010gml.1	25	+
+chr21	34012971	34132672	uc010gmk.1	27	+
+chr21	34012971	34132672	uc002ytd.1	29	+
+chr21	34016762	34132672	uc002yte.1	25	+
+chr21	34096603	34111788	uc002ytf.1	4	+
+chr21	34112440	34123224	uc002ytg.1	4	+
+chr21	34123141	34151031	uc002yti.1	5	+
+chr21	34169527	34180634	uc010gmn.1	5	+
+chr21	34169527	34179696	uc002ytk.1	3	+
+chr21	34197626	34210028	uc002ytl.1	7	-
+chr21	34206462	34209898	uc002ytm.1	3	-
+chr21	34225295	34265357	uc002ytn.2	3	+
+chr21	34367692	34437204	uc002ytp.2	3	+
+chr21	34367692	34400431	uc002yto.1	2	+
+chr21	34389367	34391524	uc002ytq.2	1	+
+chr21	34474917	34477415	uc002ytr.2	2	+
+chr21	34474917	34484090	uc002yts.1	2	+
+chr21	34658192	34665310	uc002ytt.1	2	+
+chr21	34664647	34665019	uc010gmo.1	1	+
+chr21	34669618	34696944	uc002ytw.2	5	+
+chr21	34669618	34696944	uc002ytv.2	4	+
+chr21	34669618	34683322	uc002ytu.2	4	+
+chr21	34712882	34718134	uc002yty.1	2	-
+chr21	34740857	34806443	uc002yua.1	4	-
+chr21	34740857	34805483	uc010gmr.1	3	-
+chr21	34740857	34753772	uc010gmq.1	3	-
+chr21	34740857	34753772	uc002ytz.1	3	-
+chr21	34740857	34749933	uc010gmp.1	2	-
+chr21	34743412	34743802	uc010gms.1	1	-
+chr21	34810653	34909252	uc002yue.1	4	-
+chr21	34810653	34908615	uc002yud.1	4	-
+chr21	34810653	34908012	uc002yuc.1	4	-
+chr21	34810653	34821131	uc002yub.1	4	-
+chr21	34963557	35012389	uc002yuf.1	6	+
+chr21	34963557	35012389	uc010gmt.1	7	+
+chr21	35040013	35079036	uc002yug.2	3	+
+chr21	35081967	35343437	uc010gmu.1	9	-
+chr21	35081967	35343465	uc010gmv.1	9	-
+chr21	35081967	35343465	uc002yuj.2	7	-
+chr21	35081967	35343511	uc002yuk.2	8	-
+chr21	35081967	35182857	uc002yui.1	5	-
+chr21	35081967	35182857	uc002yuh.1	6	-
+chr21	35091579	35343125	uc002yum.1	5	-
+chr21	35091579	35128768	uc002yul.1	3	-
+chr21	35115443	35124138	uc002yun.1	2	-
+chr21	35115443	35182857	uc002yuo.1	5	-
+chr21	35117630	35120573	uc002yup.1	1	-
+chr21	35127127	35343465	uc010gmw.1	7	-
+chr21	35153500	35174880	uc002yur.1	2	-
+chr21	35153640	35153741	uc002yus.1	1	+
+chr21	35181009	36278917	uc002yut.1	11	-
+chr21	36328708	36358576	uc002yuv.1	14	-
+chr21	36328708	36354789	uc002yuu.1	11	-
+chr21	36328709	36354789	uc002yux.1	12	-
+chr21	36328709	36354429	uc002yuw.1	10	-
+chr21	36337851	36354481	uc002yuz.1	8	-
+chr21	36337851	36354481	uc002yuy.1	7	-
+chr21	36337851	36373557	uc002yva.1	8	-
+chr21	36364154	36367334	uc010gmy.1	3	+
+chr21	36364154	36367332	uc002yvb.1	3	+
+chr21	36364154	36365751	uc010gmx.1	2	+
+chr21	36425934	36450475	uc002yvc.1	4	-
+chr21	36425934	36450475	uc002yvd.1	3	-
+chr21	36429132	36440730	uc002yve.1	3	+
+chr21	36435563	36450475	uc002yvf.1	3	-
+chr21	36458708	36588442	uc002yvg.1	37	+
+chr21	36539215	36556078	uc002yvh.2	6	+
+chr21	36614375	36670814	uc002yvi.1	17	+
+chr21	36632941	36633667	uc010gmz.1	1	+
+chr21	36679558	36710995	uc002yvj.1	14	+
+chr21	36754789	36870737	uc002yvo.1	3	-
+chr21	36754789	36836768	uc002yvn.1	3	-
+chr21	36754789	36774258	uc002yvm.1	2	-
+chr21	36754789	36774258	uc002yvl.1	3	-
+chr21	36754789	36760595	uc002yvk.1	2	-
+chr21	36755143	36755863	uc010gna.1	1	-
+chr21	36993860	37004772	uc002yvp.2	2	+
+chr21	36993860	37040485	uc002yvq.1	10	+
+chr21	36993860	37044088	uc002yvr.1	11	+
+chr21	37045058	37284373	uc002yvs.1	12	-
+chr21	37045058	37256340	uc010gnb.1	11	-
+chr21	37224420	37260808	uc010gnc.1	5	-
+chr21	37300319	37313828	uc002yvu.1	4	+
+chr21	37300319	37313828	uc010gnd.1	3	+
+chr21	37300732	37313828	uc002yvv.1	4	+
+chr21	37359533	37367328	uc002yvy.1	6	-
+chr21	37359533	37367328	uc002yvx.1	5	-
+chr21	37359533	37366973	uc002yvw.1	4	-
+chr21	37367440	37497278	uc002yvz.1	46	+
+chr21	37367444	37438815	uc010gne.1	21	+
+chr21	37377116	37497278	uc002ywa.1	46	+
+chr21	37379959	37497278	uc010gnf.1	44	+
+chr21	37379959	37497278	uc002ywb.1	45	+
+chr21	37401907	37497278	uc002ywc.1	36	+
+chr21	37450826	37480250	uc002ywd.1	10	+
+chr21	37502673	37514868	uc010gng.1	5	+
+chr21	37502673	37514868	uc010gnh.1	4	+
+chr21	37502673	37514868	uc010gni.1	4	+
+chr21	37502673	37514868	uc010gnj.1	3	+
+chr21	37514496	37515910	uc010gnk.1	1	+
+chr21	37517595	37534810	uc010gnl.1	6	-
+chr21	37517595	37561703	uc002ywf.1	8	-
+chr21	37517595	37561703	uc010gnm.1	10	-
+chr21	37517595	37561703	uc010gnn.1	9	-
+chr21	37661728	37809549	uc002ywi.1	13	+
+chr21	37661728	37780786	uc002ywh.1	5	+
+chr21	37661728	37767052	uc002ywg.1	3	+
+chr21	37661728	37767052	uc010gno.1	4	+
+chr21	37713076	37809549	uc002ywj.1	11	+
+chr21	37714470	37809549	uc002ywl.1	11	+
+chr21	37714470	37809549	uc002ywm.1	10	+
+chr21	37714470	37809549	uc002ywk.1	11	+
+chr21	37901635	37904535	uc002ywn.1	1	-
+chr21	37918656	38210566	uc002ywo.1	4	-
+chr21	38348182	38415324	uc002ywp.1	3	-
+chr21	38415436	38450474	uc010gns.1	3	+
+chr21	38415436	38450474	uc010gnr.1	3	+
+chr21	38415436	38450474	uc010gnq.1	4	+
+chr21	38415436	38450474	uc010gnp.1	4	+
+chr21	38415436	38450474	uc002ywt.2	4	+
+chr21	38500119	38502606	uc010gnt.1	3	+
+chr21	38550533	38595616	uc002ywv.1	4	+
+chr21	38550739	38595616	uc002yww.1	3	+
+chr21	38566298	38595616	uc002ywx.1	3	+
+chr21	38567267	38569311	uc002ywy.2	1	+
+chr21	38593053	38594181	uc010gnu.1	1	+
+chr21	38661052	38955488	uc002ywz.1	12	-
+chr21	38675670	38792267	uc002yxa.1	10	-
+chr21	38675670	38878739	uc010gnv.1	9	-
+chr21	38675670	38954461	uc010gnw.1	12	-
+chr21	38675670	38954461	uc010gnx.1	11	-
+chr21	38675670	38955488	uc002yxb.1	11	-
+chr21	38686167	38697501	uc010gny.1	2	-
+chr21	38693868	38955488	uc002yxc.2	8	-
+chr21	38764567	38955488	uc010gnz.1	5	-
+chr21	39032820	39046051	uc010goa.1	4	-
+chr21	39032820	39067271	uc002yxd.2	7	-
+chr21	39099100	39118748	uc002yxf.1	11	+
+chr21	39099718	39118748	uc002yxg.1	10	+
+chr21	39171084	39232223	uc002yxh.1	4	-
+chr21	39469253	39477310	uc010gob.1	6	-
+chr21	39469253	39477310	uc002yxj.1	6	-
+chr21	39469253	39477310	uc002yxi.1	7	-
+chr21	39479273	39558815	uc010goc.1	26	-
+chr21	39479273	39607426	uc002yxk.1	42	-
+chr21	39484017	39607426	uc002yxl.1	42	-
+chr21	39496120	39523232	uc010god.1	12	-
+chr21	39530390	39574044	uc010goi.1	14	-
+chr21	39530390	39574044	uc010goh.1	14	-
+chr21	39530390	39574044	uc010gog.1	15	-
+chr21	39530390	39574044	uc010gof.1	15	-
+chr21	39530390	39574044	uc010goe.1	15	-
+chr21	39590234	39607426	uc002yxm.1	5	-
+chr21	39636110	39642917	uc002yxo.1	6	-
+chr21	39636110	39642917	uc002yxp.1	8	-
+chr21	39636110	39642917	uc002yxq.1	7	-
+chr21	39636110	39643140	uc002yxr.1	8	-
+chr21	39674139	39691486	uc002yxs.1	5	+
+chr21	39681560	39691486	uc010goj.1	5	+
+chr21	39681560	39691486	uc002yxt.2	5	+
+chr21	39699639	39737997	uc002yxu.1	10	-
+chr21	39699639	39739529	uc002yxv.1	10	-
+chr21	39715354	39739601	uc002yxw.1	5	-
+chr21	39715354	39739601	uc002yxx.1	4	-
+chr21	39715868	39732732	uc002yxy.2	4	-
+chr21	39739666	39809303	uc002yxz.1	7	+
+chr21	39745649	39809303	uc002yya.1	7	+
+chr21	39850238	39956685	uc002yyb.1	5	+
+chr21	39890946	39906618	uc010gok.1	3	-
+chr21	39899406	39906618	uc002yyd.2	3	-
+chr21	39906841	39953709	uc002yyf.1	4	+
+chr21	39906841	39956685	uc002yye.2	3	+
+chr21	39924087	39953709	uc010gol.1	2	+
+chr21	39924087	39953709	uc002yyg.1	3	+
+chr21	39936181	39953709	uc002yyh.1	3	+
+chr21	39936181	39953709	uc010gom.1	2	+
+chr21	39951123	39956685	uc002yym.1	2	+
+chr21	39951123	39956685	uc002yyl.1	3	+
+chr21	39951123	39956685	uc002yyk.1	3	+
+chr21	39951123	39956685	uc002yyj.1	3	+
+chr21	39951123	39956685	uc002yyi.1	4	+
+chr21	39954356	39955289	uc010gon.1	1	+
+chr21	40021551	40024477	uc002yyn.1	3	+
+chr21	40039203	40095893	uc002yyo.1	9	+
+chr21	40161216	40223192	uc002yyp.1	3	+
+chr21	40306212	41140909	uc002yyq.1	33	-
+chr21	40306212	41140909	uc002yyr.1	33	-
+chr21	40676879	40679152	uc002yys.2	3	+
+chr21	40676879	40679152	uc002yyt.2	3	+
+chr21	40676879	40679152	uc002yyu.2	2	+
+chr21	41435296	41441861	uc002yyv.1	2	-
+chr21	41461597	41570394	uc002yyw.1	9	+
+chr21	41461597	41570394	uc002yyx.1	8	+
+chr21	41461597	41570394	uc002yyy.1	8	+
+chr21	41469027	41479036	uc002yyz.1	1	-
+chr21	41539758	41570394	uc010goo.1	2	+
+chr21	41598067	41651524	uc002yza.1	10	+
+chr21	41610530	41651524	uc002yzb.1	8	+
+chr21	41610530	41651524	uc002yzc.1	7	+
+chr21	41616616	41651524	uc002yzd.1	7	+
+chr21	41655819	41661103	uc002yze.1	2	+
+chr21	41655819	41702739	uc002yzf.1	14	+
+chr21	41683339	41702739	uc002yzg.1	9	+
+chr21	41692693	41702739	uc010gop.1	5	+
+chr21	41714311	41753008	uc002yzh.1	19	+
+chr21	41720023	41753008	uc002yzi.1	17	+
+chr21	41720023	41753008	uc010goq.1	15	+
+chr21	41758350	41801779	uc010gor.1	14	-
+chr21	41758350	41801948	uc002yzj.1	14	-
+chr21	41761530	41824913	uc010gos.1	14	-
+chr21	42004748	42009004	uc010got.1	7	-
+chr21	42009664	42010809	uc002yzm.1	3	+
+chr21	42032597	42060318	uc002yzn.1	8	-
+chr21	42091453	42172660	uc002yzo.1	24	-
+chr21	42091453	42172660	uc002yzp.1	25	-
+chr21	42094222	42172660	uc002yzq.1	31	-
+chr21	42094222	42172660	uc002yzr.1	25	-
+chr21	42178287	42247068	uc002yzw.1	14	-
+chr21	42178287	42219868	uc002yzv.1	13	-
+chr21	42178287	42212211	uc002yzu.1	11	-
+chr21	42178287	42201421	uc002yzt.1	6	-
+chr21	42178287	42194927	uc002yzs.1	3	-
+chr21	42194130	42219868	uc002yzx.1	11	-
+chr21	42280008	42303565	uc002zaa.2	4	-
+chr21	42280008	42303565	uc002yzy.2	2	-
+chr21	42280008	42303565	uc002zab.2	3	-
+chr21	42280008	42303565	uc002yzz.2	4	-
+chr21	42284072	42287273	uc010gou.1	1	-
+chr21	42285670	42303565	uc010gov.1	4	-
+chr21	42285670	42303565	uc002zac.2	4	-
+chr21	42356136	42436174	uc002zae.1	22	+
+chr21	42356136	42436174	uc002zad.1	23	+
+chr21	42364494	42436174	uc002zag.1	22	+
+chr21	42364494	42436174	uc002zaf.1	23	+
+chr21	42368072	42370042	uc002zah.1	1	-
+chr21	42378469	42397266	uc002zaj.1	7	+
+chr21	42378469	42397266	uc010gow.1	7	+
+chr21	42378469	42397266	uc002zai.1	8	+
+chr21	42378469	42397266	uc010gox.1	7	+
+chr21	42378469	42397266	uc010goy.1	7	+
+chr21	42378481	42397266	uc010goz.1	5	+
+chr21	42395312	42401630	uc002zak.1	2	-
+chr21	42413697	42436174	uc002zal.1	9	+
+chr21	42420850	42430820	uc010gpa.1	4	+
+chr21	42492867	42590423	uc002zam.1	17	+
+chr21	42492867	42590423	uc002zan.1	16	+
+chr21	42509255	42590423	uc002zao.1	15	+
+chr21	42512335	42590423	uc002zaq.1	15	+
+chr21	42512335	42590423	uc002zap.1	15	+
+chr21	42513076	42590423	uc002zar.1	15	+
+chr21	42579058	42588512	uc010gpb.1	6	+
+chr21	42592172	42593987	uc002zau.2	1	+
+chr21	42605231	42608775	uc002zav.1	3	-
+chr21	42639535	42644176	uc002zaw.1	4	-
+chr21	42655459	42659713	uc002zax.1	3	-
+chr21	42665067	42689269	uc002zbc.1	13	-
+chr21	42665067	42689269	uc002zbb.1	13	-
+chr21	42665067	42683596	uc002zba.1	11	-
+chr21	42665067	42682296	uc002zaz.1	10	-
+chr21	42665067	42676929	uc002zay.1	5	-
+chr21	42675053	42689269	uc002zbd.1	9	-
+chr21	42697087	42740843	uc010gpe.1	12	+
+chr21	42697087	42740843	uc010gpd.1	14	+
+chr21	42697087	42740843	uc010gpc.1	14	+
+chr21	42697087	42740843	uc002zbf.1	14	+
+chr21	42697087	42740843	uc002zbe.1	15	+
+chr21	42765665	42789470	uc002zbg.1	9	-
+chr21	42789186	42811689	uc002zbh.1	3	+
+chr21	42792810	42874619	uc002zbi.1	21	+
+chr21	42807092	42874619	uc002zbj.1	20	+
+chr21	42892458	42908237	uc002zbk.1	2	-
+chr21	42941483	42944423	uc002zbl.2	2	-
+chr21	42946930	43068687	uc002zbx.1	19	+
+chr21	42946930	43068687	uc002zby.1	14	+
+chr21	42946930	43068687	uc002zbz.1	20	+
+chr21	42946930	43068687	uc002zca.1	19	+
+chr21	42946930	43068687	uc002zcb.1	19	+
+chr21	42946930	43068687	uc002zcc.1	18	+
+chr21	42946930	43068687	uc002zcd.1	18	+
+chr21	42946930	43068687	uc002zce.1	18	+
+chr21	42946930	43068687	uc002zcf.1	18	+
+chr21	42946930	43068687	uc002zcg.1	18	+
+chr21	42946930	43068687	uc002zbw.1	15	+
+chr21	42946930	43068687	uc002zbv.1	15	+
+chr21	42946930	43068687	uc002zbm.1	20	+
+chr21	42946930	43068687	uc002zbn.1	17	+
+chr21	42946930	43068687	uc002zbo.1	19	+
+chr21	42946930	43068687	uc002zbp.1	17	+
+chr21	42946930	43068687	uc002zbq.1	17	+
+chr21	42946930	43068687	uc002zbs.1	17	+
+chr21	42946930	43068687	uc002zbr.1	16	+
+chr21	42946930	43068687	uc002zbt.1	16	+
+chr21	42946930	43068687	uc002zbu.1	16	+
+chr21	43024936	43068687	uc002zch.1	15	+
+chr21	43036742	43059157	uc010gpf.1	9	+
+chr21	43136272	43172747	uc002zci.1	12	-
+chr21	43136869	43139149	uc002zcj.1	1	-
+chr21	43142404	43172747	uc002zcl.1	11	-
+chr21	43142404	43172747	uc010gpg.1	11	-
+chr21	43142404	43172747	uc002zck.1	11	-
+chr21	43143219	43172747	uc010gph.1	11	-
+chr21	43186446	43202842	uc002zcm.1	4	+
+chr21	43186446	43202842	uc002zcn.1	3	+
+chr21	43209994	43218800	uc002zco.1	2	-
+chr21	43267711	43326757	uc002zcq.1	11	+
+chr21	43267711	43322136	uc002zcp.1	10	+
+chr21	43297504	43311226	uc002zcr.2	5	+
+chr21	43346369	43361583	uc002zcs.1	14	-
+chr21	43346369	43369020	uc002zct.1	17	-
+chr21	43346369	43369020	uc002zcu.1	17	-
+chr21	43346369	43369493	uc002zcv.1	17	-
+chr21	43346371	43369493	uc002zcw.2	18	-
+chr21	43348252	43353725	uc002zcx.1	6	-
+chr21	43386134	43398431	uc002zcy.1	7	-
+chr21	43386134	43400757	uc002zcz.1	9	-
+chr21	43386134	43400757	uc002zda.1	8	-
+chr21	43386134	43400757	uc002zdb.1	8	-
+chr21	43386141	43400757	uc010gpi.1	7	-
+chr21	43390818	43400757	uc002zdc.1	3	-
+chr21	43462209	43465982	uc002zdd.1	3	+
+chr21	43658826	43671430	uc002zdf.1	14	-
+chr21	43694331	43698210	uc002zdg.1	3	+
+chr21	43706401	43722531	uc002zdh.1	4	-
+chr21	43773499	43903802	uc002zdi.1	9	-
+chr21	43809497	43809957	uc002zdj.1	1	+
+chr21	43903859	43940388	uc002zdk.1	16	+
+chr21	43930440	43940388	uc002zdl.1	5	+
+chr21	43963405	44006616	uc002zdn.2	10	+
+chr21	43963405	44006616	uc010gpj.1	10	+
+chr21	43963405	44006616	uc002zdm.2	11	+
+chr21	43973208	43983169	uc002zdp.2	4	+
+chr21	43973208	43983140	uc002zdo.1	4	+
+chr21	43985728	44006616	uc002zdq.2	10	+
+chr21	44018258	44020687	uc002zdr.1	3	-
+chr21	44033845	44048411	uc002zds.2	13	+
+chr21	44033845	44048411	uc010gpk.1	12	+
+chr21	44037239	44048411	uc010gpl.1	10	+
+chr21	44041669	44048411	uc010gpm.1	8	+
+chr21	44050068	44054670	uc002zdt.1	4	-
+chr21	44050068	44054670	uc010gpn.1	2	-
+chr21	44050068	44056876	uc002zdu.1	2	-
+chr21	44109543	44231903	uc002zdv.1	10	+
+chr21	44169706	44231903	uc002zdw.1	9	+
+chr21	44191238	44231903	uc002zdx.1	11	+
+chr21	44203942	44231903	uc002zdy.1	9	+
+chr21	44256633	44304536	uc002zdz.2	7	+
+chr21	44256633	44350860	uc002zea.1	23	+
+chr21	44256633	44350860	uc010gpo.1	24	+
+chr21	44351635	44375491	uc002zeb.1	21	+
+chr21	44377921	44390033	uc002zed.2	6	+
+chr21	44377921	44390033	uc002zec.2	7	+
+chr21	44471149	44485262	uc002zee.1	7	-
+chr21	44471149	44485262	uc002zef.1	6	-
+chr21	44473907	44485262	uc010gpp.1	6	-
+chr21	44490650	44506527	uc002zeh.1	12	-
+chr21	44490650	44506527	uc002zeg.1	12	-
+chr21	44530190	44542530	uc002zei.1	14	+
+chr21	44534575	44542530	uc002zej.1	8	+
+chr21	44534575	44542530	uc010gpq.1	9	+
+chr21	44534701	44542530	uc010gpr.1	7	+
+chr21	44544357	44571684	uc002zek.1	25	+
+chr21	44544357	44571684	uc002zel.1	22	+
+chr21	44563661	44571684	uc002zen.1	10	+
+chr21	44563661	44571684	uc002zem.1	11	+
+chr21	44573254	44583713	uc002zer.2	7	-
+chr21	44573254	44583713	uc002zeq.2	7	-
+chr21	44573254	44583713	uc002zep.2	7	-
+chr21	44573254	44583095	uc002zeo.1	8	-
+chr21	44573254	44578835	uc010gps.1	4	-
+chr21	44578846	44583095	uc002zes.1	3	-
+chr21	44594473	44687392	uc002zet.1	33	+
+chr21	44597566	44687392	uc002zeu.1	32	+
+chr21	44597911	44687392	uc002zew.1	32	+
+chr21	44597911	44687392	uc010gpt.1	33	+
+chr21	44613431	44687392	uc002zex.1	28	+
+chr21	44635582	44687392	uc002zey.1	21	+
+chr21	44658905	44661051	uc002zez.1	2	-
+chr21	44699820	44703167	uc002zfa.1	2	+
+chr21	44700955	44701729	uc010gpu.1	1	+
+chr21	44722649	44722699	uc002zfb.1	1	-
+chr21	44728608	44728644	uc002zfc.1	1	-
+chr21	44737584	44737655	uc002zfd.1	1	-
+chr21	44742202	44955923	uc010gpv.1	13	-
+chr21	44742202	44955923	uc002zfe.1	12	-
+chr21	44761525	44765140	uc002zfg.2	2	+
+chr21	44761525	44765140	uc002zff.2	3	+
+chr21	44783495	44784506	uc002zfh.1	1	-
+chr21	44794745	44795816	uc002zfi.1	1	-
+chr21	44802333	44803071	uc002zfj.1	1	-
+chr21	44818033	44819415	uc002zfk.1	1	+
+chr21	44823991	44824909	uc002zfl.1	1	-
+chr21	44835576	44836814	uc002zfm.1	1	-
+chr21	44844924	44846519	uc002zfn.2	2	+
+chr21	44856423	44857299	uc002zfo.1	1	+
+chr21	44871467	44872723	uc002zfp.2	1	+
+chr21	44881700	44882800	uc002zfq.1	1	+
+chr21	44890758	44891994	uc002zfr.2	1	+
+chr21	44898557	44899004	uc002zfs.1	1	-
+chr21	44902276	44902686	uc002zft.1	1	+
+chr21	44910533	44911272	uc002zfu.1	1	-
+chr21	44925918	44926506	uc002zfv.1	1	-
+chr21	44941514	44942387	uc002zfw.1	1	+
+chr21	45013382	45046166	uc002zfy.1	6	-
+chr21	45013382	45046166	uc002zfx.1	7	-
+chr21	45049959	45062472	uc002zfz.1	4	-
+chr21	45049959	45062472	uc002zga.1	4	-
+chr21	45093940	45118169	uc002zgb.1	6	-
+chr21	45130296	45173181	uc002zgg.1	16	-
+chr21	45130296	45165393	uc010gpw.1	15	-
+chr21	45130296	45165393	uc002zgf.2	16	-
+chr21	45130296	45155785	uc002zge.1	16	-
+chr21	45130296	45155169	uc002zgd.1	15	-
+chr21	45165393	45174016	uc002zgh.2	4	+
+chr21	45177156	45179316	uc002zgi.1	2	-
+chr21	45179070	45184188	uc002zgk.2	3	-
+chr21	45179070	45184188	uc002zgj.2	4	-
+chr21	45184382	45221316	uc002zgl.1	6	+
+chr21	45184382	45221316	uc002zgm.1	6	+
+chr21	45235614	45238429	uc002zgn.1	2	-
+chr21	45243556	45249070	uc002zgo.2	2	-
+chr21	45318942	45470902	uc002zgu.1	12	+
+chr21	45318942	45470902	uc002zgw.1	12	+
+chr21	45318942	45470902	uc002zgv.1	12	+
+chr21	45318942	45470902	uc002zgt.1	11	+
+chr21	45318942	45470902	uc002zgs.1	13	+
+chr21	45318942	45470902	uc002zgr.1	13	+
+chr21	45318942	45470902	uc010gpx.1	11	+
+chr21	45318942	45470902	uc002zgq.1	13	+
+chr21	45318942	45390638	uc002zgp.1	10	+
+chr21	45415952	45470902	uc002zgy.1	10	+
+chr21	45478694	45503073	uc002zgz.1	3	+
+chr21	45508270	45532239	uc002zhd.1	8	-
+chr21	45508270	45532239	uc002zhc.1	9	-
+chr21	45508270	45532239	uc002zhb.1	10	-
+chr21	45508270	45521753	uc002zha.1	6	-
+chr21	45532394	45536081	uc002zhe.1	3	+
+chr21	45539291	45541696	uc002zhf.1	1	+
+chr21	45649524	45758062	uc002zhg.1	42	+
+chr21	45664058	45669413	uc002zhh.1	3	-
+chr21	45699851	45758062	uc002zhi.1	41	+
+chr21	45742542	45788753	uc010gpy.1	6	-
+chr21	45748757	45758062	uc002zhj.1	9	+
+chr21	45751841	45758062	uc002zhk.1	5	+
+chr21	45759056	45786779	uc002zhl.1	6	-
+chr21	45759056	45786779	uc010gpz.1	6	-
+chr21	45759056	45786779	uc002zhm.1	6	-
+chr21	45837995	45841691	uc002zhn.1	2	+
+chr21	45877516	45878815	uc010gqa.1	1	+
+chr21	45888110	46180046	uc010gqb.1	14	+
+chr21	46072302	46080761	uc002zho.1	3	-
+chr21	46092504	46186795	uc002zhp.1	14	+
+chr21	46094302	46162867	uc010gqc.1	8	+
+chr21	46094302	46186795	uc002zhq.1	14	+
+chr21	46094302	46186795	uc002zhr.1	14	+
+chr21	46094302	46186795	uc002zhs.1	13	+
+chr21	46140549	46186795	uc002zht.1	13	+
+chr21	46226090	46249391	uc002zhu.1	35	+
+chr21	46242041	46249391	uc010gqd.1	13	+
+chr21	46245538	46249391	uc002zhv.1	6	+
+chr21	46246830	46249391	uc002zhw.1	3	+
+chr21	46281393	46283633	uc002zhx.1	2	+
+chr21	46342460	46377191	uc002zib.1	9	+
+chr21	46342460	46377191	uc002zia.1	28	+
+chr21	46342460	46374147	uc002zhz.1	28	+
+chr21	46342460	46374147	uc002zhy.1	28	+
+chr21	46370831	46377191	uc002zic.1	2	+
+chr21	46374170	46377189	uc010gqe.1	1	+
+chr21	46380603	46399909	uc002zig.1	15	-
+chr21	46380603	46399909	uc002zif.1	15	-
+chr21	46380603	46387083	uc002zie.1	5	-
+chr21	46381121	46399909	uc002zih.1	14	-
+chr21	46381121	46399909	uc010gqf.1	13	-
+chr21	46381326	46399909	uc010gqg.1	14	-
+chr21	46405497	46428729	uc002zii.1	4	-
+chr21	46432787	46473119	uc002zij.1	23	-
+chr21	46433466	46473079	uc002zik.1	21	-
+chr21	46433466	46473119	uc002zil.1	22	-
+chr21	46473585	46496032	uc002zim.2	3	+
+chr21	46473585	46496032	uc002zin.2	4	+
+chr21	46479475	46529664	uc002zir.1	28	-
+chr21	46479475	46511294	uc002ziq.1	18	-
+chr21	46479475	46503607	uc002zip.1	13	-
+chr21	46479475	46491502	uc002zio.1	7	-
+chr21	46480565	46496171	uc002zis.1	3	+
+chr21	46530694	46542093	uc010gqh.1	4	+
+chr21	46530694	46542093	uc002ziy.1	4	+
+chr21	46530694	46542093	uc002zix.1	5	+
+chr21	46530694	46542093	uc002ziw.1	5	+
+chr21	46530694	46542093	uc002ziv.1	5	+
+chr21	46530694	46536539	uc002ziu.1	3	+
+chr21	46530694	46536539	uc002zit.1	3	+
+chr21	46537349	46539139	uc010gqi.1	2	+
+chr21	46544772	46565167	uc002zja.2	9	-
+chr21	46544772	46562562	uc002ziz.2	7	-
+chr21	46545474	46563479	uc002zjc.1	7	-
+chr21	46545474	46568213	uc002zjf.1	8	-
+chr21	46545477	46568213	uc010gqj.1	9	-
+chr21	46559057	46568213	uc002zjg.1	6	-
+chr21	46568463	46690110	uc002zji.2	47	+
+chr21	46569229	46690110	uc002zjj.1	47	+
+chr21	46578738	46594162	uc010gqk.1	6	+
+chr21	46699327	46703021	uc002zjk.1	2	-
+chr21	46703317	46790647	uc002zjl.1	20	+
+chr21	46703317	46791548	uc002zjm.1	21	+
+chr21	46703317	46791548	uc010gql.1	20	+
+chr21	46703317	46813028	uc002zjo.1	38	+
+chr21	46703317	46794451	uc002zjn.1	22	+
+chr21	46748653	46789614	uc002zjp.1	14	+
+chr21	46783075	46791548	uc002zjq.1	5	+
+chr21	46797251	46803437	uc002zjr.2	7	+
+chr21	46805625	46813028	uc002zjs.1	5	+
+chr21	46808123	46813028	uc002zjt.1	4	+
+chr21	46842958	46849463	uc002zjv.1	4	-
+chr21	46842958	46849463	uc002zju.1	3	-
+chr21	46879954	46904483	uc002zjw.2	7	+
+chr21	46879954	46909291	uc002zjx.1	12	+
+chr21	46879954	46909291	uc002zjy.1	11	+
+chr21	46879954	46909291	uc010gqm.1	9	+
+chr21	46887625	46906276	uc002zjz.1	6	+
diff --git a/src/intersectBed/chr21.genes.txt b/src/intersectBed/chr21.genes.txt
new file mode 100644
index 0000000000000000000000000000000000000000..841b687392be9648a34cb16319bf60dae3471665
--- /dev/null
+++ b/src/intersectBed/chr21.genes.txt
@@ -0,0 +1,828 @@
+uc002yip.1	chr21	-	9928613	10012791	24
+uc002yiq.1	chr21	-	9928613	10012791	23
+uc002yir.1	chr21	-	9928613	10012791	22
+uc010gkv.1	chr21	-	9928613	10012791	19
+uc002yis.1	chr21	-	9928613	10061300	33
+uc002yiu.1	chr21	-	10042683	10120808	9
+uc002yit.1	chr21	-	10042683	10120796	10
+uc002yiv.1	chr21	-	10079666	10120808	4
+uc002yiw.1	chr21	-	10080031	10081687	2
+uc002yix.2	chr21	-	10081660	10120796	3
+uc002yiy.2	chr21	+	13332351	13346202	5
+uc002yiz.2	chr21	+	13336975	13346202	4
+uc002yja.2	chr21	+	13361138	13412440	3
+uc002yjb.1	chr21	+	13904368	13935777	11
+uc002yjc.1	chr21	+	13944438	13944477	1
+uc002yjd.1	chr21	+	13945076	13945106	1
+uc002yje.1	chr21	-	13973491	13975330	1
+uc002yjf.1	chr21	-	14137333	14142556	6
+uc002yjg.1	chr21	+	14200023	14200052	1
+uc002yjh.1	chr21	-	14202070	14202096	1
+uc002yji.1	chr21	-	14237966	14274631	6
+uc002yjj.2	chr21	-	14270940	14274631	2
+uc002yjk.2	chr21	+	14321612	14438647	3
+uc002yjl.2	chr21	+	14321612	14438730	3
+uc002yjm.1	chr21	-	14403005	14501125	10
+uc010gkw.1	chr21	-	14459414	14483611	4
+uc002yjp.2	chr21	+	14510336	14522564	4
+uc002yjn.2	chr21	+	14510336	14522564	5
+uc002yjo.2	chr21	+	14510336	14522564	5
+uc002yjq.1	chr21	+	14567990	14585577	5
+uc002yjr.1	chr21	+	14567990	14595563	6
+uc010gkx.1	chr21	+	14567990	14595563	5
+uc002yjs.2	chr21	+	14567990	14632206	14
+uc002yjt.1	chr21	-	14665307	14677380	5
+uc002yjv.1	chr21	-	14779419	14877594	9
+uc010gky.1	chr21	-	14779419	14840535	4
+uc002yju.1	chr21	-	14779419	14840535	8
+uc002yjw.1	chr21	-	15117160	15151900	3
+uc002yjx.1	chr21	-	15255426	15262718	1
+uc010gkz.1	chr21	-	15258731	15358997	4
+uc010gla.1	chr21	+	16024366	16174248	11
+uc002yjz.1	chr21	+	16024366	16174248	25
+uc002yjy.1	chr21	+	16024366	16174248	24
+uc010glb.1	chr21	+	16085691	16113036	5
+uc002yka.1	chr21	+	16364712	16901413	8
+uc002ykb.1	chr21	+	16364712	16901413	8
+uc010glc.1	chr21	+	16365304	16365529	1
+uc002ykc.1	chr21	+	16488569	16901413	6
+uc002ykd.1	chr21	+	16833279	16833360	1
+uc002yke.1	chr21	+	16834014	16834106	1
+uc002ykf.1	chr21	+	16884427	16884516	1
+uc002ykg.1	chr21	+	17733107	17743132	4
+uc002yki.1	chr21	+	17807200	17861137	7
+uc010gle.1	chr21	+	17807200	17859800	3
+uc010gld.1	chr21	+	17807200	17859800	4
+uc002ykh.1	chr21	+	17807200	17859800	5
+uc002ykj.1	chr21	+	17841215	17887768	7
+uc002ykk.1	chr21	-	17887841	17907033	5
+uc002ykl.1	chr21	-	17887841	17907033	6
+uc002ykn.2	chr21	-	18071593	18086697	3
+uc002ykm.2	chr21	-	18071593	18086697	4
+uc002ykq.2	chr21	-	18083154	18113574	5
+uc002yko.2	chr21	-	18083154	18113574	5
+uc002ykp.2	chr21	-	18083154	18113574	4
+uc002ykr.1	chr21	+	18195450	18561558	7
+uc002yku.1	chr21	+	18211407	18561558	5
+uc002ykt.1	chr21	+	18211407	18561558	6
+uc002yks.1	chr21	+	18211407	18561558	7
+uc002ykv.1	chr21	+	18539020	18561558	6
+uc002ykw.1	chr21	-	18563560	18697844	25
+uc010glf.1	chr21	-	18855455	19032214	4
+uc002ykx.2	chr21	-	18855455	19054001	4
+uc002ylc.2	chr21	-	21036784	21097287	7
+uc002ylb.2	chr21	-	21036784	21097287	7
+uc002yla.2	chr21	-	21036784	21097287	7
+uc002ykz.2	chr21	-	21036784	21097287	8
+uc002yky.2	chr21	-	21036784	21097287	8
+uc002yld.1	chr21	+	21292503	21833085	18
+uc002yle.2	chr21	+	22041175	22091604	5
+uc002ylf.2	chr21	-	22303349	22392649	6
+uc002ylg.1	chr21	+	22392806	22410718	6
+uc002ylh.1	chr21	-	22462158	22462605	1
+uc002yli.1	chr21	+	24722924	24784492	6
+uc002ylj.2	chr21	+	25134734	25351923	4
+uc002ylk.1	chr21	-	25680009	25725884	5
+uc010glg.1	chr21	-	25680009	25725884	4
+uc002ylm.2	chr21	+	25856312	25869344	3
+uc002yll.1	chr21	+	25856375	25869344	1
+uc002yln.1	chr21	-	25879838	25901672	11
+uc002ylo.1	chr21	-	25879838	25901672	10
+uc010gli.1	chr21	+	25933459	26009106	8
+uc010glh.1	chr21	+	25933459	26009106	10
+uc002ylr.1	chr21	+	25933459	26009106	9
+uc002ylq.1	chr21	+	25933459	26009106	10
+uc002ylp.1	chr21	+	25933459	26009106	10
+uc002yls.1	chr21	-	26018661	26029836	4
+uc002ylt.1	chr21	-	26018661	26029836	4
+uc002ylu.1	chr21	-	26018661	26029836	4
+uc002ylv.1	chr21	-	26018661	26029836	4
+uc002ylw.1	chr21	-	26018661	26029836	4
+uc002ylx.2	chr21	+	26028751	26066642	10
+uc002yly.2	chr21	+	26029199	26066642	10
+uc010glj.1	chr21	-	26174731	26465003	15
+uc002ylz.1	chr21	-	26174731	26465003	18
+uc002yma.1	chr21	-	26174731	26465003	17
+uc002ymb.1	chr21	-	26174731	26465003	16
+uc010glk.1	chr21	-	26316026	26434649	6
+uc002ymc.1	chr21	-	26460085	26461513	1
+uc002ymd.1	chr21	-	26760398	26867452	4
+uc002yme.2	chr21	-	26762117	26867452	4
+uc002ymf.1	chr21	-	27130476	27139599	9
+uc002ymg.1	chr21	-	27212111	27260703	8
+uc002ymh.2	chr21	-	27653075	27742769	4
+uc002ymj.2	chr21	+	28307571	28317143	2
+uc002ymk.1	chr21	+	28342603	28431799	5
+uc002yml.2	chr21	-	28410287	28522857	6
+uc002ymm.2	chr21	+	28833510	28834547	2
+uc002ymn.2	chr21	+	28833510	28834547	2
+uc002ymp.1	chr21	-	29166383	29179564	5
+uc002ymo.1	chr21	-	29166383	29179564	6
+uc002ymq.1	chr21	-	29166384	29179564	7
+uc002ymr.1	chr21	-	29222336	29287095	30
+uc010gll.1	chr21	-	29260562	29281126	10
+uc002ymv.1	chr21	-	29299950	29313554	4
+uc002ymu.1	chr21	-	29299950	29313554	4
+uc002ymt.1	chr21	-	29299950	29313554	6
+uc002yms.1	chr21	-	29299950	29313554	5
+uc002ymw.1	chr21	+	29318808	29348678	19
+uc002ymy.1	chr21	+	29318808	29348678	18
+uc002ymx.1	chr21	+	29318808	29348678	18
+uc010glm.1	chr21	-	29350518	29367881	14
+uc002ync.1	chr21	-	29350518	29367881	15
+uc002ynb.1	chr21	-	29350518	29367881	15
+uc002yna.1	chr21	-	29350518	29367827	15
+uc002ymz.1	chr21	-	29350518	29357059	5
+uc002ynd.1	chr21	+	29371824	29470073	10
+uc010gln.1	chr21	+	29371824	29470073	9
+uc002yne.1	chr21	+	29371824	29470073	8
+uc002ynf.1	chr21	+	29374743	29470073	9
+uc010glo.1	chr21	+	29416245	29470073	4
+uc002yng.1	chr21	+	29424835	29470073	5
+uc010glp.1	chr21	+	29439770	29470073	4
+uc002ynh.2	chr21	+	29487671	29582396	4
+uc002yni.2	chr21	+	29487685	29582396	2
+uc002ynj.1	chr21	+	29593090	29640340	5
+uc002ynk.1	chr21	+	29593607	29640340	5
+uc002ynl.1	chr21	+	29599430	29656086	8
+uc002ynn.1	chr21	-	29831124	30234153	16
+uc002yno.1	chr21	-	29847736	30234153	17
+uc010glq.1	chr21	-	29875615	30234153	10
+uc002ynp.1	chr21	+	29890230	29924938	3
+uc002ynr.2	chr21	-	29892990	30234153	8
+uc002yns.1	chr21	+	30043127	30058182	3
+uc002ynt.1	chr21	-	30460131	30460806	1
+uc002ynu.1	chr21	-	30508200	30510189	1
+uc002ynv.1	chr21	-	30575497	30577147	1
+uc010glr.1	chr21	-	30583333	30583703	1
+uc002ynw.1	chr21	-	30613320	30614478	1
+uc002ynx.1	chr21	-	30631201	30631883	1
+uc002yny.1	chr21	-	30642587	30642795	1
+uc002ynz.2	chr21	-	30665579	30666428	1
+uc002yoa.1	chr21	+	30690262	30691009	1
+uc002yob.1	chr21	-	30719581	30720101	1
+uc002yoc.1	chr21	+	30724464	30724947	1
+uc002yod.1	chr21	+	30734516	30734969	1
+uc002yoe.1	chr21	-	30774234	30774507	1
+uc002yof.1	chr21	-	30781379	30781538	1
+uc002yog.1	chr21	-	30785652	30786146	1
+uc002yoh.1	chr21	-	30791044	30791299	1
+uc002yoi.1	chr21	-	30796060	30796279	1
+uc002yok.1	chr21	-	30835724	30836052	1
+uc002yol.1	chr21	-	30855287	30855479	1
+uc002yom.1	chr21	+	30886629	30887245	1
+uc002yon.1	chr21	-	30892875	30893064	1
+uc002yoo.1	chr21	+	30895310	30895457	1
+uc002yop.1	chr21	-	30907875	30908094	1
+uc002yoq.1	chr21	+	30910644	30910815	1
+uc002yor.1	chr21	+	30929453	30929651	1
+uc010gls.1	chr21	+	30937053	30937326	1
+uc002yos.1	chr21	-	31041139	31041391	1
+uc002yot.1	chr21	-	31049327	31049567	1
+uc002you.1	chr21	-	31106885	31107441	1
+uc002yov.1	chr21	-	31174834	31175745	1
+uc010glt.1	chr21	-	31332348	31332666	1
+uc002yow.1	chr21	-	31412606	31853161	29
+uc002yox.1	chr21	-	31506817	31854161	9
+uc002yoy.2	chr21	+	31853428	31854471	2
+uc002yoz.1	chr21	-	31948741	31953684	3
+uc002ypa.1	chr21	+	31953805	31963114	5
+uc002ypb.1	chr21	+	31953849	31963114	5
+uc002ypc.1	chr21	+	31953892	31963114	5
+uc002ypd.1	chr21	-	31965417	32026133	20
+uc002ype.1	chr21	-	31965417	32026133	20
+uc010glu.1	chr21	-	31965417	32026133	19
+uc002ypf.1	chr21	-	31978178	31996102	14
+uc002ypg.1	chr21	-	31994942	32026133	7
+uc002yph.1	chr21	+	32167498	32298248	11
+uc002ypi.1	chr21	-	32562400	32573247	5
+uc002ypk.1	chr21	+	32585994	32608965	5
+uc002ypj.1	chr21	+	32585994	32606470	5
+uc010glv.1	chr21	+	32585994	32606470	4
+uc002ypl.1	chr21	+	32593031	32606470	3
+uc002ypm.2	chr21	-	32600647	32602916	2
+uc002ypn.1	chr21	-	32607648	32687021	39
+uc002ypo.1	chr21	-	32671366	32671502	1
+uc002ypt.1	chr21	+	32706622	32809568	6
+uc010glw.1	chr21	+	32706622	32809568	8
+uc002yps.1	chr21	+	32706622	32809568	7
+uc002ypr.1	chr21	+	32706622	32809568	8
+uc002ypq.1	chr21	+	32706622	32762234	4
+uc002ypu.1	chr21	+	32746363	32809568	7
+uc002ypv.1	chr21	-	32866419	32870062	4
+uc002ypw.2	chr21	-	32870732	32879714	5
+uc002ypz.1	chr21	-	32876380	32906537	6
+uc002ypy.1	chr21	-	32876380	32906537	7
+uc002ypx.1	chr21	-	32876380	32901897	3
+uc002yqa.2	chr21	-	32895854	32898694	2
+uc002yqb.2	chr21	-	32895854	32906537	5
+uc002yqc.1	chr21	-	32895977	32906537	7
+uc002yqd.1	chr21	-	32895977	32906537	6
+uc010glx.1	chr21	-	32895977	32906537	6
+uc002yqi.1	chr21	-	32922943	33022148	33
+uc002yqh.1	chr21	-	32922943	33022148	32
+uc002yqg.1	chr21	-	32922943	33022105	28
+uc002yqf.1	chr21	-	32922943	33022105	32
+uc002yqe.2	chr21	-	32922943	32936331	6
+uc002yqj.1	chr21	+	33022296	33027093	2
+uc002yqk.2	chr21	+	33022296	33037303	4
+uc002yqo.1	chr21	-	33028080	33066040	18
+uc002yqn.1	chr21	-	33028080	33066040	18
+uc002yqm.1	chr21	-	33028080	33050976	11
+uc002yql.1	chr21	-	33028080	33046092	10
+uc002yqp.1	chr21	-	33035520	33066040	16
+uc002yqq.1	chr21	-	33049593	33066040	8
+uc002yqr.2	chr21	-	33053537	33066040	6
+uc002yqs.2	chr21	+	33066281	33091884	4
+uc002yqt.2	chr21	+	33066306	33091884	2
+uc002yqu.2	chr21	+	33066387	33091884	4
+uc010gly.1	chr21	-	33084854	33107876	4
+uc002yqv.1	chr21	-	33084854	33107876	3
+uc002yqw.1	chr21	-	33084854	33107876	2
+uc010glz.1	chr21	-	33087858	33088602	1
+uc002yqx.1	chr21	+	33320108	33323370	2
+uc002yqy.2	chr21	+	33321040	33322012	1
+uc002yqz.1	chr21	+	33364442	33366596	1
+uc002yra.1	chr21	-	33459786	33464411	4
+uc002yrf.1	chr21	+	33524100	33558690	8
+uc002yre.1	chr21	+	33524100	33558690	9
+uc002yrd.1	chr21	+	33524100	33558690	9
+uc002yrc.1	chr21	+	33524100	33556932	9
+uc002yrb.1	chr21	+	33524100	33556932	9
+uc002yrg.1	chr21	+	33539667	33556932	6
+uc002yrh.1	chr21	+	33542883	33577416	6
+uc002yri.1	chr21	+	33542883	33577416	5
+uc002yrj.1	chr21	-	33558047	33560435	2
+uc002yrk.1	chr21	+	33560541	33591390	7
+uc002yrl.1	chr21	+	33562102	33591390	6
+uc002yrn.1	chr21	+	33619083	33653998	11
+uc002yrp.2	chr21	+	33697071	33731698	7
+uc002yrq.2	chr21	+	33697071	33731698	8
+uc010gma.1	chr21	+	33697071	33731698	8
+uc002yrr.2	chr21	+	33709055	33731698	6
+uc002yrs.1	chr21	-	33726662	33774151	9
+uc002yrt.1	chr21	-	33742958	33774151	7
+uc010gmb.1	chr21	-	33742958	33774151	8
+uc002yrv.1	chr21	-	33782107	33785660	2
+uc002yrw.1	chr21	-	33782107	33785893	2
+uc010gmc.1	chr21	-	33782403	33783570	1
+uc010gmd.1	chr21	-	33798141	33837065	22
+uc002yrz.1	chr21	-	33798141	33837006	22
+uc002yry.1	chr21	-	33798141	33836995	22
+uc002yrx.1	chr21	-	33798141	33836286	22
+uc002ysa.1	chr21	-	33818186	33836286	11
+uc002ysb.1	chr21	+	33837219	33851844	5
+uc002ysc.1	chr21	+	33837219	33854843	7
+uc002ysd.2	chr21	+	33837219	33871654	13
+uc002ysf.1	chr21	+	33837219	33871682	11
+uc002yse.1	chr21	+	33837219	33871682	12
+uc002ysg.2	chr21	+	33846423	33861642	5
+uc002ysh.2	chr21	+	33866544	33871654	5
+uc002ysi.1	chr21	-	33869652	33880357	9
+uc002ysm.1	chr21	-	33872080	33889790	13
+uc002ysl.1	chr21	-	33872080	33883137	9
+uc002ysk.1	chr21	-	33872080	33883137	10
+uc010gme.1	chr21	-	33872080	33883137	9
+uc002ysj.1	chr21	-	33872080	33881778	8
+uc002ysn.1	chr21	-	33878765	34206573	5
+uc010gmf.1	chr21	-	33883517	33936030	13
+uc002ysp.2	chr21	-	33888837	33889792	1
+uc002ysq.2	chr21	-	33889437	33891577	2
+uc002yst.1	chr21	-	33889906	33936030	10
+uc002yss.1	chr21	-	33889906	33936030	11
+uc002ysr.1	chr21	-	33889906	33936030	12
+uc002ysu.2	chr21	-	33910469	33936030	6
+uc002ysv.2	chr21	-	33933921	33936030	3
+uc002ytb.1	chr21	+	33936653	34183479	39
+uc002yta.1	chr21	+	33936653	34183479	40
+uc002ysx.1	chr21	+	33936653	34132672	29
+uc002ysy.1	chr21	+	33936653	34132672	29
+uc010gmj.1	chr21	+	33936653	34132672	28
+uc010gmi.1	chr21	+	33936653	34132672	30
+uc002ysw.1	chr21	+	33936653	34132672	30
+uc010gmh.1	chr21	+	33936653	34132672	26
+uc010gmg.1	chr21	+	33936653	34132672	27
+uc002ysz.1	chr21	+	33936653	34132672	27
+uc002yth.2	chr21	+	33936653	34132672	28
+uc002ytc.1	chr21	+	34012971	34111788	21
+uc010gmm.1	chr21	+	34012971	34183479	37
+uc002ytj.2	chr21	+	34012971	34183479	37
+uc010gml.1	chr21	+	34012971	34132672	25
+uc010gmk.1	chr21	+	34012971	34132672	27
+uc002ytd.1	chr21	+	34012971	34132672	29
+uc002yte.1	chr21	+	34016762	34132672	25
+uc002ytf.1	chr21	+	34096603	34111788	4
+uc002ytg.1	chr21	+	34112440	34123224	4
+uc002yti.1	chr21	+	34123141	34151031	5
+uc010gmn.1	chr21	+	34169527	34180634	5
+uc002ytk.1	chr21	+	34169527	34179696	3
+uc002ytl.1	chr21	-	34197626	34210028	7
+uc002ytm.1	chr21	-	34206462	34209898	3
+uc002ytn.2	chr21	+	34225295	34265357	3
+uc002ytp.2	chr21	+	34367692	34437204	3
+uc002yto.1	chr21	+	34367692	34400431	2
+uc002ytq.2	chr21	+	34389367	34391524	1
+uc002ytr.2	chr21	+	34474917	34477415	2
+uc002yts.1	chr21	+	34474917	34484090	2
+uc002ytt.1	chr21	+	34658192	34665310	2
+uc010gmo.1	chr21	+	34664647	34665019	1
+uc002ytw.2	chr21	+	34669618	34696944	5
+uc002ytv.2	chr21	+	34669618	34696944	4
+uc002ytu.2	chr21	+	34669618	34683322	4
+uc002yty.1	chr21	-	34712882	34718134	2
+uc002yua.1	chr21	-	34740857	34806443	4
+uc010gmr.1	chr21	-	34740857	34805483	3
+uc010gmq.1	chr21	-	34740857	34753772	3
+uc002ytz.1	chr21	-	34740857	34753772	3
+uc010gmp.1	chr21	-	34740857	34749933	2
+uc010gms.1	chr21	-	34743412	34743802	1
+uc002yue.1	chr21	-	34810653	34909252	4
+uc002yud.1	chr21	-	34810653	34908615	4
+uc002yuc.1	chr21	-	34810653	34908012	4
+uc002yub.1	chr21	-	34810653	34821131	4
+uc002yuf.1	chr21	+	34963557	35012389	6
+uc010gmt.1	chr21	+	34963557	35012389	7
+uc002yug.2	chr21	+	35040013	35079036	3
+uc010gmu.1	chr21	-	35081967	35343437	9
+uc010gmv.1	chr21	-	35081967	35343465	9
+uc002yuj.2	chr21	-	35081967	35343465	7
+uc002yuk.2	chr21	-	35081967	35343511	8
+uc002yui.1	chr21	-	35081967	35182857	5
+uc002yuh.1	chr21	-	35081967	35182857	6
+uc002yum.1	chr21	-	35091579	35343125	5
+uc002yul.1	chr21	-	35091579	35128768	3
+uc002yun.1	chr21	-	35115443	35124138	2
+uc002yuo.1	chr21	-	35115443	35182857	5
+uc002yup.1	chr21	-	35117630	35120573	1
+uc010gmw.1	chr21	-	35127127	35343465	7
+uc002yur.1	chr21	-	35153500	35174880	2
+uc002yus.1	chr21	+	35153640	35153741	1
+uc002yut.1	chr21	-	35181009	36278917	11
+uc002yuv.1	chr21	-	36328708	36358576	14
+uc002yuu.1	chr21	-	36328708	36354789	11
+uc002yux.1	chr21	-	36328709	36354789	12
+uc002yuw.1	chr21	-	36328709	36354429	10
+uc002yuz.1	chr21	-	36337851	36354481	8
+uc002yuy.1	chr21	-	36337851	36354481	7
+uc002yva.1	chr21	-	36337851	36373557	8
+uc010gmy.1	chr21	+	36364154	36367334	3
+uc002yvb.1	chr21	+	36364154	36367332	3
+uc010gmx.1	chr21	+	36364154	36365751	2
+uc002yvc.1	chr21	-	36425934	36450475	4
+uc002yvd.1	chr21	-	36425934	36450475	3
+uc002yve.1	chr21	+	36429132	36440730	3
+uc002yvf.1	chr21	-	36435563	36450475	3
+uc002yvg.1	chr21	+	36458708	36588442	37
+uc002yvh.2	chr21	+	36539215	36556078	6
+uc002yvi.1	chr21	+	36614375	36670814	17
+uc010gmz.1	chr21	+	36632941	36633667	1
+uc002yvj.1	chr21	+	36679558	36710995	14
+uc002yvo.1	chr21	-	36754789	36870737	3
+uc002yvn.1	chr21	-	36754789	36836768	3
+uc002yvm.1	chr21	-	36754789	36774258	2
+uc002yvl.1	chr21	-	36754789	36774258	3
+uc002yvk.1	chr21	-	36754789	36760595	2
+uc010gna.1	chr21	-	36755143	36755863	1
+uc002yvp.2	chr21	+	36993860	37004772	2
+uc002yvq.1	chr21	+	36993860	37040485	10
+uc002yvr.1	chr21	+	36993860	37044088	11
+uc002yvs.1	chr21	-	37045058	37284373	12
+uc010gnb.1	chr21	-	37045058	37256340	11
+uc010gnc.1	chr21	-	37224420	37260808	5
+uc002yvu.1	chr21	+	37300319	37313828	4
+uc010gnd.1	chr21	+	37300319	37313828	3
+uc002yvv.1	chr21	+	37300732	37313828	4
+uc002yvy.1	chr21	-	37359533	37367328	6
+uc002yvx.1	chr21	-	37359533	37367328	5
+uc002yvw.1	chr21	-	37359533	37366973	4
+uc002yvz.1	chr21	+	37367440	37497278	46
+uc010gne.1	chr21	+	37367444	37438815	21
+uc002ywa.1	chr21	+	37377116	37497278	46
+uc010gnf.1	chr21	+	37379959	37497278	44
+uc002ywb.1	chr21	+	37379959	37497278	45
+uc002ywc.1	chr21	+	37401907	37497278	36
+uc002ywd.1	chr21	+	37450826	37480250	10
+uc010gng.1	chr21	+	37502673	37514868	5
+uc010gnh.1	chr21	+	37502673	37514868	4
+uc010gni.1	chr21	+	37502673	37514868	4
+uc010gnj.1	chr21	+	37502673	37514868	3
+uc010gnk.1	chr21	+	37514496	37515910	1
+uc010gnl.1	chr21	-	37517595	37534810	6
+uc002ywf.1	chr21	-	37517595	37561703	8
+uc010gnm.1	chr21	-	37517595	37561703	10
+uc010gnn.1	chr21	-	37517595	37561703	9
+uc002ywi.1	chr21	+	37661728	37809549	13
+uc002ywh.1	chr21	+	37661728	37780786	5
+uc002ywg.1	chr21	+	37661728	37767052	3
+uc010gno.1	chr21	+	37661728	37767052	4
+uc002ywj.1	chr21	+	37713076	37809549	11
+uc002ywl.1	chr21	+	37714470	37809549	11
+uc002ywm.1	chr21	+	37714470	37809549	10
+uc002ywk.1	chr21	+	37714470	37809549	11
+uc002ywn.1	chr21	-	37901635	37904535	1
+uc002ywo.1	chr21	-	37918656	38210566	4
+uc002ywp.1	chr21	-	38348182	38415324	3
+uc010gns.1	chr21	+	38415436	38450474	3
+uc010gnr.1	chr21	+	38415436	38450474	3
+uc010gnq.1	chr21	+	38415436	38450474	4
+uc010gnp.1	chr21	+	38415436	38450474	4
+uc002ywt.2	chr21	+	38415436	38450474	4
+uc010gnt.1	chr21	+	38500119	38502606	3
+uc002ywv.1	chr21	+	38550533	38595616	4
+uc002yww.1	chr21	+	38550739	38595616	3
+uc002ywx.1	chr21	+	38566298	38595616	3
+uc002ywy.2	chr21	+	38567267	38569311	1
+uc010gnu.1	chr21	+	38593053	38594181	1
+uc002ywz.1	chr21	-	38661052	38955488	12
+uc002yxa.1	chr21	-	38675670	38792267	10
+uc010gnv.1	chr21	-	38675670	38878739	9
+uc010gnw.1	chr21	-	38675670	38954461	12
+uc010gnx.1	chr21	-	38675670	38954461	11
+uc002yxb.1	chr21	-	38675670	38955488	11
+uc010gny.1	chr21	-	38686167	38697501	2
+uc002yxc.2	chr21	-	38693868	38955488	8
+uc010gnz.1	chr21	-	38764567	38955488	5
+uc010goa.1	chr21	-	39032820	39046051	4
+uc002yxd.2	chr21	-	39032820	39067271	7
+uc002yxf.1	chr21	+	39099100	39118748	11
+uc002yxg.1	chr21	+	39099718	39118748	10
+uc002yxh.1	chr21	-	39171084	39232223	4
+uc010gob.1	chr21	-	39469253	39477310	6
+uc002yxj.1	chr21	-	39469253	39477310	6
+uc002yxi.1	chr21	-	39469253	39477310	7
+uc010goc.1	chr21	-	39479273	39558815	26
+uc002yxk.1	chr21	-	39479273	39607426	42
+uc002yxl.1	chr21	-	39484017	39607426	42
+uc010god.1	chr21	-	39496120	39523232	12
+uc010goi.1	chr21	-	39530390	39574044	14
+uc010goh.1	chr21	-	39530390	39574044	14
+uc010gog.1	chr21	-	39530390	39574044	15
+uc010gof.1	chr21	-	39530390	39574044	15
+uc010goe.1	chr21	-	39530390	39574044	15
+uc002yxm.1	chr21	-	39590234	39607426	5
+uc002yxo.1	chr21	-	39636110	39642917	6
+uc002yxp.1	chr21	-	39636110	39642917	8
+uc002yxq.1	chr21	-	39636110	39642917	7
+uc002yxr.1	chr21	-	39636110	39643140	8
+uc002yxs.1	chr21	+	39674139	39691486	5
+uc010goj.1	chr21	+	39681560	39691486	5
+uc002yxt.2	chr21	+	39681560	39691486	5
+uc002yxu.1	chr21	-	39699639	39737997	10
+uc002yxv.1	chr21	-	39699639	39739529	10
+uc002yxw.1	chr21	-	39715354	39739601	5
+uc002yxx.1	chr21	-	39715354	39739601	4
+uc002yxy.2	chr21	-	39715868	39732732	4
+uc002yxz.1	chr21	+	39739666	39809303	7
+uc002yya.1	chr21	+	39745649	39809303	7
+uc002yyb.1	chr21	+	39850238	39956685	5
+uc010gok.1	chr21	-	39890946	39906618	3
+uc002yyd.2	chr21	-	39899406	39906618	3
+uc002yyf.1	chr21	+	39906841	39953709	4
+uc002yye.2	chr21	+	39906841	39956685	3
+uc010gol.1	chr21	+	39924087	39953709	2
+uc002yyg.1	chr21	+	39924087	39953709	3
+uc002yyh.1	chr21	+	39936181	39953709	3
+uc010gom.1	chr21	+	39936181	39953709	2
+uc002yym.1	chr21	+	39951123	39956685	2
+uc002yyl.1	chr21	+	39951123	39956685	3
+uc002yyk.1	chr21	+	39951123	39956685	3
+uc002yyj.1	chr21	+	39951123	39956685	3
+uc002yyi.1	chr21	+	39951123	39956685	4
+uc010gon.1	chr21	+	39954356	39955289	1
+uc002yyn.1	chr21	+	40021551	40024477	3
+uc002yyo.1	chr21	+	40039203	40095893	9
+uc002yyp.1	chr21	+	40161216	40223192	3
+uc002yyq.1	chr21	-	40306212	41140909	33
+uc002yyr.1	chr21	-	40306212	41140909	33
+uc002yys.2	chr21	+	40676879	40679152	3
+uc002yyt.2	chr21	+	40676879	40679152	3
+uc002yyu.2	chr21	+	40676879	40679152	2
+uc002yyv.1	chr21	-	41435296	41441861	2
+uc002yyw.1	chr21	+	41461597	41570394	9
+uc002yyx.1	chr21	+	41461597	41570394	8
+uc002yyy.1	chr21	+	41461597	41570394	8
+uc002yyz.1	chr21	-	41469027	41479036	1
+uc010goo.1	chr21	+	41539758	41570394	2
+uc002yza.1	chr21	+	41598067	41651524	10
+uc002yzb.1	chr21	+	41610530	41651524	8
+uc002yzc.1	chr21	+	41610530	41651524	7
+uc002yzd.1	chr21	+	41616616	41651524	7
+uc002yze.1	chr21	+	41655819	41661103	2
+uc002yzf.1	chr21	+	41655819	41702739	14
+uc002yzg.1	chr21	+	41683339	41702739	9
+uc010gop.1	chr21	+	41692693	41702739	5
+uc002yzh.1	chr21	+	41714311	41753008	19
+uc002yzi.1	chr21	+	41720023	41753008	17
+uc010goq.1	chr21	+	41720023	41753008	15
+uc010gor.1	chr21	-	41758350	41801779	14
+uc002yzj.1	chr21	-	41758350	41801948	14
+uc010gos.1	chr21	-	41761530	41824913	14
+uc010got.1	chr21	-	42004748	42009004	7
+uc002yzm.1	chr21	+	42009664	42010809	3
+uc002yzn.1	chr21	-	42032597	42060318	8
+uc002yzo.1	chr21	-	42091453	42172660	24
+uc002yzp.1	chr21	-	42091453	42172660	25
+uc002yzq.1	chr21	-	42094222	42172660	31
+uc002yzr.1	chr21	-	42094222	42172660	25
+uc002yzw.1	chr21	-	42178287	42247068	14
+uc002yzv.1	chr21	-	42178287	42219868	13
+uc002yzu.1	chr21	-	42178287	42212211	11
+uc002yzt.1	chr21	-	42178287	42201421	6
+uc002yzs.1	chr21	-	42178287	42194927	3
+uc002yzx.1	chr21	-	42194130	42219868	11
+uc002zaa.2	chr21	-	42280008	42303565	4
+uc002yzy.2	chr21	-	42280008	42303565	2
+uc002zab.2	chr21	-	42280008	42303565	3
+uc002yzz.2	chr21	-	42280008	42303565	4
+uc010gou.1	chr21	-	42284072	42287273	1
+uc010gov.1	chr21	-	42285670	42303565	4
+uc002zac.2	chr21	-	42285670	42303565	4
+uc002zae.1	chr21	+	42356136	42436174	22
+uc002zad.1	chr21	+	42356136	42436174	23
+uc002zag.1	chr21	+	42364494	42436174	22
+uc002zaf.1	chr21	+	42364494	42436174	23
+uc002zah.1	chr21	-	42368072	42370042	1
+uc002zaj.1	chr21	+	42378469	42397266	7
+uc010gow.1	chr21	+	42378469	42397266	7
+uc002zai.1	chr21	+	42378469	42397266	8
+uc010gox.1	chr21	+	42378469	42397266	7
+uc010goy.1	chr21	+	42378469	42397266	7
+uc010goz.1	chr21	+	42378481	42397266	5
+uc002zak.1	chr21	-	42395312	42401630	2
+uc002zal.1	chr21	+	42413697	42436174	9
+uc010gpa.1	chr21	+	42420850	42430820	4
+uc002zam.1	chr21	+	42492867	42590423	17
+uc002zan.1	chr21	+	42492867	42590423	16
+uc002zao.1	chr21	+	42509255	42590423	15
+uc002zaq.1	chr21	+	42512335	42590423	15
+uc002zap.1	chr21	+	42512335	42590423	15
+uc002zar.1	chr21	+	42513076	42590423	15
+uc010gpb.1	chr21	+	42579058	42588512	6
+uc002zau.2	chr21	+	42592172	42593987	1
+uc002zav.1	chr21	-	42605231	42608775	3
+uc002zaw.1	chr21	-	42639535	42644176	4
+uc002zax.1	chr21	-	42655459	42659713	3
+uc002zbc.1	chr21	-	42665067	42689269	13
+uc002zbb.1	chr21	-	42665067	42689269	13
+uc002zba.1	chr21	-	42665067	42683596	11
+uc002zaz.1	chr21	-	42665067	42682296	10
+uc002zay.1	chr21	-	42665067	42676929	5
+uc002zbd.1	chr21	-	42675053	42689269	9
+uc010gpe.1	chr21	+	42697087	42740843	12
+uc010gpd.1	chr21	+	42697087	42740843	14
+uc010gpc.1	chr21	+	42697087	42740843	14
+uc002zbf.1	chr21	+	42697087	42740843	14
+uc002zbe.1	chr21	+	42697087	42740843	15
+uc002zbg.1	chr21	-	42765665	42789470	9
+uc002zbh.1	chr21	+	42789186	42811689	3
+uc002zbi.1	chr21	+	42792810	42874619	21
+uc002zbj.1	chr21	+	42807092	42874619	20
+uc002zbk.1	chr21	-	42892458	42908237	2
+uc002zbl.2	chr21	-	42941483	42944423	2
+uc002zbx.1	chr21	+	42946930	43068687	19
+uc002zby.1	chr21	+	42946930	43068687	14
+uc002zbz.1	chr21	+	42946930	43068687	20
+uc002zca.1	chr21	+	42946930	43068687	19
+uc002zcb.1	chr21	+	42946930	43068687	19
+uc002zcc.1	chr21	+	42946930	43068687	18
+uc002zcd.1	chr21	+	42946930	43068687	18
+uc002zce.1	chr21	+	42946930	43068687	18
+uc002zcf.1	chr21	+	42946930	43068687	18
+uc002zcg.1	chr21	+	42946930	43068687	18
+uc002zbw.1	chr21	+	42946930	43068687	15
+uc002zbv.1	chr21	+	42946930	43068687	15
+uc002zbm.1	chr21	+	42946930	43068687	20
+uc002zbn.1	chr21	+	42946930	43068687	17
+uc002zbo.1	chr21	+	42946930	43068687	19
+uc002zbp.1	chr21	+	42946930	43068687	17
+uc002zbq.1	chr21	+	42946930	43068687	17
+uc002zbs.1	chr21	+	42946930	43068687	17
+uc002zbr.1	chr21	+	42946930	43068687	16
+uc002zbt.1	chr21	+	42946930	43068687	16
+uc002zbu.1	chr21	+	42946930	43068687	16
+uc002zch.1	chr21	+	43024936	43068687	15
+uc010gpf.1	chr21	+	43036742	43059157	9
+uc002zci.1	chr21	-	43136272	43172747	12
+uc002zcj.1	chr21	-	43136869	43139149	1
+uc002zcl.1	chr21	-	43142404	43172747	11
+uc010gpg.1	chr21	-	43142404	43172747	11
+uc002zck.1	chr21	-	43142404	43172747	11
+uc010gph.1	chr21	-	43143219	43172747	11
+uc002zcm.1	chr21	+	43186446	43202842	4
+uc002zcn.1	chr21	+	43186446	43202842	3
+uc002zco.1	chr21	-	43209994	43218800	2
+uc002zcq.1	chr21	+	43267711	43326757	11
+uc002zcp.1	chr21	+	43267711	43322136	10
+uc002zcr.2	chr21	+	43297504	43311226	5
+uc002zcs.1	chr21	-	43346369	43361583	14
+uc002zct.1	chr21	-	43346369	43369020	17
+uc002zcu.1	chr21	-	43346369	43369020	17
+uc002zcv.1	chr21	-	43346369	43369493	17
+uc002zcw.2	chr21	-	43346371	43369493	18
+uc002zcx.1	chr21	-	43348252	43353725	6
+uc002zcy.1	chr21	-	43386134	43398431	7
+uc002zcz.1	chr21	-	43386134	43400757	9
+uc002zda.1	chr21	-	43386134	43400757	8
+uc002zdb.1	chr21	-	43386134	43400757	8
+uc010gpi.1	chr21	-	43386141	43400757	7
+uc002zdc.1	chr21	-	43390818	43400757	3
+uc002zdd.1	chr21	+	43462209	43465982	3
+uc002zdf.1	chr21	-	43658826	43671430	14
+uc002zdg.1	chr21	+	43694331	43698210	3
+uc002zdh.1	chr21	-	43706401	43722531	4
+uc002zdi.1	chr21	-	43773499	43903802	9
+uc002zdj.1	chr21	+	43809497	43809957	1
+uc002zdk.1	chr21	+	43903859	43940388	16
+uc002zdl.1	chr21	+	43930440	43940388	5
+uc002zdn.2	chr21	+	43963405	44006616	10
+uc010gpj.1	chr21	+	43963405	44006616	10
+uc002zdm.2	chr21	+	43963405	44006616	11
+uc002zdp.2	chr21	+	43973208	43983169	4
+uc002zdo.1	chr21	+	43973208	43983140	4
+uc002zdq.2	chr21	+	43985728	44006616	10
+uc002zdr.1	chr21	-	44018258	44020687	3
+uc002zds.2	chr21	+	44033845	44048411	13
+uc010gpk.1	chr21	+	44033845	44048411	12
+uc010gpl.1	chr21	+	44037239	44048411	10
+uc010gpm.1	chr21	+	44041669	44048411	8
+uc002zdt.1	chr21	-	44050068	44054670	4
+uc010gpn.1	chr21	-	44050068	44054670	2
+uc002zdu.1	chr21	-	44050068	44056876	2
+uc002zdv.1	chr21	+	44109543	44231903	10
+uc002zdw.1	chr21	+	44169706	44231903	9
+uc002zdx.1	chr21	+	44191238	44231903	11
+uc002zdy.1	chr21	+	44203942	44231903	9
+uc002zdz.2	chr21	+	44256633	44304536	7
+uc002zea.1	chr21	+	44256633	44350860	23
+uc010gpo.1	chr21	+	44256633	44350860	24
+uc002zeb.1	chr21	+	44351635	44375491	21
+uc002zed.2	chr21	+	44377921	44390033	6
+uc002zec.2	chr21	+	44377921	44390033	7
+uc002zee.1	chr21	-	44471149	44485262	7
+uc002zef.1	chr21	-	44471149	44485262	6
+uc010gpp.1	chr21	-	44473907	44485262	6
+uc002zeh.1	chr21	-	44490650	44506527	12
+uc002zeg.1	chr21	-	44490650	44506527	12
+uc002zei.1	chr21	+	44530190	44542530	14
+uc002zej.1	chr21	+	44534575	44542530	8
+uc010gpq.1	chr21	+	44534575	44542530	9
+uc010gpr.1	chr21	+	44534701	44542530	7
+uc002zek.1	chr21	+	44544357	44571684	25
+uc002zel.1	chr21	+	44544357	44571684	22
+uc002zen.1	chr21	+	44563661	44571684	10
+uc002zem.1	chr21	+	44563661	44571684	11
+uc002zer.2	chr21	-	44573254	44583713	7
+uc002zeq.2	chr21	-	44573254	44583713	7
+uc002zep.2	chr21	-	44573254	44583713	7
+uc002zeo.1	chr21	-	44573254	44583095	8
+uc010gps.1	chr21	-	44573254	44578835	4
+uc002zes.1	chr21	-	44578846	44583095	3
+uc002zet.1	chr21	+	44594473	44687392	33
+uc002zeu.1	chr21	+	44597566	44687392	32
+uc002zew.1	chr21	+	44597911	44687392	32
+uc010gpt.1	chr21	+	44597911	44687392	33
+uc002zex.1	chr21	+	44613431	44687392	28
+uc002zey.1	chr21	+	44635582	44687392	21
+uc002zez.1	chr21	-	44658905	44661051	2
+uc002zfa.1	chr21	+	44699820	44703167	2
+uc010gpu.1	chr21	+	44700955	44701729	1
+uc002zfb.1	chr21	-	44722649	44722699	1
+uc002zfc.1	chr21	-	44728608	44728644	1
+uc002zfd.1	chr21	-	44737584	44737655	1
+uc010gpv.1	chr21	-	44742202	44955923	13
+uc002zfe.1	chr21	-	44742202	44955923	12
+uc002zfg.2	chr21	+	44761525	44765140	2
+uc002zff.2	chr21	+	44761525	44765140	3
+uc002zfh.1	chr21	-	44783495	44784506	1
+uc002zfi.1	chr21	-	44794745	44795816	1
+uc002zfj.1	chr21	-	44802333	44803071	1
+uc002zfk.1	chr21	+	44818033	44819415	1
+uc002zfl.1	chr21	-	44823991	44824909	1
+uc002zfm.1	chr21	-	44835576	44836814	1
+uc002zfn.2	chr21	+	44844924	44846519	2
+uc002zfo.1	chr21	+	44856423	44857299	1
+uc002zfp.2	chr21	+	44871467	44872723	1
+uc002zfq.1	chr21	+	44881700	44882800	1
+uc002zfr.2	chr21	+	44890758	44891994	1
+uc002zfs.1	chr21	-	44898557	44899004	1
+uc002zft.1	chr21	+	44902276	44902686	1
+uc002zfu.1	chr21	-	44910533	44911272	1
+uc002zfv.1	chr21	-	44925918	44926506	1
+uc002zfw.1	chr21	+	44941514	44942387	1
+uc002zfy.1	chr21	-	45013382	45046166	6
+uc002zfx.1	chr21	-	45013382	45046166	7
+uc002zfz.1	chr21	-	45049959	45062472	4
+uc002zga.1	chr21	-	45049959	45062472	4
+uc002zgb.1	chr21	-	45093940	45118169	6
+uc002zgg.1	chr21	-	45130296	45173181	16
+uc010gpw.1	chr21	-	45130296	45165393	15
+uc002zgf.2	chr21	-	45130296	45165393	16
+uc002zge.1	chr21	-	45130296	45155785	16
+uc002zgd.1	chr21	-	45130296	45155169	15
+uc002zgh.2	chr21	+	45165393	45174016	4
+uc002zgi.1	chr21	-	45177156	45179316	2
+uc002zgk.2	chr21	-	45179070	45184188	3
+uc002zgj.2	chr21	-	45179070	45184188	4
+uc002zgl.1	chr21	+	45184382	45221316	6
+uc002zgm.1	chr21	+	45184382	45221316	6
+uc002zgn.1	chr21	-	45235614	45238429	2
+uc002zgo.2	chr21	-	45243556	45249070	2
+uc002zgu.1	chr21	+	45318942	45470902	12
+uc002zgw.1	chr21	+	45318942	45470902	12
+uc002zgv.1	chr21	+	45318942	45470902	12
+uc002zgt.1	chr21	+	45318942	45470902	11
+uc002zgs.1	chr21	+	45318942	45470902	13
+uc002zgr.1	chr21	+	45318942	45470902	13
+uc010gpx.1	chr21	+	45318942	45470902	11
+uc002zgq.1	chr21	+	45318942	45470902	13
+uc002zgp.1	chr21	+	45318942	45390638	10
+uc002zgy.1	chr21	+	45415952	45470902	10
+uc002zgz.1	chr21	+	45478694	45503073	3
+uc002zhd.1	chr21	-	45508270	45532239	8
+uc002zhc.1	chr21	-	45508270	45532239	9
+uc002zhb.1	chr21	-	45508270	45532239	10
+uc002zha.1	chr21	-	45508270	45521753	6
+uc002zhe.1	chr21	+	45532394	45536081	3
+uc002zhf.1	chr21	+	45539291	45541696	1
+uc002zhg.1	chr21	+	45649524	45758062	42
+uc002zhh.1	chr21	-	45664058	45669413	3
+uc002zhi.1	chr21	+	45699851	45758062	41
+uc010gpy.1	chr21	-	45742542	45788753	6
+uc002zhj.1	chr21	+	45748757	45758062	9
+uc002zhk.1	chr21	+	45751841	45758062	5
+uc002zhl.1	chr21	-	45759056	45786779	6
+uc010gpz.1	chr21	-	45759056	45786779	6
+uc002zhm.1	chr21	-	45759056	45786779	6
+uc002zhn.1	chr21	+	45837995	45841691	2
+uc010gqa.1	chr21	+	45877516	45878815	1
+uc010gqb.1	chr21	+	45888110	46180046	14
+uc002zho.1	chr21	-	46072302	46080761	3
+uc002zhp.1	chr21	+	46092504	46186795	14
+uc010gqc.1	chr21	+	46094302	46162867	8
+uc002zhq.1	chr21	+	46094302	46186795	14
+uc002zhr.1	chr21	+	46094302	46186795	14
+uc002zhs.1	chr21	+	46094302	46186795	13
+uc002zht.1	chr21	+	46140549	46186795	13
+uc002zhu.1	chr21	+	46226090	46249391	35
+uc010gqd.1	chr21	+	46242041	46249391	13
+uc002zhv.1	chr21	+	46245538	46249391	6
+uc002zhw.1	chr21	+	46246830	46249391	3
+uc002zhx.1	chr21	+	46281393	46283633	2
+uc002zib.1	chr21	+	46342460	46377191	9
+uc002zia.1	chr21	+	46342460	46377191	28
+uc002zhz.1	chr21	+	46342460	46374147	28
+uc002zhy.1	chr21	+	46342460	46374147	28
+uc002zic.1	chr21	+	46370831	46377191	2
+uc010gqe.1	chr21	+	46374170	46377189	1
+uc002zig.1	chr21	-	46380603	46399909	15
+uc002zif.1	chr21	-	46380603	46399909	15
+uc002zie.1	chr21	-	46380603	46387083	5
+uc002zih.1	chr21	-	46381121	46399909	14
+uc010gqf.1	chr21	-	46381121	46399909	13
+uc010gqg.1	chr21	-	46381326	46399909	14
+uc002zii.1	chr21	-	46405497	46428729	4
+uc002zij.1	chr21	-	46432787	46473119	23
+uc002zik.1	chr21	-	46433466	46473079	21
+uc002zil.1	chr21	-	46433466	46473119	22
+uc002zim.2	chr21	+	46473585	46496032	3
+uc002zin.2	chr21	+	46473585	46496032	4
+uc002zir.1	chr21	-	46479475	46529664	28
+uc002ziq.1	chr21	-	46479475	46511294	18
+uc002zip.1	chr21	-	46479475	46503607	13
+uc002zio.1	chr21	-	46479475	46491502	7
+uc002zis.1	chr21	+	46480565	46496171	3
+uc010gqh.1	chr21	+	46530694	46542093	4
+uc002ziy.1	chr21	+	46530694	46542093	4
+uc002zix.1	chr21	+	46530694	46542093	5
+uc002ziw.1	chr21	+	46530694	46542093	5
+uc002ziv.1	chr21	+	46530694	46542093	5
+uc002ziu.1	chr21	+	46530694	46536539	3
+uc002zit.1	chr21	+	46530694	46536539	3
+uc010gqi.1	chr21	+	46537349	46539139	2
+uc002zja.2	chr21	-	46544772	46565167	9
+uc002ziz.2	chr21	-	46544772	46562562	7
+uc002zjc.1	chr21	-	46545474	46563479	7
+uc002zjf.1	chr21	-	46545474	46568213	8
+uc010gqj.1	chr21	-	46545477	46568213	9
+uc002zjg.1	chr21	-	46559057	46568213	6
+uc002zji.2	chr21	+	46568463	46690110	47
+uc002zjj.1	chr21	+	46569229	46690110	47
+uc010gqk.1	chr21	+	46578738	46594162	6
+uc002zjk.1	chr21	-	46699327	46703021	2
+uc002zjl.1	chr21	+	46703317	46790647	20
+uc002zjm.1	chr21	+	46703317	46791548	21
+uc010gql.1	chr21	+	46703317	46791548	20
+uc002zjo.1	chr21	+	46703317	46813028	38
+uc002zjn.1	chr21	+	46703317	46794451	22
+uc002zjp.1	chr21	+	46748653	46789614	14
+uc002zjq.1	chr21	+	46783075	46791548	5
+uc002zjr.2	chr21	+	46797251	46803437	7
+uc002zjs.1	chr21	+	46805625	46813028	5
+uc002zjt.1	chr21	+	46808123	46813028	4
+uc002zjv.1	chr21	-	46842958	46849463	4
+uc002zju.1	chr21	-	46842958	46849463	3
+uc002zjw.2	chr21	+	46879954	46904483	7
+uc002zjx.1	chr21	+	46879954	46909291	12
+uc002zjy.1	chr21	+	46879954	46909291	11
+uc010gqm.1	chr21	+	46879954	46909291	9
+uc002zjz.1	chr21	+	46887625	46906276	6
diff --git a/src/intersectBed/intersectBed.cpp b/src/intersectBed/intersectBed.cpp
index 7b4fde87e2b30b098f0eeab7b7458a35c7fa4e0b..8971ff974f66f6735008fcf06e57bec38963abb6 100755
--- a/src/intersectBed/intersectBed.cpp
+++ b/src/intersectBed/intersectBed.cpp
@@ -1,5 +1,5 @@
 /*****************************************************************************
-  intersectBed.h
+  intersectBed.cpp
 
   (c) 2009 - Aaron Quinlan
   Hall Laboratory
@@ -45,47 +45,61 @@ BedIntersect::~BedIntersect(void) {
 
 void BedIntersect::FindOverlaps(BED &a, vector<BED> &hits) {
 	
-	// find all of the overlaps between a and B.
-	//bedB->binKeeperFind(bedB->bedMap[a.chrom], a.start, a.end, hits);
-	bedB->binKeeperFind(a.chrom, a.start, a.end, hits);
-
-	int numOverlaps = 0;
+	// grab _all_ of the features in B that overlap with a.
+	bedB->FindOverlapsPerBin(a.chrom, a.start, a.end, a.strand, hits, this->forceStrand); 
+	
+	// how many overlaps are there b/w a and B?
+	int numOverlaps = 0;		
 	
-	// should we print each overlap, or does the 
-	// user want summary information?
+	// should we print each overlap, or does the user want summary information?
 	bool printable = true;			
 	if (anyHit || noHit || writeCount) {
 		printable = false;
 	}
 	
-	for (vector<BED>::const_iterator h = hits.begin(); h != hits.end(); ++h) {
+	// loop through the hits and report those that meet the user's criteria
+	vector<BED>::const_iterator h = hits.begin();
+	vector<BED>::const_iterator hitsEnd = hits.end();
+	for (; h != hitsEnd; ++h) {
 	
-		// if forcing strandedness, move on if the hit
-		// is not on the same strand as A.
-		if ((this->forceStrand) && (a.strand != h->strand)) {
-			continue;		// continue force the next iteration of the for loop.
-		}
-		else {
-			int s = max(a.start, h->start);
-			int e = min(a.end, h->end);
+		int s = max(a.start, h->start);
+		int e = min(a.end, h->end);
+		int overlapBases = (e - s);				// the number of overlapping bases b/w a and b
+		int aLength = (a.end - a.start);		// the length of a in b.p.
+		
+		// is there enough overlap relative to the user's request? (default ~ 1bp)
+		if ( ( (float) overlapBases / (float) aLength ) >= this->overlapFraction ) { 
+		
+			// Report the hit if the user doesn't care about reciprocal overlap between A and B.
+			if (!reciprocal) {
 			
-			// is there enough overlap relative to the user's request?
-			// (default ~ 1bp)
-			if ( ((float)(e-s) / (float)(a.end - a.start)) >= this->overlapFraction ) { 
+				numOverlaps++;		// we have another hit for A
+				if (!writeB && printable) {
+					if (writeA) bedA->reportBedNewLine(a); 
+					else bedA->reportBedRangeNewLine(a,s,e);
+				}
+				else if (printable) {
+					if (writeA) {
+						bedA->reportBedTab(a);
+						bedB->reportBedNewLine(*h);
+					}
+					else {
+						bedA->reportBedRangeTab(a,s,e);
+						bedB->reportBedNewLine(*h);									
+					}
+				}
+			}
+			else {			// the user wants there to be sufficient reciprocal overlap
+				int bLength = (h->end - h->start);
+				float bOverlap = ( (float) overlapBases / (float) bLength );
 			
-				// Report the hit if the user doesn't care about reciprocal overlap
-				// between A and B.
-				if (!reciprocal) {
+				if (bOverlap >= this->overlapFraction) {
 				
 					numOverlaps++;		// we have another hit for A
 				
 					if (!writeB && printable) {
-						if (writeA) {
-							bedA->reportBedNewLine(a);
-						}
-						else {
-							bedA->reportBedRangeNewLine(a,s,e);
-						}
+						if (writeA) bedA->reportBedNewLine(a);
+						else bedA->reportBedRangeNewLine(a,s,e);
 					}
 					else if (printable) {
 						if (writeA) {
@@ -98,34 +112,6 @@ void BedIntersect::FindOverlaps(BED &a, vector<BED> &hits) {
 						}
 					}
 				}
-				else {
-				
-					float bOverlap = ((float)(e-s) / (float)(h->end - h->start));
-				
-					if (bOverlap >= this->overlapFraction) {
-					
-						numOverlaps++;		// we have another hit for A
-					
-						if (!writeB && printable) {
-							if (writeA) {
-								bedA->reportBedNewLine(a);
-							}
-							else {
-								bedA->reportBedRangeNewLine(a,s,e);
-							}
-						}
-						else if (printable) {
-							if (writeA) {
-								bedA->reportBedTab(a);
-								bedB->reportBedNewLine(*h);
-							}
-							else {
-								bedA->reportBedRangeTab(a,s,e);
-								bedB->reportBedNewLine(*h);									
-							}
-						}
-					}
-				}
 			}
 		}
 	}
diff --git a/src/pairToBed/pairToBed.cpp b/src/pairToBed/pairToBed.cpp
index 6913b8cc22b16e8995f39b26c50aa9611db4e2f6..f0317bd0e7f2c71ae475074b948af61d459fa76f 100755
--- a/src/pairToBed/pairToBed.cpp
+++ b/src/pairToBed/pairToBed.cpp
@@ -99,7 +99,7 @@ void BedIntersectPE::FindOverlaps(BEDPE &a, vector<BED> &hits1, vector<BED> &hit
 	/* 
 	Find the quality hits between ***end1*** of the BEDPE and the B BED file
 	*/
-	bedB->binKeeperFind(bedB->bedMap[a.chrom1], a.start1, a.end1, hits1);
+	bedB->binKeeperFind(a.chrom1, a.start1, a.end1, hits1);
 	
 	for (vector<BED>::iterator h = hits1.begin(); h != hits1.end(); ++h) {
 	
@@ -127,7 +127,7 @@ void BedIntersectPE::FindOverlaps(BEDPE &a, vector<BED> &hits1, vector<BED> &hit
 	/* 
 	Now find the quality hits between ***end2*** of the BEDPE and the B BED file
 	*/
-	bedB->binKeeperFind(bedB->bedMap[a.chrom2], a.start2, a.end2, hits2);
+	bedB->binKeeperFind(a.chrom2, a.start2, a.end2, hits2);
 	
 	for (vector<BED>::iterator h = hits2.begin(); h != hits2.end(); ++h) {
 	
@@ -218,7 +218,7 @@ void BedIntersectPE::FindSpanningOverlaps(BEDPE &a, vector<BED> &hits, string &t
 	}
 	spanLength = spanEnd - spanStart;
 	
-	bedB->binKeeperFind(bedB->bedMap[a.chrom1], spanStart, spanEnd, hits);
+	bedB->binKeeperFind(a.chrom1, spanStart, spanEnd, hits);
 	
 	for (vector<BED>::iterator h = hits.begin(); h != hits.end(); ++h) {
 	
diff --git a/src/pairToPair/pairToPair.cpp b/src/pairToPair/pairToPair.cpp
index c3fde14003edb3cb2ab13b183b6128d79b4d4366..1ef5a402a6330f1a0aca7076a15b166d2f070bd8 100755
--- a/src/pairToPair/pairToPair.cpp
+++ b/src/pairToPair/pairToPair.cpp
@@ -117,10 +117,10 @@ void PairToPair::FindOverlaps(BEDPE &a, vector<BED> &hitsA1B1, vector<BED> &hits
 
 
 	// Find the _potential_ hits between each end of A and B
-	bedB->binKeeperFind(bedB->bedMapEnd1[a.chrom1], a.start1, a.end1, hitsA1B1);	// hits between A1 to B1
-	bedB->binKeeperFind(bedB->bedMapEnd1[a.chrom2], a.start2, a.end2, hitsA2B1);	// hits between A2 to B1
-	bedB->binKeeperFind(bedB->bedMapEnd2[a.chrom1], a.start1, a.end1, hitsA1B2);	// hits between A1 to B2
-	bedB->binKeeperFind(bedB->bedMapEnd2[a.chrom2], a.start2, a.end2, hitsA2B2);	// hits between A2 to B2	
+	bedB->binKeeperFind(a.chrom1, a.start1, a.end1, hitsA1B1);	// hits between A1 to B1
+	bedB->binKeeperFind(a.chrom2, a.start2, a.end2, hitsA2B1);	// hits between A2 to B1
+	bedB->binKeeperFind(a.chrom1, a.start1, a.end1, hitsA1B2);	// hits between A1 to B2
+	bedB->binKeeperFind(a.chrom2, a.start2, a.end2, hitsA2B2);	// hits between A2 to B2	
 
 
 	// Now, reduce to the set of hits on each end of A and B that meet the required overlap fraction and orientation.
diff --git a/src/shuffleBed/shuffleBed.cpp b/src/shuffleBed/shuffleBed.cpp
index 91633b270a2a100deea4a247ddd994acfa8c852e..51ff1a298fbe3bdcf11286cc1cde13a03c49a79d 100755
--- a/src/shuffleBed/shuffleBed.cpp
+++ b/src/shuffleBed/shuffleBed.cpp
@@ -145,7 +145,7 @@ void BedShuffle::ShuffleWithExclusions(istream &bedInput) {
 			
 			// test to see if the chosen locus overlaps 
 			// with an exclude region
-			exclude->binKeeperFind(exclude->bedMap[bedEntry.chrom], bedEntry.start, bedEntry.end, hits);
+			exclude->binKeeperFind(bedEntry.chrom, bedEntry.start, bedEntry.end, hits);
 					
 			bool haveOverlap = false;
 			for (vector<BED>::const_iterator h = hits.begin(); h != hits.end(); ++h) {
diff --git a/src/subtractBed/new b/src/subtractBed/new
new file mode 100644
index 0000000000000000000000000000000000000000..d2d55542572008f381df6d247f7e7b2e2941ccec
--- /dev/null
+++ b/src/subtractBed/new
@@ -0,0 +1 @@
+chr1	100	180
diff --git a/src/subtractBed/old b/src/subtractBed/old
new file mode 100644
index 0000000000000000000000000000000000000000..d2d55542572008f381df6d247f7e7b2e2941ccec
--- /dev/null
+++ b/src/subtractBed/old
@@ -0,0 +1 @@
+chr1	100	180
diff --git a/src/subtractBed/subtractBed.cpp b/src/subtractBed/subtractBed.cpp
index d2ceff8b7eef683ebfe35eda139adc53504741f6..8380428dccddf9287d6cbe2a93b416328de06caf 100755
--- a/src/subtractBed/subtractBed.cpp
+++ b/src/subtractBed/subtractBed.cpp
@@ -39,7 +39,7 @@ BedSubtract::~BedSubtract(void) {
 void BedSubtract::FindOverlaps(BED &a, vector<BED> &hits) {
 	
 	// find all of the overlaps between a and B.
-	bedB->binKeeperFind(bedB->bedMap[a.chrom], a.start, a.end, hits);
+	bedB->FindOverlapsPerBin(a.chrom, a.start, a.end, a.strand, hits, this->forceStrand);
 	
 	//  is A completely spanned by an entry in B?
 	//  if so, A should not be reported.
@@ -47,21 +47,19 @@ void BedSubtract::FindOverlaps(BED &a, vector<BED> &hits) {
 	int numOverlaps = 0;
 	vector<BED> bOverlaps;	// list of hits in B.  Special processing if there are multiple.
 	
-	for (vector<BED>::iterator h = hits.begin(); h != hits.end(); ++h) {
+	vector<BED>::const_iterator h = hits.begin();
+	vector<BED>::const_iterator hitsEnd = hits.end();
+	for (; h != hitsEnd; ++h) {
 		
-		// if forcing strandedness, move on if the hit
-		// is not on the same strand as A.
-		if ((this->forceStrand) && (a.strand != h->strand)) {
-			continue;		// continue force the next iteration of the for loop.
-		}
-	
 		int s = max(a.start, h->start);
-		int e = min(a.end, h->end);
-
+		int e = min(a.end, h->end);		
+		int overlapBases = (e - s);				// the number of overlapping bases b/w a and b
+		int aLength = (a.end - a.start);		// the length of a in b.p.
+			
 		if (s < e) {
 			
 			// is there enough overlap (default ~ 1bp)
-			float overlap = ((float)(e-s) / (float)(a.end - a.start));
+			float overlap = ((float) overlapBases / (float) aLength);
 
 			if (overlap >= 1.0) {
 				numOverlaps++;
diff --git a/src/utils/bedFile/bedFile.cpp b/src/utils/bedFile/bedFile.cpp
index 0cc6b2b58bb15ee53613edc3e760b097641c58b7..bbec52f4cd091dca05d7166b44e7dfb595222d11 100755
--- a/src/utils/bedFile/bedFile.cpp
+++ b/src/utils/bedFile/bedFile.cpp
@@ -1,92 +1,29 @@
-// 
-//  bedFile.cpp
-//  BEDTools
-//  
-//  Created by Aaron Quinlan Spring 2009.
-//  Copyright 2009 Aaron Quinlan. All rights reserved.
-//
-//  Summary:  Contains common functions for finding BED overlaps.
-//
-//  Acknowledgments: Much of the code herein is taken from Jim Kent's
-//                   BED processing code.  I am grateful for his elegant
-//					 genome binning algorithm and therefore use it extensively.
+/*****************************************************************************
+  bedFile.cpp
 
+  (c) 2009 - Aaron Quinlan
+  Hall Laboratory
+  Department of Biochemistry and Molecular Genetics
+  University of Virginia
+  aaronquinlan@gmail.com
+
+  Licensed under the GNU General Public License 2.0+ license.
+******************************************************************************/
 #include "lineFileUtilities.h"
 #include "bedFile.h"
 
 
-// return the amount of overlap between two features.  Negative if none.
-int overlaps(const int aS, const int aE, const int bS, const int bE) {
-	return min(aE, bE) - max(aS, bS);
-}
-
-
-bool leftOf(const int a, const int b) {
-	return (a < b);
-}
-
-// return the lesser of two values.
-int min(const int a, int b) {
-	if (a <= b) {
-		return a;
-	}
-	else {
-		return b;
-	}
-}
-
-// return the greater of two values.
-int max(const int a, int b) {
-	if (a >= b) {
-		return a;
-	}
-	else {
-		return b;
-	}
-}
-
-
-int getBin(int start, int end)
-/* 
-	NOTE: Taken ~verbatim from kent source.
-	
-	Given start,end in chromosome coordinates assign it
-	* a bin.   There's a bin for each 128k segment, for each
-	* 1M segment, for each 8M segment, for each 64M segment,
-	* and for each chromosome (which is assumed to be less than
-	* 512M.)  A range goes into the smallest bin it will fit in. */
-{
-	int startBin = start;
-	int endBin = end-1;
-	startBin >>= _binFirstShift;
-	endBin >>= _binFirstShift;
-	
-	for (int i=0; i<6; ++i) {
-		if (startBin == endBin) {
-			return binOffsetsExtended[i] + startBin;
-		}
-		startBin >>= _binNextShift;
-		endBin >>= _binNextShift;
-	}
-	
-	cerr << "start " << start << ", end " << end << " out of range in findBin (max is 512M)" << endl;
-	return 0;
-}
-
-//*********************************************
-// Sorting functions
-//*********************************************
-bool sortByChrom(BED const & a, BED const & b){
+bool sortByChrom(BED const & a, BED const & b) {
 	if (a.chrom < b.chrom) return true;
 	else return false;
 };
 
-bool sortByStart(const BED &a, const BED &b){
+bool sortByStart(const BED &a, const BED &b) {
 	if (a.start < b.start) return true;
 	else return false;
 };
 
-bool sortBySizeAsc(const BED &a, const BED &b){
+bool sortBySizeAsc(const BED &a, const BED &b) {
 	
 	unsigned int aLen = a.end - a.start;
 	unsigned int bLen = b.end - b.start;
@@ -95,7 +32,7 @@ bool sortBySizeAsc(const BED &a, const BED &b){
 	else return false;
 };
 
-bool sortBySizeDesc(const BED &a, const BED &b){
+bool sortBySizeDesc(const BED &a, const BED &b) {
 	
 	unsigned int aLen = a.end - a.start;
 	unsigned int bLen = b.end - b.start;
@@ -104,18 +41,18 @@ bool sortBySizeDesc(const BED &a, const BED &b){
 	else return false;
 };
 
-bool sortByScoreAsc(const BED &a, const BED &b){
+bool sortByScoreAsc(const BED &a, const BED &b) {
 	if (a.score < b.score) return true;
 	else return false;
 };
 
-bool sortByScoreDesc(const BED &a, const BED &b){
+bool sortByScoreDesc(const BED &a, const BED &b) {
 	if (a.score > b.score) return true;
 	else return false;
 };
 
 
-bool byChromThenStart(BED const & a, BED const & b){
+bool byChromThenStart(BED const & a, BED const & b) {
 
 	if (a.chrom < b.chrom) return true;
 	else if (a.chrom > b.chrom) return false;
@@ -126,31 +63,64 @@ bool byChromThenStart(BED const & a, BED const & b){
 	return false;
 };
 
-
-/*
+int getBin(int start, int end)
+/* 
 	NOTE: Taken ~verbatim from kent source.
-	Return a list of all items in binKeeper that intersect range.
 	
-	Free this list with slFreeList.
+	Given start,end in chromosome coordinates assign it
+	* a bin.   There's a bin for each 128k segment, for each
+	* 1M segment, for each 8M segment, for each 64M segment,
+	* and for each chromosome (which is assumed to be less than
+	* 512M.)  A range goes into the smallest bin it will fit in. */
+{
+	int startBin = start;
+	int endBin = end-1;
+	startBin >>= _binFirstShift;
+	endBin >>= _binFirstShift;
+	
+	for (int i=0; i<6; ++i) {
+		if (startBin == endBin) {
+			return binOffsetsExtended[i] + startBin;
+		}
+		startBin >>= _binNextShift;
+		endBin >>= _binNextShift;
+	}
+	
+	cerr << "start " << start << ", end " << end << " out of range in findBin (max is 512M)" << endl;
+	return 0;
+}
+
+/*
+	Adapted from kent source "binKeeperFind"
 */
-void BedFile::binKeeperFind(string chrom, const int start, const int end, vector<BED> &hits) {
+void BedFile::FindOverlapsPerBin(string chrom, int start, int end, string strand, vector<BED> &hits, bool forceStrand) {
 
 	int startBin, endBin;
-	startBin = (start >>_binFirstShift);
-	endBin = ((end-1) >>_binFirstShift);
+	startBin = (start >> _binFirstShift);
+	endBin = ((end-1) >> _binFirstShift);
 
+	// loop through each bin "level" in the binning hierarchy
 	for (int i = 0; i < 6; ++i) {
+		
+		// loop through each bin at this level of the hierarchy
 		int offset = binOffsetsExtended[i];
-
 		for (int j = (startBin+offset); j <= (endBin+offset); ++j)  {
 			
+			// loop through each feature in this chrom/bin and see if it overlaps
+			// with the feature that was passed in.  if so, add the feature to 
+			// the list of hits.
 			vector<BED>::const_iterator bedItr = bedMap[chrom][j].begin();
 			vector<BED>::const_iterator bedEnd = bedMap[chrom][j].end();
-			
 			for (; bedItr != bedEnd; ++bedItr) {
-				if (overlaps(bedItr->start, bedItr->end, start, end) > 0) {
-					hits.push_back(*bedItr);
-				}			
+				
+				// skip the hit if not on the same strand (and we care)
+				if (forceStrand && (strand != bedItr->strand)) {
+					continue;
+				}
+				else if (overlaps(bedItr->start, bedItr->end, start, end) > 0) {
+					hits.push_back(*bedItr);	// it's a hit, add it.
+				}
+							
 			}
 		}
 		startBin >>= _binNextShift;
@@ -159,34 +129,40 @@ void BedFile::binKeeperFind(string chrom, const int start, const int end, vector
 }
 
 
+void BedFile::countHits(const BED &a, bool forceStrand) {
 
-void BedFile::countHits(map<int, vector<BED>, std::less<int> > &bk, BED &a, bool &forceStrand) {
 	int startBin, endBin;
-	int i,j;
+	startBin = (a.start >> _binFirstShift);
+	endBin = ((a.end-1) >> _binFirstShift);
 
-	startBin = (a.start>>_binFirstShift);
-	endBin = ((a.end-1)>>_binFirstShift);
-	for (i=0; i<6; ++i) {
+	// loop through each bin "level" in the binning hierarchy	
+	for (int i = 0; i < 6; ++i) {
+	
+		// loop through each bin at this level of the hierarchy	
 		int offset = binOffsetsExtended[i];
-
-		for (j = (startBin+offset); j <= (endBin+offset); ++j) {
+		for (int j = (startBin+offset); j <= (endBin+offset); ++j) {
 			
-			for (vector<BED>::iterator el = bk[j].begin(); el != bk[j].end(); ++el) {
+			// loop through each feature in this chrom/bin and see if it overlaps
+			// with the feature that was passed in.  if so, add the feature to 
+			// the list of hits.
+			vector<BED>::iterator bedItr = bedMap[a.chrom][j].begin();
+			vector<BED>::iterator bedEnd = bedMap[a.chrom][j].end();		
+			for (; bedItr != bedEnd; ++bedItr) {
 				
-				if (forceStrand && (a.strand != el->strand)) {
-					continue;		// continue force the next iteration of the for loop.
+				// skip the hit if not on the same strand (and we care)
+				if (forceStrand && (a.strand != bedItr->strand)) {
+					continue;
 				}
-				else if (overlaps(el->start, el->end, a.start, a.end) > 0) {
+				else if (overlaps(bedItr->start, bedItr->end, a.start, a.end) > 0) {
 					
-					el->count++;
-					el->depthMap[a.start+1].starts++;
-					el->depthMap[a.end].ends++;
+					bedItr->count++;
+					bedItr->depthMap[a.start+1].starts++;
+					bedItr->depthMap[a.end].ends++;
 					
-					if (a.start < el->minOverlapStart) {
-						el->minOverlapStart = a.start;
+					if (a.start < bedItr->minOverlapStart) {
+						bedItr->minOverlapStart = a.start;
 					}					
 				}
-				
 			}
 		}
 		startBin >>= _binNextShift;
diff --git a/src/utils/bedFile/bedFile.h b/src/utils/bedFile/bedFile.h
index e9743f0bef9574cfbbe2d9e6fe379e07c2a9daca..327a1eec9646d1e776a787b905f8622a6e6caa24 100755
--- a/src/utils/bedFile/bedFile.h
+++ b/src/utils/bedFile/bedFile.h
@@ -1,3 +1,14 @@
+/*****************************************************************************
+  bedFile.h
+
+  (c) 2009 - Aaron Quinlan
+  Hall Laboratory
+  Department of Biochemistry and Molecular Genetics
+  University of Virginia
+  aaronquinlan@gmail.com
+
+  Licensed under the GNU General Public License 2.0+ license.
+******************************************************************************/
 #ifndef BEDFILE_H
 #define BEDFILE_H
 
@@ -11,7 +22,7 @@
 #include <algorithm>
 #include <limits.h>
 #include <cstdio>
-
+#include <tr1/unordered_map>
 using namespace std;
 
 //*************************************************
@@ -58,23 +69,29 @@ struct BED {
 };
 
 
-
-//*************************************************
-// Common functions
-//*************************************************
-
-int getBin(int, int);
+// return the genome "bin" for a feature with this start and end
+int getBin(int start, int end);
 	
-// BED sorting
-bool sortByChrom(BED const &, BED const &);
-bool sortByStart(const BED &, const BED &);
-bool byChromThenStart(BED const &, BED const &);
+// return the amount of overlap between two features.  Negative if none and the the 
+// number of negative bases is the distance between the two.
+inline 
+int overlaps(int aS, int aE, int bS, int bE) {
+	return min(aE, bE) - max(aS, bS);
+}
 
-// BED comparsions
-int overlaps(const int, const int, const int, const int);
-bool leftOf(const int, const int);
-int min(const int, int);
-int max(const int, int);
+// return the lesser of two values.
+inline 
+int min(int a, int b) {
+	if (a <= b) return a;
+	else return b;
+}
+
+// return the greater of two values.
+inline 
+int max(int a, int b) {
+	if (a >= b) return a;
+	else return b;
+}
 
 
 // templated function to convert objects to strings
@@ -88,20 +105,25 @@ std::string ToString(const T & value)
 
 
 // BED Sorting Methods 
-bool sortByChrom(BED const &, BED const &);	
-bool sortByStart(const BED &, const BED &);
-bool sortBySizeAsc(const BED &, const BED &);
-bool sortBySizeDesc(const BED &, const BED &);
-bool sortByScoreAsc(const BED &, const BED &);
-bool sortByScoreDesc(const BED &, const BED &);
-bool byChromThenStart(BED const &, BED const &);
+bool sortByChrom(const BED &a, const BED &b);	
+bool sortByStart(const BED &a, const BED &b);
+bool sortBySizeAsc(const BED &a, const BED &b);
+bool sortBySizeDesc(const BED &a, const BED &b);
+bool sortByScoreAsc(const BED &a, const BED &b);
+bool sortByScoreDesc(const BED &a, const BED &b);
+bool byChromThenStart(BED const &a, BED const &b);
+
+
 
 //*************************************************
 // Common typedefs
 //*************************************************
-
 typedef map<int, vector<BED>, std::less<int> > binsToBeds;
+//typedef tr1::unordered_map<int, vector<BED> > binsToBeds;
+
 typedef map<string, binsToBeds, std::less<string> > masterBedMap;
+//typedef tr1::unordered_map<string, binsToBeds> masterBedMap;
+
 typedef map<string, vector<BED>, std::less<string> > masterBedMapNoBin;
 
 
@@ -118,36 +140,35 @@ public:
 	// Destructor
 	~BedFile(void);
 
-	// parse an input line and determine how it should be handled
-	bool parseLine (BED &bed, const vector<string> &lineVector, int &lineNum);
-	// parse a BED line
-	bool parseBedLine (BED &bed, const vector<string> &lineVector, int lineNum);
-	// parse a GFF line
-	bool parseGffLine (BED &bed, const vector<string> &lineVector, int lineNum);
-	
+	// load a BED file into a map keyed by chrom, then bin.
+	// value is vector of BEDs
 	void loadBedFileIntoMap();
+
+	// load a BED file into a map keyed by chrom
+	// value is vector of BEDs
 	void loadBedFileIntoMapNoBin();	
 
 	//void binKeeperFind(map<int, vector<BED>, std::less<int> > &, const int, const int, vector<BED> &);
-	void binKeeperFind(string chrom, const int start, const int end, vector<BED> &);
-
-
-	void countHits(map<int, vector<BED>, std::less<int> > &, BED &, bool &);
+	void FindOverlapsPerBin(string chrom, int start, int end, string strand, vector<BED> &hits, bool forceStrand);
 
+	//void countHits(map<int, vector<BED>, std::less<int> > &, BED &, bool &);
+	void countHits(const BED &a, bool forceStrand);
+	
 	// printing methods
 	void reportBedTab(const BED &);
-	void reportBedNewLine(const BED &);
-		
+	void reportBedNewLine(const BED &);		
 	void reportBedRangeTab(const BED &bed, int start, int end);
 	void reportBedRangeNewLine(const BED &bed, int start, int end);
 	
-
+	// parse an input line and determine how it should be handled
+	bool parseLine (BED &bed, const vector<string> &lineVector, int &lineNum);
+		
 	map<string, int> minPosMap;
 	map<string, int> maxPosMap;
 
 	// the bedfile with which this instance is associated
 	string bedFile;
-	unsigned int bedType;  // 3 -6 for BED
+	unsigned int bedType;  // 3-6, 12 for BED
 						   // 9 for GFF
 
 	vector<BED> bedVector;
@@ -155,9 +176,11 @@ public:
 	masterBedMapNoBin bedMapNoBin;
 	
 private:
-
-
 	
+	// parse a BED line
+	bool parseBedLine (BED &bed, const vector<string> &lineVector, int lineNum);
+	// parse a GFF line
+	bool parseGffLine (BED &bed, const vector<string> &lineVector, int lineNum);
 };
 
 #endif /* BEDFILE_H */
diff --git a/src/utils/lineFileUtilities/lineFileUtilities.cpp b/src/utils/lineFileUtilities/lineFileUtilities.cpp
index e99267fc2d45ab0a1a69d94b8deca9b414a82dc4..f21cbc6fdc4cd0a5d1b1926c3af83a926bcddd84 100755
--- a/src/utils/lineFileUtilities/lineFileUtilities.cpp
+++ b/src/utils/lineFileUtilities/lineFileUtilities.cpp
@@ -15,7 +15,7 @@
 // 		Common Functions
 //***********************************************
 
-void Tokenize(const string& str, vector<string>& tokens)
+void Tokenize(string str, vector<string>& tokens)
 {
 
 	/* method to tokenize on any whitespace
@@ -42,7 +42,6 @@ void Tokenize(const string& str, vector<string>& tokens)
 		// Find next "non-delimiter"
 		pos = str.find_first_of("\t", lastPos);
 	}
-
 }
 
 
diff --git a/src/utils/lineFileUtilities/lineFileUtilities.h b/src/utils/lineFileUtilities/lineFileUtilities.h
index 53080b225dbd3683175a47c5f13dc1432c62d957..e384dc392d007d84b8c4e039a682548df4080240 100755
--- a/src/utils/lineFileUtilities/lineFileUtilities.h
+++ b/src/utils/lineFileUtilities/lineFileUtilities.h
@@ -9,7 +9,7 @@
 using namespace std;
 
 // split a line from a file into a vector of strings.  token = "\t"
-void Tokenize(const string& str, vector<string>& tokens);
+void Tokenize(string str, vector<string>& tokens);
 
 
 #endif /* LINEFILEUTILITIES_H */
diff --git a/src/windowBed/new b/src/windowBed/new
new file mode 100644
index 0000000000000000000000000000000000000000..e0d2ddede71d9849c7799c1832e4f3a92f18e5d7
--- /dev/null
+++ b/src/windowBed/new
@@ -0,0 +1,4 @@
+chr1	10000	20000	A.forward	1	+	chr1	1000	8000	B1
+chr1	10000	20000	A.forward	1	+	chr1	24000	32000	B2
+chr1	10000	20000	A.reverse	1	-	chr1	1000	8000	B1
+chr1	10000	20000	A.reverse	1	-	chr1	24000	32000	B2
diff --git a/src/windowBed/old b/src/windowBed/old
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/windowBed/windowBed.cpp b/src/windowBed/windowBed.cpp
index 05d9ff449cdd6c62dc20aa830e66696f9b063976..d6d48b55ec3d9d9bc00ddc2e0e85737a547a0c3b 100755
--- a/src/windowBed/windowBed.cpp
+++ b/src/windowBed/windowBed.cpp
@@ -47,64 +47,60 @@ BedWindow::~BedWindow(void) {
 
 void BedWindow::FindWindowOverlaps(BED &a, vector<BED> &hits) {
 	
+	/* 
+		Adjust the start and end of a based on the requested window
+	*/
+
 	// update the current feature's start and end
 	// according to the slop requested (slop = 0 by default)
 	int aFudgeStart = 0;
 	int aFudgeEnd;
 
-
 	// Does the user want to treat the windows based on strand?
 	// If so, 
 	// if "+", then left is left and right is right
 	// if "-", the left is right and right is left.
 	if (this->strandWindows) {
-		
 		if (a.strand == "+") {
-			if ((a.start - this->leftSlop) > 0) {
-				aFudgeStart = a.start - this->leftSlop;
-			}
-			else {
-				aFudgeStart = 0;
-			}
+			if ((a.start - this->leftSlop) > 0) aFudgeStart = a.start - this->leftSlop;
+			else aFudgeStart = 0;
 			aFudgeEnd = a.end + this->rightSlop;
 		}
 		else {
-			if ((a.start - this->rightSlop) > 0) {
-				aFudgeStart = a.start - this->rightSlop;
-			}
-			else {
-				aFudgeStart = 0;
-			}
+			if ((a.start - this->rightSlop) > 0) aFudgeStart = a.start - this->rightSlop;
+			else aFudgeStart = 0;
 			aFudgeEnd = a.end + this->leftSlop;
 		}
 	}
+	// If not, add the windows irrespective of strand
 	else {
-		if ((a.start - this->leftSlop) > 0) {
-			aFudgeStart = a.start - this->leftSlop;
-		}
-		else {
-			aFudgeStart = 0;
-		}
+		if ((a.start - this->leftSlop) > 0) aFudgeStart = a.start - this->leftSlop;
+		else aFudgeStart = 0;
 		aFudgeEnd = a.end + this->rightSlop;
 	}
 	
-	bedB->binKeeperFind(bedB->bedMap[a.chrom], aFudgeStart, aFudgeEnd, hits);
+	
+	/* 
+		Now report the hits (if any) based on the window around a.
+	*/
+	// get the hits in B for the A feature
+	bedB->FindOverlapsPerBin(a.chrom, aFudgeStart, aFudgeEnd, a.strand, hits, this->matchOnStrand);
 
 	int numOverlaps = 0;
-	for (vector<BED>::iterator h = hits.begin(); h != hits.end(); ++h) {
 	
-		// if forcing strandedness, move on if the hit
-		// is not on the same strand as A.
-		if ((this->matchOnStrand) && (a.strand != h->strand)) {
-			continue;		// continue force the next iteration of the for loop.
-		}
+	// loop through the hits and report those that meet the user's criteria
+	vector<BED>::const_iterator h = hits.begin();
+	vector<BED>::const_iterator hitsEnd = hits.end();
+	for (; h != hitsEnd; ++h) {
 	
 		int s = max(aFudgeStart, h->start);
 		int e = min(aFudgeEnd, h->end);
-	
+		int overlapBases = (e - s);				// the number of overlapping bases b/w a and b
+		int aLength = (a.end - a.start);		// the length of a in b.p.
+			
 		if (s < e) {
 			// is there enough overlap (default ~ 1bp)
-			if ( ((float)(e-s) / (float)(a.end - a.start)) > 0 ) { 
+			if ( ((float) overlapBases / (float) aLength) > 0 ) { 
 				numOverlaps++;	
 				if (!anyHit && !noHit && !writeCount) {			
 					bedA->reportBedTab(a);
@@ -146,7 +142,7 @@ void BedWindow::WindowIntersectBed(istream &bedInput) {
 		Tokenize(bedLine,bedFields);
 		BED a;
 		
-		// find the overlaps with B if it's a valid BED entry. 
+		// find the overlaps between "a" and "B" if "a" is a valid BED entry. 
 		if (bedA->parseLine(a, bedFields, lineNum)) {
 			FindWindowOverlaps(a, hits);
 			hits.clear();
diff --git a/src/windowBed/windowMain.cpp b/src/windowBed/windowMain.cpp
index dbe92896623841918014036725e85de43dc3837e..2507bc5833193d2b32584a74126b3801b66424b0 100755
--- a/src/windowBed/windowMain.cpp
+++ b/src/windowBed/windowMain.cpp
@@ -191,7 +191,6 @@ void ShowHelp(void) {
 	cerr						<< "\t\t- Default is 1000 bp." << endl;
 	cerr						<< "\t\t- (INTEGER)" << endl << endl;
 		
-
 	cerr << "\t-sw\t"     		<< "Define -l and -r based on strand.  For example if used, -l 500" << endl;
 	cerr 						<< "\t\tfor a negative-stranded feature will add 500 bp downstream." << endl;
 	cerr						<< "\t\t- Default = disabled." << endl << endl;