221 lines
7.6 KiB
Plaintext
221 lines
7.6 KiB
Plaintext
|
Metadata-Version: 2.1
|
||
|
Name: dash-cytoscape
|
||
|
Version: 0.3.0
|
||
|
Summary: A Component Library for Dash aimed at facilitating network visualization in Python, wrapped around Cytoscape.js
|
||
|
Home-page: https://dash.plotly.com/cytoscape
|
||
|
Author: The Plotly Team <cytoscape@plotly.com>
|
||
|
Author-email: cytoscape@plotly.com
|
||
|
License: MIT
|
||
|
Platform: UNKNOWN
|
||
|
Classifier: Environment :: Web Environment
|
||
|
Classifier: Framework :: Flask
|
||
|
Classifier: Intended Audience :: Developers
|
||
|
Classifier: Intended Audience :: Education
|
||
|
Classifier: Intended Audience :: Financial and Insurance Industry
|
||
|
Classifier: Intended Audience :: Healthcare Industry
|
||
|
Classifier: Intended Audience :: Manufacturing
|
||
|
Classifier: Intended Audience :: Science/Research
|
||
|
Classifier: License :: OSI Approved :: MIT License
|
||
|
Classifier: Programming Language :: Python
|
||
|
Classifier: Programming Language :: Python :: 3
|
||
|
Classifier: Programming Language :: Python :: 3.5
|
||
|
Classifier: Programming Language :: Python :: 3.6
|
||
|
Classifier: Programming Language :: Python :: 3.7
|
||
|
Classifier: Topic :: Database :: Front-Ends
|
||
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
||
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
||
|
Description-Content-Type: text/markdown
|
||
|
Requires-Dist: dash
|
||
|
|
||
|
# Dash Cytoscape [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/plotly/dash-cytoscape/blob/master/LICENSE) [![PyPi Version](https://img.shields.io/pypi/v/dash-cytoscape.svg)](https://pypi.org/project/dash-cytoscape/)
|
||
|
[![CircleCI](https://circleci.com/gh/plotly/dash-cytoscape.svg?style=svg)](https://circleci.com/gh/plotly/dash-cytoscape)
|
||
|
|
||
|
A Dash component library for creating interactive and customizable networks in Python, wrapped around [Cytoscape.js](http://js.cytoscape.org/).
|
||
|
|
||
|
![usage-stylesheet-demo](https://raw.githubusercontent.com/plotly/dash-cytoscape/master/demos/images/usage-stylesheet-demo.gif)
|
||
|
|
||
|
* 🌟 [Medium Article](https://medium.com/@plotlygraphs/introducing-dash-cytoscape-ce96cac824e4)
|
||
|
* 📣 [Community Announcement](https://community.plotly.com/t/announcing-dash-cytoscape/19095)
|
||
|
* 💻 [Github Repository](https://github.com/plotly/dash-cytoscape)
|
||
|
* 📚 [User Guide](https://dash.plotly.com/cytoscape)
|
||
|
* 🗺 [Component Reference](https://dash.plotly.com/cytoscape/reference)
|
||
|
* 📺 [Webinar Recording](https://www.youtube.com/watch?v=snXcIsCMQgk)
|
||
|
|
||
|
## Getting Started in Python
|
||
|
|
||
|
### Prerequisites
|
||
|
|
||
|
Make sure that dash and its dependent libraries are correctly installed:
|
||
|
```commandline
|
||
|
pip install dash
|
||
|
```
|
||
|
|
||
|
If you want to install the latest versions, check out the [Dash docs on installation](https://dash.plotly.com/installation).
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
Install the library using `pip`:
|
||
|
|
||
|
```
|
||
|
pip install dash-cytoscape
|
||
|
```
|
||
|
|
||
|
Create the following example inside an `app.py` file:
|
||
|
|
||
|
```python
|
||
|
import dash
|
||
|
import dash_cytoscape as cyto
|
||
|
import dash_html_components as html
|
||
|
|
||
|
app = dash.Dash(__name__)
|
||
|
app.layout = html.Div([
|
||
|
cyto.Cytoscape(
|
||
|
id='cytoscape',
|
||
|
elements=[
|
||
|
{'data': {'id': 'one', 'label': 'Node 1'}, 'position': {'x': 50, 'y': 50}},
|
||
|
{'data': {'id': 'two', 'label': 'Node 2'}, 'position': {'x': 200, 'y': 200}},
|
||
|
{'data': {'source': 'one', 'target': 'two','label': 'Node 1 to 2'}}
|
||
|
],
|
||
|
layout={'name': 'preset'}
|
||
|
)
|
||
|
])
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
app.run_server(debug=True)
|
||
|
```
|
||
|
|
||
|
![basic-usage](https://raw.githubusercontent.com/plotly/dash-cytoscape/master/demos/images/basic-usage.gif)
|
||
|
|
||
|
### External layouts
|
||
|
|
||
|
You can also add external layouts. Use the `cyto.load_extra_layouts()` function to get started:
|
||
|
|
||
|
```python
|
||
|
import dash
|
||
|
import dash_cytoscape as cyto
|
||
|
import dash_html_components as html
|
||
|
|
||
|
cyto.load_extra_layouts()
|
||
|
|
||
|
app = dash.Dash(__name__)
|
||
|
app.layout = html.Div([
|
||
|
cyto.Cytoscape(...)
|
||
|
])
|
||
|
```
|
||
|
|
||
|
Calling `cyto.load_extra_layouts()` also enables generating SVG images.
|
||
|
|
||
|
|
||
|
## Getting Started in R
|
||
|
|
||
|
### Prerequisites
|
||
|
|
||
|
```R
|
||
|
install.packages(c("devtools", "dash"))
|
||
|
```
|
||
|
### Usage
|
||
|
|
||
|
Install the library using devtools:
|
||
|
|
||
|
```
|
||
|
devtools::install_github("plotly/dash-cytoscape")
|
||
|
```
|
||
|
|
||
|
Create the following example inside an `app.R` file:
|
||
|
|
||
|
```R
|
||
|
library(dash)
|
||
|
library(dashHtmlComponents)
|
||
|
library(dashCytoscape)
|
||
|
|
||
|
app <- Dash$new()
|
||
|
|
||
|
app$layout(
|
||
|
htmlDiv(
|
||
|
list(
|
||
|
cytoCytoscape(
|
||
|
id = 'cytoscape-two-nodes',
|
||
|
layout = list('name' = 'preset'),
|
||
|
style = list('width' = '100%', 'height' = '400px'),
|
||
|
elements = list(
|
||
|
list('data' = list('id' = 'one', 'label' = 'Node 1'), 'position' = list('x' = 75, 'y' = 75)),
|
||
|
list('data' = list('id' = 'two', 'label' = 'Node 2'), 'position' = list('x' = 200, 'y' = 200)),
|
||
|
list('data' = list('source' = 'one', 'target' = 'two'))
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
app$run_server()
|
||
|
```
|
||
|
|
||
|
## Documentation
|
||
|
|
||
|
The [Dash Cytoscape User Guide](https://dash.plotly.com/cytoscape/) contains everything you need to know about the library. It contains useful examples, functioning code, and is fully interactive. You can also use the [component reference](https://dash.plotly.com/cytoscape/reference/) for a complete and concise specification of the API.
|
||
|
|
||
|
To learn more about the core Dash components and how to use callbacks, view the [Dash documentation](https://dash.plotly.com/).
|
||
|
|
||
|
For supplementary information about the underlying Javascript API, view the [Cytoscape.js documentation](http://js.cytoscape.org/).
|
||
|
|
||
|
## Contributing
|
||
|
|
||
|
Make sure that you have read and understood our [code of conduct](CODE_OF_CONDUCT.md), then head over to [CONTRIBUTING](CONTRIBUTING.md) to get started.
|
||
|
|
||
|
### Testing
|
||
|
|
||
|
Instructions on how to run [tests](CONTRIBUTING.md#tests) are given in [CONTRIBUTING.md](CONTRIBUTING.md).
|
||
|
|
||
|
## License
|
||
|
|
||
|
Dash, Cytoscape.js and Dash Cytoscape are licensed under MIT. Please view [LICENSE](LICENSE) for more details.
|
||
|
|
||
|
## Contact and Support
|
||
|
|
||
|
See https://plotly.com/dash/support for ways to get in touch.
|
||
|
|
||
|
## Acknowledgments
|
||
|
|
||
|
Huge thanks to the Cytoscape Consortium and the Cytoscape.js team for their contribution in making such a complete API for creating interactive networks. This library would not have been possible without their massive work!
|
||
|
|
||
|
The Pull Request and Issue Templates were inspired from the
|
||
|
[scikit-learn project](https://github.com/scikit-learn/scikit-learn).
|
||
|
|
||
|
## Gallery
|
||
|
|
||
|
### Dynamically expand elements
|
||
|
[Code](usage-elements.py) | [Demo](https://dash-gallery.plotly.host/cytoscape-elements)
|
||
|
![View usage-elements on Github](demos/images/usage-elements-demo.gif)
|
||
|
|
||
|
### Interactively update stylesheet
|
||
|
[Code](usage-stylesheet.py) | [Demo](https://dash-gallery.plotly.host/cytoscape-stylesheet)
|
||
|
![View usage-stylesheet on Github](demos/images/usage-stylesheet.gif)
|
||
|
|
||
|
### Automatically generate interactive phylogeny trees
|
||
|
[Code](demos/usage-phylogeny.py) | [Demo](https://dash-gallery.plotly.host/cytoscape-phylogeny/)
|
||
|
![View usage-phylogeny on Github](demos/images/usage-phylogeny.gif)
|
||
|
|
||
|
### Create your own stylesheet
|
||
|
[Code](usage-advanced.py) | [Demo](https://dash-gallery.plotly.host/cytoscape-advanced)
|
||
|
![View usage-advanced on Github](demos/images/usage-advanced.gif)
|
||
|
|
||
|
### Use event callbacks
|
||
|
[Code](usage-events.py) | [Demo](https://dash-gallery.plotly.host/cytoscape-events)
|
||
|
![View usage-events on Github](demos/images/usage-events.gif)
|
||
|
|
||
|
### Use external layouts
|
||
|
[Code](demos/usage-elements-extra.py)
|
||
|
![View usage-elements-extra on Github](demos/images/usage-elements-extra.gif)
|
||
|
|
||
|
### Use export graph as image
|
||
|
[Code](demos/usage-image-export.py)
|
||
|
![View usage-image-export on Github](demos/images/usage-image-export.gif)
|
||
|
|
||
|
### Make graph responsive
|
||
|
[Code](demos/usage-responsive-graph.py)
|
||
|
![View usage-responsive-graph on Github](demos/images/usage-responsive-graph.gif)
|
||
|
|
||
|
For an extended gallery, visit the [demos' readme](demos/README.md).
|
||
|
|
||
|
|