HighlightAlignedSS

From PyMOLWiki
Jump to: navigation, search
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)