1#ifndef MINIMAC4_RECOMBINATION_HPP
2#define MINIMAC4_RECOMBINATION_HPP
6#include <shrinkwrap/istream.hpp>
103 static bool parse_map_file(
const std::string& map_file_path, std::vector<target_variant>& sites,
float recom_min);
119 static double haldane(
double cm) {
return (1. - std::exp(-cm/50.))/2.;}
145 static double cm_to_switch_prob(
double cm,
double decay_rate) {
return 1. - std::exp(-decay_rate * cm/100.);}
160 static double haldane_inverse(
double recom_prob) {
return 50. * std::log(1. / (1. - 2. * recom_prob)); }
173 static double switch_prob_to_cm(
double recom_prob) {
return 100. * std::log(1. / (1. - recom_prob)); }
192 static bool read_entry(std::istream& ifs, map_file_line& entry,
bool new_format);
225 shrinkwrap::istream ifs_;
226 std::string target_chrom_;
264 genetic_map_file(
const std::string& map_file_path,
const std::string& chrom);
275 bool good()
const {
return good_; }
295 operator bool()
const {
return good_; }
347 bool read_record(record& rec);
bool good() const
Check whether the genetic map file was loaded successfully.
Definition recombination.hpp:275
genetic_map_file(const std::string &map_file_path, const std::string &chrom)
Constructs a genetic_map_file object for reading recombination map data.
Definition recombination.cpp:119
double interpolate_centimorgan(std::size_t variant_pos)
Interpolate the genetic map position (in centimorgans) for a variant.
Definition recombination.cpp:155
Provides utilities for handling recombination rates and genetic maps.
Definition recombination.hpp:45
static bool parse_map_file(const std::string &map_file_path, std::vector< target_variant > &sites, float recom_min)
Parse and align a genetic recombination map file to a set of target variants.
Definition recombination.cpp:9
static double haldane(double cm)
Haldane’s mapping function.
Definition recombination.hpp:119
static double cm_to_switch_prob(double cm, double decay_rate)
Convert genetic distance to switch probability with a custom decay rate.
Definition recombination.hpp:145
static double haldane_inverse(double recom_prob)
Inverse Haldane’s mapping function.
Definition recombination.hpp:160
static double switch_prob_to_cm(double recom_prob)
Convert switch probability to genetic distance.
Definition recombination.hpp:173
static double cm_to_switch_prob(double cm)
Convert genetic distance to switch probability (default decay rate).
Definition recombination.hpp:131
A single line entry from the genetic map file.
Definition recombination.hpp:219
std::size_t pos
Basepair position on the chromosome.
Definition recombination.hpp:221
double map_value
Genetic distance (in centimorgans).
Definition recombination.hpp:222
std::string chrom
Chromosome identifier (e.g., "1", "chrX").
Definition recombination.hpp:220
Representation of a single line from a genetic map file.
Definition recombination.hpp:57
std::string chrom
Chromosome identifier (e.g., "1", "chrX").
Definition recombination.hpp:59
float map_value
Genetic map value at the position (in centiMorgans).
Definition recombination.hpp:65
std::size_t pos
Base-pair position on the chromosome.
Definition recombination.hpp:62