PPI networks provide insights into the complex relationships between proteins and their roles in health and disease. This project holds every proteins' informations and stores the interactions using the given threshold. (Every interaction has a confidence score which means the connection's strength, and threshold stands for the minimum confidence scored link to store)
They are crucial in biological research and have various applications across different fields. PPI networks are utilized for understanding biological processes, investigating disease mechanisms, facilitating drug discovery and development, elucidating system biology and network biology, and predicting gene function.
• First loads the interactions • Searchs for protein by its ID • Checks if two proteins have an interaction • Finds the most confident path between two proteins • Calculates the basic graph metrics (interactions are stored in a graph) • Gives the Breadth-First and Depth-First Traversal by specifying the origin protein
Language: Java Data Structures: ArrayList Graph Implementation: Custom Directed Graph Algorithms: BFS, DFS, Dijkstra's Algorithm Java I/O: Java File API Version Control: Git
• Protein interaction data is read from input files using Java File I/O • Proteins are represented as nodes in a manually implemented undirected graph • Interactions are added as edges only if their confidence score exceeds the given threshold • Graph data is stored using ArrayList-based adjacency structures • BFS and DFS are used to traverse the network starting from a specified protein • Dijkstra’s Algorithm is applied to find the most confident interaction path between two proteins
• Designing and implementing an undirected graph from scratch • Writing needed operations on graph • Applying graph traversal algorithms (BFS & DFS) in real-world data • Implementing Dijkstra’s Algorithm for path optimization • Understanding confidence-based edge weighting