00001
00012 #ifndef __SEQUENCE_COALESCENT_FRAGMENTS_RESCALING_HPP__
00013 #define __SEQUENCE_COALESCENT_FRAGMENTS_RESCALING_HPP__
00014
00015 #include <Sequence/Coalescent/SimTypes.hpp>
00016 #include <vector>
00017 #include <utility>
00018
00019 namespace Sequence
00020 {
00021 int sample_length( const std::vector< std::pair<int,int> > & fragments );
00022 int total_length( const std::vector< std::pair<int,int> > & fragments );
00023 void calculate_scales(const std::vector< std::pair<int,int> > & fragments,
00024 std::vector< std::pair<double,double> > * sample_scale,
00025 std::vector< std::pair<double,double> > * mutation_scale );
00026 class SimData;
00027 void rescale_mutation_positions(SimData * d,
00028 const std::vector< std::pair<double,double> > & sample_scale,
00029 const std::vector< std::pair<double,double> > & mutation_scale );
00030 void rescale_arg( arg * sample_history,
00031 const std::vector< std::pair<int,int> > & fragments );
00032 double integrate_genetic_map( const std::vector<chromosome> & sample,
00033 const int & current_nsam,
00034 const std::vector<double> & genetic_map,
00035 std::vector<double> * reclens);
00036 }
00037
00038 #endif