Difference between revisions of "Protein.m"
(→Notes) |
(→Examples) |
||
| Line 47: | Line 47: | ||
options.select='all'; | options.select='all'; | ||
options.pdb_mol=1; | options.pdb_mol=1; | ||
| − | options.noshift=' | + | options.noshift='delete'; |
[sys,inter]=protein('1D3Z.pdb','1D3Z.bmrb',options); | [sys,inter]=protein('1D3Z.pdb','1D3Z.bmrb',options); | ||
Revision as of 17:22, 8 August 2016
Protein data import function.
Syntax
[sys,inter]=protein(pdb_file,bmrb_file,options)
Description
This function parses PDB and BMRB data, runs a J-coupling guess using guess_j_pro.m function, then a backbone CSA guess using guess_csa_pro.m function, and outputs sys and inter data structures that are required to run by create.m gateway function in Spinach.
The function runs rather a lot of internal heuristics. Symmetry-related methyl group protons (listed once in BMRB) are replicated using PDB coordinates; unassigned capping groups on C- and N-termini are ignored; all oxygen and sulphur atoms are removed; symmetry-related carbons and protons in PHE and TYR aromatic rings (listed once in BMRB) are replicated using PDB coordinates; protons of deuterated or exchanging groups, such as –OH or –NH3+, are ignored; magnetically equivalent –CH2– group protons (listed once in BMRB) are replicated using PDB coordinates. Please refer to the function source code for the precise details of these post-processing steps.
Arguments
pdb_file - a character string containing the name of the PDB file
bmrb_file - a character string containing the name of the BMRB file
options.select - 'backbone' imports protein backbone up to CB and HB, 'backbone-minimal' only imports
the backbone, 'backbone-hsqc' is the same as backbone, but with GLN and ASN side chain
amide groups included, 'all' imports everything that is assigned in BMRB. If a list of
numbers is supplied, spins with those numbers in the PDB file are imported, but only
if they are assigned in the PDB.
options.pdb_mol - the number of molecule if there are multiple molecules in the pdb file
options.noshift - 'keep' places unassigned atoms between -1 and 0 ppm, 'ignore' removes them from the system
Returns
The following subfields of sys and inter data structures are set by this function:
sys.isotopes - Nspins x 1 cell array of strings
sys.labels - Nspins x 1 cell array of strings containing standard IUPAC protein atom labels
inter.coordinates - Nspins x 3 matrix, Angstrom.
inter.zeeman.iso - Nspins x 1 cell array of numbers, ppm. Isotropic chemical shifts go here.
inter.zeeman.matrix - Nspins x 1 cell array of 3x3 matrices, ppm. Chemical shift anisotropies go here.
inter.coupling.scalar - Nspins x Nspins cell array of scalar couplings, all in Hz.
Examples
Below is a typical use case for this function. This script calculates the NOESY spectrum of ubiquitin.
% Protein data import
options.select='all';
options.pdb_mol=1;
options.noshift='delete';
[sys,inter]=protein('1D3Z.pdb','1D3Z.bmrb',options);
% Magnet field
sys.magnet=21.1356;
% Tolerances
sys.tols.inter_cutoff=2.0;
sys.disable={'krylov'};
% Relaxation theory
inter.relaxation={'redfield'};
inter.rlx_keep='secular';
inter.equilibrium='zero';
inter.tau_c=5e-9;
% Basis set
bas.formalism='sphten-liouv';
bas.approximation='IK-1';
bas.connectivity='scalar_couplings';
bas.level=4; bas.space_level=3;
% Create the spin system structure
spin_system=create(sys,inter);
% Kill carbons and nitrogens (protein assumed unlabelled)
spin_system=kill_spin(spin_system,strcmp('13C',spin_system.comp.isotopes));
spin_system=kill_spin(spin_system,strcmp('15N',spin_system.comp.isotopes));
% Build the basis
spin_system=basis(spin_system,bas);
% Sequence parameters
parameters.tmix=0.065;
parameters.offset=4250;
parameters.sweep=[10750 10750];
parameters.npoints=[512 512];
parameters.zerofill=[2048 2048];
parameters.spins={'1H'};
parameters.axis_units='ppm';
parameters.rho0=state(spin_system,'Lz','1H','cheap');
% Simulation
fid=liquid(spin_system,@noesy,parameters,'nmr');
save('noesy_ubiquitin_theo.mat','spin_system','parameters','fid');
% Apodization
fid.cos=apodization(fid.cos,'gaussian-2d',5);
fid.sin=apodization(fid.sin,'gaussian-2d',5);
% F2 Fourier transform
f1_cos=real(fftshift(fft(fid.cos,parameters.zerofill(2),1),1));
f1_sin=real(fftshift(fft(fid.sin,parameters.zerofill(2),1),1));
% States signal
f1_states=f1_cos-1i*f1_sin;
% F1 Fourier transform
spectrum=fftshift(fft(f1_states,parameters.zerofill(1),2),2);
% Destreaking
spectrum=destreak(spectrum);
% Plotting
plot_2d(spin_system,-real(spectrum),parameters,20,[0.01 0.05 0.01 0.05],2,256,6,'positive');
Further examples are available in examples/nmr_proteins directory.
Notes
- Unassigned atom coordinates are used internally for the J-coupling prediction procedure even if options.noshift is set to 'delete'.
- Deleting unassigned atoms removes them from the dipolar coupling network. Relaxation properties, such as Overhauser effects, may be distorted as a result.
- Watch carefully the output of this function, it would inform you if it sees anything strange in the data supplied. Protein datasets available from major databases are rarely free of errors.
- More information is available in the protein getting started manual.
See also
nuclacid.m, guess_csa_pro.m, guess_j_pro.m
Revision 3284, authors: Ilya Kuprov