Scripting FAQs: Difference between revisions

From PyMOLWiki
Jump to navigation Jump to search
(New page: ==Script within a Structure== Q: Is there a way to embed a script within a PDB structure? A: Yes, there are two ways * Use the Read_Pdbstr command like, delete all cmd.read_pdbstr("...)
 
m (Fixed error in example for passing command line options to a script.)
 
(4 intermediate revisions by 2 users not shown)
Line 14: Line 14:


Don't forget the backslashes there -- it's one long command.
Don't forget the backslashes there -- it's one long command.
[[http://chips.csb.ki.se/pymol/msg02104.html Example]]
[http://chips.csb.ki.se/pymol/msg02104.html Example]


* Or, as Warren noted, you can do with with a "p1m" file, which is like a "pml" file, but data can be included as well.  Also note that p1m files are intended for web publishing, so embedded Python is disallowed.  In p1m files, there is an "embed" command that enables this for PDB, MOL, MOL2, SDF, and XPLOR data.  It works like this:
* Or, as Warren noted, you can do with with a "p1m" file, which is like a "pml" file, but data can be included as well.  Also note that p1m files are intended for web publishing, so embedded Python is disallowed.  In p1m files, there is an "embed" command that enables this for PDB, MOL, MOL2, SDF, and XPLOR data.  It works like this:
Line 40: Line 40:
<source lang="python">
<source lang="python">
from sys import argv
from sys import argv
my_argv =3D argv[argv.index("--"):]
my_argv = argv[1:]
print my_argv[1], my_argv[2]
print my_argv[0], my_argv[1]
</source>
</source>
[[Category:Scripting]]

Latest revision as of 11:42, 15 January 2014

Script within a Structure

Q: Is there a way to embed a script within a PDB structure?

A: Yes, there are two ways

delete all
cmd.read_pdbstr("""HETATM 1985  O00 MOH   132      18.797   6.477 -12.112 0.00  0.00           O\
HETATM 1988  H03 MOH   132      18.437   7.229 -11.665  0.00  0.00    H\
HETATM 1989  C04 MOH   132      17.737   5.662 -12.563  0.00  0.00    C\
HETATM 1990  H05 MOH   132      18.129   4.785 -13.080  0.00  0.00    H\
HETATM 1991  H06 MOH   132      17.096   6.211 -13.253  0.00  0.00    H\
HETATM 1992  H07 MOH   132      17.130   5.322 -11.722  0.00  0.00    H""","mymolecule")
show sticks

Don't forget the backslashes there -- it's one long command. Example

  • Or, as Warren noted, you can do with with a "p1m" file, which is like a "pml" file, but data can be included as well. Also note that p1m files are intended for web publishing, so embedded Python is disallowed. In p1m files, there is an "embed" command that enables this for PDB, MOL, MOL2, SDF, and XPLOR data. It works like this:
embed tag, format
****REPLACE THIS LINE WITH YOUR DATA FILE****
embed end
load_embedded tag

where tag is some identifier of your choice.

Scripting and Command Line Options

PyMol will allow you to use command line options in a script. That means, the following

pymol -qrc script.py arg1 arg2

will work if you add a double-hyphen before the first argument in order to signal Pymol to stop interpreting arguments:

pymol -qrc script.py -- arg1 arg2

Then your script can get these arguments as follows:

from sys import argv
my_argv = argv[1:]
print my_argv[0], my_argv[1]