Dear James.

That is because there are different ways, how to get functions available in Python.
Either you can import a or you can execute it.

If you execute the script.
In Python, you would do: execfile("")
In PyMOL, a shortcut to this is: run OR execfile("")

Then the functions in the script file will be directly available with the function names.
functionname(inp1=A, inp2=B)

If you import the script in Python/Pymol, it will be handled as a module.
import script
That means, that you have access to functions like this
script.functionname(inp1=A, inp2=B)

For small scripts, the name of the functions in the file is probably similar to the filename of the script.
Thats why, you would see:
findseq.findseq(inp1=A, inp2=B)

Then comes the export feature in PyMOL. The line:
cmd.extend("findseq", findseq )

That means, that PyMOL extends the function name "findseq" to be directly accessible in pymol.
So the functions can be access directly. But you have still both options.

import findseq
findseq.findseq(inp1=A, inp2=B)
findseq inp1=A, inp2=B

Notice, that the extend make it possible to call the function directly, and making input with spaces.
This is a little more "human" readable.

But a problem occurs, if you want to parse a variable to the extended method.
Say you write.

import propka
fetch 4ins, async=0
proteinname="4ins"   (Your variable)
propka proteinname  (will not work)
propka 4ins    (will work)
propka.propka(proteinname)  (will work)

I hope this clarify a little.

Read more about namespaces here:


2012/1/16 James Starlight <>

Commonly I run pymol scripts by means of




from PyMol shell!

then I use script_command ( e.g findSeq ) and further script syntax for my tasks

e.g findSeq s.g 1f88

works perfect but
the above command for the ensemmble of pdbs give me error.


2012/1/16 Troels Emtekær Linnet <>
It depends on, if you run or import the script. The namespace will be different.

What do you do?

This is no error. This is basic Python knowledge.

Troels Emtekær Linnet
Slotsvej 2
4300 Holbæk
+45 60210234

2012/1/16 James Starlight <>
Hi Troels!

I've tried to use

for x in cmd.get_names(): findSeq.findSeq("QTG", x, "sele_"+x, firstOnly=1)

but I obtained error

NameError: name 'findSeq' is not defined

At the same time just

findSeq QTG, 3sn6

wokrs perfect

2012/1/14 Troels Emtekær Linnet <>
Hi James.

I moved the script under the git repository yesterday, and took care of the bug.
The script look a little different now.

So try the new one again from:

The follow the guide on the page.

# Find the regular expression:
#  ..H[TA]LVWH
# in the few proteins loaded.
# I then showed them as sticks and colored them to highlight matched AAs
for x in cmd.get_names(): findseq.findseq("..H[TA]LVWH", x, "sele_"+x, firstOnly=1)

2012/1/14 James Starlight <>
Jason, hello!

Also I've found possible fix for that bug by lpacing this line in the 47 line of the script

if type(selName)!=(types.StringType) and type(selName)!=(types.NoneType):

By the way I've found another bug when I've tried to find the same motifs in the several homolugues structures.

E.g I have 5 structures wich all have motiv S.G where . is the random amino acid. When I've tried

findseq S.G, all

the script find that motifs only for last fetched structure. How I could solve it?

Thanks again,


2012/1/13 Jason Vertrees <>

First, there's a bug in the script. It's not dealing with selName
correctly. To get around this just provide something to selName:

findSeq S.G, 1a3h, selName=found_seq

If findSeq finds the sequence, it'll return the selected atoms in found_seq.

Next, SYG is not in that protein. If you search for "S.G" you find
SNG. You can double check this by:

fStr = cmd.get_fastastr("1a3h")

print "SYG" in fStr

which return false.


-- Jason

On Fri, Jan 13, 2012 at 1:25 PM, James Starlight <> wrote:
> Dear PyMol Users,
> I need to search defined sequence motifs in my structures.
> For that purpose I've used
> script
> but when I've try to use it I've got error
> PyMOL>findSeq SYG, 1a3h
> Error: selName was not a string.
> There was an error with a parameter.  Please see
> the above error message for how to fix it.
> What I've done wrong? The seqyence Ser Tyr Gly is indeed present in my
> structure!
> By the way is there any others way to search for pre-defined sequence motifs
> via PyMol?
> Thanks for help,
> James
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Mar 27 - Feb 2
> Save $400 by Jan. 27
> Register now!
> _______________________________________________
> PyMOL-users mailing list (
> Info Page:
> Archives:

Jason Vertrees, PhD
PyMOL Product Manager
Schrodinger, LLC

(o) +1 (603) 374-7120

RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
PyMOL-users mailing list (
Info Page:

RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
PyMOL-users mailing list (
Info Page: