Nothing
context("Testing fitting functions")
test_that("Fitting still works", {
## Test fit.xyz / gap.inspect
attach(transducin)
inds <- unlist(lapply(c("1TAG", "1AS0", "1AS2"), grep, pdbs$id))
pdbs <- trim.pdbs(pdbs, row.inds=inds)
gaps <- gap.inspect(pdbs$xyz)
rmsd.mat <- matrix(c(0.000, 1.792, 1.903,
1.792, 0.000, 1.881,
1.903, 1.881, 0.000),
ncol=3, byrow=TRUE)
rownames(rmsd.mat) <- basename.pdb(pdbs$id)
colnames(rmsd.mat) <- basename.pdb(pdbs$id)
## Test rmsd()
expect_that(suppressWarnings(rmsd( pdbs )),
equals(rmsd.mat, tolerance = 1e-6))
## Test fit.xyz()
xyz <- fit.xyz( fixed = pdbs$xyz[1,],
mobile = pdbs$xyz,
fixed.inds = gaps$f.inds,
mobile.inds = gaps$f.inds )
x1.expected <- c(29.72513, 64.03389, 42.98273, 30.15516, 67.73641, 43.70090)
x2.expected <- c(NA, NA, NA, 29.28225, 67.23703, 43.05571)
x3.expected <- c(NA, NA, NA, 30.17547, 67.15645, 43.46491)
expect_that(head(xyz[1,]), equals(x1.expected, tolerance = 1e-6))
expect_that(head(xyz[2,]), equals(x2.expected, tolerance = 1e-6))
expect_that(head(xyz[3,]), equals(x3.expected, tolerance = 1e-6))
rmsd.mat <- matrix(c(0.000, 1.659, 1.814,
1.659, 0.000, 1.697,
1.814, 1.697, 0.000),
ncol=3, byrow=TRUE)
rownames(rmsd.mat) <- basename.pdb(pdbs$id)
colnames(rmsd.mat) <- basename.pdb(pdbs$id)
expect_that(suppressWarnings(rmsd( xyz[, gaps$f.inds] )),
equals(rmsd.mat, tolerance = 1e-6))
expect_that(suppressWarnings(rmsd( pdbs, fit=TRUE )),
equals(rmsd.mat, tolerance = 1e-6))
xyz2 <- fit.xyz( fixed = pdbs$xyz[1,],
mobile = pdbs,
fixed.inds = gaps$f.inds,
mobile.inds = gaps$f.inds )
expect_that(xyz2, equals(xyz))
detach(transducin)
}
)
test_that("struct.aln still works", {
skip_on_cran()
skip_on_travis()
if(!check.utility('muscle')) {
skip('Need MUSCLE installed to run this test')
}
## Simple test with PDB ID 1HEL
file.a <- system.file("examples/1hel.pdb",package="bio3d")
file.b <- system.file("examples/1dpx.pdb",package="bio3d")
invisible(capture.output(pdb.a <- read.pdb(file.a)))
invisible(capture.output(pdb.b <- read.pdb(file.b)))
invisible(capture.output(aln <- struct.aln(pdb.a, pdb.b, write.pdbs=FALSE,
cutoff=0.1, max.cycles=2, extra.args="-quiet")))
rmsda <- c(0.293, 0.229, 0.200)
expect_that(aln$rmsd, equals(rmsda, tolerance = 1e-6))
expect_that(length(aln$a.inds$atom), equals(112))
expect_that(length(aln$b.inds$atom), equals(112))
expect_that(length(aln$b.inds$xyz), equals(112*3))
expect_that(length(aln$b.inds$xyz), equals(112*3))
}
)
# A little bit more tests...
test_that("fit.xyz() gets the same results as VMD", {
skip_on_cran()
skip_on_travis()
if(!check.utility('muscle')) {
skip('Need MUSCLE installed to run this test')
}
invisible(capture.output(
capture.output(pdbs <- pdbaln(c("1tag", "1as0")), type="message"))
)
inds <- gap.inspect(pdbs$xyz)$f.inds
expect_error(fit.xyz("string", pdbs$xyz, inds, inds))
expect_error(fit.xyz(pdbs$xyz, pdbs$xyz, inds, inds))
expect_error(fit.xyz(pdbs$xyz[1,], pdbs$xyz, inds, 1:4))
xyz <- fit.xyz(pdbs$xyz[1,], pdbs$xyz[2,], inds, inds)
xyz <- xyz[!is.na(xyz)]
xyz0 <- c(41.063, 15.667, 58.826, 43.041, 17.479, 56.113,
44.826, 15.317, 53.571) # VMD results
expect_equal(round(xyz[1:9], 3), xyz0)
})
test_that("fit.xyz() with ncore>1 works properly", {
skip_on_cran()
skip_on_travis()
attach(transducin)
inds <- unlist(lapply(c("1TAG", "1AS0", "1AS2"), grep, pdbs$id))
pdbs <- trim.pdbs(pdbs, row.inds=inds)
#invisible(capture.output(pdbs <- pdbaln(c("1tag", "1as0", "1as2"))))
#inds <- gap.inspect(pdbs$xyz)$f.inds
# check if ncore > 1 is really faster
time1 <- system.time(xyz1 <- fit.xyz(pdbs$xyz[1,], pdbs$xyz, inds, inds, ncore=1))
time2 <- system.time(xyz2 <- fit.xyz(pdbs$xyz[1,], pdbs$xyz, inds, inds, ncore=NULL))
time1 <- time1["elapsed"]
time2 <- time2["elapsed"]
expect_equivalent(xyz1, xyz2)
# cat("Speed up by", round((time1-time2)/time2, 1)*100, "%", sep="")
# if(getOption("cores") > 1)
# expect_true(time1 > time2)
detach(transducin)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.