Load all files of the suffix suff from the directory dirName, where suff and dirName are function parameters.
This script is superseded by the loadall command, which was added in PyMOL 1.7.2.
- 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.
# 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
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("."), "add" ) cmd.extend("loadDir", loadDir)