HighlightAlignedSS

From PyMOLWiki
Revision as of 18:31, 10 May 2013 by Ignat99 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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)