Difference between revisions of "FindSurfaceResidues"

From PyMOLWiki
Jump to navigation Jump to search
m (Unprotected "FindSurfaceResidues")
(removed outdated code)
 
(6 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<gallery>
+
{{Infobox script-repo
Image:FindExRes.png|thumb|right|300px|Result of $TUT/1hpv.pdb at 2.5 Ang cutoff.
+
|type      = module
Image:Surface_residues_ex.png|300px|Example coloring of surface residues
+
|filename  = findSurfaceResidues.py
</gallery>
+
|author    = [[User:inchoate|Jason Vertrees]]
 +
|license  = BSD-2-Clause
 +
}}
  
 +
The [[findSurfaceResidues]] script will select (and color if requested) surface residues and atoms on an object or selection.  See the options below.
  
= Overview =
+
Each time, the script will create two new selections called, '''exposed_res_XYZ''' and '''exposed_atm_XYZ''' where ''XYZ'' is some random numberThis is done so that no other selections/objects are overwritten.
This script will select (and color if requested) surface residues on an object or selectionSee the options below.
 
  
 +
= Usage =
  
Each time, the script will create a new selection called, 'exposedXYZ' where XYZ is some random number.  This is done so that no other selections/objects are overwritten.
+
findSurfaceResidues [ selection=all [, cutoff=2.5 [, doShow=0 ]]]
  
 +
= Arguments =
  
 +
* '''selection''' = str: The object or selection for which to find exposed residues {default: all}
 +
* '''cutoff''' = float: The cutoff in square Angstroms that defines exposed or not. Those atoms with > cutoff Ang^2 exposed will be considered ''exposed'' {default: 2.5 Ang^2}
 +
* '''doShow''' = 0/1: Change the visualization to highlight the exposed residues vs interior {default: 0}
  
= Usage =
+
= Examples =
<source lang="python">
 
findSurfaceResidues [objSel=(all)[, cutoff=2.5[, doShow=False[, verbose=False ]]]]
 
</source>
 
The parameters are:
 
  
'''objSel'''
+
<gallery>
:: The object or selection for which to find exposed residues;
+
Image:FindExRes.png|thumb|right|300px|Result of $TUT/1hpv.pdb at 2.5 Ang cutoff.
:: DEFAULT = (all)
+
Image:Surface_residues_ex.png|300px|Example coloring of surface residues
'''cutoff'''
+
</gallery>
:: The cutoff in square Angstroms that defines exposed or not. Those residues with > cutoff Ang^2 exposed will be considered ''exposed'';
 
:: DEFAULT =  2.5 Ang^2
 
'''doShow'''
 
:: Change the visualization to highlight the exposed residues vs interior
 
:: DEFAULT = False/Blank
 
'''verbose'''
 
:: Level of verbosity.
 
:: DEFAULT = False/Blank
 
  
== Examples ==
 
 
<source lang="python">
 
<source lang="python">
# make sure you download and run the code below, before trying these examples.
+
run findSurfaceResidues.py
load $TUT/1hpv.pdb
+
fetch 1hpv, async=0
 +
 
 
findSurfaceResidues
 
findSurfaceResidues
 +
 
# now show the exposed
 
# now show the exposed
findSurface residues doShow=True
+
findSurfaceResidues doShow=1
  
 
# watch how the visualization changes:
 
# watch how the visualization changes:
findSurfaceResidues doShow=True, cutoff=0.5
+
findSurfaceResidues doShow=1, cutoff=0.5
findSurfaceResidues doShow=True, cutoff=1.0
+
findSurfaceResidues doShow=1, cutoff=1.0
findSurfaceResidues doShow=True, cutoff=1.5
+
findSurfaceResidues doShow=1, cutoff=1.5
findSurfaceResidues doShow=True, cutoff=2.0
+
findSurfaceResidues doShow=1, cutoff=2.0
findSurfaceResidues doShow=True, cutoff=2.5
+
findSurfaceResidues doShow=1, cutoff=2.5
findSurfaceResidues doShow=True, cutoff=3.0
+
findSurfaceResidues doShow=1, cutoff=3.0
 
</source>
 
</source>
  
= The Code =
+
= See Also =
<source lang="python">
 
# -*- coding: utf-8 -*-
 
import pymol
 
from pymol import cmd
 
import random
 
  
def findSurfaceResidues(objSel="(all)", cutoff=2.5, doShow=False, verbose=False):
+
* [[get_sasa_relative]]
"""
+
* [[Get_Area|get_area]]
findSurfaceResidues
 
finds those residues on the surface of a protein
 
that have at least 'cutoff' exposed A**2 surface area.
 
 
 
PARAMS
 
objSel (string)
 
the object or selection in which to find
 
exposed residues
 
DEFAULT: (all)
 
 
 
cutoff (float)
 
your cutoff of what is exposed or not.
 
DEFAULT: 2.5 Ang**2
 
 
 
asSel (boolean)
 
make a selection out of the residues found
 
 
 
RETURNS
 
(list: (chain, resv ) )
 
A Python list of residue numbers corresponding
 
to those residues w/more exposure than the cutoff.
 
 
 
"""
 
tmpObj="__tmp"
 
cmd.create( tmpObj, objSel + " and polymer");
 
if verbose!=False:
 
print "WARNING: I'm setting dot_solvent.  You may not care for this."
 
cmd.set("dot_solvent");
 
cmd.get_area(selection=tmpObj, load_b=1)
 
 
 
# threshold on what one considers an "exposed" atom (in A**2):
 
cmd.remove( tmpObj + " and b < " + str(cutoff) )
 
 
 
stored.tmp_dict = {}
 
cmd.iterate(tmpObj, "stored.tmp_dict[(chain,resv)]=1")
 
exposed = stored.tmp_dict.keys()
 
exposed.sort()
 
 
 
selName = "exposed_" + str(random.randint(0,10000))
 
if verbose!=False:
 
print "Exposed residues are selected in: " + selName
 
cmd.select(selName, objSel + " in " + tmpObj )
 
 
 
if doShow!=False:
 
cmd.show_as("spheres", objSel + " and poly")
 
cmd.color("white", objSel)
 
cmd.color("red", selName)
 
 
 
cmd.delete(tmpObj)
 
 
 
return exposed
 
 
 
 
 
cmd.extend("findSurfaceResidues", findSurfaceResidues)
 
</source>
 
  
 
[[Category:Script_Library]]
 
[[Category:Script_Library]]
Line 118: Line 54:
 
[[Category:Biochemical_Scripts]]
 
[[Category:Biochemical_Scripts]]
 
[[Category:Structural_Biology_Scripts]]
 
[[Category:Structural_Biology_Scripts]]
 +
__NOTOC__

Latest revision as of 03:42, 29 March 2019

Type Python Module
Download findSurfaceResidues.py
Author(s) Jason Vertrees
License BSD-2-Clause
This code has been put under version control in the project Pymol-script-repo

The findSurfaceResidues script will select (and color if requested) surface residues and atoms on an object or selection. See the options below.

Each time, the script will create two new selections called, exposed_res_XYZ and exposed_atm_XYZ where XYZ is some random number. This is done so that no other selections/objects are overwritten.

Usage

findSurfaceResidues [ selection=all [, cutoff=2.5 [, doShow=0 ]]]

Arguments

  • selection = str: The object or selection for which to find exposed residues {default: all}
  • cutoff = float: The cutoff in square Angstroms that defines exposed or not. Those atoms with > cutoff Ang^2 exposed will be considered exposed {default: 2.5 Ang^2}
  • doShow = 0/1: Change the visualization to highlight the exposed residues vs interior {default: 0}

Examples

run findSurfaceResidues.py
fetch 1hpv, async=0

findSurfaceResidues

# now show the exposed
findSurfaceResidues doShow=1

# watch how the visualization changes:
findSurfaceResidues doShow=1, cutoff=0.5
findSurfaceResidues doShow=1, cutoff=1.0
findSurfaceResidues doShow=1, cutoff=1.5
findSurfaceResidues doShow=1, cutoff=2.0
findSurfaceResidues doShow=1, cutoff=2.5
findSurfaceResidues doShow=1, cutoff=3.0

See Also