Nothing
context("Testing the utility function clean.pdb()")
test_that("clean.pdb() does nothing for 'clean' pdb by default", {
file <- system.file("examples/1dpx.pdb", package="bio3d")
invisible(capture.output(pdb <- read.pdb(file)))
suppressWarnings(
invisible(capture.output(npdb <- clean.pdb(pdb)))
)
expect_true(is.null(npdb$log))
npdb$call <- NULL
npdb$log <- NULL
pdb$call <- NULL
expect_equal(pdb, npdb)
})
test_that("clean.pdb() does renumbering properly", {
skip_on_cran()
skip_on_travis()
suppressWarnings(
invisible(capture.output(pdb <- read.pdb("1tag")))
)
invisible(capture.output(npdb <- clean.pdb(pdb, force.renumber = TRUE)))
resno <- npdb$atom[npdb$calpha, "resno"]
expect_equal(resno[1:10], 1:10)
# A PDB with 'insert' residues: Should do automatic renumbering
invisible(capture.output(pdb <- read.pdb("1a7l")))
invisible(capture.output(npdb <- clean.pdb(pdb)))
resno <- npdb$atom[npdb$calpha, "resno"]
expect_equal(resno[1:10], 1:10)
# Renumbering for each chain
invisible(capture.output(npdb <- clean.pdb(pdb, consecutive = FALSE)))
resno <- npdb$atom[npdb$calpha, "resno"]
chain <- npdb$atom[npdb$calpha, "chain"]
expect_equal(resno[chain=="B"][1:10], 1:10)
# Is SSE update correct?
invisible(capture.output(ss <- pdb2sse(pdb)))
invisible(capture.output(nss <- pdb2sse(npdb)))
expect_equal(as.character(ss), as.character(nss))
} )
test_that("clean.pdb() relabels chains properly (fix.chain = TRUE)", {
file <- system.file("examples/1dpx.pdb", package="bio3d")
invisible(capture.output(pdb <- read.pdb(file)))
# remove chain ID
pdb$atom[, "chain"] <- as.character(NA)
pdb$helix$chain <- ""
pdb$sheet$chain <- ""
suppressWarnings(
invisible(capture.output(npdb <- clean.pdb(pdb, fix.chain = TRUE)))
)
expect_equal(npdb$atom[npdb$calpha, "chain"], rep("A", sum(npdb$calpha)))
# A case with wrong chain labels but consecutive residue numbering
file <- system.file("examples/hivp.pdb", package="bio3d")
invisible(capture.output(pdb0 <- read.pdb(file)))
# Manually renumbering all residues
pdb <- pdb0
pdb$atom[, "resno"] <- vec2resno(1:sum(pdb$calpha),
paste(pdb$atom[, "resno"], pdb$atom[, "chain"], sep = "_") )
# Label both chains as "A"
pdb$atom[, "chain"] <- "A"
# Update SSE
pdb$helix$start[pdb$helix$chain=='B'] <- pdb$helix$start[pdb$helix$chain=='B'] + 99
pdb$helix$end[pdb$helix$chain=='B'] <- pdb$helix$end[pdb$helix$chain=='B'] + 99
pdb$sheet$start[pdb$sheet$chain=='B'] <- pdb$sheet$start[pdb$sheet$chain=='B'] + 99
pdb$sheet$end[pdb$sheet$chain=='B'] <- pdb$sheet$end[pdb$sheet$chain=='B'] + 99
pdb$helix$chain[] <- 'A'
pdb$sheet$chain[] <- 'A'
suppressWarnings(
invisible(capture.output(npdb <- clean.pdb(pdb, consecutive = FALSE, force.renumber = TRUE, fix.chain = TRUE)))
)
pdb0$call <- NULL
npdb$call <- NULL
npdb$log <- NULL
expect_equal(pdb0, npdb)
} )
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.