Developer Resources
SVN Repositories
We use Subversion as our version control system. Read-only access to our respositories are found here:
https://svnrepos.broad.mit.edu/CellProfiler/trunk/CellProfiler/
https://svnrepos.broad.mit.edu/CellProfiler/trunk/CPAnalyst/
For example, once you have svn installed, you should be able to type:
svn co https://svnrepos.broad.mit.edu/CellProfiler/trunk/CellProfiler/
to checkout the latest CellProfiler code.
To run CPAnalyst (the 2.0 version), you will need Python and various Python modules, which you can find help installing here.
Mailing lists
You can join developer mailing lists for CellProfiler and CellProfiler Analyst by sending mail with "Subscribe" in the Subject field to:
cellprofiler-dev-request@broadinstitute.org
cpa-dev-request@broadinstitute.org
These are not high-traffic lists and are intended for discussions or questions ranging from code details to the next horizons for the projects.
Python CellProfiler
After polling the CellProfiler user and developer communities, we are in the process of porting CellProfiler to Python, an open-source software language. The project is in an early Alpha stage with about 1/3 of the modules complete. CellProfiler 2.0 has working versions of the Load and Save modules, the Identify modules, some measurement modules and some image processing modules.
Our goals for CellProfiler 2.0 are:
- Backwards compatibility with Matlab - the Python version will have modules with the same functionality as the current CellProfiler. It will be able to load Matlab pipeline files and will be able to output the same Matlab measurement files, database files and Excel files as the current CellProfiler. We are discussing how to support users’ custom Matlab modules and would appreciate your input.
- Improved user interface - We're taking advantage of Python to improve CellProfiler's user interface. We've changed the way module settings are displayed: only the relevant ones appear and, if the settings don't make sense, there are visual cues to tell you what needs to be corrected. There's an experimental mode that lets you test out different settings and more.
- Speed improvements - The mathematical libraries in Python (Numpy, Scipy) and compiler tools associated with Python result in faster modules. We've seen 5x speed improvements in some algorithms.
- New algorithms - We are developing new thresholding methods and improving on some of the algorithms in our modules. Python plays a big part in this because of its strengths in array processing and its support for high-performance extensions.
- Interfaces to other imaging packages - We will be creating bridges between CellProfiler and other open-source imaging tools; more on this later.
- Improved reliability - We're using Python to give CellProfiler a richer and more flexible internal structure. As part of this, we're developing a test suite (currently close to 700 functionality tests), so that we can continuously validate CellProfiler's functionality.
- Public Development - CellProfiler is open-source. Our SVN repository is available at https://svnrepos.broad.mit.edu/CellProfiler/trunk/CellProfiler . The Python CellProfiler code is in the pyCellProfiler subdirectory. You can find more help installing the required Python modules here.
We've had good success with Python so far and we believe that Python will continue to gain momentum as a platform for scientific computing. Python is being used for compute-intensive tasks in astrophysics, geophysics and molecular modeling. We are both contributing to and taking advantage of Python's scientific trajectory and believe that this new direction will let us develop a faster, more stable and easier-to-use CellProfiler.
