Proteopedia talk:Development
From Proteopedia
Focus on ligands and sites
Focus on ligands and sites when their green links are clicked.
- Current state: the selected entity becomes the center of rotation, and the molecule is zoomed onto it (80% of the JSmol panel). Residues within 4 Â are highlighted with sticks for sidechains and labels for beta carbons. (The script is applied by pdbligand.php)
define ligContact within(4.0, [HEM]) and protein; define ligContact within(group,ligContact); select ligContact and sidechain; color cpk; select ligContact and (sidechain,alpha); wireframe 0.3; select ligContact and *.CB; label %m%r; background label yellow; color labels black; zoomTo 0.5 { ([HEM] , ligContact )} 0 *0.8; select all;
- Problem: when there are several ligands of the same name, the focus acts on their geometric center, with a not too helpful result. Example: 4 heme groups in hemoglobin, center is on the whole model. It would be better to focus on just the first heme group.
- Proposal A: select only the first ligand of the set, by looking for first chain and first residue in it. Then, label and focus on that one as before.
nc = {[HEM]}.chainNo.min; define ligOne [HEM] and chainNo=nc; nc = {ligOne}.resNo.min; define ligOne ligOne and resNo=nc; define ligContact within(4.0, ligOne) and protein; define ligContact within(group,ligContact); select ligContact and sidechain; color cpk; select ligContact and (sidechain,alpha); wireframe 0.3; select ligContact and *.CB; label %m%r; background label yellow; color labels black; zoomTo 0.5 { (ligOne , ligContact )} 0 *0.8; select all;
- Proposal B: label all but zoom in on the first one.
define ligContact within(4.0, [HEM]) and protein; define ligContact within(group,ligContact); select ligContact and sidechain; color cpk; select ligContact and (sidechain,alpha); wireframe 0.3; select ligContact and *.CB; label %m%r; background label yellow; color labels black; nc = {[HEM]}.chainNo.min; define ligOne [HEM] and chainNo=nc; nc = {ligOne}.resNo.min; define ligOne ligOne and resNo=nc; define ligContact within(4.0, ligOne) and protein; define ligContact within(group,ligContact); zoomTo 0.5 { (ligOne , ligContact )} 0 *0.8; select all;
or, maybe this end gives a better orientation for focus:
select (ligOne , ligContact); rotate best -0.3; zoomTo 0.5 {selected} 0 *0.8; select all;
- Proposal C: additionally, if the ligand is very small (e.g. Zn2+), zoom should be reduced, maybe checking its size or mass within the Jmol script.
- This does not seem necessary in full model display, since the contacting sidechains make the group larger, but in simplified display the ligand is alone. Zn has a volume of 4 (or 11?), sulphate has a volume of 70.
select (ligOne , ligContact); if ( {selected}.volume.sum > 100 ) { zoomTo 0.5 {selected} 0 *0.8; } else { zoomTo 0.5 {selected} 0 *0.5; }