Troels, thanks again for so detailed explanation

Firstly I've tried to use IMPORT SCRIPT and all of the above commands works now :)


Now I'd like to understand the main sytnax of the findseq script in more detailes.

E.g I have the set of homologues protein from wich I'd like to find triplet motifs wich consist of

Ser or Thr in the first place
Tyr or His or Trp in the second
Gly in the third place

For that purpose I've used the below command

for x in cmd.get_names(): findseq.findseq("[ST][YHW]G", x, "supertest_"+x, firstOnly=0)

As the result only ONE motiv ( commonly Thr-Tyr-Gly ) was found in each of my proteins bu as I know that set contains more than this combination of the choosen amino acids ( e.g motifs Ser-Tyr-Gly or Thr-Trp-Gly ) also present in my dataset.

Where I've done mistake?
Finally what is the 'firstOnly=0' and where I can obtain information about syntax of regular expressins used in PyMol?

Thanks again

James

2012/1/16 Troels Emtekær Linnet <tlinnet@gmail.com>
Dear James.

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

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

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:
http://www.pymolwiki.org/index.php/Running_Scripts
http://docs.python.org/tutorial/modules.html

Best
Troels


2012/1/16 James Starlight <jmsstarlight@gmail.com>
Troels,


Commonly I run pymol scripts by means of

run script.py

or

@ script.py

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.

James


2012/1/16 Troels Emtekær Linnet <tlinnet@gmail.com>
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
Mobil:
+45 60210234



2012/1/16 James Starlight <jmsstarlight@gmail.com>
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 <tlinnet@gmail.com>
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: 
http://www.pymolwiki.org/index.php/findseq

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 <jmsstarlight@gmail.com>
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,

James


2012/1/13 Jason Vertrees <jason.vertrees@schrodinger.com>
James,

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.

Cheers,

-- Jason


On Fri, Jan 13, 2012 at 1:25 PM, James Starlight <jmsstarlight@gmail.com> wrote:
> Dear PyMol Users,
>
> I need to search defined sequence motifs in my structures.
>
> For that purpose I've used
>
> http://www.pymolwiki.org/index.php/FindSeq 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!
> http://p.sf.net/sfu/rsa-sfdev2dev2
> _______________________________________________
> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net



--
Jason Vertrees, PhD
PyMOL Product Manager
Schrodinger, LLC

(e) Jason.Vertrees@schrodinger.com
(o) +1 (603) 374-7120


------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net





------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net