GithubHelp home page GithubHelp logo

uab-cgds-worthey / ditto-ui Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 0.0 2.28 MB

Easy to use web interface for biologists to look for genetic variants and understand their deleteriousness using DITTO scores.

Home Page: https://cgds-ditto.streamlit.app/

License: GNU General Public License v3.0

Python 73.78% PureBasic 26.22%
streamlit-webapp pathogenic-variants rare-disease bioinformatics clinvar ditto genomics precision-medicine sciops

ditto-ui's People

Contributors

tkmamidi avatar wilkb777 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ditto-ui's Issues

Add helpful descriptions of what the features are displayed in the SHAP plot

I like the SHAP plot showing what features the model considered in generating the DITTO score. However, it is not clear from looking at the text identifier of what each feature actually is. As an example in the plot below I have no idea what spliceai.ds_dl is or signifies and that would be nice to know since it appears to contributes significantly to the overall DITTO score for the variant.

image

Showing which features are important is a great step to explainable ML/AI. Adding a description of what the features mean/indicate would be very useful in fully explaining the relevance of them to users.

Improve README

These are just a few suggestions I have that may help with the README.

  • Add a license badge.
  • Improve the description
    • Add links in the description to those tools and not that DITTO will be published or is being written
  • Add a screenshot of the app
  • Explain or mention before showing screenshot or after what can you search for: by gene? by variant? all?

I'd be happy to help here or review if needed.


A potential description

The DITTO web application offers a scientific platform for researchers to investigate deleterious variants, combining the DITTO deleteriousness score and ClinVar's reported significance to comprehensively assess variant impact.

DITTO uses an explainable neural network model enhanced by SHAP for transparent model predictions, ensuring clarity in understanding the functional implications of variants. It is rigorously trained with ClinVar data and integrates OpenCravat for detailed annotations from diverse sources.

The application is a reliable resource for [who is this tool for], providing a transparent, score-based system to evaluate the potential deleterious effects of genetic variants, aiding in precise and informed research decisions.

Domains query parsing fails for some genes, but not others

Domain querying done through Uniprot seems fine for genes like A2M which don't return domains but throws a parsing error for genes like NEDD8-MDP1. Not sure just yet the issue.

Here's the stack trace for the get_domains function when looking up NEDD8-MDP1

Traceback (most recent call last):
  File "/Users/bwilk/mambaforge/envs/ditto-env/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
    exec(code, module.__dict__)
  File "/Users/bwilk/workspace/DITTO-UI/src/ui_ditto.py", line 311, in <module>
    main()
  File "/Users/bwilk/workspace/DITTO-UI/src/ui_ditto.py", line 263, in main
    fullname, domain = get_domain(gene_name)
  File "/Users/bwilk/mambaforge/envs/ditto-env/lib/python3.10/site-packages/streamlit/runtime/caching/cache_utils.py", line 186, in __call__
    return self._get_or_create_cached_value(args, kwargs)
  File "/Users/bwilk/mambaforge/envs/ditto-env/lib/python3.10/site-packages/streamlit/runtime/caching/cache_utils.py", line 211, in _get_or_create_cached_value
    return self._handle_cache_miss(cache, value_key, func_args, func_kwargs)
  File "/Users/bwilk/mambaforge/envs/ditto-env/lib/python3.10/site-packages/streamlit/runtime/caching/cache_utils.py", line 265, in _handle_cache_miss
    computed_value = self._info.func(*func_args, **func_kwargs)
  File "/Users/bwilk/workspace/DITTO-UI/src/ui_ditto.py", line 103, in get_domain
    info_dict["results"][0]
IndexError: list index out of range

Highlight DITTO score and add interpretation

The DITTO score is not distinguishable from other information on the page when displayed. Since it is one of the main pieces of information a user would be looking for it's important to distinguish it from other information on the page. Some basic strategies for solving this are highlighted in this quick design article https://aelaschool.com/en/visualdesign/visual-hierarchy-prioritize-highlight-information/ and could be leveraged to quickly change how this information is brought to the users attention above other information.

Beyond highlighting supplying an interpretation of the score for the user is also important information. Wether we like it or not boiling things down to a single score or predetermined interpretation paradigm of that score is a quick way to make DITTO scores accessible to users who don't have the time to read the manuscript and understand the information the score is highlighting or how to interpret said score with expert use. There are many options on how to slice and dice the interpretation. Some choose just a general recommendation like "Score > 20 is important" or "score is subdivided into 5 score bins corresponding to predicted pathogenicity". Others use statistical methods or modeling to determine cutoff values for interpretation. Others use existing interpretations to correlate a score or range of scores with the most likely interpretation. However it is done, having it will be helpful for users to quickly start using DITTO.

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.