'''DISCLAIMER:''' This page was originally developed for the 2008 Google Summer of Code competition and is kept only for historical reasons. If you want to discuss an idea or feature implementation just send and e-mail to the [[PyMOL_mailing_list]]. If you want to request a new feature or report a bug, please fill a ticket at [http://sourceforge.net/projects/pymol/| sourceforge]

+

----

+

----

+

</blockquote>

+

=== Ideas for PyMOL Development ===

=== Ideas for PyMOL Development ===

−

−

This page was originally developed for the 2008 Google Summer of Code competition, but seeing as PyMOL wasn't selected, this page can instead serve as a resource for ongoing PyMOL development efforts.

== Where to Start ==

== Where to Start ==

Line 28:

Line 34:

* GIMP (image manipulation): Streamline & document the process of exporting images from PyMOL into GIMP and preparing them for submission to scientific Journals.

* GIMP (image manipulation): Streamline & document the process of exporting images from PyMOL into GIMP and preparing them for submission to scientific Journals.

* Jmol (publishing visualizations inside of web pages): Liason between PyMOL & Jmol projects to develop a shared molecular visualization data model compatible with both applications (meaning, being able to import/export sessions from one to the other).

* Create a plugin-manager GUI in the style of Firefox, Rythmbox, Gedit, Eclipse. A GUI where it is easy to turn off/on plugins, configure them and see help-contents for them. Maybe also some way to paste a url to install a new Plugin.

* Create a plugin-manager GUI in the style of Firefox, Rythmbox, Gedit, Eclipse. A GUI where it is easy to turn off/on plugins, configure them and see help-contents for them. Maybe also some way to paste a url to install a new Plugin.

−

:: yea ([[User:Vvostri|Vvostri]]) / nay (0)

+

:: yea ([[User:Vvostri|Vvostri]], [[User:Tstout|tstout]]) / nay (0)

* Add a plugin for a GUI window with the same functionality as the "Control Panel" window in SwissPDB Viewer.

* Add a plugin for a GUI window with the same functionality as the "Control Panel" window in SwissPDB Viewer.

:: yea ([[User:Vvostri|Vvostri]]) / nay (0)

:: yea ([[User:Vvostri|Vvostri]]) / nay (0)

* Extend and modify the PyMOL command language so as to be compatible with existing RasMol and/or Jmol scripts.

* Extend and modify the PyMOL command language so as to be compatible with existing RasMol and/or Jmol scripts.

* Update selections automatically: add a new option to selection action drop-down menu called "update". It will re-evaluate the selection expression and update the content of the selection automatically.

+

+

[[Category:Development]]

Latest revision as of 12:55, 8 October 2015

DISCLAIMER: This page was originally developed for the 2008 Google Summer of Code competition and is kept only for historical reasons. If you want to discuss an idea or feature implementation just send and e-mail to the PyMOL_mailing_list. If you want to request a new feature or report a bug, please fill a ticket at sourceforge

Ideas for PyMOL Development

Where to Start

Always start with Python and only delve down into the C code when absolutely necessary. Although PyMOL is mostly a C-based application, much of the that code is opaque, fragile, and unforgiving. Although C code refactoring is an important project goal, such work may not be ideal since once mistake could potentially to destabilize the entire platform.

Fortunately, the Python interpreter and the PyMOL command and selection languages make it possible to extend PyMOL safely and quickly. Even when performance is critical, Python should be the interface between external C, C++, and Java code and PyMOL's internal C data structures.

Choosing a Topic

The best open-source code is usually written by an end-users attempting to meet their own pressing needs. So if you have already have a specific need which relates to PyMOL, then we strongly encourage you to follow up on that first!

If you are looking for ideas, then try to seek out enhancements and/or integrations that will impact the largest potential user base. For example, imagine what new things might be useful to virtually all medicinal chemists, all structural biologists, all movie-makers, all paper-writers, and so forth.

The ideas below are organized by category. Right now, integration with other open-source projects seems like the approach most likely to yield significant benefit, so those ideas are first.

Integration Ideas (Linking Out to Useful Open-Source Tools)

In most cases, depending on the need, integration can be accomplished through standalone Python scripts, through new PyMOL commands, through PyMOL Wizards, or via Tkinter plugins.

APBS (electrostatics calculations): Improve the existing plugin. Michael Lerner is currently leading this effort. See APBS

GIMP (image manipulation): Streamline & document the process of exporting images from PyMOL into GIMP and preparing them for submission to scientific Journals.

yea (0) / nay (0)

Jmol (publishing visualizations inside of web pages): Liason between PyMOL & Jmol projects to develop a shared molecular visualization data model compatible with both applications (meaning, being able to import/export sessions from one to the other).

Create a plugin-manager GUI in the style of Firefox, Rythmbox, Gedit, Eclipse. A GUI where it is easy to turn off/on plugins, configure them and see help-contents for them. Maybe also some way to paste a url to install a new Plugin.

More Ideas (Please add your own!)

I often need to "replicate" previously PyMOL-made figures using newer coordinates/structures. It would be a big help (to me), if PyMOL could produce an exported text file from the old PyMOL .pse file of graphical settings that I could then modify and apply as a pymol script to the new structure -- I'm thinking of something like an old-style MOLSCRIPT.INP file...

MolViz is a project to incorporate head tracking input into PyMol. This is accomplished through a ImmersiveViz script written in Python to control the molecule's position using the existing PyMol API. Related projects would include:

Improving the existing ImmersiveViz PyMol plugin for more precise control of the environment.

Developing new input drivers for the Wiimote form of control. This would require some bluetooth hacking.

Implementing some other forms of input for head tracking, such as fisheye head tracking, IR webcam tracking, etc (refer to the end of this [video] for a better description).

Update selections automatically: add a new option to selection action drop-down menu called "update". It will re-evaluate the selection expression and update the content of the selection automatically.