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