EMF.Gen.Mutate.Simple: Simple mutation of 1 chromosomes

Usage Arguments Examples

Usage

1
EMF.Gen.Mutate.Simple(original, mutationRate = 0.1, chromosomeRandFunc = NULL)

Arguments

original
mutationRate
chromosomeRandFunc

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (original, mutationRate = 0.1, chromosomeRandFunc = NULL)
{
    size = length(original)
    ret = original
    if (!is.null(chromosomeRandFunc)) {
        newSample = chromosomeRandFunc()
        for (c in 1:size) if (runif(1) <= mutationRate)
            ret[c] = newSample[c]
    }
    else {
        orderToSubstitute = sample(1:size, size)
        for (c in 1:size) if (runif(1) <= mutationRate) {
            substituteIndex = orderToSubstitute[c]
            substituteValue = ret[substituteIndex]
            ret[substituteIndex] = ret[c]
            ret[c] = substituteValue
        }
    }
    return(ret)
  }

elthonf/EMFGeneticos documentation built on May 16, 2019, 5:03 a.m.