pdb.res()

Description

Checks whether or not a given residue is resolved in the PDB structure

Usage

pdb.res(at, up, pdb, chain)

Arguments

at the position in the primary structure of the residue (according to the UniProt sequence).

up the UniProt ID.

pdb the 4-letter PDB identifier.

chain letter identifying the chain.

Value

This function checks if a given residue in the Uniprot sequence is found in the PDB, and returns TRUE if the residue is found in the PDB sequence (and gives the position in the PDB sequence, that may or may not match that of the Uniprot). If the residue of interest is not found in the PDB the function returns FALSE.

Details

The ptm package contains a number of ancillary functions that deal with Protein Data Bank (PDB) files. These functions may be useful when structural 3D data need to be analyzed. The mentioned functions are:

When dealing with PDB files, you may run into several challenges. For example, many structures (particular those determined by crystallography) only include information about part of the functional biological assembly. Also, many PDB entries are missing portions of the molecule that were not observed in the experiment. These include structures that include only alpha carbon positions, structures with missing loops, structures of individual domains, or subunits from a larger molecule. For this reazon the function pdb.res() may be useful if we want to check whether a given residues appears resolved in the structure of interest.

For instance, we know that the subunit 9 of the transcription initiation factor TFIID is sulfoxidiezed at Met180:

meto.scan('Q16594')$Metosites

##   met_pos reg_id              org_oxidant met_vivo_vitro   org_tissue
## 1     180      1 hydrogen peroxide (H2O2)           vivo Jurkat cells
##                                                                                              References
## 1 https://www.ncbi.nlm.nih.gov/pubmed/21406390, Redox proteomics of protein-bound methionine oxidation.

We now search for PDB files containing the structure of this transcription factor:

uniprot2pdb('Q16594') 
##         PDB CHAIN SP_PRIMARY RES_BEG RES_END PDB_BEG PDB_END SP_BEG SP_END
## 420509 6f3t     F     Q16594       1     116       5     120      5    120
## 420511 6f3t     H     Q16594       1     116       5     120      5    120
## 420513 6f3t     J     Q16594       1     116       5     120      5    120
## 420515 6f3t     L     Q16594       1     116       5     120      5    120
## 439366 6mzc     M     Q16594       1     264    None    None      1    264
## 439375 6mzd     L     Q16594       1     264    None    None      1    264
## 439454 6mzl     L     Q16594       1     264    None    None      1    264
## 439455 6mzl     M     Q16594       1     264    None    None      1    264
## 439471 6mzm     L     Q16594       1     264    None    None      1    264

It can be observed that the chain F of the structure 6F3T correspond to the subunit 9. Now we can check whether the Met180 is resolved in this structure:

pdb.res(at = 180, up = 'Q16594', pdb = '6f3t', chain = 'F')
## [1] FALSE

And the answer is negative. Unfortunately, if we examine all the other PDB files, we will check that this methionine residue is not resolved.

Finnally, to end with a better taste, let’s consider another example: the NADP-dependent malic enzyme (P48163)

meto.scan('P48163')$Metosites
##   met_pos reg_id              org_oxidant met_vivo_vitro  org_tissue
## 1     361      1 hydrogen peroxide (H2O2)          vitro fibroblasts
## 2     229      1 hydrogen peroxide (H2O2)          vitro fibroblasts
##                                                                                                                                               References
## 1 https://www.ncbi.nlm.nih.gov/pubmed/30846556, Global analysis of methionine oxidation provides a census of folding stabilities for the human proteome.
## 2 https://www.ncbi.nlm.nih.gov/pubmed/30846556, Global analysis of methionine oxidation provides a census of folding stabilities for the human proteome.

There are two methionine residues that are sulfoxidized. Next we will search for a PDB structure where these methionines appear resolved.

uniprot2pdb('P48163') 
##         PDB CHAIN SP_PRIMARY RES_BEG RES_END PDB_BEG PDB_END SP_BEG SP_END
## 67219  2aw5     A     P48163      24     575    None    None     13    564
## 67220  2aw5     B     P48163      24     575    None    None     13    564
## 67221  2aw5     C     P48163      24     575    None    None     13    564
## 198405 3wja     A     P48163       1     572    None    None      1    572
## 198406 3wja     B     P48163       1     572    None    None      1    572

We try with the PDB 3WJA:

pdb.res(at = 229, up = 'P48163', pdb = '3wja', chain = 'A')
## [1] TRUE
## attr(,"pdb_pos")
## [1] 222

We observe that Met229 is resolved, but the position of this residue in the PDB sequence is 222 (the first seven N-terminal residues of the polypeptide are not resolved). Similarly:

pdb.res(at = 361, up = 'P48163', pdb = '3wja', chain = 'A')
## [1] TRUE
## attr(,"pdb_pos")
## [1] 354