Jupyter ️❤️ Cytoscape

Cytoscape is an open source software platform for visualizing complex networks and integrating these with any type of attribute data. While the project was started in the life sciences community, it is now adopted by scientists and engineers of many fields from social sciences to complex network analysis.

Jupyter is a collection of open-source software packages meant to improve the workflows of scientists, engineers, educators and students from the exploratory phase of their work to the communication of their results. The most recognisable Jupyter subproject is the notebook, used to write interactive documents interleaving rich textual content, executable code cells, and interactive user interfaces.

Bridging CytoscapeJS with Jupyter’s interactive widgets framework is a very natural integration, to allow Python scientific software developers to put together rich graph visualization in their Jupyter notebook. This was the raison d’être of ipycytoscape.


In 2020, Mariana Meireles published the first release of ipycytoscape, and announced it in a post [2] published on the Jupyter blog. That version already set strong foundations for users of well-established libraries of the Python ecosystem like Pandas, NetworkX, Neo4j, and NumPy, to visualize their graph data in the Jupyter notebook, and enable them to modify the visual outcome programmatically or graphically with a simple API and user interface.

Since this original release, a lot more functionalities have been added to the package.

A screencast of ipycytoscape in action in JupyterLab

Ipycytoscape can be easily installed from PyPI:

pip install ipycytoscape

Or from conda-forge with mamba or conda:

mamba install ipycytoscape

Moving ipycytoscape to the Cytoscape GitHub organization

Today, we are happy to announce that ipycytoscape is being transferred from the QuantStack GitHub organization to the Cytoscape GitHub organization, which is managed by the Cytoscape Consortium.

This move establishes ipycytoscape as the recommended Jupyter integration of Cytoscape, and will better reflect the collaborative nature of the project. Hopefully, this is the starting point to more collaboration between these open-communities, and it will help attract more users and contributors to the project.

Current maintainers will keep commit rights and current maintainer responsibilities to the project as the project is being transferred to the new organization.


The PLASMA Project

The work by Mariana Meireles at QuantStack on ipycytoscape was funded as part of the PLASMA project, led by Claire Vandiedonck, Pierre Poulain, and Sandrine Caburet, associate professors at Université de Paris.

Sponsors to the PLASMA initiative include:


QuantStack and Mariana Meireles continued the development beyond the initial scope of the funding by the PLASMA project. Soon after the first release, more developers joined the party. The project has received contributions from over 20 people.

We should mention the outstanding contributions by Ian Hunt-Isaak (PhD Student in Applied Physics in Harvard) who is now a maintainer of the project, Jose Ferro, who contributed both to the codebase and by creating educational material on ipycytocape [3], [4], [5], Mridul Seth for the NetworkX improvements and Peter Rose for the Neo4j support.

About me

I started to develop this project about a year ago and with the help of the community we were able to expand it and improve it a lot. I currently work as a software engineer at QuantStack where I develop and contribute to open-source scientific computing projects. I recently published the xeus-sql and xeus-sqlite Jupyter kernels, as well as the rhumba package manager for R.


[1] The ipycytoscape GitHub Repository
[2] Interactive graph visualization in Jupyter with ipycytoscape, Mariana Meireles
[3] Learning and visualizing graphs with ipycytoscape (Part 1), Jose Ferro
[4] Learning and visualizing graphs with ipycytoscape (Part 2), Jose Ferro
[5] An alternative way to visualize graph data with Pandas and ipycytoscape, Jose Ferro



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store