LoadDir: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 33: | Line 33: | ||
from glob import glob | from glob import glob | ||
from os.path import sep, basename | from os.path import sep, basename | ||
def loadDir(dirName=".", suff="pdb", group=None): | def loadDir(dirName=".", suff="pdb", group=None): | ||
Line 61: | Line 60: | ||
""" | """ | ||
g = dirName + sep + "*." + suff.split(".")[-1] | |||
g = dirName + sep + "*." + split( | |||
for c in glob( g ): | for c in glob( g ): | ||
Line 72: | Line 66: | ||
if ( group != None ): | if ( group != None ): | ||
cmd.group( group, | cmd.group( group, basename(c).split(".")[0], "add" ) | ||
cmd.extend("loadDir", loadDir) | cmd.extend("loadDir", loadDir) |
Revision as of 03:05, 27 November 2009
Overview
Load all files of the suffix suff from the directory dirName, where suff and dirName are function parameters.
Install
- copy the source below to the a file called "loadDir.pml" somewhere on your computer
- load the file with "run /your/path/toLoadDir/loadDir.pml"
- run loadDir. See examples below.
Examples
# load the script
run ~/loadDir.pml
# load all SD files from /tmp
loadDir /tmp, sdf
loadDir /tmp, .sdf
loadDir /tmp, *.sdf
# even stupid stuff works; hopefully as one would want.
# load all PDBs from /tmp
loadDir /tmp, foo.woo.pdb
# load all the PDBs in all the directories under ./binders/ERK
loadDir ./binders/ERK/*, .pdb
# load the PDBs into groups: now we can load all the files in the tree under
# ./ERK into the group "ERK" and the files from ./SYK into the group "SYK"
loadDir ./binders/ERK/*, .pdb, group=ERKb
loadDir ./binders/SYK/*, .pdb, group=SYKb
The Code
from glob import glob
from os.path import sep, basename
def loadDir(dirName=".", suff="pdb", group=None):
"""
Loads all files with the suffix suff (the input parameter) from the directory dirName).
dirName: directory path
suff: file suffix. Should be simply "pdb" or "sdf" or similar. Will accept the
wildcard and dot in case the user doesn't read this. So, "*.pdb", ".pdb",
and "pdb" should work. The suffix can be anything valid that PyMOL knows
how to natively load.
group: groupName to add the files to.
example:
# load all the PDBs in the current directory
loadDir
# load all SD files from /tmp
loadDir /tmp, "sdf"
notes:
make sure you call this script w/o quotes around your parameters:
loadDir ., .pdb
as opposed to
loadDir ".", "*.pdb"
Use the former.
"""
g = dirName + sep + "*." + suff.split(".")[-1]
for c in glob( g ):
cmd.load(c)
if ( group != None ):
cmd.group( group, basename(c).split(".")[0], "add" )
cmd.extend("loadDir", loadDir)