Open Source Software in CCP-EM

The CCP-EM software suite makes use of many Open Source components, detailed below. We are grateful to the developers of all these packages whose work allows us to build our software.

CCP-EM v2: Doppio

CCP-EM v2 uses an extensible architecture with three layers: Doppio, the web-based user interface; the CCP-EM Pipeliner, a Python library that provides project and job management along with many other functions; and a wide spectrum of additional software packages that the Pipeliner can use if they are found to be available.

Doppio

The Doppio GUI is distributed under the terms of the CCP-EM Licence (see details here). It makes use of many Open Source components. The major ones are as follows:

SoftwareLicence typeLinks
AxiosMITHome page, npm page
ElectronMITHome page, npm page
FastAPIMITHome page, PyPI page
Material UIMITHome page, npm page
Mol*MITHome page, npm page
MoorhenBSDHome page, npm page
Plotly.jsMITHome page, npm page
PydanticMITDocumentation, PyPI page
ReactMITHome page, npm page
React ReduxMITHome page, npm page
React RouterMITHome page, npm page
Redux ToolkitMITHome page, npm page
TypeScriptApacheHome page, npm page
UvicornBSDHome page, PyPI page

The CCP-EM Pipeliner

The CCP-EM Pipeliner is a fully Open Source package which is available under the Mozilla Public Licence v2.0 from https://gitlab.com/ccpem/ccpem-pipeliner.

Installing it (for example with pip) will automatically install various dependencies which all have MPL-compatible Open Source licences.

The Pipeliner (in conjunction with additional packages as described below) provides all of the functionality necessary to run a full CCP-EM data processing project. As such, if you are happy working without a GUI, it provides a fully Open Source way to obtain and run the CCP-EM software suite.

Additional packages

The CCP-EM Pipeliner makes use of various additional software package in order to run data processing jobs. A few jobs are built into the Pipeliner itself, but for most serious data processing (for example, cryo-EM image processing or atomic model building) some external packages will be needed. Most of them are also fully Open Source.

The list of supported software is always growing and an up-to-date list can be found in the Doppio documentation. Some of the major packages are:

CCP-EM v1

Version 1 of the CCP-EM suite is no longer actively maintained, but it is still available to download from the downloads page.

Because CCP-EM v1 is distributed as a single package containing all of its dependencies, the list of Open Source components included in it is long.

SoftwareLicence typeLinks
3D-StrudelApachePyPI page
apipkgMITPyPI page
ATKLGPLCode repository
atomicwritesMITPyPI page
attrsMITPyPI page
BiopythonMITPyPI page
BoostBSDHome page
bzip2BSDHome page
CairoLGPLHome page
CCP4 Monomer LibraryLGPLHome page
CCP4 SRSLGPLCCP4 home page, Code repository
ClipperLGPLHome page
Clipper-PythonLGPLPyPI page
CMakeBSDHome page
configparserMITPyPI page
ConKitBSDHome page
contextlib2ApachePyPI page
CootGPLHome page
cryoEFMITCode repository
curlMITHome page
cyclerBSDPyPI page
CythonApachePyPI page
EMDAMPLPyPI page
enum34BSDPyPI page
execnetMITPyPI page
FDRthresholdingBSDCode repository
FFTW 2 and 3GPLHome page
FLTKGPLHome page
freeglutMITHome page
FreeTypeBSDHome page
functools32PSFPyPI page
Gdk-PixbufGPLDocumentation
GEMMIMPLHome page
gettextGPLHome page
GLibLGPLCode repository
GMPLGPLHome page
GooCanvasLGPLCode repository
GSLGPLHome page
GTK 2LGPLHome page
GtkGlExtLGPLHome page
GuileLGPLHome page
Guile-GtkGPLHome page
Guile-LibGPLHome page
importlib-metadataApachePyPI page
intltoolGPLHome page
KiwiBSDPyPI page
LAFTERGPLCode repository
LAPACKBSDHome page
libart_lgplLGPLCode repository
libccp4LGPLCCP4 home page, Code repository
libcrocoLGPLCode repository
libffiMITHome page
libgladeLGPLCode repository
libgnomecanvasLGPLCode repository
libjpegIJG (BSD-like)Home page
libpngBSDHome page
librsvgLGPLCode repository
LibTIFFMITHome page
LibtoolGPLHome page
libxml2MITHome page
libxsltMITHome page
LocScaleBSDCode repository
lxmlBSDHome page
MatplotlibPSFHome page
mmdb2LGPLCCP4 home page, Code repository
more-itertoolsMITPyPI page
mpi4pyBSDPyPI page
mrcfileBSDCode repository
MRC Image Processing SystemNoneHome page
NumPyBSDHome page
OpenMPApacheCode repository
Open MPIBSDHome page
OpenSSLBSDHome page
packagingBSDPyPI page
pandasBSDHome page
PangoLGPLCode repository
pangox-compatLGPLCode repository
pathlib2MITPyPI page
PI-scoreBSDCode repository
PillowMITHome page
pipMITHome page
PixmanMITHome page
pkgconfMITCode repository
pluggyMITPyPI page
PrivateerLGPLCode repository
ProSHADEGPLHome page, Code repository
psutilBSDPyPI page
pyMITPyPI page
pybind11BSDCode repository
pyFFTWBSDPyPI page
pycairoLGPLHome page
PyGObjectLGPLHome page
PyGTKLGPLCode repository
PyParsingMITPyPI page
PyQt 4GPLHome page
pytestMITHome page
pytest-forkedMITPyPI page
pytest-timeoutMITPyPI page
pytest-xdistMITPyPI page
Python 2PSFHome page
python-dateutilBSDPyPI page
pytzMITPyPI page
Qt 4LGPLHome page
ReadlineGPLHome page
RELION 4.0GPLDocumentation
RIBFINDGPLHome page
RDKitBSDHome page
rvapiLGPLCode repository
scandirBSDPyPI page
scikit-learnBSDPyPI page
SciPyBSDHome page
ServalcatMPLCode repository
SetuptoolsMITHome page
setuptools-scmMITPyPI page
sfftkApacheDocumentation
SIDESPLITTERGPLCode repository
SIPBSDPyPI page
SixMITPyPI page
SOFTGPLCode repository
ssmLGPLCCP4 home page, Code repository
SQLitePublic DomainHome page
SWIGGPLHome page
wcwidthMITPyPI page
xsspGPLCode repository
zippMITPyPI page
zlibzlib (MIT-like)Home page