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

Method smooth

src/ChrDensity.cpp:66–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64}
65
66void ChrDensity::smooth(KernelVector kernelVector) {
67
68 vector <float> third (length_,0);
69 density_ = third;
70 //KernelVector kernelVector(r);
71 int r = kernelVector.getRadius();
72
73 //left point
74 for (int i = 0; i<r-1; i++) {
75 float sumKY = 0;
76 float sumK = 0;
77 for (int j = 0; j<i+r; j++) {
78 sumKY+=kernelVector.getK(j,i)*coverage_[j];
79 sumK +=kernelVector.getK(j,i);
80 }
81 density_[i]=sumKY/sumK;
82 }
83
84 //right point
85 for (int i = length_-r+1; i<length_; i++) {
86 float sumKY = 0;
87 float sumK = 0;
88 for (int j = i-r+1; j<length_; j++) {
89 sumKY+=kernelVector.getK(j,i)*coverage_[j];
90 sumK +=kernelVector.getK(j,i);
91 }
92 density_[i]=sumKY/sumK;
93 }
94
95 //all other points
96 for (int i = r-1; i<length_-r+1; i++) {
97 float sumKY = 0;
98 float sumK = kernelVector.getSum();
99 for (int j = i-r+1; j<i+r; j++)
100 sumKY+=kernelVector.getK(j,i)*coverage_[j];
101 density_[i]=sumKY/sumK;
102
103 if (i % 1000000 == 0)
104 cout << i << "\t" << density_[i] << "\t" << coverage_[i] << "\n";
105 }
106}
107
108void ChrDensity::calculateLogRatio(ChrDensity controlCD, std::string type) {
109 typeOfLogRatio_ = type;

Callers

nothing calls this directly

Calls 3

getRadiusMethod · 0.80
getKMethod · 0.80
getSumMethod · 0.80

Tested by

no test coverage detected