Description Usage Arguments Value Examples
A function for calculating the kernel matrix using genotype data
1 | KERNEL(G, weight)
|
G |
matrix: genotypes of SNP markers in one gene. |
weight |
numerical vector: prior weight for each marker |
KERNEL function returns a kernel (similarity) matrix.
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | ## The function is currently defined as
function (G, weight)
{
if (length(dim(G)) == 0) {
size <- length(G)
k <- matrix(1, size, size)
for (i in 1:(size - 1)) {
j <- seq(1, i, 1)
remain <- G[-j]
Ones <- matrix(1, length(remain), 1)
leading <- Ones * G[i]
D <- abs(remain - leading)
AM <- D
AM[AM == 0] <- 4
AM[AM == 2] <- 0
AM[AM == 1] <- 2
AM[remain == 1 & leading == 1] <- 2
k[i, (i + 1):size] <- k[(i + 1):size, i] <- AM *
weight/sum(4 * weight)
}
}
if (length(dim(G)) > 0) {
size <- nrow(G)
k <- matrix(1, size, size)
for (i in 1:(size - 1)) {
j <- seq(1, i, 1)
if (i < (size - 1)) {
remain = as.matrix(G[-j, ])
}
if (i == (size - 1)) {
remain <- t(as.matrix(G[-j, ]))
}
Ones <- matrix(1, nrow(remain), 1)
leading <- Ones %*% G[i, ]
D <- abs(remain - leading)
AM <- as.matrix(D)
AM[AM == 0] <- 4
AM[AM == 2] <- 0
AM[AM == 1] <- 2
AM[remain == 1 & leading == 1] <- 2
k[i, (i + 1):size] <- k[(i + 1):size, i] <- AM %*%
weight/sum(4 * weight)
}
}
return(k)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.