Mentions légales du service

Skip to content
Snippets Groups Projects
Commit e6dbd248 authored by David Parsons's avatar David Parsons
Browse files

recombine on alignment if enabled

parent aa1a7a30
No related branches found
No related tags found
No related merge requests found
......@@ -30,6 +30,7 @@
#include "Promoter.h"
#include "Protein.h"
#include "Rna.h"
#include "alignments/RecombAlignmentSearcher.h"
#include "phenotype/fuzzy/AbstractFuzzy.h"
#include "phenotype/fuzzy/Discrete_Double_Fuzzy.h"
#include "phenotype/fuzzy/FuzzyFactory_7.h"
......@@ -607,11 +608,24 @@ auto ExpManager_7::create_offspring(
recombination_info[parent_idx].chrsm_end =
recombination_info[parent_idx].chrsm_start == Chrsm::B ? Chrsm::A : Chrsm::B;
// Pick random points for recombination
recombination_info[parent_idx].recomb_pos_1 = prng.random(
individuals_[reproducers_info[parent_idx]]->dna(recombination_info[parent_idx].chrsm_start).length());
recombination_info[parent_idx].recomb_pos_2 =
prng.random(individuals_[reproducers_info[parent_idx]]->dna(recombination_info[parent_idx].chrsm_end).length());
// Pick points for recombination, either alignment-based or at random
auto alignment_params = exp_setup->alignment_params();
if (alignment_params) {
// Search for an alignement to determine the breakpoints for recombination
const auto& alignment = align::RecombAlignmentSearcher::find_alignment(
{&individuals_[reproducers_info[parent_idx]]->dna(recombination_info[parent_idx].chrsm_start),
&individuals_[reproducers_info[parent_idx]]->dna(recombination_info[parent_idx].chrsm_end)},
prng,
*alignment_params);
recombination_info[parent_idx].recomb_pos_1 = alignment.posA;
recombination_info[parent_idx].recomb_pos_2 = alignment.posB;
} else {
// Pick random points for recombination
recombination_info[parent_idx].recomb_pos_1 = prng.random(
individuals_[reproducers_info[parent_idx]]->dna(recombination_info[parent_idx].chrsm_start).length());
recombination_info[parent_idx].recomb_pos_2 = prng.random(
individuals_[reproducers_info[parent_idx]]->dna(recombination_info[parent_idx].chrsm_end).length());
}
}
// Create recombinant chromosomes
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment