ome / omero-scripts

Core OMERO Scripts
https://pypi.org/project/omero-scripts/
12 stars 32 forks source link

Make Movie script handles units for scalebar #94

Closed will-moore closed 9 years ago

will-moore commented 9 years ago

This fixes the Make Movie script to work with units changes.

All other scripts seem to have been fixed already.

To test, check that you can create a movie with a scalebar.

--no-rebase

pwalczysko commented 9 years ago

Error on Kymograph Script when Pixelsize is populated (entered "6")

WARNING:omero.gateway:ValueError on <class 'omero.gateway.OmeroGatewaySafeCallWrapper'> to <5bcfa3b0-6ceb-4987-a076-7a75d17f0a51omero.api.IUpdate> saveObject((object #0 (::omero::model::Pixels)
{
    _id = object #1 (::omero::RLong)
    {
        _val = 21001
    }
    _details = object #2 (::omero::model::Details)
    {
        _owner = object #3 (::omero::model::Experimenter)
        {
            _id = object #4 (::omero::RLong)
            {
                _val = 5
            }
            _details = <nil>
            _loaded = False
            _version = <nil>
            _groupExperimenterMapSeq = 
            {
            }
            _groupExperimenterMapLoaded = False
            _omeName = <nil>
            _firstName = <nil>
            _middleName = <nil>
            _lastName = <nil>
            _institution = <nil>
            _ldap = <nil>
            _email = <nil>
            _annotationLinksSeq = 
            {
            }
            _annotationLinksLoaded = False
            _annotationLinksCountPerOwner = 
            {
            }
        }
        _group = object #5 (::omero::model::ExperimenterGroup)
        {
            _id = object #6 (::omero::RLong)
            {
                _val = 8
            }
            _details = object #7 (::omero::model::Details)
            {
                _owner = <nil>
                _group = <nil>
                _creationEvent = <nil>
                _updateEvent = <nil>
                _permissions = object #8 (::omero::model::Permissions)
                {
                    _restrictions = 
                    {
                        [0] = False
                        [1] = True
                        [2] = True
                        [3] = True
                    }
                    _perm1 = -56
                }
                _externalInfo = <nil>
                _call = 
                {
                    key = omero.session.uuid
                    value = 53e73aaa-34d2-4f51-a007-50aa5bcc858c

                    key = omero.client.uuid
                    value = 5bcfa3b0-6ceb-4987-a076-7a75d17f0a51
                }
                _event = object #9 (::omero::sys::EventContext)
                {
                    shareId = -1
                    sessionId = 10768
                    sessionUuid = *********
                    userId = 5
                    userName = user-4
                    groupId = 8
                    groupName = read-only-1
                    isAdmin = False
                    eventId = -1
                    eventType = User
                    memberOfGroups = 
                    {
                        [0] = 8
                        [1] = 6
                        [2] = 1
                        [3] = 853
                    }
                    leaderOfGroups = 
                    {
                        [0] = 6
                        [1] = 853
                    }
                    groupPermissions = object #10 (::omero::model::Permissions)
                    {
                        _restrictions = 
                        {
                        }
                        _perm1 = -56
                    }
                }
            }
            _loaded = True
            _version = object #11 (::omero::RInt)
            {
                _val = 0
            }
            _name = object #12 (::omero::RString)
            {
                _val = read-only-1
            }
            _ldap = object #13 (::omero::RBool)
            {
                _val = False
            }
            _groupExperimenterMapSeq = 
            {
            }
            _groupExperimenterMapLoaded = False
            _config = 
            {
            }
            _annotationLinksSeq = 
            {
            }
            _annotationLinksLoaded = False
            _annotationLinksCountPerOwner = 
            {
            }
            _description = <nil>
        }
        _creationEvent = object #14 (::omero::model::Event)
        {
            _id = object #15 (::omero::RLong)
            {
                _val = 221069
            }
            _details = <nil>
            _loaded = False
            _status = <nil>
            _time = <nil>
            _experimenter = <nil>
            _experimenterGroup = <nil>
            _type = <nil>
            _containingEvent = <nil>
            _logsSeq = 
            {
            }
            _logsLoaded = False
            _session = <nil>
        }
        _updateEvent = object #16 (::omero::model::Event)
        {
            _id = object #17 (::omero::RLong)
            {
                _val = 221070
            }
            _details = <nil>
            _loaded = False
            _status = <nil>
            _time = <nil>
            _experimenter = <nil>
            _experimenterGroup = <nil>
            _type = <nil>
            _containingEvent = <nil>
            _logsSeq = 
            {
            }
            _logsLoaded = False
            _session = <nil>
        }
        _permissions = object #18 (::omero::model::Permissions)
        {
            _restrictions = 
            {
            }
            _perm1 = -56
        }
        _externalInfo = <nil>
        _call = 
        {
            key = omero.session.uuid
            value = 53e73aaa-34d2-4f51-a007-50aa5bcc858c

            key = omero.client.uuid
            value = 5bcfa3b0-6ceb-4987-a076-7a75d17f0a51
        }
        _event = object #19 (::omero::sys::EventContext)
        {
            shareId = -1
            sessionId = 10768
            sessionUuid = *********
            userId = 5
            userName = user-4
            groupId = 8
            groupName = read-only-1
            isAdmin = False
            eventId = -1
            eventType = User
            memberOfGroups = 
            {
                [0] = 8
                [1] = 6
                [2] = 1
                [3] = 853
            }
            leaderOfGroups = 
            {
                [0] = 6
                [1] = 853
            }
            groupPermissions = object #20 (::omero::model::Permissions)
            {
                _restrictions = 
                {
                }
                _perm1 = -56
            }
        }
    }
    _loaded = True
    _version = <object #11>
    _image = object #21 (::omero::model::Image)
    {
        _id = object #22 (::omero::RLong)
        {
            _val = 23201
        }
        _details = <nil>
        _loaded = False
        _version = <nil>
        _acquisitionDate = <nil>
        _archived = <nil>
        _partial = <nil>
        _format = <nil>
        _imagingEnvironment = <nil>
        _objectiveSettings = <nil>
        _instrument = <nil>
        _stageLabel = <nil>
        _experiment = <nil>
        _pixelsSeq = 
        {
        }
        _pixelsLoaded = False
        _wellSamplesSeq = 
        {
        }
        _wellSamplesLoaded = False
        _roisSeq = 
        {
        }
        _roisLoaded = False
        _datasetLinksSeq = 
        {
        }
        _datasetLinksLoaded = False
        _datasetLinksCountPerOwner = 
        {
        }
        _fileset = <nil>
        _annotationLinksSeq = 
        {
        }
        _annotationLinksLoaded = False
        _annotationLinksCountPerOwner = 
        {
        }
        _name = <nil>
        _description = <nil>
    }
    _relatedTo = <nil>
    _pixelsType = object #23 (::omero::model::PixelsType)
    {
        _id = object #24 (::omero::RLong)
        {
            _val = 5
        }
        _details = <nil>
        _loaded = False
        _value = <nil>
        _bitSize = <nil>
    }
    _significantBits = <nil>
    _sizeX = object #25 (::omero::RInt)
    {
        _val = 243
    }
    _sizeY = object #26 (::omero::RInt)
    {
        _val = 28
    }
    _sizeZ = object #27 (::omero::RInt)
    {
        _val = 1
    }
    _sizeC = object #28 (::omero::RInt)
    {
        _val = 1
    }
    _sizeT = object #29 (::omero::RInt)
    {
        _val = 1
    }
    _sha1 = object #30 (::omero::RString)
    {
        _val = e4a205fd627beb5030a152f0a24edde81915654f
    }
    _dimensionOrder = object #31 (::omero::model::DimensionOrder)
    {
        _id = object #32 (::omero::RLong)
        {
            _val = 1
        }
        _details = <nil>
        _loaded = False
        _value = <nil>
    }
    _physicalSizeX = <invalid value - expected ::omero::model::Length>
    _physicalSizeY = <nil>
    _physicalSizeZ = <nil>
    _waveStart = <nil>
    _waveIncrement = <nil>
    _timeIncrement = <nil>
    _methodology = <nil>
    _planeInfoSeq = 
    {
    }
    _planeInfoLoaded = False
    _pixelsFileMapsSeq = 
    {
    }
    _pixelsFileMapsLoaded = False
    _pixelsFileMapsCountPerOwner = 
    {
    }
    _channelsSeq = 
    {
    }
    _channelsLoaded = False
    _settingsSeq = 
    {
    }
    _settingsLoaded = False
    _thumbnailsSeq = 
    {
    }
    _thumbnailsLoaded = False
},), {})
Traceback (most recent call last):
  File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omero/gateway/__init__.py", line 4094, in __call__
    return self.f(*args, **kwargs)
  File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omero_api_IUpdate_ice.py", line 107, in saveObject
    return _M_omero.api.IUpdate._op_saveObject.invoke(self, ((obj, ), _ctx))
ValueError: invalid value for ::omero::model::Pixels member `_physicalSizeX'
Traceback (most recent call last):
  File "./script", line 538, in <module>
    newImages, message = processImages(conn, scriptParams)
  File "./script", line 466, in processImages
    conn.getUpdateService().saveObject(px)
  File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omero/gateway/__init__.py", line 4097, in __call__
    return self.handle_exception(e, *args, **kwargs)
  File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omero/gateway/__init__.py", line 4094, in __call__
    return self.f(*args, **kwargs)
  File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omero_api_IUpdate_ice.py", line 107, in saveObject
    return _M_omero.api.IUpdate._op_saveObject.invoke(self, ((obj, ), _ctx))
ValueError: invalid value for ::omero::model::Pixels member `_physicalSizeX'
pwalczysko commented 9 years ago

The calibrated values in the Kymograph analysis csv are empty:

kymograph csv not calibrated

pwalczysko commented 9 years ago

Bug: Movie ROI figure script throws error

Traceback (most recent call last):
  File "./script", line 846, in <module>
    runAsScript()
  File "./script", line 835, in runAsScript
    fileAnnotation, message = roiFigure(conn, commandArgs)
  File "./script", line 565, in roiFigure
    log("  Date: %s" % date.fromtimestamp(imageDate/1000))
TypeError: unsupported operand type(s) for /: 'datetime.datetime' and 'int'
pwalczysko commented 9 years ago

Bug: Split view Figure gives error

Traceback (most recent call last):
  File "./script", line 826, in <module>
    runAsScript()
  File "./script", line 815, in runAsScript
    [fileAnnotation, message] = splitViewFigure(conn, scriptParams)
  File "./script", line 563, in splitViewFigure
    log("  Date: %s" % date.fromtimestamp(imageDate/1000))
TypeError: unsupported operand type(s) for /: 'datetime.datetime' and 'int'
pwalczysko commented 9 years ago

Bug: ROI Split Figure - analogous error and workflow as https://github.com/ome/scripts/pull/94#issuecomment-66763468

pwalczysko commented 9 years ago

Bug: Make Movie throws error

[swscaler @ 0x2d369e0] BICUBIC scaler, from bgra to yuv420p using MMX2
[VD_FFMPEG] DRI failure.
pwalczysko commented 9 years ago

Bug: Movie Figure does not execute

pwalczysko commented 9 years ago

In summary: Bugs:

will-moore commented 9 years ago

@pwalczysko As long at the "Make Movie" creates a movie OK, then I think we can ignore the error output. That is just mencoder printing something to stderr which we then pick up as error. Other issues have been addressed above.

gusferguson commented 9 years ago

@will-moore Tested using OMERO.insight-5.1.0-m3-59-c29ae39-ice35-b364-mac trout user-3 read-only-1

Make Movie script: Using Image ID: 9461 /home/hudson/for_import_to_howe/archived-imoprt-case/user-3/read-only-1/Project-user-3/archivedv/CFPNEAT01_R3D.dv.log Movie created and scale bar present. Using Image ID: 21612 multi-channel-z-series.ome.tif Movie created but no scale bar present. See screenshot 1.

Is this because of lack of metadata in the second image?

Retesting Petr’s bug summary:

kymograph 1 (error) #94 (comment)

kymograph 2 (missing calibrated values in csv) #94 (comment)

Movie ROI Figure (error) #94 (comment)

Split View Figure (error) #94 (comment)

ROI Split Figure (error) #94 (comment)

Make Movie (error) #94 (comment)

Movie Figure (no execution) #94 (comment)

A lot improved but still some issues.

quicktime player

will-moore commented 9 years ago

The Kymograph analysis script needs to run on the output image from the Kymograph script after drawing a diagonal line(s) on it. E.g. http://trout.openmicroscopy.org/merge/webclient/?show=image-23463 now generates a valid csv file with that script.

I've fixed the TypeError: unsupported operand type(s) for /: 'datetime.datetime' and 'int' and display of Scalebar in Movie_Figure. I've updated this script on trout and it seems to be fine:

screen shot 2014-12-18 at 11 26 24

gusferguson commented 9 years ago

@will-moore Tested using http://trout.openmicroscopy.org/merge/webclient/ and OMERO.insight-5.1.0-m3-87-35e2530-ice35-b365-mac user-3 read-only-1 image-23463

Kymograph analysis works on image as above - Calibrated values are showing up in csv. See screenshot.

Movie Figure - works as expected, Scalar appears on final thumbnail. No error seen in information log.

kymograph_velocities_23463 csv

jburel commented 9 years ago

It will probably be necessary to adjust the scale bar to the units used. It is still in microns. This can be done in a follow-up PR Also noticed on make_movie.figure that colour is used instead of color

jburel commented 9 years ago

@gusferguson: Ok to merge?

gusferguson commented 9 years ago

@jburel Fine by me if the little things are noted to be done at another stage.

jburel commented 9 years ago

Other points to be addressed in another PR. Merging