struct.aln(fixed, mobile, fixed.inds=NULL, mobile.inds=NULL, write.pdbs=TRUE, outpath = "fitlsq", prefix=c("fixed", "mobile"), max.cycles=10, cutoff=0.5, ... )
pdb
as obtained from
function read.pdb
. pdb
as obtained from
function read.pdb
. atom.select
that selects the elements of fixed
upon
which the calculation should be based.atom.select
that selects the elements of mobile
upon
which the calculation should be based.write.pdbs
is TRUE. seqaln
function.Performs a sequence and structural alignment of two PDB entities.
This function performs a sequence alignment followed by a structural alignment of the two PDB entities. Cycles of refinement steps of the structural alignment are performed to improve the fit by removing atoms with a high structural deviation. The primary purpose of the function is to allow rapid structural alignment (and RMSD analysis) for protein structures with unequal, but related sequences.
The function reports the residues of fixed
and mobile
included in the final structural alignment, as well as the related
RMSD values.
This function makes use of the underlying functions seqaln
,
rot.lsq
, and rmsd
.
fixed
. mobile
. mobile
. Grant, B.J. et al. (2006) Bioinformatics 22, 2695--2696.
# Needs MUSCLE installed - testing excluded ## Stucture of PKA: a <- read.pdb("1cmk")Note: Accessing on-line PDB file PDB has ALT records, taking A only, rm.alt=TRUE## Stucture of PKB: b <- read.pdb("2jdo")Note: Accessing on-line PDB file## Align and fit b on to a: path = file.path(tempdir(), "struct.aln") aln <- struct.aln(a, b, outpath = path, outfile = tempfile())Initial RMSD (321 atoms): 6.647 Cycle 1: 7 atoms rejected Mean: 1.3 Std: 6.1 Cut: 13.4 RMSD (314 of 321 atoms): 2.397 Cycle 2: 22 atoms rejected Mean: 1.2 Std: 1.7 Cut: 4.5 RMSD (292 of 321 atoms): 1.501 Cycle 3: 23 atoms rejected Mean: 1 Std: 0.9 Cut: 2.7 RMSD (269 of 321 atoms): 1.165 Cycle 4: 23 atoms rejected Mean: 0.9 Std: 0.6 Cut: 2 RMSD (246 of 321 atoms): 0.98## Should be the same as aln$rmsd (when using aln$a.inds and aln$b.inds) rmsd(a$xyz, b$xyz, aln$a.inds$xyz, aln$b.inds$xyz, fit=TRUE)[1] 0.98invisible( cat("\nSee the output files:", list.files(path, full.names = TRUE), sep="\n") )See the output files: /tmp/RtmpTDihxb/struct.aln/fixed.pdb /tmp/RtmpTDihxb/struct.aln/mobile_0.pdb /tmp/RtmpTDihxb/struct.aln/mobile_1.pdb /tmp/RtmpTDihxb/struct.aln/mobile_2.pdb /tmp/RtmpTDihxb/struct.aln/mobile_3.pdb /tmp/RtmpTDihxb/struct.aln/mobile_4.pdb## Align two subunits of GroEL (open and closed states) a <- read.pdb("1sx4")Note: Accessing on-line PDB fileb <- read.pdb("1xck")Note: Accessing on-line PDB file## Select chain A only a.inds <- atom.select(a, chain="A") b.inds <- atom.select(b, chain="A") ## Align and fit: aln <- struct.aln(a,b, a.inds, b.inds)Initial RMSD (524 atoms): 12.062 Cycle 1: 42 atoms rejected Mean: 8.1 Std: 6.6 Cut: 21.4 RMSD (482 of 524 atoms): 9.736 Cycle 2: 46 atoms rejected Mean: 6 Std: 5.6 Cut: 17.2 RMSD (436 of 524 atoms): 7.242 Cycle 3: 39 atoms rejected Mean: 4 Std: 4.4 Cut: 12.8 RMSD (397 of 524 atoms): 5.193 Cycle 4: 36 atoms rejected Mean: 3.1 Std: 3.2 Cut: 9.4 RMSD (361 of 524 atoms): 3.678 Cycle 5: 31 atoms rejected Mean: 2.3 Std: 2.2 Cut: 6.7 RMSD (330 of 524 atoms): 2.697 Cycle 6: 33 atoms rejected Mean: 1.7 Std: 1.5 Cut: 4.8 RMSD (297 of 524 atoms): 2.019 Cycle 7: 32 atoms rejected Mean: 1.4 Std: 1.1 Cut: 3.6 RMSD (265 of 524 atoms): 1.475 Cycle 8: 22 atoms rejected Mean: 1 Std: 0.9 Cut: 2.7 RMSD (243 of 524 atoms): 0.976