GithubHelp home page GithubHelp logo

biomedbigdata / digger Goto Github PK

View Code? Open in Web Editor NEW

This project forked from louadi/digger

0.0 0.0 2.0 46.6 MB

Fork for developing Digger 2.0

Home Page: https://www.exbio.wzw.tum.de/digger-dev/

License: GNU General Public License v3.0

Shell 0.35% JavaScript 4.03% Python 55.58% CSS 1.18% HTML 38.66% Dockerfile 0.19%

digger's Introduction

DIGGER

Protein-protein interaction (PPI) networks are a key resource for systems biology. However, they do not consider the influence of alternative splicing, even though experimental evidence suggests that interaction partners are different for isoforms of the same protein. Domain Interaction Graph Guided ExploreR (DIGGER) integrates protein-protein interactions and domain-domain interactions into a joint graph and maps interacting residues to exons. DIGGER allows the users to query exons or isoforms individually or as a set to visually explore their interactions and it is available at: https://exbio.wzw.tum.de/digger

Deploying DIGGER

To install DIGGER 1.5 (running it for the first time) follow these steps:

# First, follow this link, if you want to install docker-compose: 
# https://docs.docker.com/compose/install/

#  Clone this repository and change into the created directory
git clone https://github.com/daisybio/DIGGER.git && cd DIGGER

# Download a copy of all the data files into domain/data/
# If you have more organisms, add the files into respective foldes, e.g. domain/data/Mus musculus[mouse]/
wget https://zenodo.org/records/12517244/files/data.zip

# unzip this data to the appropriate directory
unzip data.zip -d container/domain/

# repeat this with the nease data:
wget https://zenodo.org/records/12517244/files/nease_data.zip
unzip nease_data.zip -d container/domain/nease/


# Create a copy of the .env.sample file and edit the .env file
cp .env.sample .env   # now edit the .env file 

# Deploy and build the containers
docker-compose up -d --build

# Apply migrations (make sure the containers are up an running, else you will get an error)
docker-compose exec web python manage.py migrate --noinput 

# Import all the datasets into the database
docker-compose exec web python manage.py import_datasets

# Collect all the static files
docker-compose exec web python manage.py collectstatic --no-input

# Enjoy your instance of DIGGER

Extending DIGGER by DDIs

To extend DIGGER using generated Domain-Domain Interactions (DDIs) follow these steps:

# First, create a conda environment to ensure you have all dependencies installed
conda env create -f DIGGER_env.yml

# Activate the environment
conda activate DIGGER

# Make sure you have the necessary files in the sourcedata folder
# more info about what these files should look like can be found in the sourcedata README.md

# copy the example database_sources to have a backup and list of all options. 
# Edit the database_sources.yml file to your needs
cp preprocess/sourcedata/example.database_sources.yml preprocess/sourcedata/database_sources.yml

# Run the prediction script
cd preprocess
python main_ddi_extend.py

# Once this has run, depending on your settings, restarting the DIGGER container will show the new data
cd ..
docker-compose up -d --force-recreate

Cite

If you use DIGGER, please cite:

Zakaria Louadi, Kevin Yuan, Alexander Gress, Olga Tsoy, Olga Kalinina, Jan Baumbach, Tim Kacprowski*, Markus List*. DIGGER: exploring the functional role of alternative splicing in protein interactions, Nucleic Acids Research, https://doi.org/10.1093/nar/gkaa768 (*joint last author)

Contact us

Elias Albrecht: [email protected]

digger's People

Contributors

chumlerng avatar dependabot[bot] avatar eeeeelias avatar kevihiiin avatar louadi avatar olgavt avatar pelzko avatar

Forkers

eeeeelias olgavt

digger's Issues

Set the min delta default value to 0.3 when the input format is Whippet

The min delta default is 0.05 at the moment as it was the default for the NEASE package. However, I believe that when using Whippet events, a better delta psi cut-off is 0.3.

Alternatively, we could just flash a short tooltip, notifying the user that they should probably set min delta to something higher than 0.05 as this low of a value might generate lots of false positives and slow down run time.

The relevant file here is: container/domain/templates/setup/nease_setup.html

Update NEASE preview image on hompage

The preview image of NEASE currently is very low quality. It looks out of place and doesn't fit in well with the rest. It was taken from the visual abstract of the original NEASE paper.

It would be cool if we could have a better image on there so that users better know what awaits them and don't have to look at a pixelated mess.

URL with UUID

In order to improve shareability to the analyses we can add the UUIDs to the url so that anyone with the UUID can see the results.

In addition, we should add a dropdown that enables the user to potentially save the file in the backend for up to 6 months.

Adjust tables to web usage

Since the user is on a web page, it would make sense to have links connecting the IDs to their respective databases (e.g. genes to entrez entry). This way, users can better interact with the website.
For this change, we should also remove then-redundant information from each table to keep them slim.
However, we should keep all the current information as is in the .csv files we allow the user to download - therefore, we need to sets of tables. (1) for the web view and (2) for the csv files.

This concerns the functions:

  • run_nease(...) in container/domain/Process/nease_output.py
  • nease_enrichment(...) in container/domain/Process/nease_output.py

Use icons for the different pages

These days, having icons for some kind of visual guidance is always a great idea.
They

  1. Improve Navigation: Icons can make menus and buttons more intuitive, helping users find what they need faster.
  2. Enhance Visual Appeal: Icons add a modern touch, making the site more engaging (something bioinfo related sites definitely need).
  3. Improve Universal Understanding: Icons often help with language barriers, making the site more accessible.

Let's discuss this. I'll be trying to find appropriate icons and suggest them in a follow-up comment.

Include example data for the NEASE analysis

In order to submit to NAR, they have the following requirement.

include a simple mechanism to try out sample data provided by the authors, for example, a button for automatic loading of the data. Sample data must be accessible to users so that they can confirm data formatting requirements.

I think we need to add this for NEASE still.

Missing residue-level interaction in GNAQ

When running the NEASE analysis with an example file (RP_MP.deltapsi.tsv), we find that there is an affected interaction with residue-level evidence, namely GNAQ which has co-resolved interactions with: ARHGEF25 and PLCB3. However, when going to the DIGGER visualization for GNAQ and checking the InteractionView - PLCB3 is not an interaction partner. Both PLCB1 and PLCB2 show up, however PLCB3 is missing when it should have a designated residue-evidence-star.

Transcript site:
GNAQ Digger

Provide a one-click option to analyse and visualise pathways

After doing the NEASE edge enrichment, we get a list of pathways and some information about them. When a user then wants to analyse or visualise a pathway, they have to

  1. Copy the pathway ID
  2. Go to the Pathway Analysis/Visualise Pathways tab
  3. Paste their pathway ID
  4. Press the execute button

This is not very user-friendly and ideally, we should provide a one-click solution with which the user can just press one button to have everything done for them.

One idea for the implementation would be to add JS where the user can e.g. on hover select to add the Pathway ID to analysis/visualisation and then it automatically adds that pathway ID to the analysis/visualisation and starts it.

This concerns the html file container/domain/templates/visualization/nease_result.html. We should probably create an extra .js file for this functionality

Lower the visibility for the pathway graph

When trying to visualise a very high-level pathway (e.g. GPCR Downstream signalling), there are hundreds of genes visualised and even more edges, which makes finding anything in the graph nigh impossible.
Therefore, we should either reduce visibility for non-connected nodes & edges outright or provide some kind of switch/slider with which we can do that.
This graph is generated using plotly so we should look into their documentation for options concerning this.

This concerns the function Vis_path(...) in container/domain/nease/nease.py

Increase image size

For the output images in the NEASE analysis, we should increase the output resolution such that users can easily download and use these images for their own reports/papers.
While this does add some network traffic, I do not think this is particularly problematic in our situation.

This concerns the functions:

  • stats_domains(...) in container/domain/nease/functions.py and
  • create_plot(...) in container/domain/Process/nease_output.py

Revise the "Nease Result" site for wide monitors

We could try moving the new option to the right side of the jumbotron instead of at the bottom. We have lots of empty space on very wide monitors there that will realistically not be used otherwise. Here's a quick sketch:

image

Change the 3D pie chart

Pie charts are already very controversial as they are often not very clear See here. Adding this 3D look makes it even worse and arguably does not look very good.
Therefore, we should change it to something nicer and more readable.

This concerns the function stats_domains(...) in container/domain/nease/functions.py.

Add more specific error message when wrong data format

When users thested the website, they did not pay much attention to the required options and could not figure out why their input file didn't work. The issue was, that they had selected the wrong input format.
To combat this, we should generate more specific error messages, advising the user to try a different input format (maybe based on the filename?) If their original settings could not be used to run.

This concerns the __init__ function in container/domain/nease/nease.py.

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.