Git Product home page Git Product logo

crux's People

Contributors

selkamand avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

akmazad

crux's Issues

Reduce Dependencies

CRUX currently has numerous dependencies - many of which are entirely unnecessary:

  • utilitybeltfmt - replace with selkamand/assertions
  • utilitybeltgg - leave for now but consider building functionality into CRUX later
  • fs: only used with shinyfiles and can be removed once we replace shinyfiles with shinyapps compatible solutions
    htmltools: used only in function with_red_star - which is never used. Can delete function and dependency
  • readr: used only in a few locations, can replace with data.table::fread or utils::read.csv
  • Pheatmap: moved to suggests
  • tibble: can just call dplyr::tibble(). tibble doesn't need to be in description file. UPDATE: we use tibble::column_to_rownames and since we have a tibble dependency indirectly via dplyr even if we get rid of it - theres no point removing unless we drop dplyr dependency

All text is too small

Essentially all text in the app, but particularly within the plots - is far too small by default

Remove `suspendWhenHidden = FALSE` from all modules

outputOptions(..., suspendWhenHidden = FALSE) has been used in several places.

This causes code to run at times thats unnecessary. Remove all instances of it.

If wanting to change UI based on server conditions. Use hidden tabsetpanels and updateTabsetPanels in server functions instead

Simplify maf_dataset_wrapper class

Has lots of properties we don't need.

We just need the cohort metadata, a load function, a status to tell us if the data is loaded, and a slot to store loaded data.

For public data: function should stream data into loaded_data slot
For user data: function should instantly load and have no function for reloading.

Then if we need to tackle memory management, we can make sure to only ever unload datasets where the 'load' function is not null.

All the other slots are unnecessary and just make use of the class more confusing.

Overall we're stripping back from something that was leading towards being multiomic - to truly just being genomics focused

Add export fucitons ot CVCDAP and GenePattern

We can already export to CVCDAP by exporting MAFs (currently added as 'CRUX' export), but lets make an entry specifically for it

Since many programs may take MAF + clinical annotations we should add a general 'write MAF + clinical' function that the MAF object and filenames for the MAF & clinical TSV as arguments

For genepattern - consider exporting to IGV.js or GISTIC2

Make Landing Page More informative

Landing page should describe CRUX in a few words, then ask whether they want to start exploring

  1. 'Inbuilt TCGA datasets' or
  2. 'Their own data'

depending on which button they click, it should take them to single cohort summary or the import data module

improve available datasets module

Its just confusing to have a table of included datasets with a 'not loaded' column early on in the UI - end users just end up trying to load the datasets of interest

Windows smartscreen blocks app

Windows smartscreen blocks CRUX

image

Can fix by right clicking --> properties --> selecting unblock option at bottom of page but should investigate how to become a 'recognised' app on windows

image

If nothing else, we at least need to add the instructions on how to run CRUX into the manual

Simplify Gistic Import

Create another shiny server that takes gistic output zips and creates a CRUX gistic object (Rds of maftools::readGistic)

Then a single file import can be used. Will mean we lose the option of viewing 'deep/shallow/all' peaks but could build presets for all versions for TCGA/PCAWG and make automatically available

Look into how shinyapps handles the imported files

are they deleted immediately after last use or only once instance shuts down.

Consider adding support for instantaneous imported file deletion on shinyapps only. we do NOT want to do this if its running locally. One way of checking would be to see if fileInput$datapath is in temp folder. Then the second we've read the data we can delete it

Add note for highly sensitive data, to download the R package / binaries and use CRUX locally

Quickly Save/Load datasets

Add 'save dataset' functionality that lets you save a maf_dataset_wrapper in an RDS file and implement some read functionality to quickly add it into your data pool

Fix Chromplot Gene List

Investigate where to pull list of genes its possible to annotate GISTIC chromplot. Pulling from MAFS is not ideal since its the GISTIC data that likely contains annotations

Sort order co-oncoplot & cobarplot

by default sorts are based on frequency but once you select a custom set of genes sort order is based on alphabetic/reverse alphabetic order. When selecting custom set of genes Iโ€™d personally prefer them to appear in

  1. the order they were selected OR
  2. sort based on number of mutations.

Need to figure out if this behaviour is from CRUX or maftools

Pop up informing users the operation may take a moment

Several long operations stop the user doing anything else, with no indication of when itll be finished (e.g. export of large cohorts for mutalisk).

It would be best in thse cases to produce a pop up that tells the user what the program is doing, and doesn't let them back into the main interface until the program is complete.

I need to figure out if this behaviour is possible then implement if it is

add a function for stripping formatting characters from strings/character vectors

Error messages shown to user via sweet alerts (e.g. in mutational signatures module when incorrect module is given) are often cluttered by cli formatting chars that are useful when using an ID but don't render in html. add a function to strip these out

cli::test_that_cli should provide inspiration of way to do this (see config="plain")

Once function is added, wrap any error strings in a trycatch sweetalert with this function.

Clonal heterogeneity THCA mclust dependency missing

single sample analysis > THCA > default first sample > Clonal Heterogeneity tab > 'Error in loadNamespace(x): there is no package called 'mclust'

Should be automatically downloaded by maftools dependency chaining.

  1. update maftools

if that fails, adding it as a CRUX dependency might be worthwhile as a short-term fix

Consider adding depmap data

Probably a CRUX 2.0 feature

Questions we'd need to answer:

  1. How do you group into cohorts?
  2. Are MAF format mutation files readily available
  3. What 'clinical annotations' should be included?

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.