MCPcopy Create free account
hub / github.com/BoevaLab/FREEC / recalcFlanks

Method recalcFlanks

src/ChrCopyNumber.cpp:1278–1339  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1276}
1277
1278void ChrCopyNumber::recalcFlanks(int telo_centromeric_flanks, int minNumberOfWindows) {
1279 int maxRegionLengthToDelete = int(telo_centromeric_flanks/step_);
1280 for (int i = 0; i < (int)medianValues_.size(); i++) {
1281 if (medianValues_[i]==NA && fragment_lengths_[i]>=minNumberOfWindows) {
1282 int left = i;
1283 int right = i;
1284 if ((i-1>=0)&&(fragmentNotNA_lengths_[i-1]<=maxRegionLengthToDelete && medianValues_[i-1]!=NA )) {
1285 left = i-1;
1286 for (int j=i-2; j>0; j--) {
1287 if (fragmentNotNA_lengths_[j]<=maxRegionLengthToDelete && medianValues_[j]!=NA )
1288 left = j;
1289 else
1290 break;
1291 }
1292 }
1293 if ((i+1<(int)medianValues_.size())&&(fragmentNotNA_lengths_[i+1]<=maxRegionLengthToDelete)&& medianValues_[i+1]!=NA) {
1294 right = i+1;
1295 for (int j=i+2; j<(int)fragment_lengths_.size()-1; j++) {
1296 if (fragmentNotNA_lengths_[j]<=maxRegionLengthToDelete && medianValues_[j]!=NA )
1297 right = j;
1298 else
1299 break;
1300 }
1301 }
1302 if (left < i-1)
1303 recalcFlanksForIndeces (left,i-1);
1304 if (i+1 < right)
1305 recalcFlanksForIndeces (i+1, right);
1306 }
1307 }
1308 //recalculate telomeric flanks:
1309 if (medianValues_[0]!=NA)
1310 if (fragmentNotNA_lengths_[0]<=maxRegionLengthToDelete) {
1311 int i = 0;
1312 int right = 0;
1313 if ((i+1<(int)medianValues_.size())&&(fragmentNotNA_lengths_[i+1]<=maxRegionLengthToDelete)) {
1314 right = i+1;
1315 for (int j=i+2; j<(int)fragment_lengths_.size()-1; j++) {
1316 if (fragmentNotNA_lengths_[j]<=maxRegionLengthToDelete)
1317 right = j;
1318 else
1319 break;
1320 }
1321 }
1322 recalcFlanksForIndeces (i, right);
1323 }
1324
1325 if ((medianValues_[medianValues_.size()-1]!=NA)&&(fragmentNotNA_lengths_[medianValues_.size()-1]<=maxRegionLengthToDelete)) {
1326 int i = medianValues_.size()-1;
1327 int left = medianValues_.size()-1;
1328 if ((i-1>=0)&&(fragmentNotNA_lengths_[i-1]<=maxRegionLengthToDelete)) {
1329 left = i-1;
1330 for (int j=i-2; j>0; j--) {
1331 if (fragmentNotNA_lengths_[j]<=maxRegionLengthToDelete)
1332 left = j;
1333 else
1334 break;
1335 }

Callers 1

runWithDefinedPloidyFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected