Type: | Package |
Title: | Genetic Algorithm with Incomplete Dominance for Feature Selection |
Version: | 1.2 |
Author: | Nicolae Teodor Melita |
Maintainer: | Nicolae Teodor Melita <nt_melita@yahoo.com> |
Description: | Feature selection from high dimensional data using a diploid genetic algorithm with Incomplete Dominance for genotype to phenotype mapping and Random Assortment of chromosomes approach to recombination. |
Depends: | R (≥ 3.3.1), Biobase, MLInterfaces |
Imports: | genefilter, ALL, grDevices, graphics, stats, utils |
License: | MIT + file LICENSE |
LazyData: | TRUE |
RoxygenNote: | 5.0.1 |
NeedsCompilation: | no |
Packaged: | 2017-07-10 03:52:32 UTC; Dr |
Repository: | CRAN |
Date/Publication: | 2017-07-10 05:02:55 UTC |
AnalyzeResults
Description
Ranks individuals according to their fitness and records the results.
Usage
AnalyzeResults(individuals, results, randomAssortment = TRUE, chrConf)
Arguments
individuals |
Population of individuals with diploid genotypes. |
results |
Results returned by EvaluationFunction(). |
randomAssortment |
Random Assortment of Chromosomes for recombinations. The default value is TRUE. |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
Examples
## Not run:
library(genefilter)
library(ALL)
data(ALL)
bALL = ALL[, substr(ALL$BT,1,1) == "B"]
smallALL = bALL[, bALL$mol.biol %in% c("BCR/ABL", "NEG")]
smallALL$mol.biol = factor(smallALL$mol.biol)
smallALL$BT = factor(smallALL$BT)
f1 <- pOverA(0.25, log2(100))
f2 <- function(x) (IQR(x) > 0.5)
f3 <- ttest(smallALL$mol.biol, p=0.1)
ff <- filterfun(f1, f2, f3)
selectedsmallALL <- genefilter(exprs(smallALL), ff)
smallALL = smallALL[selectedsmallALL, ]
rm(f1)
rm(f2)
rm(f3)
rm(ff)
rm(bALL)
sum(selectedsmallALL)
set.seed(1357)
population0<-InitialPopulation(smallALL, 14, 10, FALSE)
individuals0<-Individuals(population0)
results0<-EvaluationFunction(smallALL, individuals0, response="mol.biol",
method=knn.cvI(k=3, l=2), trainTest="LOG")
chrConf0<-splitChromosomes(smallALL)
iterRes0<-AnalyzeResults(individuals0, results0, randomAssortment=TRUE, chrConf0)
## End(Not run)
Crossover
Description
Two-point crossover operator.
Usage
Crossover(c1, c2, chrConf)
Arguments
c1 |
Set of chromosomes. |
c2 |
Set of chromosomes. |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
set.seed(1357)
population02<-InitialPopulation(demoALL, 2, 4, FALSE)
chrConf02<-splitChromosomes(demoALL, 2)
chrConf02
population02[1:2,]
Crossover(population02[1,], population02[2,], chrConf02)
## End(Not run)
Elitism
Description
Operator for elitism.
Usage
Elitism(results, elitism, ID)
Arguments
results |
Results returned by EvaluationFunction(). |
elitism |
Elite population in percentages. |
ID |
Dominance. The default value is "ID1". Use "ID2" for Incomplete Dominance. |
Examples
## Not run:
library(genefilter)
library(ALL)
data(ALL)
bALL = ALL[, substr(ALL$BT,1,1) == "B"]
smallALL = bALL[, bALL$mol.biol %in% c("BCR/ABL", "NEG")]
smallALL$mol.biol = factor(smallALL$mol.biol)
smallALL$BT = factor(smallALL$BT)
f1 <- pOverA(0.25, log2(100))
f2 <- function(x) (IQR(x) > 0.5)
f3 <- ttest(smallALL$mol.biol, p=0.1)
ff <- filterfun(f1, f2, f3)
selectedsmallALL <- genefilter(exprs(smallALL), ff)
smallALL = smallALL[selectedsmallALL, ]
rm(f1)
rm(f2)
rm(f3)
rm(ff)
rm(bALL)
sum(selectedsmallALL)
set.seed(1357)
population0<-InitialPopulation(smallALL, 14, 8, FALSE)
individuals0<-Individuals(population0)
results0<-EvaluationFunction(smallALL, individuals0, response="mol.biol",
method=knn.cvI(k=3, l=2), trainTest="LOG")
Elitism(results0, 25, ID="ID1")
Elitism(results0, 25, ID="ID2")
## End(Not run)
EmbryonicSelection
Description
Function for deleting individuals with a fitness below a specified threshold.
Usage
EmbryonicSelection(population, results, embryonicSelection)
Arguments
population |
Population of individuals with diploid genotypes. |
results |
Results returned by EvaluationFunction(). |
embryonicSelection |
Threshold value. The default value is NA. |
Examples
## Not run:
library(genefilter)
library(ALL)
data(ALL)
bALL = ALL[, substr(ALL$BT,1,1) == "B"]
smallALL = bALL[, bALL$mol.biol %in% c("BCR/ABL", "NEG")]
smallALL$mol.biol = factor(smallALL$mol.biol)
smallALL$BT = factor(smallALL$BT)
f1 <- pOverA(0.25, log2(100))
f2 <- function(x) (IQR(x) > 0.5)
f3 <- ttest(smallALL$mol.biol, p=0.1)
ff <- filterfun(f1, f2, f3)
selectedsmallALL <- genefilter(exprs(smallALL), ff)
smallALL = smallALL[selectedsmallALL, ]
rm(f1)
rm(f2)
rm(f3)
rm(ff)
rm(bALL)
sum(selectedsmallALL)
set.seed(1357)
population0<-InitialPopulation(smallALL, 14, 8, FALSE)
individuals0<-Individuals(population0)
results0<-EvaluationFunction(smallALL, individuals0, response="mol.biol",
method=knn.cvI(k=3, l=2), trainTest="LOG")
EmbryonicSelection(individuals0, results0, 0.5)
## End(Not run)
EvaluationFunction
Description
Evaluates the individuals' fitnesses.
Usage
EvaluationFunction(x, individuals, response, method, trainTest, nnetSize = NA,
nnetDecay = NA, rdaAlpha = NA, rdaDelta = NA, ...)
Arguments
x |
Dataset in ExpressionSet format. |
individuals |
Population of individuals with diploid genotypes. |
response |
Response variable. |
method |
Supervised classifier for fitness evaluation. Most of the supervised classifiers in MLInterfaces are acceptable. The default is knn.cvI(k=3, l=2). |
trainTest |
Cross-validation method. The default is "LOG". |
nnetSize |
for nnetI. The default value is NA. |
nnetDecay |
for nnetI. The default value is NA. |
rdaAlpha |
for rdaI. The default value is NA. |
rdaDelta |
for rdaI. The default value is NA. |
... |
Additional arguments. |
Examples
## Not run:
library(genefilter)
library(ALL)
data(ALL)
bALL = ALL[, substr(ALL$BT,1,1) == "B"]
smallALL = bALL[, bALL$mol.biol %in% c("BCR/ABL", "NEG")]
smallALL$mol.biol = factor(smallALL$mol.biol)
smallALL$BT = factor(smallALL$BT)
f1 <- pOverA(0.25, log2(100))
f2 <- function(x) (IQR(x) > 0.5)
f3 <- ttest(smallALL$mol.biol, p=0.1)
ff <- filterfun(f1, f2, f3)
selectedsmallALL <- genefilter(exprs(smallALL), ff)
smallALL = smallALL[selectedsmallALL, ]
rm(f1)
rm(f2)
rm(f3)
rm(ff)
rm(bALL)
sum(selectedsmallALL)
set.seed(1357)
population0<-InitialPopulation(smallALL, 14, 8, FALSE)
individuals0<-Individuals(population0)
results<-EvaluationFunction(smallALL, individuals0, response="mol.biol",
method=knn.cvI(k=3, l=2), trainTest="LOG")
## End(Not run)
Individuals
Description
Generates individuals with diploid genotypes.
Usage
Individuals(population)
Arguments
population |
Population of haploid genotypes. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
population02<-InitialPopulation(demoALL, 20, 4, FALSE)
individuals02<-Individuals(population02)
## End(Not run)
InitialPopulation
Description
Generates an initial randomly generated population of haploid genotypes.
Usage
InitialPopulation(x, populationSize, startGenes,
EveryGeneInInitialPopulation = TRUE)
Arguments
x |
Dataset in ExpressionSet format. |
populationSize |
Number of genotypes in initial population. |
startGenes |
Genes in the genotypes at initialization. |
EveryGeneInInitialPopulation |
Request for every gene to be present in the initial population. The default value is TRUE. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
population01<-InitialPopulation(demoALL, 4, 4)
population02<-InitialPopulation(demoALL, 20, 4, FALSE)
## End(Not run)
PlotGenAlg
Description
Function for graphically representing the evolution.
Usage
PlotGenAlg(DGenes, dGenes, maxEval, meanEval)
Arguments
DGenes |
Occurences of genes as dominant. |
dGenes |
Occurences of genes as recessive. For future developments. |
maxEval |
Maximum fitness. |
meanEval |
Average fitness. |
Examples
## Not run:
#Graphical representation of the evolution after each generation.
#Intended to be used by dGAselID() only.
#Please refer to the example for dGAselID().
## End(Not run)
RandomAssortment
Description
Random assortment of chromosomes operator.
Usage
RandomAssortment(newChrs, chrConf)
Arguments
newChrs |
Set of chromosomes. |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
population02<-InitialPopulation(demoALL, 2, 4, FALSE)
chrConf02<-splitChromosomes(demoALL, 4)
set.seed(1357)
cr1<-Crossover(population02[1,], population02[2,], chrConf02)
RandomAssortment(cr1, chrConf02)
cr1
chrConf02
## End(Not run)
RandomizePop
Description
Generates a random population for the next generation.
Usage
RandomizePop(population)
Arguments
population |
Population of chromosome sets in current generation. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
population01<-InitialPopulation(demoALL, 4, 4)
population01
RandomizePop(population01)
## End(Not run)
dGAselID
Description
Initializes and starts the search with the genetic algorithm.
Usage
dGAselID(x, response, method = knn.cvI(k = 3, l = 2), trainTest = "LOG",
startGenes, populationSize, iterations, noChr = 22, elitism = NA,
ID = "ID1", pMutationChance = 0, nSMutationChance = 0,
fSMutationChance = 0, lSDeletionChance = 0, wChrDeletionChance = 0,
transposonChance = 0, randomAssortment = TRUE, embryonicSelection = NA,
EveryGeneInInitialPopulation = TRUE, nnetSize = NA, nnetDecay = NA,
rdaAlpha = NA, rdaDelta = NA, ...)
Arguments
x |
Dataset in ExpressionSet format. |
response |
Response variable |
method |
Supervised classifier for fitness evaluation. Most of the supervised classifiers in MLInterfaces are acceptable. The default is knn.cvI(k=3, l=2). |
trainTest |
Cross-validation method. The default is "LOG". |
startGenes |
Genes in the genotypes at initialization. |
populationSize |
Number of genotypes in initial population. |
iterations |
Number of iterations. |
noChr |
Number of chromosomes. The default value is 22. |
elitism |
Elite population in percentages. |
ID |
Dominance. The default value is "ID1". Use "ID2" for Incomplete Dominance. |
pMutationChance |
Chance for a Point Mutation to occur. The default value is 0. |
nSMutationChance |
Chance for a Non-sense Mutation to occur. The default value is 0. |
fSMutationChance |
Chance for a Frameshift Mutation to occur. The default value is 0. |
lSDeletionChance |
Chance for a Large Segment Deletion to occur. The default value is 0. |
wChrDeletionChance |
Chance for a Whole Chromosome Deletion to occur. The default value is 0. |
transposonChance |
Chance for a Transposon Mutation to occur. The default value is 0. |
randomAssortment |
Random Assortment of Chromosomes for recombinations. The default value is TRUE. |
embryonicSelection |
Remove chromosomes with fitness < specified value. The default value is NA. |
EveryGeneInInitialPopulation |
Request for every gene to be present in the initial population. The default value is TRUE. |
nnetSize |
for nnetI. The default value is NA. |
nnetDecay |
for nnetI. The default value is NA. |
rdaAlpha |
for rdaI. The default value is NA. |
rdaDelta |
for rdaI. The default value is NA. |
... |
Additional arguments. |
Value
The output is a list containing 5 named vectors, records of the evolution:
DGenes |
The occurrences in selected genotypes for every gene, |
dGenes |
The occurrences in discarded genotypes for every gene, |
MaximumAccuracy |
Maximum accuracy in every generation, |
MeanAccuracy |
Average accuracy in every generation, |
MinAccuracy |
Minimum accuracy in every generation, |
BestIndividuals |
Best individual in every generation. |
Examples
## Not run:
library(genefilter)
library(ALL)
data(ALL)
bALL = ALL[, substr(ALL$BT,1,1) == "B"]
smallALL = bALL[, bALL$mol.biol %in% c("BCR/ABL", "NEG")]
smallALL$mol.biol = factor(smallALL$mol.biol)
smallALL$BT = factor(smallALL$BT)
f1 <- pOverA(0.25, log2(100))
f2 <- function(x) (IQR(x) > 0.5)
f3 <- ttest(smallALL$mol.biol, p=0.1)
ff <- filterfun(f1, f2, f3)
selectedsmallALL <- genefilter(exprs(smallALL), ff)
smallALL = smallALL[selectedsmallALL, ]
rm(f1)
rm(f2)
rm(f3)
rm(ff)
rm(bALL)
sum(selectedsmallALL)
set.seed(149)
res<-dGAselID(smallALL, "mol.biol", trainTest=1:79, startGenes=12, populationSize=200,
iterations=150, noChr=5, pMutationChance=0.0075, elitism=4)
## End(Not run)
frameShiftMutation
Description
Operator for the frameshift mutation.
Usage
frameShiftMutation(individuals, chrConf, mutationChance)
Arguments
individuals |
dataset returned by Individuals(). |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
mutationChance |
Chance for a frameshift mutation to occur. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
set.seed(1234)
population<-InitialPopulation(demoALL, 4, 9)
individuals<-Individuals(population)
chrConf<-splitChromosomes(demoALL, 2)
chrConf
individuals
set.seed(123)
frameShiftMutation(individuals, chrConf, 20)
## End(Not run)
largeSegmentDeletion
Description
Operator for the large segment deletion.
Usage
largeSegmentDeletion(individuals, chrConf, mutationChance)
Arguments
individuals |
dataset returned by Individuals(). |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
mutationChance |
Chance for a large segment deletion mutation to occur. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
set.seed(1234)
population<-InitialPopulation(demoALL, 4, 9)
individuals<-Individuals(population)
chrConf<-splitChromosomes(demoALL, 2)
chrConf
individuals
set.seed(123)
largeSegmentDeletion(individuals, chrConf, 20)
## End(Not run)
nonSenseMutation
Description
Operator for the nonsense mutation.
Usage
nonSenseMutation(individuals, chrConf, mutationChance)
Arguments
individuals |
dataset returned by Individuals(). |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
mutationChance |
Chance for a nonsense mutation to occur. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
set.seed(1234)
population<-InitialPopulation(demoALL, 4, 9)
individuals<-Individuals(population)
chrConf<-splitChromosomes(demoALL, 2)
chrConf
individuals
set.seed(123)
nonSenseMutation(individuals, chrConf, 20)
## End(Not run)
pointMutation
Description
Operator for the point mutation.
Usage
pointMutation(individuals, mutationChance)
Arguments
individuals |
dataset returned by Individuals(). |
mutationChance |
chance for a point mutation to occur. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
set.seed(1234)
population<-InitialPopulation(demoALL, 4, 9)
individuals<-Individuals(population)
individuals
set.seed(123)
pointMutation(individuals, 4)
## End(Not run)
splitChromosomes
Description
Divides the genotypes into sets with a desired number of chromosomes.
Usage
splitChromosomes(x, noChr = 22)
Arguments
x |
Dataset in ExpressionSet format. |
noChr |
Desired number of chromosomes. The default value is 22. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
splitChromosomes(demoALL, 3)
splitChromosomes(demoALL)
## End(Not run)
transposon
Description
Operator for transposons.
Usage
transposon(individuals, chrConf, mutationChance)
Arguments
individuals |
dataset returned by Individuals(). |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
mutationChance |
Chance for a transposon mutation to occur. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
set.seed(1234)
population<-InitialPopulation(demoALL, 4, 9)
individuals<-Individuals(population)
chrConf<-splitChromosomes(demoALL, 2)
chrConf
individuals
set.seed(123)
transposon(individuals, chrConf, 20)
## End(Not run)
wholeChromosomeDeletion
Description
Operator for the deletion of a whole chromosome.
Usage
wholeChromosomeDeletion(individuals, chrConf, mutationChance)
Arguments
individuals |
dataset returned by Individuals(). |
chrConf |
Configuration of chromosomes returned by splitChromosomes(). |
mutationChance |
Chance for a deletion of a whole chromosome mutation to occur. |
Examples
## Not run:
library(ALL)
data(ALL)
demoALL<-ALL[1:12,1:8]
set.seed(1234)
population<-InitialPopulation(demoALL, 4, 9)
individuals<-Individuals(population)
chrConf<-splitChromosomes(demoALL, 2)
chrConf
individuals
set.seed(123)
wholeChromosomeDeletion(individuals, chrConf, 20)
## End(Not run)