Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

User Story #11 (closed)

Opened 13 years ago

Closed 11 years ago

Maximum Intensity Projections

Reported by: cxallan Owned by: cxallan
Priority: major Milestone: 3.0-Beta3.1
Component: Bin-Services Keywords: n.a.
Cc: jburel, dzmacdonald, jamoore, jrswedlow, carlos@… Story Points: n.a.
Sprint: n.a. Importance: n.a.
Total Remaining Time: n.a. Estimated Remaining Time: n.a.

Description

The rendering engine interface (and underlying code) should be extended to provide support for maximum intensity projections.

Change History (21)

comment:1 Changed 13 years ago by cxallan

  • Milestone changed from 3.0-M2 to 3.0-M3
  • Version set to 3.0-M3

comment:2 Changed 13 years ago by cxallan

  • Keywords iteration5 added
  • Status changed from new to assigned

Scheduling this after the thumbnail service initial work is done in iteration4.

comment:3 Changed 13 years ago by cxallan

  • Keywords iteration5 removed
  • Milestone changed from 3.0-M3 to 3.0-M4
  • Version changed from 3.0-M3 to 3.0-M4

Plopping these in M4.

comment:4 Changed 12 years ago by cxallan

  • Milestone changed from 3.0-Beta2 to 3.0-Beta3
  • Version 3.0-Beta1 deleted

comment:5 Changed 12 years ago by jrswedlow

  • Milestone changed from 3.0-Beta3 to 3.0-Beta4

comment:6 Changed 12 years ago by jrswedlow

  • Cc jburel added

Some comments and thoughts on this:

  • Standard approach for calculation of projection is maximum intensity, but summed projects are sometimes used, so should have both.
  • The calculation of a projection can be relatively easy -- few sections, or (almost infinitely) hard. First, a projection of a 3D image requires reading all the data, so is I/O and compute intensive-- MIP has an 'if' for every pixel x N sections.
  • This facility must support timelapse, multi-channel images. 5D images > 1GB are increasingly common, so a 'projection' might really mean 300 projections of 256 x 256 x 20 x 2. Can we burden our rendering engine with that, while 5 other users hit it with other requests?
  • It's not clear to me how to present the resulting calculation to the user:
    • in a new window?
    • in the same window, with a switch to back and forth between 3D data and projection?
    • as a TIFF or MPEG dumped to the user's client?
  • For multi-channel images, must calculate projection for individual channels and overlays.


  • How do we store the result of this calc:
    • as a TIFF attached to the 5D image?
    • as a new set of Pixels
    • as a new Image (probably not)

We really need to define how this will be done, and then decide if we can have the RE do this work, or if this is a next step for the Python system Donald is building (link?), or use something else?

comment:7 Changed 12 years ago by jrswedlow

  • Cc donald added

comment:8 Changed 11 years ago by cxallan

  • Milestone changed from 3.0-Beta4 to 3.0-Beta3

We're going to try and get an initial version of this into milestone:3.0-Beta3 with the help of the additions of #891 and a new projections service.

comment:9 Changed 11 years ago by jrswedlow

Hey all-

What's the story here? We agreed this has to be in Beta3, and is clear our users need it.

Thanks!

comment:10 Changed 11 years ago by jrswedlow

This from Alexia (email on May 13):

"I am still wondering why we can't do projections from our own computers, which do not usually have problems accessing Zeus. It will allow us to be more productive! I talked with Chris about that a long time ago (probably in November), but it doesn't seem to be a top priority. I know the programmers have a lot of work to do, but I really think that for users, this is a top priority..."

Let's set a date for this so users know what is going on; based on recent discussions, what about July 1? July 15?

comment:11 Changed 11 years ago by jburel

We can always set a date as long as we don't specify the year ;-)

More seriously, July 15 seems reasonable.
The more we wait, the more upset the users will become.

comment:12 Changed 11 years ago by jmoore

  • Cc jmoore added

comment:13 Changed 11 years ago by cxallan

  • Milestone changed from 3.0-Beta3 to 3.0-Beta3.1

comment:14 Changed 11 years ago by cxallan

  • Cc jason added

Initial implementation in r2588.

comment:15 Changed 11 years ago by cxallan

  • Cc carlos@… added

Full implementation including Blitz mappings, enumerations, services and full pixels set projections now available in r2752.

comment:16 Changed 11 years ago by cxallan

Fixed missing Blitz ServiceFactory method in r2755 and ensured that correct enumerations are used for the Blitz interface.

comment:17 Changed 11 years ago by cxallan

r2764 has now been tested with the RenderingEngine and IProjection interfaces from Blitz and JBoss, should now be feature complete.

comment:18 Changed 11 years ago by jburel

I have an image with 4 channels. Project only one channel (index 2)
The following error occurred:

java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
        at java.util.ArrayList.RangeCheck(ArrayList.java:546)
        at java.util.ArrayList.get(ArrayList.java:321)
        at org.hibernate.collection.PersistentList.get(PersistentList.java:271)
        at ome.model.core.Pixels.getChannel(Pixels.java:1174)
        at ome.services.projection.ProjectionBean.projectPixels(ProjectionBean.java:273)

comment:19 Changed 11 years ago by jburel

This time I select all the channels and I have the following error:

org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [ome.model.stats.StatsInfo]; nested exception is org.hibernate.exception.DataException: could not insert: [ome.model.stats.StatsInfo]
        at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:618)
        at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
        at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
        at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
        at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:886)
... more

Caused by: org.postgresql.util.PSQLException: ERROR: type "double precision" value out of range: underflow
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:307)
        at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
        at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
        at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)

comment:20 Changed 11 years ago by cxallan

r2782 should fix the channel index mismatch bug.

comment:21 Changed 11 years ago by cxallan

  • Resolution set to fixed
  • Status changed from assigned to closed

Completed and signed off from the above change sets.

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.110006 sec.)

We're Hiring!