guess_j_nuc.m
Assigns J-couplings in nucleic acids from atomic coordinates using semi-empirical estimates. It is a graph-theoretical estimator with the following stages:
- Molecular bonding graph is partitioned into connected subgraphs of size two, and one-bond J-couplings are assigned from a complete database of atom pairs. There are fewer than 50 unique connected atom pairs in regular nucleic acids; most one-bond J-couplings within those pairs can be either found in the literature, or measured in individual nucleic acids, or estimated with sufficient accuracy using electronic structure theory software.
- Molecular bonding graph is partitioned into connected subgraphs of size three, and two-bond J-couplings are assigned from a complete database of connected atom triples. There are fewer than 75 unique connected atom triples in nucleic acids, a small enough number for an exhaustive list to be compiled from experiments, literature, and electronic structure theory estimates.
- Molecular bonding graph is partitioned into sequentially connected subgraphs of size four and dihedral angles are computed from atomic coordinates, allowing three-bond J-couplings to be assigned from a complete database of Karplus curves. The number of unique sequentially connected atom quartets found in nucleic acids (fewer than 100, many belonging to similar structural types) is sufficiently small for a complete database of Karplus curves to be compiled from literature data, experiments, and electronic structure theory estimates.
J-couplings across more than three bonds are ignored.
Syntax
jmatrix=guess_j_nuc(nuc_num,nuc_typ,pdb_id,coords)
Arguments
nuc_num - nspins x 1 vector giving the number of the nucleotide to which each spin belongs
nuc_typ - nspins x 1 cell array of strings giving the PDB identifier of the nucleotide to
which each spin belongs (e.g. 'GUA')
pdb_id - nspins x 1 cell array of strings giving the PDB identifier of the nucleic acid atom
type to which each spin belongs (e.g. 'C1P')
coords - nspins x 1 cell array of 3-vectors giving cartesian coordinates of each spin in Angstrom
Outputs
jmatrix - nspins x nspins sparse matrix of J-couplings in Hz
Examples
The function accepts, for example, the output of read_pdb_nuc.m:
% Parse the PDB file
[pdb_nuc_num,pdb_nuc_typ,pdb_atom_id,pdb_coords]=read_pdb_nuc('example.pdb');
% Guess the J-couplings
jmatrix=guess_j_nuc(pdb_nuc_num,pdb_nuc_typ,pdb_atom_id,pdb_coords)
Notes
- You can modify the J-coupling database by editing the function text.
- Atoms in the subgraph descriptors are listed alphabetically to make the descriptors unique.
- The four numbers in the subgraph descriptors refer to the bonding order, e.g. [1, 3, 2, 4] means that the first atom in the descriptor is bonded to the third, which is bonded to the second, which is bonded to the fourth. The coupling in this case is between atom 1 and atom 4 in the descriptor.
- J-couplings produced by this functions are rough estimates. For accurate nucleic acid work you must supply your own J-couplings.
- This is an auxiliary function that is called by nuclacid.m; direct calls should not be necessary.
See also
read_pdb_nuc.m, protein.m, guess_j_pro.m, nuclacid.m
Version 2.8, authors: Ilya Kuprov, Zenawi Welderufael