| 468 | |
| 469 | |
| 470 | void 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 | |
| 504 | void BedFilePE::splitBedPEIntoBeds(const BEDPE &bedpeEntry, const int &lineNum, MATE *bedEntry1, MATE *bedEntry2) { |
no test coverage detected