GithubHelp home page GithubHelp logo

brettvanderwerff / ppi-analysis Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 229 KB

This program is intended to analyze protein interaction networks via analysis of data obtained from the PSICQUIC web app

Python 100.00%

ppi-analysis's Introduction

Protein-Protein-Interaction-Analyzer

This program is intended to analyze protein protein interaction networks via analysis of data obtained from the PSICQUIC web app (http://www.ebi.ac.uk/Tools/webservices/psicquic/view/). This is a Python implementation of the technique described in the 2017 paper "Weighted Protein Interaction Network Analysis of Frontotemporal Dementia" by Ferrari et al. I have no affiliation with any of the authors. I built this program as a mechanism to learn Pandas and Python, as such this program and its outputs come with absolutely no warranty or guarantee.

Requirements: 

numpy==1.13.3

pandas==0.22.0

Download and place these files in the 'ID_conversion_files' folder in the main directory:

Download and place this file in the 'CRAPome files' folder in the main directory:

A psit-mitlab file of your favorite protein gotten from searching for your favorite protein on http://www.ebi.ac.uk/Tools/webservices/psicquic/view/ and selecting Biogrid, Innate DB, MINT, and IntAct databases. Place this file in the main directory. This program was tailored to work with results from these databases specifically, but likely will work with any database that uses UniProtKB IDs/Biodgrid IDs to annotate protein interactions. The repo contains an example of this file labeled as 'clusteredQuery__MST1R.txt'

Note: Names of files placed in the 'ID_conversion_files' and 'CRAPome files' folders must match those given above. Files downloaded from the above resources will need to be unzipped if they are downloaded in a zipped format.

Note: This program is only compatible with Python 3 and has only been tested on windows 10

How to run this program:
  1. Clone repo
  2. Install all requirements. This includes both library dependencies and retrieving all the non-library files from the links indicated in the requirements above and placing them in the correct folders.
  3. Execute the run function from app.py, using your psi-mitlab file name as an argument for filename and your query protein name as an argument for query_gene_name. (see app.py if name == 'main' conditional for an example.
  4. Allow the program to run, it will take several minutes depending on the size of your psi-mitlab file. The first time the program is run it will install a gene ID conversion table to the directory. Generation of this table is a memory intensive process and will take several minutes to run, but it is a one time process that only is performed the first time the program is run.
  5. View your results, which are returned as a dataframe of stringently filtered protein protein interactions from the psi-mitlab file. The docstrings in each script are detailed and reading through them will provide a better idea of what each function/script is doing and how to fix some errors that may pop up. I highly recommend reading the Ferrari et al. paper to fully understand what is happening. Note that the program is a work in progress/programming exercise and as such the output may not be correct and should not be trusted without verifying accuracy.
What each script does:

biogrid_uniprot_conv - Installs a conversion table to convert Biogrid IDs to UniprotKB IDs

id_parser - Uses RegEx to extract Biogrid IDs or UniprotKB IDs from each row of a psi-mitlab file

id_converter - Converts all Biogrid IDs to a corresponding UniprotKB ID

uniprot_gene_name_conv - Converts UniprotKB IDs to a common gene name

clean_file - Drops duplicates, non-human proteins, non-proteins, etc. from the psi-mitlab file

calc_weighted_score - Calculates the weighted protein protein interaction score

app - runs the program by calling all above scripts in order

ppi-analysis's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

maggishaggy

ppi-analysis's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.