Biological Structure Analysis

Utilities to process, organize and explore protein structure, sequence and dynamics data. Features include the ability to read and write structure, sequence and dynamic trajectory data, perform sequence and structure database searches, data summaries, atom selection, alignment, superposition, rigid core identification, clustering, torsion analysis, distance matrix analysis, structure and sequence conservation analysis, normal mode analysis, principal component analysis of heterogeneous structure data, and correlation network analysis from normal mode and molecular dynamics data. In addition, various utility functions are provided to enable the statistical and graphical power of the R environment to work with biological sequence and structural data. Please refer to the URLs below for more information.

The Bio3D package for structural bioinformatics consists of sets of functions for:

Major functions are listed below with links to further documentation that includes example code and results.

Note that you can also get help on any particular function by using the command ?function or help(function) (e.g. help(read.pdb)) and directly execute the example code for a given function with the command example(function) from within R itself.

We also distribute a number of extended Bio3D vignettes that provide worked examples of using Bio3D to perform a particular type of analysis. Currently available vignettes include:

  • Installing Bio3D ( PDF | HTML)
  • Getting started with Bio3D ( PDF | HTML )
  • PDB structure manipulation and analysis with Bio3D ( PDF | HTML)
  • Beginning trajectory analysis with Bio3D ( PDF | HTML)
  • Enhanced methods for Normal Mode Analysis with Bio3D ( PDF | HTML)
  • Comparative sequence and structure analysis with Bio3D ( PDF | HTML)
  • Correlation network analysis with Bio3D ( PDF | HTML )
  • Protein structure network analysis with Bio3D ( PDF | HTML )
  • Online protein structure analysis with the Bio3D WebApp ( PDF | HTML )
  • Online Normal Mode Analysis with Bio3D WebApps ( PDF | HTML )

There is also a package manual (in PDF format) that is a concatenation of each functions documentation.

Note that for information on Bio3D development status or to report a bug, please refer to:



v2.3 Version 2.3, released September 2016, provides a number of new features and enhancements including: new facilities for ensemble normal mode analysis (NMA) with all-atom elastic network model (ENM) and Gaussian network model (GNM), enhanced NMA calculations with the rotation-translation block (RTB) method, new "4-bead" coarse-grained ENM, more efficient reading of large PDB files using Rcpp, PDB annotation from the PFAM database, and more supported I/O file formats.

We have also updated online vignettes and other documentations. For a fine-grained list of changes, or to report a bug, please consult:

For full install instructions see:

Major new/enhanced functions include:

  • aanma: All-atom ENM normal mode analysis (with RTB and 4-bead ENM supported)
  • aanma.pdbs: Ensemble NMA with all-atom ENM
  • gnm: Gaussian network model (GNM) calculations
  • gnm.pdbs: Ensemble NMA with GNM
  • dccm.gnm: Dynamical cross-correlation for GNM
  • pdbs2sse: Retrieve SSE from pdbs object with appropriate residue numbers for plotting
  • mask.dccm: Produce a new DCCM object with selected atoms masked
  • pdb.pfam: Function for PFAM annotation of PDB IDs
  • pymol.pdbs: Builds a pymol session from a 'pdbs' object
  • read.cif: Read a Protein Data Bank (mmCIF) coordinate file
  • read.dssp: For reading existing DSSP output files
  • read.stride: For reading existing STRIDE output files
  • read.crd: Read a CHARMM CARD (CRD) or AMBER coordinate file
  • read.prmtop: Read parameter and topology data from an AMBER PrmTop file
  • read.pdb: Use Rcpp to (more rapidly) read and parse PDB files
  • read.pdb2: Renamed old read.pdb function
  • plot.matrix.loadings: For plotting loadings obtained from pca.array()
  • community.aln: To align communities from two or more related networks
  • Supports 'insert' identifier
  • vmd.cna and vmd.cnapath: Renamed view.cna and view.cnapath
  • pymol.dccm, pymol.modes, pymol.nma, and pymol.pca: Renamed functions
  • plot.fasta: Improved plotting function for multiple sequence alignment
  • read.mol2, write.mol2,, trim, as.pdb: Read, write and manipulate mol2 files with functions

Happy Bio3Ding!

v2.2 Version 2.2, released in Feb 2015, contains new facilities for sub-optimal path analysis of biomolecular correlation networks, constructing biological units, identification and tidying of malformed PDB files, and improved secondary structure annotation of 'pdbs' objects and various plots. We have also updated and enhanced atom selection functionality and developed a new vignette detailing PDB structure manipulation and analysis facilities. For a fine- grained list of changes, or to report a bug, please consult:

Major new functions include:

  • cnapath: Suboptimal Path Analysis for Correlation Networks
  • biounit: Biological Unit Construction
  • clean.pdb: Inspect And Clean Up A PDB Object
  • cat.pdb: Concatenate Multiple PDB Objects
  • pdb2sse: Obtain An SSE Sequence Vector From A PDB Object
  • bounds.sse: Obtain A SSE Object From An SSE Sequence Vector
  • aa.table: Updated amino acid reference data that replaces older 'aa.mass'
  • as.fasta: Convert alignment/sequence in matrix/vector format to a FASTA object.
  • as.pdb: Convert coordinate data to PDB format
  • Convert atomic indices to a object
  • Convert vectors and matrices to 'xyz' class objects
  • Atom selection from PDB objects has been extensively updated
  • basename.pdb: Utility for manipulation of PDB file names
  • check.utility: Check and Report on Missing Bio3D Utility Programs
  • cmapt: Update contact map methods for pdb and xyz objects
  • cna: Update correlation network analysis methods for dccm and ensmb objects"
  • cnapath: Suboptimal Path Analysis for Correlation Networks
  • com: Updated center of mass methods for pdb and xyz objects
  • Combine objects, renamed from previous 'combine.sel'
  • cov.enma: New method to Calculate Covariance Matrix from Ensemble Normal Modes"
  • cov2dccm: Calculates the N-by-N cross-correlation matrix from a 3N-by-3N covariance matrix
  • covsoverlap: New methods for nma and enma objects
  • dm: Distance matrix gets new methods for pdb and xyz class objects
  • dssp: Secondary Structure Analysis with DSSP gets new methods for pdb, xyz and pdbs class objects
  • geostas: Geometrically stable domain finder gets new methods for nma, enma, pdb, pdbs and xyz objects.
  • is.pdbs: Is an Object of Class pdbs
  • mono.colors: New color palette
  • pdb2sse: Obtain An SSE Sequence Vector From A PDB Object
  • pdbfit: Coordinate superposition gets new methods for multi-model pdb objects and pdbs objects.
  • read.crd: Can Now Read Coordinate Data from Amber or CHARMM
  • read.prmtop: Read AMBER Parameter/Topology files
  • var.pdbs: Pairwise Distance Variance in Cartesian Coordinates
  • plot: New or updated plot methods for 'cmap', 'geostas', and 'pca' class objects as well as a new plot.fluct() function that expands on plot.bio3d() for plotting atomic fluctuations from MD and NMA results.
  • print: New print methods for cnapath, enma, geostas, mol2, nma, pca, pdb, prmtop, rle2, select and sse objects.


Version 2.1, released in Sep 2014, contains new facilities for Correlation Network Analysis (cna) and Geometrically Stable Domain finding (geostas). We have also changed 'PDB object data' storage from a matrix to a data.frame format. Improved methods and functionality for ensemble NMA are now also included along with extensive improvements to package vignettes and function documentation. For a fine-grained list of changes, or to report a bug, please consult:

Major new functions include:

  • cna: Protein Dynamic Correlation Network Construction and Community Analysis.
  • plot.cna: Protein Structure Network Plots in 2D and 3D.
  • print.cna: Summarize and Print Features of a cna Network Graph
  • identify.cna: Identify Points in a CNA Protein Structure Network Plot
  • layout.cna: Protein Structure Network Layout
  • view.cna: View CNA Protein Structure Network Community Output in VMD
  • prune.cna: Prune A cna Network Object
  • community.tree: Reconstruction of the Girvan-Newman Community Tree for a CNA Class Object.
  • network.amendment: Amendment of a CNA Network According To A Input Community Membership Vector.
  • lmi: Linear Mutual Information Matrix
  • dccm.pca: Dynamic Cross-Correlation from Principal Component Analysis
  • filter.dccm: Filter for Cross-correlation Matrices (Cij)
  • cmap.filter: Contact Map Consensus Filtering
  • geostas ( GeoStaS Domain Finder
  • bhattacharyya Bhattacharyya Coefficient
  • covsoverlap: Covariance Overlap
  • sip: Square Inner Product
  • cov.nma: Calculate Covariance Matrix from Normal Modes
  • mktrj.enma: Ensemble NMA Atomic Displacement Trajectory
  • pca.array: Principal Component Analysis of an array of matrices
  • hmmer: HMMER Sequence Search
  • plot.hmmer: Plot a Summary of HMMER Hit Statistics.
  • uniprot: Fetch UniProt Entry Data.
  • pfam: Download Pfam FASTA Sequence Alignment
  • hclustplot: Dendrogram with Clustering Annotation
  • write.pir: Write PIR Formated Sequences
  • mustang: Structure-based Sequence Alignment with MUSTANG
  • pdbs.filter: Filter or Trim a pdbs PDBs Object
  • dssp.pdbs: Secondary Structure Analysis of Aligned PDB Structures with DSSP
  • plot.fasta: Plot a Multiple Sequence Alignment
  • print.fasta: Printing Sequence Alignments
  • inspect.connectivity: Check the Connectivity of Protein Structures
  • Pairwise Distance Variance in Cartesian Coordinates
  •, Is an Object of Class
  • setup.ncore: Setup for Running Bio3D Functions using Multiple CPU Cores


Version 2.0, released in Nov 2013, contains over 30 new functions including enhanced Normal Mode Analysis facilities as well extensive improvements to existing code and documentation. For a fine-grained list of changes or to report a bug, please consult:

Major new functions include:

  • aa2mass: Amino Acid Residues to Mass Converter
  • atom.index: Index of Atomic Masses
  • atom2mass(atom2ele, formula2mass): Atom Names to Mass Converter
  • Binding Site Residues
  • com( Center of Mass
  • combine.sel: Combine Atom Selections From PDB Structure
  • dccm.enma: Cross-Correlation for Ensemble NMA (eNMA)
  • dccm.mean: Filter DCCM matrices
  • dccm.nma: Dynamic Cross-Correlation from Normal Modes Analysis
  • DCCM: Dynamical Cross-Correlation Matrix
  • deformation.nma: Deformation Analysis
  • dssp.trj: Secondary Structure Analysis of Trajectories with DSSP
  • fluct.nma: NMA Fluctuations
  • Mass-weighted Inner Product
  • is.pdb: Is an Object of Class pdb
  • Is an Object of Class
  • load.enmff(ff.calpha, ff.calphax, ff.anm, ff.pfanm, ff.sdenm, ff.reach): ENM Force Field Loader
  • mktrj.nma: NMA Atomic Displacement Trajectory
  • nma(build.hessian, print.nma): Normal Mode Analysis
  • nma.pdbs(print.enma): Ensemble Normal Mode Analysis
  • normalize.vector: Mass-Weighted Normalized Vector
  • pdb.annotate: Get Customizable Annotations From PDB
  • pdb2aln: Align a PDB structure to an existing alignment
  • pdb2aln.ind: Mapping between PDB atomic indices and alignment positions
  • pdbfit: PDB File Coordinate Superposition
  • pdbs2pdb: PDBs to PDB Converter
  • plot.enma: Plot eNMA Results
  • plot.nma: Plot NMA Results
  • plot.rmsip: Plot RMSIP Results
  • read.mol2: Read MOL2 File
  • sdENM: Index for the sdENM ff
  • sse.bridges: SSE Backbone Hydrogen Bonding
  • struct.aln: Structure Alignment Of Two PDB Files
  • view.dccm: Visualization of Dynamic Cross-Correlation
  • view.modes: Vector Field Visualization of Modes
  • vmd.colors: Color as in VMD Molecular Viewer


Releases will be numbered with the following semantic versioning format:


E.g.: 2.0-1

And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch)
  • New additions without breaking backward compatibility bumps the minor (and resets the patch)
  • Bug fixes and misc changes bumps the patch

For more information on SemVer, please visit

For changes prior to v1.1-6 (Apr 2013) please see the bio3d wki:

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


2.3-4 by Barry Grant, 10 months ago,

Browse source code at

Authors: Barry Grant [aut, cre] , Xin-Qiu Yao [aut] , Lars Skjaerven [aut] , Julien Ide [aut]

Documentation:   PDF Manual  

GPL (>= 2) license

Imports Rcpp, parallel, grid, graphics, grDevices, stats, utils

Suggests XML, RCurl, lattice, ncdf4, igraph, bigmemory, knitr, testthat, httr

Linking to Rcpp

Imported by COUSCOus, aLFQ, compas, vanddraabe.

Depended on by Bios2cor, Rknots.

See at CRAN