Skip to content

Commit 9c55c95

Browse files
committed
Bug fix:Empty bin addition in BackgroundFrequency
1 parent db792d2 commit 9c55c95

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed

src/BackgroundInteractionFrequency.cpp

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,26 @@ void DetermineBackgroundLevels::CalculateMeanandStdRegress(std::string eName, in
5959
//////////Probe-distal
6060
if(whichProx=="ProbeDistal"){
6161
for (iter = Features[feature_id].proximities.junctions.begin(); iter != Features[feature_id].proximities.junctions.end(); ++iter){
62+
6263
distance = iter->first - Design_NegCtrl[DesignName].Probes[i].end;
6364

6465
int bin = abs(distance) / binsize;
66+
67+
if(iter->second.paircount[ExperimentNo] > 0){
6568

66-
if(bglevelsloc.mean.find(bin) == bglevelsloc.mean.end())
67-
bglevelsloc.mean[bin] = iter->second.paircount[ExperimentNo];
68-
else
69-
bglevelsloc.mean[bin] = bglevelsloc.mean[bin] + iter->second.paircount[ExperimentNo];
69+
if(bglevelsloc.mean.find(bin) == bglevelsloc.mean.end())
70+
bglevelsloc.mean[bin] = iter->second.paircount[ExperimentNo];
71+
else
72+
bglevelsloc.mean[bin] = bglevelsloc.mean[bin] + iter->second.paircount[ExperimentNo];
7073

71-
if(nofentries_perBin.find(bin) == nofentries_perBin.end()){
72-
nofentries_perBin[bin] = 1;
73-
signal_square[bin] = (iter->second.paircount[ExperimentNo])*(iter->second.paircount[ExperimentNo]);
74-
}
75-
else{
76-
nofentries_perBin[bin] = nofentries_perBin[bin] + 1;
77-
signal_square[bin] = (signal_square[bin] + ((iter->second.paircount[ExperimentNo])*(iter->second.paircount[ExperimentNo])));
74+
if(nofentries_perBin.find(bin) == nofentries_perBin.end()){
75+
nofentries_perBin[bin] = 1;
76+
signal_square[bin] = (iter->second.paircount[ExperimentNo])*(iter->second.paircount[ExperimentNo]);
77+
}
78+
else{
79+
nofentries_perBin[bin] = nofentries_perBin[bin] + 1;
80+
signal_square[bin] = (signal_square[bin] + ((iter->second.paircount[ExperimentNo])*(iter->second.paircount[ExperimentNo])));
81+
}
7882
}
7983
}
8084
}
@@ -87,18 +91,20 @@ void DetermineBackgroundLevels::CalculateMeanandStdRegress(std::string eName, in
8791
if((Features[feature_id].FeatureType == 3 && Features[(*iter).interacting_feature_id].FeatureType == 3) && Features[feature_id].TranscriptName != Features[(*iter).interacting_feature_id].TranscriptName && (abs(distance) >= MinimumJunctionDistance)){
8892

8993
int bin = abs(distance) / binsize;
90-
if(bglevelsloc.mean.find(bin) == bglevelsloc.mean.end())
91-
bglevelsloc.mean[bin] = (*iter).signal[ExperimentNo];
92-
else
93-
bglevelsloc.mean[bin] = bglevelsloc.mean[bin] + (*iter).signal[ExperimentNo];
94+
if((*iter).signal[ExperimentNo] > 0){
95+
if(bglevelsloc.mean.find(bin) == bglevelsloc.mean.end())
96+
bglevelsloc.mean[bin] = (*iter).signal[ExperimentNo];
97+
else
98+
bglevelsloc.mean[bin] = bglevelsloc.mean[bin] + (*iter).signal[ExperimentNo];
9499

95-
if(nofentries_perBin.find(bin) == nofentries_perBin.end()){
96-
nofentries_perBin[bin] = 1;
97-
signal_square[bin] = ((*iter).signal[ExperimentNo])*((*iter).signal[ExperimentNo]);
98-
}
99-
else{
100-
nofentries_perBin[bin] = nofentries_perBin[bin] + 1;
101-
signal_square[bin] = (signal_square[bin] + (((*iter).signal[ExperimentNo])*((*iter).signal[ExperimentNo])));
100+
if(nofentries_perBin.find(bin) == nofentries_perBin.end()){
101+
nofentries_perBin[bin] = 1;
102+
signal_square[bin] = ((*iter).signal[ExperimentNo])*((*iter).signal[ExperimentNo]);
103+
}
104+
else{
105+
nofentries_perBin[bin] = nofentries_perBin[bin] + 1;
106+
signal_square[bin] = (signal_square[bin] + (((*iter).signal[ExperimentNo])*((*iter).signal[ExperimentNo])));
107+
}
102108
}
103109
}
104110
}

0 commit comments

Comments
 (0)