From d8ae3a5ee88c2428832fc1fe1a84764f12a44ad7 Mon Sep 17 00:00:00 2001 From: Alireza Heidari Date: Fri, 8 Nov 2024 11:08:21 +0100 Subject: [PATCH 1/6] Remove static Cytoscape visualization plugin build and related files --- client/gulpfile.js | 1 - .../cytoscape/config/cytoscape.xml | 192 ------------ .../visualizations/cytoscape/package.json | 22 -- .../visualizations/cytoscape/src/script.js | 279 ------------------ .../visualizations/cytoscape/static/logo.png | Bin 15600 -> 0 bytes 5 files changed, 494 deletions(-) delete mode 100644 config/plugins/visualizations/cytoscape/config/cytoscape.xml delete mode 100644 config/plugins/visualizations/cytoscape/package.json delete mode 100644 config/plugins/visualizations/cytoscape/src/script.js delete mode 100644 config/plugins/visualizations/cytoscape/static/logo.png diff --git a/client/gulpfile.js b/client/gulpfile.js index 1a495a411cdf..0f2b76eacbad 100644 --- a/client/gulpfile.js +++ b/client/gulpfile.js @@ -15,7 +15,6 @@ const xml2js = require("xml2js"); const STATIC_PLUGIN_BUILD_IDS = [ "annotate_image", "chiraviz", - "cytoscape", "drawrna", "editor", "example", diff --git a/config/plugins/visualizations/cytoscape/config/cytoscape.xml b/config/plugins/visualizations/cytoscape/config/cytoscape.xml deleted file mode 100644 index b73ec2e8728b..000000000000 --- a/config/plugins/visualizations/cytoscape/config/cytoscape.xml +++ /dev/null @@ -1,192 +0,0 @@ - - - - A viewer based on graph theory/ network library for analysis and visualisation hosted at http://js.cytoscape.org. - - - HistoryDatasetAssociation - json - sif - dataset_id - - - - dataset_id - - - - - - curve_style - Select a curving method used to separate two or more edges between two nodes. - select - radio - haystack - - - - haystack - - - - bezier - - - - unbundled-bezier - - - - segments - - - - - - layout_name - Select a kind of position of nodes in graph. - select - radio - preset - - - - breadthfirst - - - - circle - - - - concentric - - - - cose - - - - grid - - - - null - - - - preset - - - - random - - - - - - directed - Select a kind of edge. - select - radio - - - - triangle - - - - - - - - - - search_algorithm - Select a search algorithm. For Breadth First Search and Depth First Search, please click on any node of the graph. For A*, please click on two nodes, one for the root and another for the destination. - select - radio - - - - bfs - - - - dfs - - - - dfs - - - - kruskal - - - - astar - - - - - - - - - - graph_traversal - To select a graph traversal type, please click on any node of the graph. - select - radio - - - - successors - - - - predecessors - - - - outgoers - - - - incomers - - - - roots - - - - leaves - - - - - - - - - - color_picker_nodes - color - #548DB8 - - - - color_picker_edges - color - #A5A5A5 - - - - color_picker_highlighted - color - #C00000 - - - diff --git a/config/plugins/visualizations/cytoscape/package.json b/config/plugins/visualizations/cytoscape/package.json deleted file mode 100644 index 09a404bb7918..000000000000 --- a/config/plugins/visualizations/cytoscape/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "visualization", - "version": "0.1.0", - "keywords": [ - "galaxy", - "visualization" - ], - "license": "AFL-3.0", - "dependencies": { - "babel-preset-env": "^1.6.1", - "backbone": "^1.3.3", - "bootstrap": "^3.3.7", - "cytoscape": "^3.2.8", - "jquery": "^3.1.1" - }, - "scripts": { - "build": "parcel build src/script.js --dist-dir static" - }, - "devDependencies": { - "parcel": "^2.12.0" - } -} diff --git a/config/plugins/visualizations/cytoscape/src/script.js b/config/plugins/visualizations/cytoscape/src/script.js deleted file mode 100644 index a2d0fdd2d010..000000000000 --- a/config/plugins/visualizations/cytoscape/src/script.js +++ /dev/null @@ -1,279 +0,0 @@ -import Cytoscape from 'cytoscape'; - -/* This will be part of the charts/viz standard lib in 23.1 */ -const slashCleanup = /(\/)+/g; -function prefixedDownloadUrl(root, path) { - return `${root}/${path}`.replace(slashCleanup, "/"); -} - -// Public method. Return graph data as JSON -var parse_sif = function( text ) { - // Private variables and methods - var nodes = {}, links = {}, content = []; - - // Add a node - var _getNode = function( id ) { - if(!nodes[id]) { - nodes[id] = {id: id}; - } - return nodes[id]; - }; - - // Parse each line of the SIF file - var _parse = function( line, i ) { - var source, interaction, j, length; - line = ( line.split('\t').length > 1 ) ? line.split('\t') : line.split(' '); - source = _getNode( line[0] ); - interaction = ( line[1] ? line[1] : "" ); - if( line.length && line.length > 0 && line[0] !== "" ) { - if( interaction !== "" ) { - // Get all the target nodes for a source - for ( j = 2, length = line.length; j < length; j++ ) { - if( line[j] !== "" ) { - // Create an object for each target for the source - var target = _getNode( line[j] ), - relation_object = {target: target.id, - source: source.id, - id: source.id + target.id, - relation: interaction.replace(/[''""]+/g, '') }; // Replace quotes in relation - if( source < target ) { - links[ source.id + target.id + interaction ] = relation_object; - } else { - links[ target.id + source.id + interaction ] = relation_object; - } - } - } - } - // Handle the case of single node i.e. no relation with any other node - // and only the source exists - else { - links[ source.id ] = { target: "", source: source.id, id: source.id, relation: "" }; - } - } - }; - - // Convert to array from objects - var _toArr = function( obj ) { - var arr = []; - for (var key in obj) { - arr.push( obj[key] ); - } - return arr; - }; - - // Make content from list of nodes and links - var _toDataArr = function( nodes, links ) { - var content = [], node_length, links_length; - // Make a list of all nodes - for(var i = 0, node_length = nodes.length; i < node_length; i++) { - content.push( { 'data': nodes[i] } ); - } - // Make a list of all relationships among nodes - for(var i = 0, links_length = links.length; i < links_length; i++) { - content.push( { 'data': links[i] } ); - } - return content; - }; - - var lines = text.split('\n'), i, length, nodesarr, linksarr; - for ( i = 0, length = lines.length; i < length; i++ ) { - if( lines[i] !== "" ) { - _parse( lines[i], i ); - } - } - nodesarr = _toArr( nodes ); - linksarr = _toArr( links ); - return { content: _toDataArr( nodesarr, linksarr ) }; -}; - -function run_search_algorithm( cytoscape, root_id, type, self ) { - var algorithm = "", i = 0; - var selectNextElement = function() { - if( i < algorithm.path.length ) { - // Add css class for the selected edge(s) - algorithm.path[i].addClass( 'searchpath' ); - i++; - // Animate the edges and nodes coloring - // of the path with a delay of 500ms - setTimeout( selectNextElement, 500 ); - } - }; - switch( type ) { - // Breadth First Search - case "bfs": - algorithm = cytoscape.elements().bfs( '#' + root_id, function() { }, true ); - selectNextElement(); - break; - // Depth First Search - case "dfs": - algorithm = cytoscape.elements().dfs( '#' + root_id, function() { }, true ); - selectNextElement(); - break; - // A* search - case "astar": - // Choose root and destination for performing A* - if( !self.astar_root ) { - self.astar_root = root_id; - } - else { - self.astar_destination = root_id; - } - if( self.astar_root && self.astar_destination ) { - algorithm = cytoscape.elements().aStar({ root: "#" + self.astar_root, goal: "#" + self.astar_destination },function() {}, true); - selectNextElement(); - } - default: - return; - } -}; - -function run_traversal_type( cytoscape, root_id, type ) { - var node_collection; - switch( type ) { - // Recursively get edges (and their sources) coming into the nodes in a collection - case "predecessors": - node_collection = cytoscape.$( '#' + root_id ).predecessors(); - break; - // Recursively get edges (and their targets) coming out of the nodes in a collection - case "successors": - node_collection = cytoscape.$( '#' + root_id ).successors(); - break; - // Get edges (and their targets) coming out of the nodes in a collection. - case "outgoers": - node_collection = cytoscape.$( '#' + root_id ).outgoers(); - break; - // Get edges (and their sources) coming into the nodes in a collection. - case "incomers": - node_collection = cytoscape.$( '#' + root_id ).incomers(); - break; - // From the set of calling nodes, get the nodes which are roots - case "roots": - node_collection = cytoscape.$( '#' + root_id ).roots(); - break; - // From the set of calling nodes, get the nodes which are leaves - case "leaves": - node_collection = cytoscape.$( '#' + root_id ).leaves(); - break; - default: - return; - } - // Add CSS class for selected nodes and edges - node_collection.edges().addClass( 'searchpath' ); - node_collection.nodes().addClass( 'searchpath' ); -}; - -window.bundleEntries = window.bundleEntries || {}; -window.bundleEntries.load = function (options) { - var self = this, - chart = options.chart, - dataset = options.dataset, - settings = options.chart.settings, - data_content = null, - cytoscape = null, - sif_file_ext = "sif", - highlighted_color = settings.get( 'color_picker_highlighted' ); - $.ajax({ - url : prefixedDownloadUrl(options.root, dataset.download_url), - success : function( content ) { - // Select data for the graph - if( dataset.file_ext === sif_file_ext ) { - data_content = parse_sif( content ).content; - } - else { - data_content = content.elements ? content.elements : content; - } - try { - cytoscape = Cytoscape({ - container: document.getElementById( options.target ), - layout: { - name: settings.get( 'layout_name' ), - idealEdgeLength: 100, - nodeOverlap: 20 - }, - minZoom: 0.1, - maxZoom: 20, - style: [{ - selector: 'node', - style: { - 'background-color': settings.get( 'color_picker_nodes' ), - 'opacity': 1, - 'content': 'data(id)', - 'text-valign': 'center', - } - }, - { - selector: 'core', - style: { - 'selection-box-color':'#AAD8FF', - 'selection-box-border-color':'#8BB0D0', - 'selection-box-opacity':'0.5' - } - }, - { - selector: 'edge', - style: { - 'curve-style': settings.get( 'curve_style' ), - 'haystack-radius': 0, - 'width': 3, - 'opacity': 1, - 'line-color': settings.get( 'color_picker_edges' ), - 'target-arrow-shape': settings.get( 'directed' ), - "overlay-padding":"3px" - } - }, - { - selector:'node:selected', - style: { - "border-width": "6px", - "border-color": "#AAD8FF", - "border-opacity": "0.5", - "background-color": "#77828C", - "text-outline-color": "#77828C" - } - }, - { - selector: '.searchpath', - style: { - 'background-color': highlighted_color, - 'line-color': highlighted_color, - 'target-arrow-color': highlighted_color, - 'transition-property': 'background-color, line-color, target-arrow-color', - 'transition-duration': '0.5s' - } - }], - elements: data_content // Set the JSON data for viewing - }); - // Highlight the minimum spanning tree found using Kruskal algorithm - if( settings.get( 'search_algorithm' ) === "kruskal" ) { - var kruskal = cytoscape.elements().kruskal(); - kruskal.edges().addClass( 'searchpath' ); - } - // Register tap (clicking a node) event on graph nodes - // On tapping any node, BFS or DFS start from that node - cytoscape.$( 'node' ).on('tap', function( e ) { - var ele = e.cyTarget, - search_algorithm = settings.get( 'search_algorithm' ), - traversal_type = settings.get( 'graph_traversal' ); - // If search algorithm and traversal both are chosen, - // search algorithm will take preference - if( settings.get( 'search_algorithm' ) !== "" ) { - run_search_algorithm( cytoscape, ele.id(), search_algorithm, self ); - } - else if( settings.get( 'graph_traversal' ) !== "" ) { - run_traversal_type( cytoscape, ele.id(), traversal_type ); - } - }); - chart.state( 'ok', 'Chart drawn.' ); - // Re-renders the graph view when window is resized - $( window ).resize( function() { cytoscape.layout(); } ); - } catch( err ) { - chart.state( 'failed', err ); - } - options.process.resolve(); - }, - error: function() { - chart.state( 'failed', 'Failed to access dataset.' ); - options.process.resolve(); - } - }); -}; diff --git a/config/plugins/visualizations/cytoscape/static/logo.png b/config/plugins/visualizations/cytoscape/static/logo.png deleted file mode 100644 index ce891f674bb8dafb23cc9a12596ea127670cf2ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15600 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 Date: Mon, 11 Nov 2024 09:56:23 +0100 Subject: [PATCH 2/6] Add Cytoscape visualization npm package @itisAliRH/galaxy-cytoscape --- client/gulpfile.js | 2 +- .../cytoscape/config/cytoscape.xml | 191 ++++++++++++++++++ .../visualizations/cytoscape/static/logo.png | Bin 0 -> 4176 bytes 3 files changed, 192 insertions(+), 1 deletion(-) create mode 100644 config/plugins/visualizations/cytoscape/config/cytoscape.xml create mode 100644 config/plugins/visualizations/cytoscape/static/logo.png diff --git a/client/gulpfile.js b/client/gulpfile.js index 0f2b76eacbad..a05d8f08a51d 100644 --- a/client/gulpfile.js +++ b/client/gulpfile.js @@ -36,7 +36,7 @@ const STATIC_PLUGIN_BUILD_IDS = [ "ts_visjs", "venn", ]; -const INSTALL_PLUGIN_BUILD_IDS = ["ngl", "msa", "openlayers"]; // todo: derive from XML +const INSTALL_PLUGIN_BUILD_IDS = ["cytoscape", "ngl", "msa", "openlayers"]; // todo: derive from XML const DIST_PLUGIN_BUILD_IDS = ["new_user"]; const PLUGIN_BUILD_IDS = Array.prototype.concat(DIST_PLUGIN_BUILD_IDS, STATIC_PLUGIN_BUILD_IDS); diff --git a/config/plugins/visualizations/cytoscape/config/cytoscape.xml b/config/plugins/visualizations/cytoscape/config/cytoscape.xml new file mode 100644 index 000000000000..fcf14adc2e13 --- /dev/null +++ b/config/plugins/visualizations/cytoscape/config/cytoscape.xml @@ -0,0 +1,191 @@ + + + + A viewer based on graph theory/ network library for analysis and visualisation hosted at http://js.cytoscape.org. + + + HistoryDatasetAssociation + json + sif + dataset_id + + + + dataset_id + + + + + + + + + curve_style + Select a curving method used to separate two or more edges between two nodes. + select + radio + haystack + + + + haystack + + + + bezier + + + + unbundled-bezier + + + + segments + + + + + + layout_name + Select a kind of position of nodes in graph. + select + radio + preset + + + + breadthfirst + + + + circle + + + + concentric + + + + cose + + + + grid + + + + null + + + + preset + + + + random + + + + + + directed + Select a kind of edge. + select + radio + + + + triangle + + + + + + + + + + search_algorithm + Select a search algorithm. For Breadth First Search and Depth First Search, please click on any node of the graph. For A*, please click on two nodes, one for the root and another for the destination. + select + radio + + + + bfs + + + + dfs + + + + kruskal + + + + astar + + + + + + + + + + graph_traversal + To select a graph traversal type, please click on any node of the graph. + select + radio + + + + successors + + + + predecessors + + + + outgoers + + + + incomers + + + + roots + + + + leaves + + + + + + + + + + color_picker_nodes + color + #548DB8 + + + + color_picker_edges + color + #A5A5A5 + + + + color_picker_highlighted + color + #C00000 + + + diff --git a/config/plugins/visualizations/cytoscape/static/logo.png b/config/plugins/visualizations/cytoscape/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4c49f1d32aa8a144c666f31f5c63d3df9586ea86 GIT binary patch literal 4176 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 Date: Wed, 13 Nov 2024 10:48:40 +0100 Subject: [PATCH 3/6] Update Cytoscape npm requirement to specific version Refined the npm package version for Cytoscape to 3.30.3-2 --- config/plugins/visualizations/cytoscape/config/cytoscape.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/plugins/visualizations/cytoscape/config/cytoscape.xml b/config/plugins/visualizations/cytoscape/config/cytoscape.xml index fcf14adc2e13..06a678b7789b 100644 --- a/config/plugins/visualizations/cytoscape/config/cytoscape.xml +++ b/config/plugins/visualizations/cytoscape/config/cytoscape.xml @@ -14,7 +14,7 @@ dataset_id - + From 46b00c3635c80b9d3cfbed9488944f0677698a56 Mon Sep 17 00:00:00 2001 From: Alireza Heidari Date: Wed, 13 Nov 2024 11:02:26 +0100 Subject: [PATCH 4/6] Refactor Cytoscape config for clarity and simplicity Removed unnecessary options and streamlined the edge type selection to a boolean format. --- .../cytoscape/config/cytoscape.xml | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/config/plugins/visualizations/cytoscape/config/cytoscape.xml b/config/plugins/visualizations/cytoscape/config/cytoscape.xml index 06a678b7789b..d7ace1794f85 100644 --- a/config/plugins/visualizations/cytoscape/config/cytoscape.xml +++ b/config/plugins/visualizations/cytoscape/config/cytoscape.xml @@ -72,10 +72,6 @@ grid - - - null - preset @@ -90,18 +86,7 @@ directed Select a kind of edge. - select - radio - - - - triangle - - - - - - + boolean From 230876638ec6c169de8b9ddc96c0765bfab399d1 Mon Sep 17 00:00:00 2001 From: Alireza Heidari Date: Wed, 13 Nov 2024 11:55:00 +0100 Subject: [PATCH 5/6] Update npm package version for cytoscape plugin to 3.30.3-3 --- config/plugins/visualizations/cytoscape/config/cytoscape.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/plugins/visualizations/cytoscape/config/cytoscape.xml b/config/plugins/visualizations/cytoscape/config/cytoscape.xml index d7ace1794f85..f6361f95c334 100644 --- a/config/plugins/visualizations/cytoscape/config/cytoscape.xml +++ b/config/plugins/visualizations/cytoscape/config/cytoscape.xml @@ -14,7 +14,7 @@ dataset_id - + From 968fb4f9187756b798fa224297b1704013292d12 Mon Sep 17 00:00:00 2001 From: guerler Date: Wed, 13 Nov 2024 16:16:15 +0300 Subject: [PATCH 6/6] Use npm package from galaxyproject --- config/plugins/visualizations/cytoscape/config/cytoscape.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/plugins/visualizations/cytoscape/config/cytoscape.xml b/config/plugins/visualizations/cytoscape/config/cytoscape.xml index f6361f95c334..9cd91fdeb459 100644 --- a/config/plugins/visualizations/cytoscape/config/cytoscape.xml +++ b/config/plugins/visualizations/cytoscape/config/cytoscape.xml @@ -14,7 +14,7 @@ dataset_id - +