ListSelection2: Difference between revisions
Jump to navigation
Jump to search
m (small code update) |
m (download link and license update) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Infobox script-repo | |||
|type = script | |||
|download = [http://dx.doi.org/10.6084/m9.figshare.1031599 figshare] | |||
|author = [[User:PietroGattiLafranconi|Pietro Gatti-Lafranconi]] | |||
|license = [http://creativecommons.org/licenses/by/4.0/ CC BY 4.0] | |||
}} | |||
= Overview = | = Overview = | ||
Alternative script to [[List_Selection]] that will: | Alternative script to [[List_Selection]] that will: | ||
Line 27: | Line 34: | ||
<source lang="python"> | <source lang="python"> | ||
PyMOL>listselection sele, output=S, HOH=N | PyMOL>listselection sele, output=S, HOH=N | ||
Residues in 'sele, without HOH': | Residues in 'sele, without HOH': 7 | ||
1LBH/A/ARG/86 | |||
1LBH/A/ALA/87 | |||
1LBH/A/ASP/88 | |||
1LBH/A/GLN/89 | |||
1LBH/A/LEU/90 | |||
1LBH/A/GLY/91 | |||
1LBH/A/ALA/92 | |||
</source> | </source> | ||
Line 38: | Line 47: | ||
<source lang="python"> | <source lang="python"> | ||
PyMOL>listselection 1efa and resn LEU, output=S | PyMOL>listselection 1efa and resn LEU, output=S | ||
Residues in ' | Residues in '1efa and resn LEU': 108 | ||
1efa | 1efa/A/LEU/6 | ||
1efa | 1efa/A/LEU/45 | ||
1efa/A/LEU/56 | |||
[...] | [...] | ||
1efa | 1efa/C/LEU/323 | ||
1efa | 1efa/C/LEU/330 | ||
</source> | </source> | ||
Line 56: | Line 66: | ||
""" | """ | ||
usage: listselection selection, [output=N/S/P, [HOH=Y/N ]] | usage: listselection selection, [output=N/S/P, [HOH=Y/N ]] | ||
More information at: PymolWiki: http://http://pymolwiki.org/index.php/ListSelection2 | |||
AUTHOR: Pietro Gatti-Lafranconi, 2013 | |||
Please inform me if you use/improve/like/dislike/publish with this script. | |||
CC BY-NC-SA | |||
""" | """ | ||
printedselection="" | printedselection="" | ||
Line 71: | Line 86: | ||
for x in range(len(m1.atom)): | for x in range(len(m1.atom)): | ||
if m1.atom[x-1].resi!=m1.atom[x].resi: | if m1.atom[x-1].resi!=m1.atom[x].resi: | ||
printedselection+="%s | printedselection+="%s/%s/%s/%s\n" % (objs[a], m1.atom[x].chain, m1.atom[x].resn, m1.atom[x].resi) | ||
counter+=1 | counter+=1 | ||
Line 85: | Line 100: | ||
cmd.extend('listselection',listselection) | cmd.extend('listselection',listselection) | ||
</source> | </source> | ||
[[Category:Script_Library | |||
[[Category:Script_Library]] | |||
[[Category:ObjSel_Scripts]] | [[Category:ObjSel_Scripts]] | ||
[[Category:Biochemical_Scripts]] |
Latest revision as of 11:59, 22 May 2014
Type | Python Script |
---|---|
Download | figshare |
Author(s) | Pietro Gatti-Lafranconi |
License | CC BY 4.0 |
Overview
Alternative script to List_Selection that will:
- list multiple residues once
- include water and hetatoms
- account for different chains/objects
- produce a screen/printed output
Usage
listselection selection, [output=N/S/P, [HOH=Y/N ]]
where:
- selection can be any existing or newly-defined selection
- output controls if the list is hidden (default), printed on screen (S) or saved in a file (P)
- HOH (default Y) allows to exclude (N) water residues from the list
Examples
PyMOL>listselection 1efa, output=P
Residues in '1efa': 1043
Results saved in listselection_1efa.txt
PyMOL>listselection sele, output=S, HOH=N
Residues in 'sele, without HOH': 7
1LBH/A/ARG/86
1LBH/A/ALA/87
1LBH/A/ASP/88
1LBH/A/GLN/89
1LBH/A/LEU/90
1LBH/A/GLY/91
1LBH/A/ALA/92
PyMOL>listselection 1efa and resn LEU, output=S
Residues in '1efa and resn LEU': 108
1efa/A/LEU/6
1efa/A/LEU/45
1efa/A/LEU/56
[...]
1efa/C/LEU/323
1efa/C/LEU/330
Code
Copy the following text and save it as listselection.py
from pymol import cmd, stored
def listselection (selection, output="N", HOH="Y"):
"""
usage: listselection selection, [output=N/S/P, [HOH=Y/N ]]
More information at: PymolWiki: http://http://pymolwiki.org/index.php/ListSelection2
AUTHOR: Pietro Gatti-Lafranconi, 2013
Please inform me if you use/improve/like/dislike/publish with this script.
CC BY-NC-SA
"""
printedselection=""
extra=""
counter=0
sel=selection
objs=cmd.get_object_list(sel)
if HOH=="N":
sel=selection+" and not resn HOH"
extra=", without HOH"
for a in range(len(objs)):
m1=cmd.get_model(sel+" and "+objs[a])
for x in range(len(m1.atom)):
if m1.atom[x-1].resi!=m1.atom[x].resi:
printedselection+="%s/%s/%s/%s\n" % (objs[a], m1.atom[x].chain, m1.atom[x].resn, m1.atom[x].resi)
counter+=1
print "Residues in '%s%s': %s" % (selection, extra, counter)
if output=="S": print printedselection
if output=="P":
f=open('listselection_'+selection+'.txt','w')
f.write("Residues in '%s%s': %s\n" % (selection, extra, counter))
f.write(printedselection)
f.close()
print "Results saved in listselection_%s.txt" % selection
cmd.extend('listselection',listselection)