Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
cytoscape
Advanced tools
Cytoscape is a graph theory library for visualizing and analyzing networks. It provides a comprehensive set of features for creating, manipulating, and rendering graphs, making it suitable for a wide range of applications from bioinformatics to social network analysis.
Graph Creation
This feature allows you to create a graph with nodes and edges. The code sample demonstrates how to initialize a Cytoscape instance, add elements (nodes and edges), and apply styles and layouts.
const cytoscape = require('cytoscape');
const cy = cytoscape({
container: document.getElementById('cy'),
elements: [
{ data: { id: 'a' } },
{ data: { id: 'b' } },
{ data: { id: 'ab', source: 'a', target: 'b' } }
],
style: [
{
selector: 'node',
style: {
'background-color': '#666',
'label': 'data(id)'
}
},
{
selector: 'edge',
style: {
'width': 3,
'line-color': '#ccc'
}
}
],
layout: {
name: 'grid',
rows: 1
}
});
Graph Manipulation
This feature allows you to dynamically add and remove elements from the graph. The code sample shows how to add a new node and edge, and how to remove an existing node.
cy.add({ group: 'nodes', data: { id: 'c' } });
cy.add({ group: 'edges', data: { id: 'bc', source: 'b', target: 'c' } });
cy.remove(cy.$('#a'));
Graph Layouts
This feature provides various layout algorithms to arrange the graph elements. The code sample demonstrates how to apply a circular layout to the graph.
cy.layout({ name: 'circle' }).run();
Graph Styling
This feature allows you to style the graph elements. The code sample shows how to change the background color of all nodes to blue.
cy.style().selector('node').style({ 'background-color': 'blue' }).update();
Event Handling
This feature enables event handling for graph elements. The code sample demonstrates how to log a message when a node is tapped.
cy.on('tap', 'node', function(evt){
var node = evt.target;
console.log('Tapped ' + node.id());
});
D3.js is a JavaScript library for producing dynamic, interactive data visualizations in web browsers. It uses HTML, SVG, and CSS. While D3 is more general-purpose and flexible, Cytoscape is specialized for graph theory and network visualization.
vis-network is a library to visualize dynamic, interactive networks. It is part of the vis.js suite. Compared to Cytoscape, vis-network is simpler and more lightweight but may lack some of the advanced features and customizability of Cytoscape.
Sigma is a JavaScript library dedicated to graph drawing. It is designed to display interactive static graphs. Sigma is more focused on performance and rendering large graphs, whereas Cytoscape offers a broader range of features for graph analysis and manipulation.
Graph theory (a.k.a. network) library for analysis and visualisation : http://js.cytoscape.org
You can find the documentation and downloads on the project website.
Please refer to CONTRIBUTING.md.
Install node
, npm
and gulp
. Of course, npm install
before using gulp
.
Run gulp <target>
in the console. The main targets are:
Building:
build
(default) : build the libraryclean
: clean the build
directorywatch
: automatically build lib and tests for debuggingzip
: build the release ZIPdist
: update the distribution JS for npm, bower, etc.Testing:
test
: run the Mocha unit testslint
: lint the JS sources via jshintbenchmark
: run benchmark regression testsbenchmark-single
: run benchmarks only for the suite specified in benchmark/single
sniper
: runs a BioJS sniper server that hosts demosDocumentation:
docs
: build the documentation templatedocsmin
: build the documentation template with all resources minifieddocspub
: build the documentation for publishing (ZIPs, JS refs, etc.)docspush
: push the built documentation to js.cytoscape.orgunstabledocspush
: push the built documentation to js.cytoscape.org/unstableVERSION
environment variable, e.g. export VERSION=1.2.3
gulp lint
gulp test
gulp docspub
gulp publish
Mocha tests are found in the test directory. The tests can be run in the browser or they can be run via Node.js (gulp test
or mocha
).
FAQs
Graph theory (a.k.a. network) library for analysis and visualisation
The npm package cytoscape receives a total of 865,134 weekly downloads. As such, cytoscape popularity was classified as popular.
We found that cytoscape demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.