Andreas,
I don't understand the problem as described, but after
cmd.extend("domainDef", domainDef)
the following should work from PyMOL's command line:
domainDef 25880E, 1tab
No, there is not a "pause" in PyMOL, though we could probably use one...
Cheers,
Warren
--
Warren L. DeLano, Ph.D.
Principal Scientist
. DeLano Scientific LLC
. 400 Oyster Point Blvd., Suite 213
. South San Francisco, CA 94080
. Biz:(650)-872-0942 Tech:(650)-872-0834
. Fax:(650)-872-0273 Cell:(650)-346-1154
. mailto:[email protected]
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Andreas Henschel
> Sent: Monday, January 31, 2005 3:24 AM
> To: [email protected]
> Subject: [PyMOL] SQL in function with cmd.extend
>
> Hi all,
>
> I want to color code scop domains in PDB entries by querrying
> a database server.
> It works fine if I just call the function from the python
> script, however if I define the function to be a Pymol fct,
> the call from pymol causes an undefined MySQL Error in subchainString:
>
> Traceback (most recent call last):
> File "/usr/lib/python2.3/site-packages/pymol/parser.py",
> line 255, in parse
> exec(com2[nest]+"\n",pymol_names,pymol_names)
> File "<string>", line 1, in ?
> File "scop1.py", line 19, in domainDef
> cmd.select("domain", "/%s//%s/"%(pdb, subchainString(px)))
> File "scop1.py", line 11, in subchainString
> cursor.execute("SELECT chain_id, begin, end FROM subchain
> WHERE subchain.px='%s' LIMIT 1"% px )
> File "/usr/lib/python2.3/site-packages/MySQLdb/cursors.py",
> line 95, in execute
> return self._execute(query, args)
> File "/usr/lib/python2.3/site-packages/MySQLdb/cursors.py",
> line 114, in _execute
> self.errorhandler(self, exc, value)
> File
> "/usr/lib/python2.3/site-packages/MySQLdb/connections.py",
> line 33, in defaulterrorhandler
> raise errorclass, errorvalue
> InterfaceError: (0, '')
>
> I have a suspecion it's to do with the quoting?
> Also, is there a command similar to Rasmol's "pause"? Or do I
> have to use raw_input in the terminal I called pymol from?
>
> Here is the simplified code:
>
> ##############################################################
> ####################
> pdbLinkDir="/group/bioinf/Data/PDBLinks/"
>
> from pymol import cmd
> from pymol.cgo import *
> import MySQLdb
> from MySQLdb.cursors import DictCursor
>
> def subchainString(px):
> cursor.execute("SELECT chain_id, begin, end FROM subchain
> WHERE subchain.px='%s' LIMIT 1"% px )
> data=cursor.fetchone()
> if data["begin"]: return "%s/%s-%s"%(data["chain_id"],
> data["begin"], data["end"])
> else: return "%s"%(data["chain_id"])
>
> def domainDef(px, pdb):
> cmd.load(pdbLinkDir+"%s.pdb"%pdb)
> cmd.hide("everything","all")
> cmd.select("domain", "/%s//%s/"%(pdb, subchainString(px)))
> cmd.color("blue","domain")
> cmd.show("cartoon", "all")
>
>
> conn = MySQLdb.connect(db="pqs_psimap", host="dbserver",
> user="...", passwd="...") cursor = conn.cursor(DictCursor)
>
> #domainDef("25880E", "1tab") ## This works fine!!!
> cmd.extend("domainDef", domainDef) ## breaks when called from
> pymol with
> ## domainDef("25880E", "1tab")
>
> conn.close()
>
> ##############################################################
> ####################
>
> Many thanks
> --
> Andreas Henschel
> Bioinformatics Group
> TU Dresden
> Tatzberg 47-51
> 01307 Dresden, Germany
>
> Phone: +49 351 463 40063
> EMail: [email protected]
>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive
> Reporting Tool for open source databases. Create drag-&-drop
> reports. Save time by over 75%! Publish reports on the web.
> Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> PyMOL-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/pymol-users
>