Comments (11)
Could this be reconsidered? If OpenCV is supported both R and golang versions of this package can be made without having to reinvent the wheel for all the heavy lifting.
from starfish.
Could that functionality be provided by language bridges (FFI) rather than to maintain a separate identical package?
from starfish.
Yes C/C++ as the common language for all the heavy lifting with image processing.
FFI calls to C/C++ from both python, R and golang would be easier to maintain. In addition performance with opencv is better than scikit-image. No? Or are you suggetsing R and golang would make FFI to python?
from starfish.
Essentially doing similar what mc-stan did for hamilton monte carlo:
https://github.com/stan-dev
http://mc-stan.org/
But here instead of Bayesian modeling with MCMC/HMC the analogy here being a common interface for basic image processing.
mcstan's approach has been extremely successful with interfaces actually used and maintained to all the most popular data analysis languages:
R, Python, shell, MATLAB, Julia, Stata
And works great across platforms:
Linux, Mac, Windows
from starfish.
I would prefer postponing optimizing for performance until we have a robust pipeline and infrastructure. Fast iteration to get us there is key, and python is good for that. We also don't want to tie ourselves down to a particular image processing backend (opencv or scikit-image). The idea is that the interfaces are well-defined, but if people want to build an alternative backend (perhaps opencl for GPU acceleration), there is nothing preventing them for doing so.
It depends on what you need starfish to do. Do you just want to process images? Or do you want to develop algorithms? If you're just processing images, R/golang can just shell out to starfish to do the work. If you're developing algorithms, that is trickier and I'll have to give it some thought.
from starfish.
Do you just want to process images? Or do you want to develop algorithms?
Both preferably, no?
More specifically I have a dataset with 204 FOV, 30 z-stacks per FOV and about 2000-4000 amplicons per cell.
See:
http://www.histo.io/?v=cycle001
This sequencing run is for 30 cycles.
If I'm developing routines for handling these kinds of data I might as well develop in the starfish framework no?
To get really high reads it is not enough to do registration and segmentation on maximum intensity projection but it has to be done on the stack. Nor is it enough to do registration on single FOV.
from starfish.
If you develop an algorithm that requires opencv, we'd definitely be happy to add it back as a requirement. I don't think that @dganguli removing it as a requirement now should be read as a sign that opencv cannot be a requirement or cannot be used. :)
from starfish.
@ttung cool. I'll make a fork and have a stab at it during the weekend.
I'll also add the first round of the cycle of this dataset to cloud if anyone wants to use it for starfish since it is kind of an extreme dataset (16-bit depth, many FOV, several z-stacks, thousands of amplicons per cell).
from starfish.
Hi Daniel! Sorry to be late to this! Yeah we're totally open to opencv (pun intended) being in the project. However, as Tony said, for now we're in rapid iteration mode and not yet considering performance and/or interlanguage operability. As such, we've landed on skimage for now to simplify things.
Would love the first round of the cycle of this dataset as another dataset to develop against.
from starfish.
Hi @dganguli here is a quick share of already maximum intensity projection of 30 z-stack FISSEQ with 17x12 FOV. There are 31 bases sequenced (this is just first cycle).
Don't know if you use DAT project torrent thingy otherwise I can put this on a server with http access:
dat://f2b3297a0e3b18ab943e48de7eae71a56399a8acf004d163f6ad7fbe31a014a2
It contains TIFF files (4 channels). A TIleConfiguration.txt that can be sued together with ImageJ and specify the position of each tile as well as a RoiSet.zip which contains ImageJ roi files with one ROI for each cell out of 652 cells.
from starfish.
opencv is gone.
from starfish.
Related Issues (20)
- Tutorial "Pre-defined Watershed Segmentation Pipeline"
- Tutorial "Loading ImageJ ROI Sets" HOT 2
- More intuitive ordering for the link to documentation HOT 1
- Quickstart and napari HOT 2
- Update open napari window? HOT 1
- Displaying example from data formatting tutorial HOT 3
- Include output in example notebooks HOT 2
- JOSS paper does not mention alternative tools
- JOSS MS comments HOT 1
- "ValueError: in1 and in2 should have the same dimensionality" when "is_volume=True" for Filter.DeconvolvePSF
- make install-dev got error
- 'Visualizing Data' tutorial crashes at viewer.add_image step HOT 3
- Tutorials making use of Napari should include screenshots of expected output. HOT 1
- Are the masks in the left in the tutorial really two cells? HOT 2
- JOSS paper should mention how starfish compares to the other available tools
- error importing scikit's 'match_histograms' HOT 2
- Link to raw data is not working HOT 2
- starfish is incompatible with Python 3.9 HOT 1
- AttributeError: 'DataArray' object has no attribute 'flags' in quick start run HOT 9
- Couldn't install without specifying an older version of scikit-image (0.17.2) HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from starfish.