Open rmillikin opened 6 years ago
Another way to think about this is answering typical questions one would have about each task with plots and descriptive statistics: Did calibration work? Did GPTMD add any modifications? Did search find any of those modifications? How many peptides were found in search? What portion of spectra resulted in a PSM? How many peptides were identified in consolation events? How many peptides were quantified? What peptides were elevated or lower in abundance in my condition of interest (volcano plot with tooltip displays)?
Could use Markdown instead of writing HTML directly https://github.com/Knagis/CommonMark.NET
here's some ideas I was thinking.. feel free to contribute
For multifile runs:
I want to have the same report for crosslink/Glycan.
some graphs that might be nice to have
also:
Where's that from?
That is pFind output.
I think we can use OxyPlot (the NuGet package we use for MetaDraw) to generate these plots. @XRSHEERAN got the PDF export working but I had some trouble with it in the installer. But we could generate these plots in OxyPlot and then export them to PDF
Alternatively we can turn MetaDraw into a more generic post-processing node and you can drag in any MetaMorpheus .tsv into it to generate the report. that might be nice. we could just do it automatically after each search on AllPSMs.tsv
I'd like to eventually get some protein coverage and mods visualization in there so it might be good to start taking MetaDraw in that direction
I just started using Jupyter with plotly, and I think it's a great option for generating HTMLs with interactive graphs.
I tried plotly when exploring options for making plots for Jenkins daily reports. Last I checked it uploaded plots online to the cloud and you get a hyperlink to the data via your web browser. I think there is a paid version that lets you have locally-stored plots. I seem to recall being able to indirectly make offline plots but I don't remember the details - I think the functions for that type of plotting were not as developed yet.
I really do not want anything cloud-based in MM; some user's data is sensitive and can't be shared. I'm not comfortable uploading data to some random server automatically without permission. I'm cool with making interactive plots with plotly if there is a useful offline version, though
Jupyter can also run R, so you could use ggplot and avoid the plotly paywall. It's a little more cumbersome to code, but worth it. There's also Shiny, a native R thing like Jupyter.
I'd be more open to that
Just got Jupyter working with matplotlib, and that's pretty slick.
Apparently, ggplot (from R) also has a python wrapper.
@ianhirsch added plots to MetaDraw in #1590 . still todo:
here's another visualization idea from ms amanda
like to see ms2pip output added to metadraw for comparision. https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/btz383/5488123 https://iomics.ugent.be/ms2pip/
Brainstorming for new metadraw
We should investigate the feasibility of using HTML/web browser for this too, rather than OxyPlot. I'm guessing there are more tools for visualizing stuff in HTML but I'm also not sure about how to use those tools in a web browser in WPF.
While that may be true but it does not dismiss the fact that ASP.NET allows parallel programming which lets chunks of code to run all at the same time whereas PHP does not support threading at all.
we may want to look to this for some inspiration. https://pubs.acs.org/doi/10.1021/acs.jproteome.9b00496?ai=84336
big data visualization ideas. http://www.bam.bio/ https://twitter.com/i/status/1201919419489800192
You could also check out TypeScript. It's a little closer to C# than JavaScript because it's strongly typed like C#.
Perhaps unrelated, but snakemake could be used for reporting, say after metamorpheus is integrated into conda
.
https://snakemake.readthedocs.io/en/stable/snakefiles/reporting.html
alternate file encoding may help with web accessibilty.
some interesting ideas here: https://support.10xgenomics.com/single-cell-gene-expression/software/visualization/latest/what-is-loupe-cell-browser
I thought this idea was large enough where it should be it's own issue even though it's part of #1124 .
@acesnik wants some HTML reports and I think a lot of users really want some way to easily/graphically interpret the data coming out of MetaMorpheus/FlashLFQ.
One way to do it is to have static plots that describe things we think the user would want, i.e. ppm error over time or PSMs per file or boxplots of protein abundance.
Another way to do it is to have some kind of dynamic system that would let the user plot things that they want - i.e. define a statistic to make a box plot out of, or plot any x vs y (i.e. ppm error vs RT).
So here is an issue to centralize some ideas of what would be nice for users to have (hopefully with some input from users). I suspect this issue will never really be "closed" but is an open-ended place to suggest improvements.
We are already working on a MS2 spectrum annotator within MetaMorpheus so that particular type of plot probably doesn't belong here. We'd also have to load spectra files which I think isn't really easily doable in HTML.
Some ideas for static plots: