Scaffolding  0.1
This program can assemble genome scaffolds using the pairing information in paired-end reads.
normal_distribution.hpp
Go to the documentation of this file.
1 
2 
7 #ifndef NORMAL_DISTRIBUTION_HPP
8 #define NORMAL_DISTRIBUTION_HPP
9 
10 
11 namespace scaffold{
12 
15  const float mean;
16  const float std_deviation;
17 
19  normal_distribution(const float _std_deviation, const float _mean = 0):
20  mean(_mean), std_deviation(_std_deviation)
21  {}
22 
24  bool is_valid() const
25  {
26  return std_deviation != 0.0;
27  }
28 
30  float probability(float x) const
31  {
32  x -= mean;
33  const float variance2(2 * std_deviation * std_deviation);
34  const float sqrtvariance2pi(std_deviation * std::sqrt(2) * std::sqrt(3.141592));
35  return exp(-x*x/variance2)/sqrtvariance2pi;
36  }
37 
39  float prob_distance_to_mean_at_most(const float x) const
40  {
41  const float std_deviationSqrt2(std_deviation * std::sqrt(2));
42  return std::erf(x / std_deviationSqrt2);
43  }
44 
46  float prob_of_picking_at_least(const float x) const
47  {
48  if(x >= mean)
49  return (1.0 - prob_distance_to_mean_at_most(x - mean)) / 2.0;
50  else
51  return 1.0 - prob_of_picking_at_least(mean + mean - x);
52  }
53 
54  };
55 
56 
57 
58 }
59 
60 #endif
bool is_valid() const
a normal distribution is valid iff its standard distribution is non-0
Definition: normal_distribution.hpp:24
normal_distribution(const float _std_deviation, const float _mean=0)
constructor
Definition: normal_distribution.hpp:19
Definition: read_adj_list.hpp:22
float prob_distance_to_mean_at_most(const float x) const
compute the probability to pick something whose distance to the mean is at most x ...
Definition: normal_distribution.hpp:39
normal distribution centered with given mean and standard deviation (makes heavy use of std::erf()) ...
Definition: normal_distribution.hpp:14
float prob_of_picking_at_least(const float x) const
compute the probability to pick a value of at least x
Definition: normal_distribution.hpp:46
float probability(float x) const
compute the probability to pick x under the normal distribution centered at mean with standard deviat...
Definition: normal_distribution.hpp:30