pperuzzo@pperuzzo:~$ cat ppin

3d ppin - a 3d interactive protein-protein interaction network visualizer

project status: discountinued

project team: solo

tags: unity, c#, vr, oculus, sqlite, graph theory

tldr

overview

when scientists need to analyze a vast number of protein-protein interactions, it can be useful to visualize the problem as a graph. related protein connections can be found by analyzing different paths that connect them.
by leveraging vr, i created a way for scientists to analyze how proteins interact with each other.
users can visualize protein interactions as a network with vertices representing the proteins, and edges representing the connections.

users can easily edit and customize the network using simple and intuitive interactions, visualizing the relationships between proteins and finding paths between them.

i fully developed the software from scratch using unity and c#, and created the 3d graphic side of the software using blender3d. this allowed me to design a useful and visually appealing virtual experiment.

i started by using available open-source protein-protein interactions databases.
then, to store and manage the vast amount of protein data, i created a sqlite database containing more than 20 million protein records.
this allowed for efficient querying and manipulation directly from the unity software, which was a crucial part of the software's functionality and performance.

using graph theory principles, i dynamically applied different path-finding algorithms to the networks, such as the shortest path and breadth-first search algorithm (bfs).
this approach allowed for simple and efficient analysis and visualization of protein interactions.

i also implemented the fruchterman and reingold force-directed drawing algorithm for each graph.
this allowed all the proteins in the graph to assume positions in relation to how much they depend on each other. this gives scientists better insight into the relationships between proteins.

technologies used

media

software demo

code

the source code for this project is available publicly on github:

back