mirror: Reflection of Atomic Coordinates

View source: R/mirror.R

mirrorR Documentation

Reflection of Atomic Coordinates

Description

Perform a reflection (or mirror) operation on atomic coordinates with respect to a given reflection plane.

Usage

mirror(...)

## S3 method for class 'coords'
mirror(x, p1, p2 = NULL, p3 = NULL, mask = TRUE, crystal = NULL, ...)

## S3 method for class 'pdb'
mirror(x, p1, p2 = NULL, p3 = NULL, mask = TRUE, crystal = x$crystal, ...)

Arguments

...

further arguments passed to or from other methods.

x

an R object containing atomic coordinates.

p1

a numeric vector of length 3 containing the coordinates of the first point defining the reflexion plan. Can also be a 3x3 matrix or data.frame containing by row p1, p2 and p3.

p2

a numeric vector of length 3 containing the coordinates of the second point defining the reflexion plane.

p3

a numeric vector of length 3 containing the coordinates of the third point defining the reflexion plane.

mask

a logical vector indicating the set of coordinates to which to apply the reflexion.

crystal

an object of class ‘crystal’ used to convert fractional into Cartesian coordinates (when needed).

Details

mirror is a generic function. Method for objects of class ‘coords’ first convert the coordinates into Cartesian coordinates using crystal if needed. Once reflected, the coordinates are reconverted back to the original basis set using again crystal.

Method for objects of class ‘pdb’ first extract coordinates from the object using the function coords, perform the reflection, and update the coordinates of the ‘pdb’ object using the function coords<-.

Value

An object of the same class as x with reflected coordinates.

See Also

Helper functions for reflection with respect to a given Cartesian plane or a plane defined by two lattice vectors:
Mxy, Myz, Mzx, Mab, Mbc, Mca
Passing from Cartesian to fractional coordinates (or Vis Versa):
xyz2abc, abc2xyz

Examples

# First lets read a pdb file
x <- read.pdb(system.file("examples/PCBM_ODCB.pdb", package="Rpdb"))
cell <- cell.coords(x)
visualize(x, mode = NULL)

# Mirror operation with respect to the ab-plane
visualize(mirror(x, rep(0,3), p1=cell[, "a"], p2=cell[, "b"]), mode = NULL)
# Mirror operation with respect to the ab-plane for residue 1
visualize(mirror(x, rep(0,3), p1=cell[, "a"], p2=cell[, "b"],
   mask = x$atoms$resid == 1), mode = NULL)


Rpdb documentation built on March 16, 2026, 5:07 p.m.