Difference between revisions of "HighlightAlignedSS"

From PyMOLWiki
Jump to navigation Jump to search
 
(One intermediate revision by one other user not shown)
Line 5: Line 5:
  
 
<source lang="python">
 
<source lang="python">
import pymol
+
from pymol import cmd, util
  
 
def highlight_aligned_ss(obj1,obj2,transform=1,quiet=1):
 
def highlight_aligned_ss(obj1,obj2,transform=1,quiet=1):
Line 70: Line 70:
 
</source>
 
</source>
  
[[Category:Scripts_Library]]
+
[[Category:Script_Library]]
 
[[Category:Structural_Biology_Scripts]]
 
[[Category:Structural_Biology_Scripts]]

Latest revision as of 18:31, 10 May 2013

Highlight ss1.png

This script will align and color the paired secondary structures of the two proteins a similar rainbow color.


from pymol import cmd, util

def highlight_aligned_ss(obj1,obj2,transform=1,quiet=1):
    """
DESCRIPTION
 
    Aligns two structures and colors their matching
    secondary structure elements with a matching
    rainbow colorscheme.
 
USAGE
 
    highlight_aligned_ss obj1, obj2

    If transform=0 then the proteins are not
    moved after alignment.

EXAMPLES
 
    highlight_aligned_ss 1cll, 1ggz
    highlight_aligned_ss 1rlw, 1byn and state 1
 
SEE ALSO
 
    align

    JV 3-2-11
    """


    if not cmd.count_atoms(obj1):
        print "Error: Object 1 needs at least a few atoms to align."
        return None
    if not cmd.count_atoms(obj2):
        print "Error: Object 2 needs at least a few atoms to align."
        return None

    # align them
    uAln = cmd.get_unused_name("aln")
    cmd.align(obj1,obj2,object=uAln,transform=int(transform))
    cmd.hide("cgo", uAln)

    # select atoms of similar SS
    uSimSS = cmd.get_unused_name("similar_ss_")
    cmd.select(uSimSS, "((%s or %s) in %s) and (ss 'S' or ss 'H')" %
               (obj1,obj2,uAln))

    # color by rainbow; these could be 
    # customized by function parameters
    util.rainbow(uSimSS + " and " + obj1)
    util.rainbow(uSimSS + " and " + obj2)

    # now color everything else grey
    cmd.color("grey70", "not (%s)" % uSimSS)

    # could also be an option to
    # update the representation
    # as cartoon

    # hide indicators
    cmd.select("none")

cmd.extend("highlight_aligned_ss", highlight_aligned_ss)