Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 16:59

    ctrueden on generic-dialog

    Make DynamicCommand work when n… Add convenient way to build inp… WIP: Add unit tests for Inputs … (compare)

  • 12:53
    ctrueden commented #88
  • 01:20
    frauzufall opened #88
  • 01:14

    frauzufall on display-argb

    Display ARGBType images as imag… (compare)

  • Dec 13 12:48
    tinevez opened #111
  • Dec 13 12:42
    tinevez closed #95
  • Dec 13 12:42
    tinevez commented #95
  • Dec 13 12:41

    tinevez on fix-feature-config

    (compare)

  • Dec 13 12:41

    tinevez on jungle

    Add a method to FeatureSpec to … A model that manages a collecti… Exploit the FeatureComputationS… and 2 more (compare)

  • Dec 12 19:19
    etarena commented #613
  • Dec 12 15:43
    NicoKiaru commented #369
  • Dec 12 13:32
    imagejan opened #369
  • Dec 11 14:20

    ctrueden on master

    UIService: make isVisible metho… (compare)

  • Dec 11 14:07

    ctrueden on master

    PluginService: be less verbose … (compare)

  • Dec 11 14:02

    ctrueden on master

    QuitProgram: be more resilient … (compare)

  • Dec 11 13:36

    ctrueden on master

    UIService: quit more gracefully… (compare)

  • Dec 10 19:40

    bnorthan on master

    Lower DefaultPadInputFFT priori… (compare)

  • Dec 10 14:41

    tinevez on jungle

    Color the table text depending … Fixed bug in Table views preven… Also close table windows when c… and 4 more (compare)

  • Dec 10 14:41
    tinevez synchronize #79
  • Dec 10 14:41

    tinevez on colorbar

    Add a background window to the … (compare)

NicoKiaru
@NicoKiaru
I've just pull a PR in bigdataviewer-vistools which allows for some bdv.viewer.Sourceto be wrapped as Volatile. (bigdataviewer/bigdataviewer-vistools#38) Probably not optimal, but I think it exposes a current limitation of BdvFunctions.show(Souce src): it does wrap sources that could be wrapped as volatile. I put an example of such limitation being overcomed in this small video : https://www.youtube.com/watch?v=SdngXeEatqA. Maybe it's the wrong way to solve the limitation (exposing the SourceAndConverter is probably more general), but here it is if you want to have a look.
Curtis Rueden
@ctrueden
@NicoKiaru Bene knows. He says (via private mail) that server is permanently down, but he is working on restoring it somewhere.
Oh wait, I am talking about a different server I think. The 3D Viewer docs.
@turekg Do you have power/influence over the fly.mpi-cbg.de server?
Christian "Tischi" Tischer
@tischi
@NicoKiaru Here is a BigDataServer running, but many images, takes a while: http://cbb-bigdata01.embl.de/0.6.0
NicoKiaru
@NicoKiaru
thanks @tischi and @ctrueden !
Stephan Saalfeld
@axtimwalde
@tomancak @tpietzsch I think fly.mpi-cbg.de is not very alive, can you resurrect it?
(oh, and because there might still be some useful stuff, is it possible to get a copy of my home directory there?)
...probably asking too late...
Igor Pisarev
@igorpisarev
Hi @tischi! I'm back and can help with setting up n5-s3 if you have any questions. As @hanslovsky and @bogovicj suggested, you can use n5-spark to generate multiscale exports using an instance of N5AmazonS3Writer. The best examples would probably be the tests in n5-spark and n5-aws-s3 repositories
Igor Pisarev
@igorpisarev
n5-spark can run either locally or on a cluster, including Amazon's EMR platform (elastic map-reduce) that supports Spark. There is a wiki page in https://github.com/saalfeldlab/n5-spark/wiki that shows how to run a Spark application on AWS
turekg
@turekg
@ctrueden @axtimwalde I never heard of this machine, but I can look into it if you want...
Christian "Tischi" Tischer
@tischi
Hi @igorpisarev, thanks for offering help! Just to get started, do I need a cluster and n5-spark or could I also do it one a single machine for a small test data set?
Stephan Saalfeld
@axtimwalde
@turekg this is the old @tomancak lab application server. It used to run the original CATMAID, some databases maintained by Pavel and Radek, and the personal home-pages of @StephanPreibisch and @axtimwalde
Igor Pisarev
@igorpisarev
@tischi the n5 downsampling code is in n5-spark, but you can run it on your machine. Take a look at n5-spark repo, there are scripts for building the shaded jar and running it on a local machine. When you run locally, Spark emulates the cluster environment by using threads, and it comes as a self-contained maven dependency so you don't need to install anything extra. You can also run it in your IDE by supplying the following JVM variable: -Dspark.master=local[1] that sets the number of threads to use, or -Dspark.master=local[*] for using all cores
Christian "Tischi" Tischer
@tischi
@igorpisarev Check! I will try asap. Thanks again!!
Jan Eglinger
@imagejan
An imglib2-roi question: is it possible to sample (random) points on a sphere by taking some GeomMasks.closedSphere(...).xor(GeomMasks.openSphere(…))? And/or to get a full list of points representing the sphere surface by some Bresenham-like algorithm?
Or is using imglib2-roi for this a bad idea, and I should rather take a math function of a sphere and sample points “manually” ?
(I was thinking in the direction of ImgLib2 Example 4a, but taking a sphere surface instead of the full volume…)
turekg
@turekg
@axtimwalde must be tomancak-srv1. It is not available outside MPI-CBG. I can see CATMAID in /srv/www .
I am due to retire this machine, after moving some stuff over to bds.mpi-cbg.de and archiving the rest. Tell me where I can upload your stuff and I can get a tarball of your dir to you
Stephan Saalfeld
@axtimwalde
oh---that's great
Stephan Preibisch
@StephanPreibisch
@turekg would be great to have this of my directory as well … shouldn’t be too big, maybe just put it on google drive or so? Thank you so much!!
turekg
@turekg
@StephanPreibisch will put in on ownCloud and send you a link. It’s 39G so it will have to wait until @axtimwalde grabs his last directory off it. I’ll let you know when ready
Jean-Yves Tinevez
@tinevez
Hi all.
Does someone made Bessel functions for ImgLib2 already?
Stephan Preibisch
@StephanPreibisch
@turekg, thanks, I did not expect this amount of data … if you want you can check what the biggest things are and send me a directory listing, maybe we can delete most of it … or we have a look together via shared screen
Christian "Tischi" Tischer
@tischi
@igorpisarev May I ask couple of questions related to n5-s3?
  1. Are you using BigDataViewer to view the n5-s3 data?
  2. Do you have some experience what the optimal block size is for streaming n5-s3 data through the internet into some viewer such as Bdv?
  3. Is it possible to work with compressed n5-s3 blocks and decompress on the client side? Would this give you a better performance because you need to send less data through the web?
Igor Pisarev
@igorpisarev
Hi @tischi, for browsing I created N5 Viewer which is a BDV-based plugin that supports AWS and Google cloud: https://github.com/saalfeldlab/n5-viewer
2 - I've only used streaming through cloud platforms for smaller test projects, but I assume that the same guidelines for choosing the block size would apply there, and something like 64x64x64 would be good. I think both S3 and Google Cloud Storage charge not only for the data throughput, but also for the number of I/O requests, so you would probably want to avoid having too many tiny block files.
3 - if you use any N5 compression scheme such as GzipCompression, the blocks are always stored and sent in the compressed form
Christian "Tischi" Tischer
@tischi
hi @igorpisarev, thanks a lot for the informative answers!
tpietzsch
@tpietzsch
@NicoKiaru it should also be super easy to start a BigDataServer locally. See https://imagej.net/BigDataServer
Basically, just download the bigdataviewer.jar
and java -jar bigdataserver.jar myName myDataset.xml
@NicoKiaru regarding CacheControl and SharedQueue
CacheControl has only one method: prepareNextFrame()
This is called by BDV whenever the timepoint is changed, the viewer transformation is changed, etc
tpietzsch
@tpietzsch
It is a hint to the asynchronous loading infrastructure in the background: Data that might be enqueued for loading is not immediately needed anymore, and new requests should be prioritized. For example when moving to timepoint 2, then image tiles that were required to render timepoint 1 and are still enqueued for loading can be discarded (or bumped to a lower priority)
In general nothing bad happens if this hint is simply ignored.
SharedQueue is a CacheControl
Slightly simplified, it is basically a priority queue for image block requests and a number of threads that service requests from the queue.
Several VolatileImages can share the same SharedQueue (hence the name)
tpietzsch
@tpietzsch
The idea is that block requests from these images (which might be visible at the same time) are sorted into the same priority queue and serviced by the same loader threads. (instead of having a group of threads for each image that fight for resources and are basically prioritized the same)
Philipp Hanslovsky
@hanslovsky
:plus1:
NicoKiaru
@NicoKiaru
Ok, thanks @tpietzsch this makes a lot of sense! So let's say I need to open hundreds ( ~200) of sources at the same time. Currently I create a SharedQueue(1) for each source. I assume it's probably more efficient to create a single SharedQueue(x), indeed shared for all sources ? What value of x would be appropriate ? Should x be equal to the number of cpu cores ? Also, would it diminish the risk of getting a Java Heap Space issue ?
Stephan Saalfeld
@axtimwalde
Yes, a single SharedQueue would be better, however, 200 sources could become inefficient? If that is the case, I would implement an intermediate cached source that combines the 200 sources (you can do this with a simple Converter over a Composite). But that means that you would lose the sliders and stuff...
NicoKiaru
@NicoKiaru
Thanks @axtimwalde do you have an example somewhere ? this looks super interesting and I think that there was a discussion on gitter about this recently, but I cannot find it
Ellen T Arena
@etarena
Is there a way to use LoopBuilder (or something similar) to loop multiple things while knowing their position?
Curtis Rueden
@ctrueden
@etarena @maarzt @tpietzsch Shazam: imglib/imglib2#273
Ellen T Arena
@etarena
:thumbsup:
Jan Eglinger
@imagejan
:+1: that leads me to another question: is there something like an IterableRegion that permits localization of each iterated pixel? I.e. an Iterable<RealLocalizable> instead of Iterable<Void>, but still iterating only true pixels of the mask?
I guess there is: PositionableIterableRegion; but is there a utility function similar to Regions.iterable(RAI<B>) to retrieve those?
Curtis Rueden
@ctrueden
@imagejan The javadoc for that class says "We put interfaces RandomAccessibleInterval<BooleanType>, IterableRegion<BooleanType>, PositionableIterableRegion<BooleanType> into this sequence such that the Regions methods that "add capabilities" (being iterable, positionable) can have appropriate result types."