Ideas

From PyMOLWiki
Jump to: navigation, search

Contents

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

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.

yea (Tree Jedgold Vcpmartin Siderator tstout) / nay (0)
Feel free to mention specific plugin enhancements you'd like! Michael Lerner
yea (Markvanraaij) / nay (0)
yea (0) / nay (0)
yea (tstout slaw) / nay (Cowsandmilk)
yea (Vvostri assaff slaw) / nay (tstout)
yea (0) / nay (0)
yea (Jedgold Michael Lerner) / nay (0)
yea (0) / nay (0)
yea (Cowsandmilk assaff) / nay (0)
yea (0) / nay (0)

Are there other key open-source packages we might specifically target for integration with PyMOL, either through GSoC or beyond?

High-Level Enhancement Ideas (Mostly Python-oriented)

yea (0) / nay (0)
yea (Vvostri) / nay (0)
yea (Cowsandmilk slaw) / nay (0)
yea (0) / nay (0)
yea (0) / nay (0)
yea (0) / nay (0)
yea (Cowsandmilk) / nay (0)
yea (Vvostri, tstout) / nay (0)
yea (Vvostri) / nay (0)
yea (tstout) / nay (Cowsandmilk slaw)
yea (Luca Jovine slaw) / nay (0)
yea (Cowsandmilk tstout slaw) /nay(0)

Low-Level Enhancement Ideas (Mostly C-oriented)

yea (Jedgold, Aschreyer, Luca Jovine, slaw, Speleo3) / nay (0)
Would this then feed back to the structural alignment? Jedgold
A search function in the sequence would also be nice. Carsten Schubert
yea (0) / nay (0)
yea (Aschreyer, Vvostri) / nay (0)
yea (Luca Jovine, tstout) / nay (0)
yea (Gregori, Xevi, Johnm, Carsten Schubert, tstout) / nay (0)
I would go a step further with fully customizable selection-based clipping planes (XYZ, color and transparency) (Gregori)
yea (Luca Jovine, Carsten Schubert, Jared Sampson) / nay (0)
yea (Luca Jovine) / nay (0)
yea (Vvostri, Vcpmartin, rpetrenko, SteffenG) / nay (0)
yea (Jedgold) / nay (0)
This could be done by integrating RDKit, I think. Aschreyer
yea (tstout) / nay (Jedgold, Cowsandmilk])
Perhaps a plugin to Modeller instead? (Jedgold, Luca Jovine)
yea (Jedgold, Luca Jovine) / nay (0)
yea ( slaw) / nay (0)
yea (Sheehanj, tstout) / nay (0)

Difficult C-level Code Refactoring Ideas

yea (Cowsandmilk,Karo) / nay (0)
yea (Cowsandmilk) / nay (0)
yea (0) / nay (0)
yea (Vvostri) / nay (0)
yea (Vvostri"Vcpmartin, Luca Jovine", Cowsandmilk) / nay (0)
yea (Cowsandmilk,Karo) / nay (0)

Ideas Involving Proprietary APIs

Since these involve closed-source APIs and infrastructure, they aren't suitable for open-source development efforts. However, such requests are noted here for the sake of complete coverage.

yea (0) / nay ( slaw)
yea (0) / nay (Aschreyer)
yea (Tree, Cowsandmilk slaw) / nay (0)
yea (0) / nay (Aschreyer)
yea (Cowsandmilk) / nay (0)

Ideas for Plugin Developers

The range of things that PyMOL plugins can do has grown by leaps and bounds over the last several years. It may be time for some new infrastructure to facilitate plugin development.

yea (1) / nay (0) (Michael Lerner)
yea (1) / nay (0) (Michael Lerner)
yea (1) /nay (0) (Hongbo Zhu)

More Ideas (Please add your own!)

yea (tstout) / nay (0)
yea (0) / nay (0)
yea (Aschreyer, Cowsandmilk) / nay (tstout)
RDKit?
yea (Aschreyer) / nay (Cowsandmilk)
yea (Markvanraaij tstout slaw) / nay (0)
yea (Vvostri, Luca Jovine, tstout slaw) / nay (Cowsandmilk)
yea ( slaw) / nay (0)
yea (0) / nay (0)
yea (Aschreyer, tstout) / nay (0)
There is already a fetch_host setting --Speleo3 17:05, 29 October 2010 (UTC)
yea (0) / nay (0)
yea (Luca Jovine) / nay (0)
yea (0) / nay (0)
yea (0) / nay (0)
yea (0) / nay ( slaw)
yea (0) / nay (0)
yea (Vvostri) / nay (0)
yea (Aschreyer, Cowsandmilk, tstout) / nay (0)
yea (Vvostri, Luca Jovine, Aschreyer, tstout slaw ) / nay (0)
yea (Luca Jovine) / nay (0)
yea (Luca Jovine, tstout, Carsten Schubert) / nay (0)
May be even map the contouring level onto the wheel Carsten Schubert
yea (Carsten Schubert, tstout, Luca Jovine) / nay (0)
yea (Luca Jovine, Aschreyer, Johnm,Carsten Schubert, tstout) / nay (0)
yea (Luca Jovine, tstout, Carsten Schubert) / nay (0)
Support for labeling cell axes and origin, etc... Carsten Schubert, Luca Jovine
yea (Luca Jovine, tstout, Carsten Schubert) / nay (0)
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox