MCPcopy Create free account
hub / github.com/arq5x/bedtools2 / loadBedPEFileIntoMap

Method loadBedPEFileIntoMap

src/utils/bedFilePE/bedFilePE.cpp:470–501  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

468
469
470void BedFilePE::loadBedPEFileIntoMap() {
471
472 int lineNum = 0;
473 int bin1, bin2;
474 BedLineStatus bedStatus;
475 BEDPE bedpeEntry, nullBedPE;
476
477 Open();
478 bedStatus = this->GetNextBedPE(bedpeEntry, lineNum);
479 while (bedStatus != BED_INVALID) {
480
481 if (bedStatus == BED_VALID) {
482 MATE *bedEntry1 = new MATE();
483 MATE *bedEntry2 = new MATE();
484 // separate the BEDPE entry into separate
485 // BED entries
486 splitBedPEIntoBeds(bedpeEntry, lineNum, bedEntry1, bedEntry2);
487
488 // load end1 into a UCSC bin map
489 bin1 = getBin(bedEntry1->bed.start, bedEntry1->bed.end);
490 this->bedMapEnd1[bedEntry1->bed.chrom][bin1].push_back(*bedEntry1);
491
492 // load end2 into a UCSC bin map
493 bin2 = getBin(bedEntry2->bed.start, bedEntry2->bed.end);
494 this->bedMapEnd2[bedEntry2->bed.chrom][bin2].push_back(*bedEntry2);
495
496 bedpeEntry = nullBedPE;
497 }
498 bedStatus = this->GetNextBedPE(bedpeEntry, lineNum);
499 }
500 Close();
501}
502
503
504void BedFilePE::splitBedPEIntoBeds(const BEDPE &bedpeEntry, const int &lineNum, MATE *bedEntry1, MATE *bedEntry2) {

Callers 1

IntersectPairsMethod · 0.80

Calls 3

GetNextBedPEMethod · 0.95
getBinFunction · 0.85
push_backMethod · 0.45

Tested by

no test coverage detected