The open-source protein interaction platform (openPIP), a platform that provides an easy way to create and host protein-protein interaction data. The PPI data is uploaded to openPIP in the PSI-MI TAB format and the platform creates a MySQL databases to store that data then enables the users to perform the following on the uploaded data: 


openPIP provides a search text area where one or more protein names, UniProt IDs or Ensembl IDs can be entered. Search terms are entered as a new-line separated list (e.g., copied from an Excel sheet). When the user begins typing a search term openPIP shows a list of terms containing the input allowing the user to autocomplete their search term. If any of the search terms are not present in the database the user is notified and given the option to remove them from the search. Both the autocomplete and term removal maintain the format of the entered data. The simple search executes a database search with the default parameters and without applying any filters or cutoffs on the results (Figure 2). 

openPIP provides the user with three search modes:

1) Query-Query: where the user enters a list of proteins and the search returns the interactions between them.

2) Query-Interactor: where the user enters a list of proteins and the search returns the direct interactions with them.

3) The interactors: where the iterators returned from the search results can be used as a query for the next search. 


Search Results

The search form on openPIP provides a set of filters and cutoffs to help perform more specific search queries (Figure 2). It provides an interactions filter that creates a query to search the interactions between the proteins provided in the search box only, and an interactions status filter that query the interactions with a specific type or status. The type/status refers to the source of the interaction, such as a publication, and it is obtained from the PSI-MI files. Results also can be filtered using the interaction scores, if provided in the PSI-MI file. In all cases, the search form allows the user to choose to return the search results of the query in a downloadable file format. This is particularly useful in big queries as networks display too slow.


Results Summary

The results summary section shows the search query, query parameters, and overviews the search results by showing statistics of the returned protein interaction network. The search query part also shows any search keywords that did not match any proteins/genes in the system (Figure 2). The query parameters summary section lists the filters used in the search, if any, and the values of these filters when applicable (e.g. the values of the minimum interaction score). The statistics summary section shows the number of proteins and number of interactions in the returned network. 


Network Visualization

The returned PPI network is visualized using Cytoscape.js [PMID: 26415722] (Figure 2). The nodes are color coded to distinguish the query proteins from the interactors. The edges are color coded as well according to the type of the interaction, and the edge weight reflects the confidence/prediction score of the interaction, if available. All the color codes are changeable and can be set by the admin (see below).

Clicking the nodes displays a popup that shows more information about the protein including description, UniProt and Ensembl IDs and a link to the protein sequence and an option to submit a new search using this protein (Figure 2). Clicking the edge displays a popup that shows the interaction details including the interactors and the interaction score(s), if available. Hovering any node highlights all its interactors and hides the rest of the nodes.


Interactions Table

The interactions table lists all the interactions in the returned network. For each interaction, the table displays the two interactors, the interaction confidence/prediction score and the dataset(s) where this interaction is identified, if available. Clicking on any row in the interactions table highlights the corresponding nodes and edges in the interactions network above. The data in the table can be sorted using the interactors’ names or the interaction scores. The interaction table gives options to sort by interactor gene names alphabetically and by scores. The interactions table also provides a search field to allow the user to search within the interaction table. By entering a gene name in the search field interactions containing that name will be shown in the table. This allows users to find specific interactions within large networks by searching the interaction table and clicking on the row to highlight the interaction in the network.


Results Download 

The interactions returned in the search results can be downloaded in PSI-MI tab (v2.7), SIF aand CSV formats. The set of interactors can also be downloaded in CSV format. The protein sequences for the set of interactors can be downloaded in FASTA format. An image of the Cytoscape network can be downloaded in PNG format (Figure 2). 


Filtering Search Results

The search results can be filtered using multiple filters. This includes the interaction confidence/prediction scores, the interaction types and the protein annotation information (tissue expression and cellular localization) (Figure 2). 

Change Network Layout

openPIP provides five different network layouts that can be used to change the visualization of the interaction network including cola, cose, concentric, circle and grid layouts. Cola is the default layout for small networks and cose is the default for large networks (Supplementary Figure 3).


Analyses with External Tools

The External Links tab allows the user to perform further analysis using the proteins in the returned search results. This tab connects openPIP with the APIs of several other tools including GeneMania [PMID: 23794635], PathwayCommons [PMID: 21071392], DAVID [Dennis 2003], g:Profiler, Reactome [PMID:26656494] String [PMID:27924014], cBioPortal [Cerami 2012], Complex Portal [Meldal 2019] and submitting a query to IntAct [Orchard 2014]. 


Platform Customization

­­­openPIP is entirely customizable. Through the admin tools, all the website appearance and contents can be changed. We mainly developed it that way to avoid the administration hassle in setting up the server and the effort and time of modifying the source code. However, the source code can be modified to meet specific needs. Through the admin tools, the website admin can perform the following:

Interface Customization

The Global Settings tab in the website settings page allows changing the entire appearance of the website. This includes changing the website title, adding a short title, choosing a color scheme for the whole website (main color, header color, logo color and buttons color). Furthermore, adding custom text for the website footer in a rich text box that supports HTML formatting. In the same form, we added a variable called URL where the website’s URL can be added. This is useful when adding links to uploaded files (see below). The links, in this case, can be relative to this variable instead of adding absolute URLs. Therefore, when moving from local server to the deployment server, changing this variable will update all the links (Supplementary Figure 4).

Search options Customization

The search forms should have examples for the search keywords [PMID: 27832061]. Therefore, we added an option to the admin tools where the admin can add/change up to three sets of keywords (Supplementary Figure 5-A, top panel). Furthermore, a random example can be generated on-demand from the search form. 


Customization of the Network Visualization

The color coding of the network is crucial for understanding the search results (e.g. distinguish the query proteins from their interactors). The admin of openPIP can customize the network color coding by choosing the colors for the query and interactor proteins as well as choose a color and add a description for each type of the interactions (the network edges). The types of interactions are dynamically obtained from the PSI-MI file during the data uploading process. Then, openPIP creates a list of unique types and lists them in the Network Color Schemes section in the admin tools. This section allows editing the name of each type, choosing a color for the edge of this type and adding a description that the user can read when clicking the help sign (?) next to each type in the advanced search form (Supplementary Figure 5-A, bottom panel).


Editable Page Contents

Adding and editing the content to the pages of the website is a major task. In openPIP, we enabled adding and editing the contents of the website pages through the admin tools. OpenPIP provides four preconfigured pages (About, FAQs, Contact and Downloads,) that can be edited through a rich text box that supports HTML code. The contents can be written directly in the editor or copied from any word-processing software such as Microsoft Word or Google Docs or even copied as HTML code. The editor retains the HTML formatting of the source (Supplementary Figure 5-B).

The download page is editable, similar to the other three pages, but it has one more feature. It comes with two preconfigured download options 1) Download All Datasets, which creates a PSI-MI file and a CSV file of all the data in the database and make them available for download and, 2) Dataset Downloads, which creates a PSI-MI file and a CSV file of each dataset in the database and make them available for download. Both options can be enabled/disabled by the admin (Supplementary Figure 5-C). 


Other Admin-tool Options

openPIP admin-tools provide the system admin with several other options:


Data Upload

The data upload function allows the admin to upload protein interaction data in PSI-MI TAB format. The PSI-MI file should agree with the standard PSI-MI TAB format v2.7. The data upload function automatically collects extra information about each protein in the PSI-MI file. This information includes the UniProt ID, the Ensembl ID, the protein description and the protein sequence [PMID: 28150232; PMID: 26687719]. The data is collected in the run time (during upload). However, this makes the data upload take a longer time (depends on the number of interactors in the PSI-MI file). We provide an estimator for the data upload time with a countdown timer. The data upload function also performs all other data manipulation processes such as delete and update.


Files Upload

openPIP provides a file upload function where the website admin can upload a single file, multiple files or a folder (all files in the folder). Each file upload starts an independent process that can be monitored through a progress bar. This is particularly useful with the massive file uploads to the server (e.g. individual FASTA files for all protein sequences). The openPIP admin can handle such tasks without the need of a special FTP software. For each uploaded file, openPIP creates copy, delete and copy file path links. 


Register New Admin

Another standard function of the website admin is to register new admin. openPIP allows the admin to add new admin and both will have the same privileges.


Add/Delete News and Announcements


The admin can also add news and announcements such as the release of a new version of the data or server maintenance time through a designated form in openPIP admin tools. The admin can choose to show/hide the announcements and decide which announcement to be shown on the home page.