| 4353 | } |
| 4354 | |
| 4355 | double GenomeCopyNumber::Percentage_GenomeExplained(int & unexplainedChromosomes) |
| 4356 | { |
| 4357 | vector<ChrCopyNumber>::iterator it; |
| 4358 | long double fragment_median2 ; |
| 4359 | long double numberOfPoints=0; |
| 4360 | double sum_frags = 0; |
| 4361 | unexplainedChromosomes=0; |
| 4362 | bool unexplained=0; |
| 4363 | int threshold = 10; |
| 4364 | |
| 4365 | for ( it=chrCopyNumber_.begin() ; it != chrCopyNumber_.end(); it++ ) { |
| 4366 | if (! (it->getChromosome().find("X")!=string::npos || it->getChromosome().find("Y")!=string::npos)) { |
| 4367 | int fragmentLength=0; |
| 4368 | if (unexplained)unexplainedChromosomes++; |
| 4369 | unexplained=0; |
| 4370 | for (int i = 0; i< it->getNumberOfFragments(); i++) { // for each fragment: |
| 4371 | fragment_median2 = it->getMedianValuesAt(i); |
| 4372 | fragmentLength=it->getFragmentLengthsAt(i); |
| 4373 | if (fragmentLength>threshold) { |
| 4374 | numberOfPoints+=fragmentLength; |
| 4375 | if (fragment_median2!=NA && abs(fragment_median2-round_by_ploidy(fragment_median2,ploidy_)) >= 1.0/3/ploidy_) { |
| 4376 | //cout << "Unexplained segment: "<<fragment_median2 << "\t"; |
| 4377 | unexplained=1; |
| 4378 | sum_frags+=fragmentLength; |
| 4379 | } |
| 4380 | } |
| 4381 | } |
| 4382 | } |
| 4383 | } |
| 4384 | cout << "Total proportion of unexplained regions: "<<sum_frags << " out of " << numberOfPoints<<" = " << sum_frags/numberOfPoints<< endl ; |
| 4385 | return (1-sum_frags/numberOfPoints); |
| 4386 | } |
no test coverage detected