ccicb / crux Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
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 laterfs
: only used with shinyfiles and can be removed once we replace shinyfiles with shinyapps compatible solutionsreadr
: used only in a few locations, can replace with data.table::fread or utils::read.csvtibble
: 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 dependencyEssentially all text in the app, but particularly within the plots - is far too small by default
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
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
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
Landing page should describe CRUX in a few words, then ask whether they want to start exploring
depending on which button they click, it should take them to single cohort summary or the import data 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
Cohort comparisons using subsets from one group vs another group is a painpoint.
Would be useful to be able to create a subset & make another cohort from original minus subset
That way we can do subset vs original without including the same samples in both groups
Should be able to configure additional datasets to import via a deployment parameter.
See golem_opts
TCGA and PCAWG data can still be preloaded
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
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
Its confusing that you currently wait for elements like the pickerinput that lets you select genes to pop up and theres nothing to indicate any loading of data is happening
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
ShinyFiles browses the local environment (server filepath) NOT the users environment
Test with edge and multiple users
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
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
Need to figure out if this behaviour is from CRUX or maftools
get CCICB/interchangeGUI live before CRUX goes out to allow Gistic ZIP conversion to maftools GISTIC object. Basic functionality is already in CCICB/interchange
maftools::gisticChromPlot(gistic = gistic(), fdrCutOff = input$in_num_fdrcutoff, :
Could not find mutations
Happens for all cohorts i've tested
Plots should appear above tables.
Consider Oncoplots First
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
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.
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.
if that fails, adding it as a CRUX dependency might be worthwhile as a short-term fix
See TCGAbiolinksGUI for an example
If running locally - save datasets generated by the user
maftools::loadTCGA should handle this for TCGA datasets
will need to create a loadPCAWG function to do this for PCAWG data. Eventually would be nice to have this function built into maftools, might be worth a pull request.
Must do this so package is light enough to upload to shinyapps
Probably a CRUX 2.0 feature
Questions we'd need to answer:
Survival Analysis
On PC (Windows10) bug survival analysis crashes
Use wellPanels, not boxes
Compare survival based on clinical metadata
An error has occurred. Check your logs or contact the app author for clarification.
Also sometimes seems to run twice when progressing through import wizard as normal
home -> house
warning -> ?
file-upload -> ?
Lots more
Last module where this is required
Save time when doing things like isolating triple negative breast cancer cohort
Change warning message to venn diagram of sample IDs in mutalisk dataset vs MAF dataset
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.