Does my package fit into bioconductor (and further advice)?
1
0
Entering edit mode
Last seen 16 months ago

Hey everyone,

During my PhD I put together a package to make calcium imaging analysis easier. It implements a standard S3 (soon moving to S4) object that contains all data from a calcium imaging experiment. The structure closely resembles the SingleCellExperiment object (and similar ones) as it is mainly based on a matrix of cells (in columns) and frames (in rows) with the measured fluorescence. It also contains colData and rowData to give information about each cell imaged (colData) and the stimuli given during an experiment (rowData).

Since I am polishing it and aiming to turn the S3 objects into S4 objects I was wondering if it makes sense to try and get the package into bioconductor. Currently there are no similar packages in biocondutor and only outdated packages in CRAN (https://github.com/cran/CalciOMatic)

I also thought about neuroconductor. But that is mainly geared towards MRI analysis and would even fit less.

This is my first attempt to make an R package and lack the experience.

What do you guys think? Does it make sense for me to try?

calcium imaging imaging s4 • 193 views
1
Entering edit mode
shepherl 2.8k
@lshep
Last seen 3 days ago
United States

From the sounds of it yes. We would require you transition over to using or extending to use the Bioconductor structures you mentioned above (either SingleCellExperiment or SummarizedExperiment) when developing the S4classes.

Cheers,

0
Entering edit mode

It is not, however, a package to deal with sequencing/genomic data. The only thing in common is that the structure of SummarizedExperiment objects works very well for calcium imaging data.

Do you know an example of a package that adapted the SummarizedExperiment object for non-genomic data? I am asking to try and learn how they did it.

1
Entering edit mode

Questions about package development belong on the bioc-devel mailing list.

I looked at the SummarizedExperiment landing page, at the bottom where packages that Import: or Depend: on SummarizedExperiment are listed. Without really knowing whether the authors do a 'good' job or not, and just scanning the packages, I spotted animalcules, apeglm (microbiome) for example.

Re-using the basic structure sounds like a great idea, keeping rows as 'features' and columns as 'samples'. If the main idea is to use the data structure but introduce domain-specific methods, I would focus on making minimal changes, perhaps as simple as

setClass("CalciumExperiment", contains = "SummarizedExperiment")


and then implement new generics / methods

setGeneric("calciumFoo", function(x, ...) standardGeneric("calciumFoo"))

setMethod("calciumFoo", "CalciumExperiment", function(x, foo = numeric()) {
## ...
})

0
Entering edit mode

Thank you for your suggestions, I will have a look.

I dug a little into the SummarizedExperiment vignettes and it seems very logical to keep many of the things that are already implemented and add a few things that make sense using this https://bioconductor.org/packages/release/bioc/vignettes/SummarizedExperiment/inst/doc/Extensions.html