Coder Social home page Coder Social logo

j-andrews7 / genotify Goto Github PK

View Code? Open in Web Editor NEW
54.0 6.0 9.0 78.84 MB

A minimal desktop app for easy and convenient gene annotation and lookup.

License: Other

HTML 15.87% CSS 21.59% JavaScript 45.30% TeX 17.24%
bioinformatics genetics gene-annotation desktop-application gene lookup protein-function

genotify's Introduction

Hi, I’m Jared πŸ‘‹

I’m a Senior Bioinformatics Research Scientist in Suzanne Baker’s lab in the Department of Developmental Neurobiology at St.Β Jude Children’s Research Hospital. We study oncohistone mutations in the context of pediatric high grade gliomas.

Other than analysis, I build useful tools and utilities for the lab and community. Recently, I created a basic utility called strprofiler for comparing STR profiles between large collections and identifying potential sample swaps. This is particularly useful for labs that generate many cell lines/models, as we do.

Lately, I’ve been working on an R package called CRISPRball, which is largely based around a Shiny app of the same name for exploring, visualizing, and comparing CRISPR-Cas9 screens analyzed with MAGeCK. While this is a work in progress, it is functionally complete and will hopefully be in the next release of Bioconductor.

I am/have been involved in a handful of Bioconductor packages, including dittoSeq, SingleR, escape, and celldex.

Here’s some stats on my GitHub repos

genotify's People

Contributors

j-andrews7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

genotify's Issues

Add interpro domains.

Display actual domain names, which are derived from PFAM, Prosite, and SMART. Seems to be a sort of non-redundant domain database that aims to integrate the strengths of all those different sources.

Will be more informative than current domain info we have. Maybe add a separate section even for these.

Expression widget throws 'undefined clientWidth' error

Normally, calling the render creates several divs and renders the expression widget. However, after moving the render call inside the displayData function, this error happens every time and doesn't render, instead just displaying the parameters fed into the function.

Add gene rifs table.

These little one-liners related to function (and back by publications) are nice. A table of them would be useful in the function section. Can be parsed directly from the MyGene query, so should be easy to add.

Hits with multiple Uniprot IDs fail to show any info.

Ends up returning a 404 from the Uniprot API request, as multiple IDs are submitted. Need to parse it so that only the first returned ID is used in the API request.

Example query is "POLR2M". Relatively rare, but annoying.

Species dropdown isn't properly populated

Trying to populate the species dropdown on page load so that users can select one or more species to limit searches to. While the code in the populateDropdown function works just fine (when called on dummy elements from newQuery, for example), I can't get the code to actually run on page load. It will likely have performance issues, but will deal with that when I come to it.

A searchable, multi-selectable datalist would probably be preferable, maybe this is a better solution: http://projects.sergiodinislopes.pt/flexdatalist/

Can search a JSON file directly, without need for loading. Would have to restructure the file a bit, but it might be worth a look.

App crashes (?) and resets when enter is used to submit query

This is an odd one. When the Enter key is used to initiate a query, the app briefly flashes the proper results, then resets. The console is cleared as well.

Using breakpoints, everything is fine until line 111 when the response is JSONified. Breakpoints used in that block don't seem to trigger, though you can see the results flash briefly, so the code is being run. At a lost, as clicking the magnifying glass button or using the ctrl+q hotkey command both work fine. Altering the code so that enter instead clicks the button also has the same issue.

Map rest of species IDs to species name.

For those species outside of the common species list, only the species ID is listed in the results. Not all that helpful.

Change to pull from the species list directly.

Vulnerabilities with `npm install`

Installing from source (either release 1.2.1 or latest master branch) issues a warning about vulnerabilities:

npm install

added 275 packages from 317 contributors and audited 862 packages in 207.604s
found 18 vulnerabilities (7 moderate, 10 high, 1 critical)
run npm audit fix to fix them, or npm audit for details

npm audit fix fixes most of them, but two need manual intervention:

                                                                                
                       === npm audit security report ===                        
                                                                                
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                Manual Review                                 β”‚
β”‚            Some vulnerabilities require your attention to resolve            β”‚
β”‚                                                                              β”‚
β”‚         Visit https://go.npm.me/audit-guide for additional guidance          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ High          β”‚ Cross-Site Scripting (XSS)                                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Package       β”‚ jquery                                                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Patched in    β”‚ >=3.0.0                                                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Dependency of β”‚ 6e44d50bacc878a1fec8f2e35b9e15154e57a73f67b28be770f40b01236… β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Path          β”‚ 6e44d50bacc878a1fec8f2e35b9e15154e57a73f67b28be770f40b01236… β”‚
β”‚               β”‚ > jquery                                                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ More info     β”‚ https://npmjs.com/advisories/328                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Moderate      β”‚ Prototype Pollution                                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Package       β”‚ jquery                                                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Patched in    β”‚ >=3.4.0                                                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Dependency of β”‚ 6e44d50bacc878a1fec8f2e35b9e15154e57a73f67b28be770f40b01236… β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Path          β”‚ 6e44d50bacc878a1fec8f2e35b9e15154e57a73f67b28be770f40b01236… β”‚
β”‚               β”‚ > jquery                                                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ More info     β”‚ https://npmjs.com/advisories/796                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
found 2 vulnerabilities (1 moderate, 1 high) in 867 scanned packages
  2 vulnerabilities require manual review. See the full report for details.

Allow user to see top 5 hits.

Be nice to let the user see the top few hits rather than the sole top hit.

Need to create a small table that displays the entrez ID, Symbol, species, and match score. Make the entrez ID a link that results in that hit being shown.

Datatable error due to missing gene symbol.

Easily replicated, due to some hits not having symbol fields. Changing it so NA will be plugged in when these aren't available (similar to how missing species are handled now).

Consider going chromeless and building own menu bar.

This would allow for a more fluid look, as the ugly native default title bar could be customized. However, doing this means the menu bar would also have to be reconstructed in HTML/CSS/JS. Probably a fair amount of work, but would let it look like Slack, Github Desktop, etc.

Update UI

UI looks pretty dated as it stands. A few quality of life changes would make it look a lot better and improve functionality.

  • Change button from the default to something that doesn't look like it's out of DOS.
  • Use collapsible sections for the section headers.
  • Remove the header disappearing/reappearing. Instead just collapse the section if it has no info found in it.

Remove unnecessary second API call to MyGene

Since they changed their API slightly, the second "annotate" call really isn't necessary. All info can be returned with the initial query, no need to use the second API call with the top hit's Entrez ID.

Linux binary segmentation fault.

The linux binary fails with segmentation fault in current Debian testing and Ubuntu 19.04.

Steps to reproduce:

wget https://github.com/j-andrews7/Genotify/releases/download/v1.2.1/Genotify-v1.2.1-linux-x64.tar.gz
tar xzf Genotify-v1.2.1-linux-x64.tar.gz
cd Genotify-v1.2.1/
./Genotify

Debian system information:

uname -a

Linux worknote 4.19.0-5-amd64 #1 SMP Debian 4.19.37-6 (2019-07-18) x86_64 GNU/Linux

Ubuntu system information:

uname -a

Linux precision 5.0.0-25-generic #26-Ubuntu SMP Thu Aug 1 12:04:58 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Let me know if more information is needed.

Make sections with no content display 'No info'.

Currently, sections devoid of any filled fields just show a blank space. A simple message will make it more obvious that there's just no info so it doesn't seem like things just aren't showing up.

Species dropdown is duplicated

Not sure how this happened, but the species dropdown is showing up duplicated now. The HTML only has it once, so I'm not totally sure how it happened.

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.