[Chimera-users] PDB file opens from chimera GUI but not from python script ( )

Eric Pettersen pett at cgl.ucsf.edu
Wed Jun 7 10:19:42 PDT 2017


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 at 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 at cgl.ucsf.edu
> Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20170607/57e06ecb/attachment-0001.html>


More information about the Chimera-users mailing list