PDB file opens from chimera GUI but not from python script ( )

Hello, I am having a problem with trying to open a .pdb file using a python script. The file opens and the protein structure is displayed properly when I open the file using the Chimera GUI. However, when I try to run the code from a python script, using the demo script for looping through .pdb files I get the following error: ---------------------------------------------------------------------- File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression ---------------------------------------------------------------------- This is the code I am trying to run: ---------------------------------------------------------------------- import sys import os from chimera import runCommand as rc # use 'rc' as shorthand for runCommand from chimera import replyobj # for emitting status messages # change to folder with data files os.chdir("/home/nick/Python/pdb") print >> sys.stdout, retval # gather the names of .pdb files in the folder file_names = [fn for fn in os.listdir(".") if fn.endswith(".pdb")] # loop through the files, opening, processing, and closing each in turn for fn in file_names: replyobj.status("Processing " + fn) # show what file we're working on rc("open " + fn) replyobj.status("Opened " + fn) # show what file we're working on rc("align ligand ~ligand") # put ligand in front of remainder of molecule rc("focus ligand") # center/zoom ligand rc("surf") # surface receptor rc("preset apply publication 1") # make everything look nice rc("surftransp 15") # make the surface a little bit see-through # save image to a file that ends in .png rather than .pdb png_name = fn[:-3] + "png" rc("copy file " + png_name + " supersample 3") rc("close all") ---------------------------------------------------------------------- The error in more detail, including the traceback from the terminal is the following: ---------------------------------------------------------------------- Processing prediction[NoEnergy-K:0-BS:0.00]-21(20.310186).pdb Traceback (most recent call last): File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimeraInit.py", line 683, in init chimera.openModels.open(a, prefixableType=1) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimera/__init__.py", line 1929, in open models = func(filename, *args, **kw) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimera/__init__.py", line 1299, in _openPython loadFunc(sandboxName, fileName, f) File "test1.py", line 23, in <module> rc("open " + fn) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimera/__init__.py", line 2747, in runCommand makeCommand(*args, **kw) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/Midas/midas_text.py", line 69, in makeCommand f(c, args) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/Midas/midas_text.py", line 1552, in doOpen paths = testPath(text, wildcarding) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/Midas/midas_text.py", line 1538, in testPath return glob(expanded) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/glob.py", line 27, in glob return list(iglob(pathname)) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/glob.py", line 49, in iglob for name in glob1(os.curdir, basename): File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/glob.py", line 83, in glob1 return fnmatch.filter(names, pattern) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/fnmatch.py", line 56, in filter _cache[pat] = re_pat = re.compile(res) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 194, in compile return _compile(pattern, flags) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression error: bad character range Error while processing test1.py: error: bad character range File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression See reply log for Python traceback. ---------------------------------------------------------------------- The error obviously appears at the 2nd line of the for loop ( rc("open " + fn) ) Any tips on why this might happen? I am using Ubuntu 14.04 LTS and the Chimera version I installed is chimera-1.11.2-linux_x86_64.bin

It looks like some of your file names have non-alphanumeric characters in them, which is causing the “wildcard matching” of file names to throw an error. In the script, instead of: rc(“open “ + fn) try: rc(“open nowildcard “ + fn) If that still doesn’t work, try: rc(“open ‘“ + fn + “‘“) (i.e. single quote just before the double quote that ends the first string, and single quote between two double quotes in the second string). —Eric Eric Pettersen UCSF Computer Graphics Lab
On Jun 7, 2017, at 9:42 AM, Nikolaos Bismpikos <nikolaosbismpikos@gmail.com> wrote:
Hello, I am having a problem with trying to open a .pdb file using a python script.
The file opens and the protein structure is displayed properly when I open the file using the Chimera GUI. However, when I try to run the code from a python script, using the demo script for looping through .pdb files I get the following error:
----------------------------------------------------------------------
File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression
---------------------------------------------------------------------- This is the code I am trying to run: ----------------------------------------------------------------------
import sys import os from chimera import runCommand as rc # use 'rc' as shorthand for runCommand from chimera import replyobj # for emitting status messages
# change to folder with data files os.chdir("/home/nick/Python/pdb") print >> sys.stdout, retval
# gather the names of .pdb files in the folder file_names = [fn for fn in os.listdir(".") if fn.endswith(".pdb")]
# loop through the files, opening, processing, and closing each in turn for fn in file_names: replyobj.status("Processing " + fn) # show what file we're working on rc("open " + fn) replyobj.status("Opened " + fn) # show what file we're working on rc("align ligand ~ligand") # put ligand in front of remainder of molecule rc("focus ligand") # center/zoom ligand rc("surf") # surface receptor rc("preset apply publication 1") # make everything look nice rc("surftransp 15") # make the surface a little bit see-through # save image to a file that ends in .png rather than .pdb png_name = fn[:-3] + "png" rc("copy file " + png_name + " supersample 3") rc("close all")
----------------------------------------------------------------------
The error in more detail, including the traceback from the terminal is the following:
----------------------------------------------------------------------
Processing prediction[NoEnergy-K:0-BS:0.00]-21(20.310186).pdb
Traceback (most recent call last): File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimeraInit.py", line 683, in init chimera.openModels.open(a, prefixableType=1) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimera/__init__.py", line 1929, in open models = func(filename, *args, **kw) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimera/__init__.py", line 1299, in _openPython loadFunc(sandboxName, fileName, f) File "test1.py", line 23, in <module> rc("open " + fn) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/chimera/__init__.py", line 2747, in runCommand makeCommand(*args, **kw) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/Midas/midas_text.py", line 69, in makeCommand f(c, args) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/Midas/midas_text.py", line 1552, in doOpen paths = testPath(text, wildcarding) File "/home/nick/.local/UCSF-Chimera64-1.11.2/share/Midas/midas_text.py", line 1538, in testPath return glob(expanded) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/glob.py", line 27, in glob return list(iglob(pathname)) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/glob.py", line 49, in iglob for name in glob1(os.curdir, basename): File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/glob.py", line 83, in glob1 return fnmatch.filter(names, pattern) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/fnmatch.py", line 56, in filter _cache[pat] = re_pat = re.compile(res) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 194, in compile return _compile(pattern, flags) File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression error: bad character range
Error while processing test1.py: error: bad character range
File "/home/nick/.local/UCSF-Chimera64-1.11.2/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression
See reply log for Python traceback.
---------------------------------------------------------------------- The error obviously appears at the 2nd line of the for loop ( rc("open " + fn) )
Any tips on why this might happen? I am using Ubuntu 14.04 LTS and the Chimera version I installed is chimera-1.11.2-linux_x86_64.bin
_______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
participants (2)
-
Eric Pettersen
-
Nikolaos Bismpikos