Mentions légales du service

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

decouple logics

parent 6aafb579
No related branches found
No related tags found
No related merge requests found
......@@ -83,20 +83,21 @@ std::unique_ptr<MutationEvent> DnaMutator::generate_large_duplication_event(Jump
do { // TODO: why are WGD forbidden ?
pos_2 = prng.random(genome_size + (exp_setup->linear_chrsm() ? 1 : 0));
} while (pos_2 == pos_1);
// Enforce pos_1 < pos_2 if we have a linear chrsm
if (exp_setup->linear_chrsm() and pos_1 > pos_2) {
std::swap(pos_1, pos_2);
}
pos_3 = prng.random(genome_size + (exp_setup->linear_chrsm() ? 1 : 0));
Dna_7::size_type seqlen = 0;
if (pos_1 < pos_2) {
seqlen = pos_2 - pos_1;
} else {
if (exp_setup->linear_chrsm()) {
std::swap(pos_1, pos_2);
seqlen = pos_2 - pos_1;
} else {
auto tmp1_len = genome_size - pos_1;
auto tmp2_len = pos_2;
seqlen = tmp1_len + tmp2_len;
}
auto tmp1_len = genome_size - pos_1;
auto tmp2_len = pos_2;
seqlen = tmp1_len + tmp2_len;
}
auto genome_size_after = genome_size + seqlen;
......@@ -123,18 +124,18 @@ std::unique_ptr<MutationEvent> DnaMutator::generate_large_deletion_event(Jumping
pos_2 = prng.random(genome_size + (exp_setup->linear_chrsm() ? 1 : 0));
} while (pos_2 == pos_1);
// Enforce pos_1 < pos_2 if we have a linear chrsm
if (exp_setup->linear_chrsm() and pos_1 > pos_2) {
std::swap(pos_1, pos_2);
}
int32_t genome_size_after = -1;
if (pos_1 < pos_2) {
genome_size_after = genome_size - (pos_2 - pos_1);
} else {
if (exp_setup->linear_chrsm()) {
std::swap(pos_1, pos_2);
genome_size_after = genome_size - (pos_2 - pos_1);
} else {
genome_size_after = genome_size - (genome_size - pos_1);
genome_size_after = genome_size_after - pos_2;
}
genome_size_after = genome_size - (genome_size - pos_1);
genome_size_after = genome_size_after - pos_2;
}
if (genome_size_after < min_genome_size) {
......
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