Skip to content

Commit

Permalink
update paper
Browse files Browse the repository at this point in the history
  • Loading branch information
ulfaslak committed Apr 23, 2019
1 parent c3c2269 commit 9153836
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 30 deletions.
19 changes: 19 additions & 0 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@ @inproceedings{gephi
year = {2009}
}

@article{cytoscape,
title={Cytoscape: a software environment for integrated models of biomolecular interaction networks},
author={Shannon, Paul and Markiel, Andrew and Ozier, Owen and Baliga, Nitin S and Wang, Jonathan T and Ramage, Daniel and Amin, Nada and Schwikowski, Benno and Ideker, Trey},
journal={Genome research},
volume={13},
number={11},
pages={2498--2504},
year={2003},
publisher={Cold Spring Harbor Lab}
}

@article{webweb,
title = {webweb: a tool for creating, displaying, and sharing interactive network visualizations on the web},
shorttitle = {webweb},
Expand Down Expand Up @@ -55,3 +66,11 @@ @inproceedings{graphviz
pages = {483--484},
file = {Citeseer - Full Text PDF:/Users/bfmaier/Zotero/storage/LS2KQZ99/Ellson et al. - 2001 - Graphviz {\textemdash} open source graph drawing tools.pdf:application/pdf;Citeseer - Snapshot:/Users/bfmaier/Zotero/storage/IXILUSLA/summary.html:text/html}
}

@online{developersurvey,
author = {Stack Overflow},
adress = {https://insights.stackoverflow.com/survey/2019?utm_source=so-owned&utm_medium=blog&utm_campaign=dev-survey-2019&utm_content=launch-blog},
title = {Stack Overflow Developer Survey},
year = {2019},
urldate = {2019-04-23}
}
45 changes: 15 additions & 30 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ tags:
- interactive
authors:
- name: Ulf Aslak
orcid: 0000-0000-0000-0000
orcid: 0000-0003-4704-3609
affiliation: "1, 2" # (Multiple affiliations must be quoted)
- name: Benjamin F. Maier
orcid: 0000-0001-7414-8823
affiliation: "3, 4"
affiliations:
- name : Centre for Social Data Science, University of Copenhagen, DK-1353 København K
- name : Center for Social Data Science, University of Copenhagen, DK-1353 København K
index: 1
- name : DTU Compute, Technical University of Denmark, DK-2800 Kgs. Lyngby
index: 2
Expand All @@ -28,35 +28,19 @@ bibliography: paper.bib

# Summary

I'm just collecting some thoughts here
Network visualization is an effective way to illustrate properties of a complex system. It is an important tool for exploring and spotting patterns, and is used by researchers and practitioners across many fields and industries.
Currently, there exists a number of tools for visualizing networks. *networkx* [@networkx] is a popular Python package for network analysis which provides limited functionality for computing layouts and plotting networks statically. Layout computations are done in Python or using the php-based software *Graphviz* [@graphviz], which is slow. *Gephi* [@gephi] and *Cytoscape* [@cytoscape] are dedicated visualization and analysis software programs. They are both Java-based and runs desktop clients with a GUI, where users save and load networks as seperate files. *Webweb* [@webweb] enables interactive visualization for Python and Matlab networks using the d3.js [@d3] force layout. It's main purpose is exploration of network features and exporting one-time visualizations as SVG or HTML.

* visualizing networks is an important part of communicating their structure
* there already exist several tools to explore/visualize networks and their structure and properties.
* "networkx" [@networkx] is the most commonly used Python package for network analysis
* it provides visualization functions which are either slow or inconvenient as they
rely on third-party dependencies like "graphviz" [@graphviz], and use a
a variety of parameters. These parameters then have to be manually scanned,
reproducing a new visualization for every changed parameter.
* Gephi [@gephi] is mostly focused on both interactive analysis and visualization.
However, networks must be saved and loaded as separate files. Java has to be installed.
an automated view of a network which was previously manipulated in Python is not possbile
* Webweb [@webweb] provides an interactive visualization for Python network objects based
on the force layout of d3.js [@d3], however
its main purpose is the interactive exploration of network features
and single-time visualizations:
the stylized network and visualization parameters may not be saved to be reproduced later.
* Netwulf provides a simple interactive interface to stylize a network which was previously
manipulated in Python.
* Its philosophy is that network manipulation should be done programmatically (i.e. in Python)
but the efficient generation of a visually pleasing network representation should be
done manually
* Its main purpose is to easily generate both a network visualization
and find the optimal visualization parameters to reproduce this visualization. To this end, both are
saved to objects in the Python instance running Netwulf.
* It further provides functionality to
redraw the visualization in Python using matplotlib [@matplotlib] to save it as a vector graphic
or image in arbitrary resolution.
* more description
For many users, these tools, although occasionally inconvenient and cumbersome to use, offer the necessary functionality to visualize networks in most desired ways. However, since a growing population of network researchers and practitioners are becoming Python users [@developersurvey], it is increasingly pressing that a fast and intuitive tool for network visualization exists.

*Netwulf* is a light-weight Python library that provides an ultra simple API for interactively visualizing a network and returning the computed layout and style. It is build around the philosophy that network manipulation and preprocessing should be done programmatically, but that the efficient generation of a visually appealing network is best done interactively, without code. It allows users to:

1. create a network, `G`, in either dictionary or *networkx.Graph* format, then calling `netwulf.visualize(G)`, to
2. display it in a browser window as an interactive, manipulable, stylable network and
1. post the final style and computed node-positions back to Python in dictionary format, allowing further manipulation, or redrawing with matplotlib [@matplotlib], or
2. saving the image directly to the desktop as a PNG file.

The visualization component is implemented in JavaScript, relies on d3.js [@d3] for computing layouts, and uses canvas for rendering, which makes it the fastest tool for networks visualization in Python.


# Figures
Expand All @@ -68,3 +52,4 @@ I'm just collecting some thoughts here
Both authors contributed equally to the software, documentation, and manuscript. B. F. M. is financially supported as an *Add-On Fellow for Interdisciplinary Life Science* by the Joachim Herz Stiftung.

# References

0 comments on commit 9153836

Please sign in to comment.