Sep
23
2008

PyMOL scripts

Have you ever tried to represent your protein as a “sausage”-style cartoon, with the tube diameter scaled by values in the B-factor column ? We present an array of useful PyMOL scripts links to solve your problem.

PyMOL is, as defined on its home page: “.. a USER-SPONSORED molecular visualization system on an OPEN-SOURCE foundation”. Indeed it is one of the most popular molecular viewers out there. One of the main strengths of PyMOL is its inherent scripting abilities. I’m sure that many of you knew that, but have never really taken the time to write such scripts, and why would you ? others have done the job for you!

We present to you a pile of PyMOL scripts, some are extremely useful, others can color your protein salmon pink. 

  • The PyMOL wiki is a great PyMOL resource by itself, but its scripts library is the real gem. 
    • cool script: a Wizard to draw planes between three picked points.
  • Dr. Robert L. Campbell, shares with us his own little directory of useful PyMOL scripts.
    • cool script: Extract data produced by other programs and alter the B-factor or occupancy of a molecule within PyMOL.
  • As Does Dr. Gareth Stockwell, from the EBI.
    • cool script: Draws pretty h-bonds, with arrows.
  • On Cam’s PyMOL page you’ll find lots of examples for specific tasks and amongst them the highly coveted…
    • cool script: “sausage”-style cartoon representation, with the tube diameter scaled by values in the B-factor column.
    • Update: as indicated in the comments “cartoon putty” will do the trick since v0.98
  • Extending beyond the reach of scripts, at the sourceforge PyMOL plugins page you can find some PyMOL plugins for useful tasks such as visualizing electrostatic potentials, identifying and visualizing access routes to protein cavities, download a PDB file straight into PyMOL, loading of multiple pdb files, dihedral restraints checks, NOE restraints checks, and superposition routines.
    • cool plugin: visualizing surfaces and voids using the CASTp algorithm.

What’s your favorite Pymol script ? share with us in the comments.

By Nir London.

Share Me:
  • email
  • Print
  • Twitter
  • Digg
  • Google Bookmarks
  • del.icio.us
  • Technorati
  • Facebook
  • connotea
  • Mixx
  • Reddit
  • StumbleUpon
  • NewsVine
  • FriendFeed
  • LinkedIn
  • Yahoo! Bookmarks
  • RSS
Written by Nir London in: Resources | Tags: , , , ,

Related posts

Enjoyed this Post ?

Subscribe by E-mail:

Subscribe in a reader. Follow us on twitter.

14 Comments »

  • Darrell

    The b-factor scaling is already incorporated into PyMOL. Just type “cartoon putty” on the command line to invoke it.

    Comment | March 5, 2009
  • [...] though, PyMOL creates good looking figures and is highly scriptable (as we demonstrated before in PyMOL scripts), while Jmol is web oriented and easy to embed in web [...]

    Pingback | March 15, 2009
  • Hi, As you seems to be quite good in pymol modelling, I would like to ask to make a special bond in pymol. Actually in my protein I have a real covalent bond between an Asn and a Lys.. Obviously, Pymol doesn’t know how to draw it. Can you help me ?
    Thanks.
    thierry

    Comment | March 31, 2009
  • admin

    Pymol just draws bonds based on distances, not based on topological
    information. If atoms are within contact distance, a bond will be
    drawn, whatever the atoms are. If one feels need for an additional
    bond, it is possible to add them using:

    bond selection1, selection2

    This will draw bonds between all atoms of selection1 and all atoms of
    selection2. In Thierry’s case it would be something like:

    bond resi X and resn asn and name CD, resi Y and resn lys and name NZ

    assuming this is about a side chain – side chain amide bond.

    Hope it helps,

    Tsjerk

    Comment | March 31, 2009
  • The variable-width, B-factor-scaled “sausage” representation described on my page was implemented as the “putty” cartoon style in PyMOL v0.98+. So, as Darrell points-out, now all one needs to do it type “cartoon putty” (the patch on my page was useful before this was integrated into the PyMOL codebase). Also, note that “Cam’s PyMOL page” (which is now rather old and in need of a major update) has moved to http://muralab.org/~cmura/PyMOL.

    Comment | July 6, 2009
  • admin

    Thanks Cameron, I updated the link. Good luck with the new lab!!

    Comment | July 6, 2009
  • ram

    Hi, may i please ask your suggestion on a modeling question i had ? i would like to model chimeric fusion proteins where each component protein is part of a known crystal structure. I would also like to append custom peptide linkers between the component proteins. Could you please recommend the best strategy to do this using macpymol ? I am appreciative of your assistance and time.

    Comment | December 2, 2009
  • Dear ram,
    If I understand correctly you wish to model the way your chimeric protein would look. For this purpose you’ll need a molecular modeling software (Such as Rosetta, Tasser, Modeler, Yasara etc..) PyMol is a molecular viewer and cannot do extensive modeling. If you just wish to very roughly estimate the chimera feasibility you can edit the structures in pymol (i.e. remove the unnecessary atoms) and manually place them to get an idea..
    Hope this helps.

    Comment | December 2, 2009
  • Marianna

    Hi everyone,
    i am having some difficulties with pymol’s fuse command. I have 2 pdb files that represent 2 adjacent fragments of my protein and i am trying to ligate the amino terminus of the first to the carboxy terminus of the second, in order to create one structure – pdb file.
    I am using the fuse command, specifying the correct residues and atom names, but what i get is a strange “molecule” that has big gaps in specific locations. If i dispay the sequence of the final molecule it seems as if the 2 individual sequences have interjected into one another.
    Any suggestions/ideas? I am really curious as to why this happens..!
    If anyone knows of another way to perform the same task, it would be really appreciated :)
    Thanks in advance,
    Marianna

    Comment | December 5, 2009
  • Michael Zimmermann

    I have no experience with fuse, but my guess would be Mariana might
    want to just use ‘bond’ and translate one termini as needed. If she
    doesn’t want to “manually” translate, there is always energy
    minimization to correct bond lengths.
    Take Care.

    Comment | December 8, 2009
  • Robert Campbell

    Hi Marianna,

    Given that you say that the sequence is display as if the 2 original sequences have been interjected into one another, then I think the problem is that you have the same chain ID for the two and the residue numbers overlap. Perhaps if they had different chain IDs or if the second molecule is renumbered to have residue numbers that start after the first molecule it would work correctly.

    Cheers,
    Rob

    Comment | December 8, 2009
  • Ram

    Thank you, Nir. I figured out how to use the Fuse command but as Marianna asks, the residues of the fusion protein become ordered based on their numbering. This results in a protein that is interspersed with residues from both the fused domains. Rob is absolutely right about this. Is there any way to edit the numbering on the residues of the two domains (separate objects) so that they appear in sequence and can be fused sequentially without such ‘interjection’ ?

    Thanks again!
    Ram

    Comment | December 10, 2009
  • Marianna

    Hey everyone and thanks for all the answers :)
    Robert is indeed absolutely right on this, it makes perfect sense.
    Ram, there is a way to change it, besides manually change the pdb file with a text editor, that sounds horrifying :)
    Try this tool http://sourceforge.net/projects/pdbeditorjl/
    Pros: it’s free, has GUI
    Cons: its slow (java based)
    You can easily edit the residue column only of the object you want, and also perform other useful tasks.
    Hope it helps!
    Marianna

    Comment | December 10, 2009
  • Teek

    If it’s just a question of renumbering all the residues in an object/selection based on some offset, then just use alter in PyMol. Adapted from the alter documentation:

    alter (objectname/selection), resi=str(int(resi)+100)

    TK

    Comment | December 11, 2009

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress | Aeros Theme | TheBuckmaker.com WordPress Themes
© 2009 Rosetta Design Group LLC