Write a Protein Data Bank (PDB) file for a given ‘xyz’ Cartesian coordinate vector or matrix.

write.pdb(pdb = NULL, file = "R.pdb", xyz = pdb$xyz, type = NULL, resno = NULL,
 resid = NULL, eleno = NULL, elety = NULL, chain = NULL, insert = NULL, 
 alt = NULL, o = NULL, b = NULL, segid = NULL, elesy = NULL, charge = NULL, 
 append = FALSE, verbose = FALSE, chainter = FALSE, end = TRUE, sse = FALSE, 
 print.segid = FALSE)

Arguments

pdb

a PDB structure object obtained from read.pdb.

file

the output file name.

xyz

Cartesian coordinates as a vector or 3xN matrix.

type

vector of record types, i.e. "ATOM" or "HETATM", with length equal to length(xyz)/3.

resno

vector of residue numbers of length equal to length(xyz)/3.

resid

vector of residue types/ids of length equal to length(xyz)/3.

eleno

vector of element/atom numbers of length equal to length(xyz)/3.

elety

vector of element/atom types of length equal to length(xyz)/3.

chain

vector of chain identifiers with length equal to length(xyz)/3.

insert

vector of insertion code with length equal to length(xyz)/3.

alt

vector of alternate record with length equal to length(xyz)/3.

o

vector of occupancy values of length equal to length(xyz)/3.

b

vector of B-factors of length equal to length(xyz)/3.

segid

vector of segment id of length equal to length(xyz)/3.

elesy

vector of element symbol of length equal to length(xyz)/3.

charge

vector of atomic charge of length equal to length(xyz)/3.

append

logical, if TRUE output is appended to the bottom of an existing file (used primarly for writing multi-model files).

verbose

logical, if TRUE progress details are printed.

chainter

logical, if TRUE a TER line is inserted at termination of a chain.

end

logical, if TRUE END line is written.

sse

logical, if TRUE secondary structure annotations are written.

print.segid

logical, if FALSE segid will not be written.

Details

Only the xyz argument is strictly required. Other arguments assume a default poly-ALA C-alpha structure with a blank chain id, occupancy values of 1.00 and B-factors equal to 0.00.

If the input argument xyz is a matrix then each row is assumed to be a different structure/frame to be written to a “multimodel” PDB file, with frames separated by “END” records.

Value

Called for its effect.

References

Grant, B.J. et al. (2006) Bioinformatics 22, 2695--2696.

For a description of PDB format (version3.3) see:
http://www.wwpdb.org/documentation/format33/v3.3.html.

Author

Barry Grant with contributions from Joao Martins.

Note

Check that: (1) chain is one character long e.g. “A”, and (2) resno and eleno do not exceed “9999”.

See also

Examples

# \donttest{ # PDB server connection required - testing excluded # Read a PDB file pdb <- read.pdb( "1bg2" )
#> Note: Accessing on-line PDB file
#> Warning: /var/folders/xf/qznxnpf91vb1wm4xwgnbt0xr0000gn/T//Rtmp9oBdbc/1bg2.pdb exists. Skipping download
# Renumber residues nums <- as.numeric(pdb$atom[,"resno"]) nums <- nums - (nums[1] - 1) # Write out renumbered PDB file outfile = file.path(tempdir(), "eg.pdb") write.pdb(pdb=pdb, resno = nums, file = outfile) invisible( cat("\nSee the output file:", outfile, sep = "\n") )
#> #> See the output file: #> /var/folders/xf/qznxnpf91vb1wm4xwgnbt0xr0000gn/T//Rtmp9oBdbc/eg.pdb
# }