Description Usage Arguments Examples
Computation of the kernel that compares fields of two atoms
1 | cmf_aa_kernel(ft, atom1, atom2, alpha)
|
ft |
|
atom1 |
|
atom2 |
|
alpha |
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 47 48 49 50 51 52 | ##---- 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(ft, atom1, atom2, alpha) {
dist2 <- eucldist2(atom1, atom2)
val <- 0.0
if (ft == "q") {
val <- atom1$pch * atom2$pch * exp(- alpha * dist2 / 4.0)
} else if (ft == "vdwr") {
val <- tripos_Rvdw[[atom1$syb]] * tripos_Rvdw[[atom2$syb]] * exp(- alpha * dist2 / 4.0)
} else if (ft == "vdw") {
w1 <- tripos_Evdw[[atom1$syb]]
w2 <- tripos_Evdw[[atom2$syb]]
a1 <- alpha / tripos_Rvdw[[atom1$syb]]^2
a2 <- alpha / tripos_Rvdw[[atom2$syb]]^2
coef <- (4 * sqrt(pi^3)) / ((a1+a2) * sqrt(2*a1+2*a2))
expart <- exp( - (a1*a2*dist2) / (2 * (a1+a2)) )
val <- w1 * w2 * coef * expart
} else if (ft == "logp") {
val <- atom1$hydroph * atom2$hydroph * exp(- alpha * dist2 / 4.0)
} else if (ft == "abra") {
val <- atom1$abraham_a * atom2$abraham_a * exp(- alpha * dist2 / 4.0)
} else if (ft == "abrb") {
val <- atom1$abraham_b * atom2$abraham_b * exp(- alpha * dist2 / 4.0)
} else if (ft == "abrs") {
val <- atom1$abraham_s * atom2$abraham_s * exp(- alpha * dist2 / 4.0)
} else if (ft == "abre") {
val <- atom1$abraham_e * atom2$abraham_e * exp(- alpha * dist2 / 4.0)
} else if (ft == "mop_q") {
val <- atom1$mop_q * atom2$mop_q * exp(- alpha * dist2 / 4.0)
} else if (ft == "mop_dn") {
val <- atom1$mop_dn * atom2$mop_dn * exp(- alpha * dist2 / 4.0)
} else if (ft == "mop_de") {
val <- atom1$mop_de * atom2$mop_de * exp(- alpha * dist2 / 4.0)
} else if (ft == "mop_pis") {
val <- atom1$mop_pis * atom2$mop_pis * exp(- alpha * dist2 / 4.0)
} else if (ft == "mop_homo") {
val <- atom1$mop_homo * atom2$mop_homo * exp(- alpha * dist2 / 4.0)
} else if (ft == "mop_lumo") {
val <- atom1$mop_lumo * atom2$mop_lumo * exp(- alpha * dist2 / 4.0)
} else if (ft == "ind") {
if (atom1$syb == atom2$syb) {
val <- exp(- alpha * dist2 / 4.0)
}
}
if (ft != "vdw") {
val <- val * sqrt(pi^3 / alpha^3)
}
val
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.