@@ -134,33 +134,39 @@ pub fn calc_ratio(
134134 "log2" => {
135135 let num: f32 = ( cov1 * * sf1) + * pseudocount1;
136136 let den: f32 = ( cov2 * * sf2) + * pseudocount2;
137- return ( num / den) . log2 ( ) ;
137+ let fcov: f32 = ( num / den) . log2 ( ) ;
138+ return ( fcov * 100.0 ) . round ( ) / 100.0 ;
138139 }
139140 "ratio" => {
140141 let num: f32 = ( cov1 * * sf1) + * pseudocount1;
141142 let den: f32 = ( cov2 * * sf2) + * pseudocount2;
142- return num / den;
143+ let fcov: f32 = num / den;
144+ return ( fcov * 100.0 ) . round ( ) / 100.0 ;
143145 }
144146 "reciprocal_ratio" => {
145147 let num: f32 = ( cov1 * * sf1) + * pseudocount1;
146148 let den: f32 = ( cov2 * * sf2) + * pseudocount2;
147149 let ratio: f32 = num / den;
148150 if ratio >= 1.0 {
149- return den / num;
151+ let fcov: f32 = den / num;
152+ return ( fcov * 100.0 ) . round ( ) / 100.0 ;
150153 } else {
151- return -num / den;
154+ let fcov: f32 = -num / den;
155+ return ( fcov * 100.0 ) . round ( ) / 100.0 ;
152156 }
153157 }
154158 "subtract" => {
155159 let num: f32 = ( cov1 * * sf1) + * pseudocount1;
156160 let den: f32 = ( cov2 * * sf2) + * pseudocount2;
157- return num - den;
161+ let fcov: f32 = num - den;
162+ return ( fcov * 100.0 ) . round ( ) / 100.0 ;
158163 }
159164 _ => {
160165 // No operation is never allowed (on the py arg level, so just default to log2)
161166 let num: f32 = ( cov1 * * sf1) + * pseudocount1;
162167 let den: f32 = ( cov2 * * sf2) + * pseudocount2;
163- return ( num / den) . log2 ( ) ;
168+ let fcov: f32 = ( num / den) . log2 ( ) ;
169+ return ( fcov * 100.0 ) . round ( ) / 100.0 ;
164170 }
165171 }
166172}
0 commit comments