RGLab / openCyto

A package that provides data analysis pipeline for flow cytometry.
GNU Affero General Public License v3.0
75 stars 29 forks source link

Use the C++ library outside R? #212

Closed Mosaic-DigammaDB closed 3 years ago

Mosaic-DigammaDB commented 4 years ago

How difficult would it be to pull out the C++ code and compile it as its own library that could be used in pure C++ applications, without relying on R? I'm particularly interested in embedding some openCyto functionality within image-analysis software, such as CaPTk (the Cancer Imaging Phenomics Toolkit) or SeDi ("Semantic DICOM").

gfinak commented 4 years ago

Happy to discuss this offline, send me an email.

Mosaic-DigammaDB commented 4 years ago

Ok, thanks for responding! I have not examined the code very carefully, but it does seem as if the R parts are mostly wrappers around a C++ core. I would think the functionality (e.g. manipulating fcs files) could be used directly in C++ applications and maybe wrapped for other environments, e.g. Python... I know in the Python context you have options like FlowKit, but I'm not aware of any pure-C++ libraries that handle fcs without an ambient scripting interface. Overall, I'm trying to isolate the image analysis/annotation aspects of working with cytometry pipelines. My understanding is that image registration/alignment and segmentation are among the analytic concerns that are part of extracting data from cytometry experiments (I'm sorry if my terminology is imprecise, since my knowledge of cytometry is pretty rudimentary).

In case some backstory is relevant: I'm a programmer within a (small) international team of researchers working on image-analysis software; we're preparing a volume on new image-analysis techniques to be published by the Institution of Engineering and Technology, and (with one co-author, who is editor of that IET volume) I'm also writing a book about Covid-19, to be published by Elsevier. So we're trying to implement new imaging software keyed to those two volumes, partly to demonstrate the published techniques and also to serve as a cross-disciplinary framework making image analysis accessible to various scientific fields in a common application, e.g. biochemistry, radiology, immunology, biomechanics. I'm trying to find/develop C++ libraries in these various fields to serve as a common denominator, since different research communities have their own tooling ecosystems (often based on R, Python, Matlab, occasionally Java, etc.) -- these are fine in themselves but become unwieldy in an inter-disciplinary context where you want to integrate functionality scattered across incompatible platforms (a Jupyter notebook, a proprietary desktop application, an R module, a Matlab script, whatever).

Sorry to get tangential -- but perhaps you have thoughts about the openCyto side? Thanks! -- Nathaniel Christen

On Fri, Jun 5, 2020 at 11:58 AM Greg Finak notifications@github.com wrote:

Happy to discuss this offline, send me an email.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/RGLab/openCyto/issues/212#issuecomment-639593801, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJNZX4RAR57C4Z6ZL74UD5LRVEIYTANCNFSM4NUAATLA .

mikejiang commented 4 years ago

manipulating fcs files do have all c++ code available in cytolib, which can be build and used as standalone app. See https://github.com/RGLab/cytolib In fact this issue may be posted at cytolib if you are not thinking about the auto-gating framework of openCyto package per se Also here is an example of c++ application https://github.com/RGLab/cytoCL (not up to date though)