https://github.com/cytoscape/ipycytoscape
A Cytoscape Jupyter widget
https://github.com/cytoscape/ipycytoscape
binder cytoscape jupyter-notebook
Last synced: 6 months ago
JSON representation
A Cytoscape Jupyter widget
- Host: GitHub
- URL: https://github.com/cytoscape/ipycytoscape
- Owner: cytoscape
- License: bsd-3-clause
- Created: 2020-02-05T13:46:52.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-04-07T17:47:47.000Z (7 months ago)
- Last Synced: 2025-04-13T21:34:00.824Z (7 months ago)
- Topics: binder, cytoscape, jupyter-notebook
- Language: Python
- Homepage: https://ipycytoscape.readthedocs.io/en/master/
- Size: 2.75 MB
- Stars: 270
- Watchers: 28
- Forks: 63
- Open Issues: 74
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-jupyter - ipycytoscape - Widget for interactive graph visualization in Jupyter using cytoscape.js. <!--lint disable double-link--> (Visualization)
- awesome-jupyter-resources - GitHub - 37% open · ⏱️ 20.05.2022): (交互式小部件和可视化)
- awesome-jupyter-widgets - ipycytoscape - graph visualizations (cytoscape.js) (Interactive Widgets / Interactive Jupyter Widget Ecosystem)
README
# ipycytoscape
[](https://github.com/cytoscape/ipycytoscape/actions/workflows/test.yml) [](https://ipycytoscape.readthedocs.io/en/latest/?badge=master) [](https://stackoverflow.com/questions/tagged/ipycytoscape) [](https://gitter.im/QuantStack/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
A widget enabling interactive graph visualization with [cytoscape.js](https://js.cytoscape.org/) in JupyterLab and the Jupyter notebook.
Try it out using binder: [](https://mybinder.org/v2/gh/cytoscape/ipycytoscape/HEAD?filepath=examples) or install and try out the [examples](examples).

#### Supports:
* Conversion from NetworkX see [example1](https://github.com/cytoscape/ipycytoscape/blob/master/examples/Test%20NetworkX%20methods.ipynb), [example2](https://github.com/cytoscape/ipycytoscape/blob/master/examples/NetworkX%20Example.ipynb)
* Conversion from Pandas DataFrame see [example](https://github.com/cytoscape/ipycytoscape/blob/master/examples/pandas.ipynb)
* Conversion from neo4j see [example](https://github.com/cytoscape/ipycytoscape/blob/master/examples/Neo4j_Example.ipynb)
## Installation
With `mamba`:
```
mamba install -c conda-forge ipycytoscape
```
With `conda`:
```
conda install -c conda-forge ipycytoscape
```
With `pip`:
```bash
pip install ipycytoscape
```
### Pandas installation
You can install the Pandas dependencies for `ipycytoscape` with pip:
```
pip install pandas
```
Or conda-forge:
```
mamba install pandas
```
### Neo4j installation
You can install the neo4j dependencies for `ipycytoscape` with pip:
```
pip install -e ".[neo4j]"
```
Or conda-forge:
```
mamba install py2neo neotime
```
#### For jupyterlab 1.x or 2.x:
If you are using JupyterLab 1.x or 2.x then you will also need to install `nodejs` and the `jupyterlab-manager` extension. You can do this like so:
```bash
# installing nodejs
conda install -c conda-forge nodejs
# install jupyterlab-manager extension
jupyter labextension install @jupyter-widgets/jupyterlab-manager@2.0 --no-build
# if you have previously installed the manager you still to run jupyter lab build
jupyter lab build
```
### For Jupyter Notebook 5.2 and earlier
You may also need to manually enable the nbextension:
```bash
jupyter nbextension enable --py [--sys-prefix|--user|--system] ipycytoscape
```
## For a development installation:
**(requires npm)**
While not required, we recommend creating a conda environment to work in:
```bash
conda create -n ipycytoscape -c conda-forge jupyterlab nodejs
conda activate ipycytoscape
# clone repo
git clone https://github.com/cytoscape/ipycytoscape.git
cd ipycytoscape
```
### Install python package for development
This will `run npm install` and `npm run build`.
This command will also install the test suite and the [docs](https://ipycytoscape.readthedocs.io/en/latest/) locally:
```
pip install jupyter_packaging==0.7.9
pip install -e ".[test, docs]"
jupyter labextension develop . --overwrite
```
optionally install the pre-commit hooks with:
```bash
pre-commit install
```
Or for classic notebook, you can run:
```
jupyter nbextension install --sys-prefix --symlink --overwrite --py ipycytoscape
jupyter nbextension enable --sys-prefix --py ipycytoscape
```
Note that the `--symlink` flag doesn't work on Windows, so you will here have to run
the `install` command every time that you rebuild your extension. For certain installations
you might also need another flag instead of `--sys-prefix`, but we won't cover the meaning
of those flags here.
### How to see your changes
#### Typescript:
To continuously monitor the project for changes and automatically trigger a rebuild, start watching the ipycytoscape code:
```bash
npm run watch
```
And in a separate terminal start JupyterLab normally:
```bash
jupyter lab
```
once the webpack rebuild finishes refresh the JupyterLab page to have your changes take effect.
#### Python:
If you make a change to the python code then you need to restart the notebook kernel to have it take effect.
### How to run tests locally
Install necessary dependencies with pip:
```
pip install -e ".[test]"
```
Or with conda/mamba:
```
mamba -c conda-forge install networkx pandas nbval pytest
```
#### And to run it:
```
pytest
```
### How to build the docs
`cd docs`
Install dependencies:
`conda env update --file doc_environment.yml`
And build them:
`make html`
## Acknowledgements
The ipycytoscape project was started by [Mariana Meireles](https://github.com/marimeireles) at [QuantStack](https://quantstack.net). This initial development was funded as part of the [PLASMA](https://plasmabio.org) project, which is led by Claire Vandiedonck, Pierre Poulain, and Sandrine Caburet.
## License
We use a shared copyright model that enables all contributors to maintain the
copyright on their contributions.
This software is licensed under the BSD-3-Clause license. See the
[LICENSE](LICENSE) file for details.