Protein Structure
This module defines classes and functions to fetch, parse, and write structural data files, execute structural analysis programs, and to access and search structural databases, e.g. ProteinDataBank.
PDB resources
fetchPDB()- retrieve PDB files
fetchPDBviaFTP()- download PDB/PDBML/mmCIF files
fetchPDBviaHTTP()- download PDB files
You can use following functions to manage PDB file resources:
pathPDBFolder()- local folder for storing PDB files
pathPDBMirror()- local PDB mirror path
wwPDBServer()- set wwPDB FTP/HTTP server for downloads
The following functions can be used to handle local PDB files:
findPDBFiles()- return a dictionary containing files in a path
iterPDBFilenames()- yield file names in a path or local PDB mirror
Blast search PDB
The following are for blast searching PDB content.
blastPDB()- blast search NCBI PDB database
PDBBlastRecord- store/evaluate NCBI PDB blast search results
PDB clusters biopolymer chains using blast weekly. These clusters can be retrieved using the following functions. Using cluster data is as good as blast searching PDB most of the time and incredibly faster always.
listPDBCluster()- get list of identifiers in a PDB sequence cluster
loadPDBClusters()- load PDB clusters into memory
fetchPDBClusters()- retrieve PDB sequence cluster data from wwPDB
Parse/write PDB files
Following ProDy functions are for parsing and writing .pdb files:
parsePDB()- parse.pdbformated file
parsePDBStream()- parse.pdbformated stream
writePDB()- write.pdbformatted file
writePDBStream()write.pdbformated stream
Since .pqr format is similar to .pdb format, following
functions come as bonus features:
writePQR()- write atomic data to a file in.pqrformat
parsePQR()- parse atomic data from files in.pqrformat
Parse mmCIF files
Following ProDy functions are for parsing .cif files:
parseMMCIF()- parse.cifformated file
parseMMCIFStream()- parse.cifformated stream
Quick visualization
showProtein() function can be used to take a quick look at protein
structures.
Edit structures
The following functions allow editing structures using structural data from PDB header records:
assignSecstr()- add secondary structure data from header to atoms
buildBiomolecules()- build biomolecule from header records
PDB header data
Use the following to parse and access header data in PDB files:
parsePDBHeader()- parse header data from.pdbfiles
Chemical- store PDB chemical (heterogen) component data
Polymer- store PDB polymer (macromolecule) component data
DBRef- store polymer sequence database reference records
Analyze interactions and stability with InSty and find water bridges with WatFinder
Use the following to analyze interactions within protein structure or between protein and ligand structure in single PDB file or in trajectory:
addHydrogens()- add missing hydrogens to.pdbfiles
calcHydrogenBonds()- compute hydrogen bonds in proteins
calcSaltBridges()- compute salt bridges in proteins
calcRepulsiveIonicBonding()- compute repulsive ionic bonding in proteins
calcPiStacking()- compute Pi-stacking interactions in proteins
calcPiCation()- compute Pi-cation interactions in proteins
calcHydrophobic()- compute hydrophobic interactions in proteins
calcProteinInteractions()- compute all above interaction types at once
showProteinInteractions_VMD()- return TCL file for visualization in VMD
calcHydrogenBondsDCD()- compute hydrogen bonds in a trajectory for proteins
calcSaltBridgesDCD()- ompute salt bridges in a trajectory for proteins
calcRepulsiveIonicBondingDCD()- compute repulsive ionic bonding in a trajectory for proteins
calcPiStackingDCD()- compute Pi-stacking interactions in a trajectory for proteins
calcPiCationDCD()- compute Pi-cation interactions in a trajectory for proteins
calcHydrophobicDCD()- compute hydrophobic interactions in a trajectory for proteins
calcStatisticsInteractions()- return statistical information for each interaction type
calcLigandInteractions()- compute all type of interactions between protein and ligand
listLigandInteractions()- return list of interactions between protein and ligand
showLigandInteraction_VMD()- return TCL file for visualization of interactions for VMD
Interactions- store inteactions for a single PDB structure
InteractionsDCD- store interactions for a trajectory
Detect channels, tunnels and pores with CaviFinder
Use the following to analyze cavities within protein structures in single PDB file or in trajectory:
getVmdModel()- generates a 3D model of proten, using VMD, which is then use for visualization
calcChannels()- computes and identifies channels
calcChannelsMultipleFrames()- compute channels for each frame in a given trajectory or PDB ensemble
getChannelParameters()- extracts and returns the lengths, bottlenecks, and volumes of each channel
getChannelAtoms()- generates an AtomGroup object representing the atoms along the paths of the given channels
showChannels()- visualizes the channels using Open3D
showCavities()- visualizes the cavities using Open3D
Compare/align chains
The following functions can be used to match, align, and map polypeptide chains:
matchChains()- finds matching chains in two protein structures
matchAlign()- finds best matching chains and aligns structures
mapOntoChain()- maps chains in a structure onto a reference chain
The following functions can be used to adjust alignment parameters:
Execute DSSP
The following functions can be used to execute DSSP structural analysis program and/or parse results:
execDSSP()- execute dssp
performDSSP()- execute dssp and parse results
parseDSSP()- parse structural data from dssp output
Execute STRIDE
The following functions can be used to execute STRIDE structural analysis program and/or parse results:
execSTRIDE()- execute stride
parseSTRIDE()- parse structural data from stride output
performSTRIDE()- execute stride and parse results
Handle EMD Map Files and Build Pseudoatoms into them
Use the following to parse and access header data in EMD files:
parseEMD()- parse structural data from.emdfiles
EMDMAP- access structural data from.emdfiles
TRNET- fit pseudoatoms to EM density maps using the TRN algorithm
Add missing atoms including hydrogens
Use the following to add missing atoms
addMissingAtoms()- add missing atoms with separately installed OpenBabel or PDBFixer
Missing residues can also be added if a PDB or mmCIF file with SEQRES entries is provided.