nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
114 stars 38 forks source link

Multithread Centiscape #55

Closed giovanniscardoni closed 8 years ago

giovanniscardoni commented 8 years ago

Background

CentiScaPe is a Cytoscape app that allows, by using a very plain interface, to compute different network centrality parameters in single and in multiple networks at the same time. It allows to plot the results by using real and normalized values in different plots. Several centralities are available: Degree, Average Shortest Path, Eccentricity, Closeness, Betweenness, Centroid, Stress, Radiality, Eigenvector, Edge Betweenness, Bridging Centrality. Each one could be computed for directed and undirected networks; CentiScaPe gives the possibility to assign a weight to the edges and permits to assign a weight to each node by using an attribute.

Goal

Currently CentiScaPe doesn’t support the multithread computation. The most of the centralities algorithms are suitable to be parallelized. This will consistently improve the performance of the App. This project requires a very good skill in Java and multithread programming. You should be able to go deeply in the core of the CentiScaPe code, write a multithread version of the Dijkstra algorithm which is the base of the most centralities computation.

Difficulty level 3:

Prior experience with Cytoscape, CentiScaPe or multithreading in Java is required.

Technology and Skills

Cytoscape, CentiScaPe, Java

Potential Mentors

Giovanni Scardoni (CBMC, University of Verona), Faizaan Shaik

Contact

cytoscape-discuss@googlegroups.com, giovanni.scardoni@gmail.com

shivarasan commented 8 years ago

Dear sir/madam I would like to do this project give some instructions to me

giovanniscardoni commented 8 years ago

Hi! Welcome to GSoC! the Centiscape algorithm finds all the paths from node A to all the nodes. Then all the paths from node B to all the nodes. Then from C to all the nodes, and so on....

We can launch one thread for each node (up to the number of processors) and parallelize the single nodes sp computation.

Once we have all the SP between all the pairs of nodes we calculate the centralities. Then one thread for each centrality will be good.

Please let me know which information you need!

I suggest you to apply for at least two projects, since usually we have more good application for the same project!

good luck!

2016-03-10 3:47 GMT+01:00 shivarasan notifications@github.com:

Dear sir/madam I would like to do this project give some instructions to me

— Reply to this email directly or view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/55#issuecomment-194634074 .

Giovanni Scardoni The Center for BioMedical Computing (CBMC) www.cbmc.it/~scardonig/ University of Verona Strada le Grazie, 15 -37134 Verona -Italy

Try these Cytoscape apps! CentiScaPe: http://www.cbmc.it/~scardonig/centiscape/centiscape.php Interference: http://www.cbmc.it/~scardonig/interference/Interference.php

khanspers commented 8 years ago

Chosen as GSoC 2016 project.