stanstrup / peakabro Goto Github PK
View Code? Open in Web Editor NEWPeaklist Annotator and Browser
Peaklist Annotator and Browser
Would be nice if you could define a simple common use case, i.e. define a list of compounds that you would like to annotate and provide the code how this could/can be done.
This would also showcase your tidyverse approach, so I could check if an S4 approach could be implemented (in parallel?).
@stanstrup, I was wondering where you plan to distribute/add the package? Do you want to add it to CRAN or Bioconductor (I would not host exclusively on github)?.
I personally would prefer Bioconductor, because of the regular release cycles, possibility to add annotation data and because other related packages are already in Bioc (e.g. xcms
ChemmineR
).
I would like to see PeakABro
added to Bioconductor, with the package not containing compound data, but only the code to generate and use these. The compound data (being versioned!) could ideally be added to AnnotationHub
.
Note that if it's going to be Bioconductor it has to fulfill some criteria (http://www.bioconductor.org/developers/package-guidelines/) and also conform (more or less) their coding style (http://bioconductor.org/developers/how-to/coding-style/ - specifically, make sure that the lines in the R
sources, including comments and documentations, are not longer than 80 character).
shinyBS is not maintained and buggy.
Note when a compound have been annotated to several features.
Useful to know if a compound have been annotated to other features too.
The info I extract is: id, name, inchi, formula, and mass..
For the moment I force-removed the files until this is settled.
Names and structures don't match:
https://bitbucket.org/fiehnlab/mona/issues/200/lipidblast-mismatch-between-name-and
Functions added to package:
License situation clearified
Please suggest.
Not sure why this is.
The first nest should be defined here:
https://github.com/stanstrup/PeakABro/blob/master/R/peaklist_browser.R#L248
But something is very off. It seems suddenly to be counting backwards.
Second nesting defined here:
https://github.com/stanstrup/PeakABro/blob/master/R/peaklist_browser.R#L110
move load.camera.rules and adduct lists to https://github.com/stanstrup/common_mz.
To avoid loading the heavy chemhelper.
Also option to not warn about conflicts.
@stanstrup, very nice work indeed! Always wanted to have such a packages and also started implementing something (https://github.com/jotsetung/xcmsExtensions), but never too serious.
My suggestion(s):
Keep functionality separate from the data:
Have dedicated data packages. This allows to have data packages from different sources or from different versions. See e.g. ensembldb
and the EnsDb.Hsapiens.v75
package, or GenomicFeatures
and the separate TxDb
packages.
Define a CompoundDb
class with main methods to query and access the database. E.g. have a method compound
that retrieves compounds from the database and supports multiple filters. I know that's a little different setup (Bioconductor's rich, S4-based) than the tidyverse
one, still, I think one could combine both worlds.
One could then define e.g. a HMDB
class that simply extends the CompoundDb
to accommodate HMDB-specific fields and attributes.
What might also be interesting is to implement the filters (or create filters that extend) AnnotationFilter
(e.g. MzFilter
or MassFilter
). The MzFilter
would have to calculate the mass
for the provided mz
. Ideal would be to have a MassFilter
that takes a MzFilter
as input, calculated the theoretical mass for the mz
and returns a MassFilter
.
The big advantages of having this setup would be:
AnnotationHub
.I would be happy to contribute here (especially related to the database class,
interface methods and filters as I did all this already in ensembldb
).
open for discussion
The browser could link to the resource page for each compound.
Either in the annotation or in the compounddbs allow expansion of possible biological adducts. We can use the list from mycompoundID:
http://www.mycompoundid.org/mycompoundid_IsoMS/reaction.jsp
If the same View button is clicked twice it doesn't react since the value doesn't change.
I have asked in many places that use the same code for a solution. So far nothing.
The relevant part is here: https://github.com/stanstrup/PeakABro/blob/master/R/peaklist_browser.R#L165
https://stackoverflow.com/questions/38575655/shiny-modules-namespace-outside-of-ui-for-javascript-links
https://stackoverflow.com/questions/45739303/r-shiny-handle-action-buttons-in-data-table
https://stackoverflow.com/questions/40107022/r-shinybs-popup-window
https://stackoverflow.com/questions/46593607/datatable-with-nesting-child-rows-and-modal
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.