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; }
