Giter VIP home page Giter VIP logo

omero-figure's Introduction

Image.sc forum

OMERO.figure

An OMERO.web app for creating figures from images in OMERO.

For full details see SUPPORT.md.

Requirements

  • OMERO.web 5.6.0 or newer.

Installing from PyPI

This section assumes that an OMERO.web is already installed.

Install the app using pip:

NB: You need to ensure that you are running pip from the python environment where omero-web is installed. Depending on your install, you may need to call pip with, for example: /path/to_web_venv/venv/bin/pip install ...

$ pip install -U omero-figure

Add figure custom app to your installed web apps:

$ omero config append omero.web.apps '"omero_figure"'

Display a link to 'Figure' at the top of the webclient:

$ omero config append omero.web.ui.top_links '["Figure", "figure_index",
  {"title": "Open Figure in new tab", "target": "_blank"}]'

Add 'Figure' to the 'Open with' options, available from context menu on the webclient tree:

$ omero config append omero.web.open_with '["omero_figure", "new_figure",
  {"supported_objects":["images"], "target": "_blank", "label": "OMERO.figure"}]'

Now restart OMERO.web as normal.

Enabling figure export

This section assumes that an OMERO.server is already installed.

Figures can be exported as PDF or TIFF files using a script that runs on the OMERO.server. This script needs to be uploaded to the OMERO.server and its dependencies installed in the OMERO.server virtual environment.

The script can be uploaded using two alternative workflows, both of which require you to have the correct admin privileges. To find where OMERO.figure has been installed using pip, run:

$ pip show omero-figure

The command will display the absolute path to the directory where the application is installed e.g. ~/<virtualenv_name>/lib/python3.6/site-packages. Go to that directory.

Option 1: Connect to the OMERO server and upload the script via the CLI. It is important to be in the correct directory when uploading so that the script is uploaded with the full path: omero/figure_scripts/Figure_To_Pdf.py:

$ cd omero_figure/scripts
$ omero script upload omero/figure_scripts/Figure_To_Pdf.py --official

Option 2: Alternatively, before starting the OMERO.server, copy the script from the figure install /omero_figure/scripts/omero/figure_scripts/Figure_To_Pdf.py to the OMERO.server path/to/OMERO.server/lib/scripts/omero/figure_scripts. Then restart the OMERO.server.

Option 3: Upload the script through the OMERO web interface: For this, log into your OMERO web interface as admin, select the scripts icon and click on the "Upload Script" button. Select the Figure_To_Pdf.py script from the directory where you copied it to locally and upload it into the directory omero/figure_scripts.

Now install the script's dependencies:

  • Install reportlab PDF python package. This needs to be installed in the virtual environment where the OMERO.server is installed. Depending on your install, you may need to call pip with, for example: /path/to_server_venv/venv/bin/pip install ...
$ pip install "reportlab<3.6"
  • Optional: Figure legends can be formatted using Markdown syntax. To see this correctly in the exported PDF info page, we need Python Markdown:
$ pip install markdown

Upgrading OMERO.figure

After upgrading OMERO.figure with:

$ pip install -U omero-figure

You need to update the Figure export script using one of the 2 options described above. If using Option 1, you need to replace the existing script:

# Get the ID of the existing Figure_To_Pdf script:
$ omero script list

# Replace the script
$ cd omero_figure/scripts
$ omero script replace <SCRIPT_ID> omero/figure_scripts/Figure_To_Pdf.py

Development

We use vite.js to build and serve the app during development.

Install Node from https://nodejs.org, then:

$ cd omero-figure
$ npm install

To serve the app at http://localhost:8080/ using the vite dev server (this will automatically refresh the page when changes are saved):

$ npm run start

If you are editing the Shape-Editor code, you can view the test page at http://localhost:8080/shapeEditorTest.html

CORS

During development, we load and save figure files to an omero-web server. You will need to have CORS enabled on your local omero-web server at http://localhost:4080/ and be logged in already. This URL can be edited in src/index.html.

You MUST access the figure app at http://localhost:8080/ (NOT http://127.0.0.1:8080/) for CORS to work.

NB: in general, POST actions such as saving of figure files or exporting figures doesn't yet work with the dev server. To test these actions, build the app as described below:

Build

To build the app:

$ npm run build

This compiles index.html and other static assets into correct locations to be served by the Django omero-web server.

To serve this on a local omero-web, set config as above and install with:

$ pip install -e .

In order to build whenever changes are saved within the src/ directory:

$ npm run watch

Release process

This repository uses bump2version to manage version numbers. To tag a release run:

$ bumpversion release

This will remove the .dev0 suffix from the current version, commit, and tag the release.

To switch back to a development version run:

$ bumpversion --no-tag [major|minor|patch]

specifying major, minor or patch depending on whether the development branch will be a major, minor or patch release. This will also add the .dev0 suffix.

Remember to git push all commits and tags.

License

OMERO.figure is released under the AGPL.

Copyright

2016-2024, The Open Microscopy Environment

omero-figure's People

Contributors

atarkowska avatar carandraug avatar dependabot[bot] avatar dominikl avatar emilroz avatar gouttegd avatar jburel avatar jo-mueller avatar joshmoore avatar julianhn avatar knabar avatar manics avatar pwalczysko avatar rdornier avatar sbesson avatar tom-tbt avatar will-moore avatar yjarosz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

omero-figure's Issues

Problem with PDF export

Dear Will,

In the export, there is a problem depending on which PDF reader you use.

For instance, when using SumatraPDF (very popular) the text layers are there but in black, whereas in Adobe, they are in the correct colors.

What could be the issue here?

problem

No labels in channel sliders

Several people in our lab have let me know that it's difficult to visually correspond the channels in the #channel_sliders div with the channels in the main Webclient. They suggested adding named labels for each channel. @jaycopeland let me know that this has been discussed, but there are concerns over space-constraints. Here is the solution I've hacked together (in a very temporary way):

screen shot 2018-06-15 at 3 55 24 pm

The text is partially occluded depending on the position of the sliders, but that seems like a minor issue compared to the utility of this feature. @will-moore if this is an approach you'd like to take, I'd be interested in working towards implementing this in a proper pull request.

Trouble installing omero_figure to web.apps (version 5.3.0-ice36-b59)

Hi,

I'm trying to install omero_figure on a server ( version 5.3.0-ice36-b59)
It already provides the OMERO.web front end just fine.

As the omero user I did the "pip install omero-figure", which worked,
but when I try to add the new application to the menus I get:

~$ bin/omero config append omero.web.apps '"omero_figure"'
Cannot retrieve default value for property omero.web.apps

I'm I missing something?
Any help would be highly appreciated.

Thanks
Andreas

Scalebar not showing

See figure 33236 on demo server.

20th May: "There seems to be a bug with the scale bar in OMERO.figure (everything else is working OK). When I click "Show" the web page reloads, and no scale bar appears, although the "Show" button is replaced with "Hide". What's odd is that this feature was working correctly when I demo'd it for my group ~3 weeks ago, before the upgrade."

21st May: Screenshots showing that on click of "Show", the "Leave page?" dialog box is shown. If click 'Leave Page' then the "Hide" button is shown for this panel after reload.

Urls update like:

.../file/33236
.../file/33236/
.../file/33236/?

RFE: Layout Grid

An optional grid (think graph paper) that does not go into exported PDFs just to be used to align things.

Snap-to-grid drag-n-drop is also a coveted feature.

Italics for Labels

Hi,
I am trying to use Figure with some images of RNA FISH and need to be able to label the RNAs in italics on the images as this is the convention in Drosophila and other organisms. I can use Markdown to get italics in the Figure legend (as suggested on the Trello card) but I can't get it to work in the label. Is it also possible to get italics in the label itself or would these labels have to be added afterwards?
Thanks,
Tamsin (Davis Lab)

Right Click To Move

It is probably not intended that when right clicking on an image, the image then moves while the context menu is open when moving the mouse. I assume probably that right click should just exhibit ordinary web context menu and nothing else.

How to develop this plugin with remote server?

For development with a remote Omero server, I'm setting chrome to make redirects like this:

from
http://localhost:8000/demo/%7B%%20url%20'webgatewayopen_with/
to
https://omero.hms.harvard.edu/webgateway/open_with/?_=1234567891234

from
http://localhost:8000/demo/%7B%%20url%20'webgatewa/render_image/548111/0/0/?
to
https://omero.hms.harvard.edu/figure/render_scaled_region/548111/0/0/?&region=-8160,-16416,48960,48960&

To my surprise, this works. Is there a proper way to configure a plugin like figure to use an external server?

RFE: improved search for figures

Our users are starting to use figure a lot. With an increased in the number of figures, comes an organization issue because it's hard to find the figure they want. Example, consider the following 5 figure names:

  • sggmRNA_sgg_NMJ_Nerve_single plane
  • sggmRNA_sgg_s5_NMJ_single planes
  • sgg_sggprobes_NMJ_zoom
  • sgg_sggprobes_NMJ_zoom
  • sgg_Rab11_Venus_NMJ_zoom

None of them will be listed by searching for "sgg NMJ". Only one will using "sgg_NMJ". Again, none will show up with "NMJ_sgg".

I understand that the search is done in the name, I'm just arguing that a name is not enough. This becomes worse when all the figures are at the same level, there's no filesystem-like hierarchy (but I would prefer a tag system to a hierarchic organization).

In OMERO it's possible to tag images and datasets. Something like that would be pretty sweet.

Prevent slight movement on selection

When selecting an image I notice that if I have any cursor velocity at all, the image will move a tiny amount. I'm not sure how programs generally handle this, perhaps only move after a sustained period of holding down left-click?

failure to handle panels with null values for dx and dy

We have a figure where one of the panels has a dx and dy value of
null. This makes FigureExport.build_figure method to fail like so:

  File "Figure_To_Pdf.py", line 801, in build_figure
    self.add_panels_to_page(panels_json, image_ids, page)
  File "Figure_To_Pdf.py", line 1586, in add_panels_to_page
    image, pil_img = self.draw_panel(panel, page, i)
  File "Figure_To_Pdf.py", line 1408, in draw_panel
    pil_img = self.get_panel_image(image, panel, orig_name)
  File "Figure_To_Pdf.py", line 1326, in get_panel_image
    cx += dx
TypeError: unsupported operand type(s) for +=: 'long' and 'NoneType'

Seems it goes like this:

  1. panels have a dx and dy value of null
  2. python's json module converts those values to None
  3. those values are accessed internally like panel.get('dx', DEFAULT_OFFSET)
  4. because those keys do exist in the key, the DEFAULT_OFFSET is never used

I'm using the Figure_To_Pdf script like so:

from Figure_To_Pdf import FigureExport
ann = conn.getObject("FileAnnotation", id)
json = "".join(ann.getFileInChunks())
script_params = {
    'Figure_JSON' : json,
    'Webclient_URI': 'https://omero1.bioch.ox.ac.uk/webclient/',
    'Export_Option' : 'PDF',
}
fig_export = FigureExport(conn, script_params, export_images=False)
fig_export.build_figure()

A possible solution would be to have json.loads ignore values with a
null value (possible via the object_hook argument).

For what is worth:

  • this seems to only happen when using the script programatically.
    When using the 'Export PDF' button on the omero figure application
    it works. I'm guessing something else on the GUI is fixing the
    nulls. That something else is also doing it when choosing the
    'File > Export as JSON' menu. So maybe that thing could be in the
    omero_figure package?

  • I'm not sure how this image ended up with a null value there. We
    had a list of 350 figures to convert, and only one of them had this
    issue. So maybe this is not an issue on reading the JSON, but on
    how that JSON got generated in first place.

[feature request] time option for "add image" with time lapse

It would be very useful to have a way to add one image several times (showing different frames, and aligned on a row / column) for time lapse datasets. A syntax like ID:start:end:by might do the job; one might want to distinguish between column and row alignement (using a different separator? or an optional argument? or give a matrix dimension?).
Thinking about it, it might be easier to have dedicated dialog to select the frames and set the layout (in which case there would be a "add series" button next to the "add image" one). This could extended to handle any dimension of the dataset (channels, slice, time)…
Does this makes sense?

Bug: NoneType on getPrimaryPixels

15:07 ERROR: demo OMEROweb_request:
2015-07-03 14:07:22,265 ERROR [                          django.request] (proc.24409) handle_uncaught_exception:226 Internal Server Error: /figure/imgData/52/
Traceback (most recent call last):
  File "/home/demo/OMERO.server-5.1.2-ice35-b45/lib/python/django/core/handlers/base.py", line 114, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/demo/OMERO.server-5.1.2-ice35-b45/lib/python/omeroweb/decorators.py", line 471, in wrapped
    retval = f(request, *args, **kwargs)
  File "/home/demo/web-extensions/figure/views.py", line 118, in imgData_json
    px = image.getPrimaryPixels().getPhysicalSizeX()
AttributeError: 'NoneType' object has no attribute 'getPrimaryPixels'

automatically add tags as panel labels

Is there a plan in the works to have tags available in the same way [channels] etc are currently? I think it would be useful for fast consistent annotation.

RFE: Reset to original rendering settings

Generally useful I think, but particularly I noticed it when replacing one of the images in my figure and realising that the view was then totally unsuitable for the new image.

Manually run script from JSON

From @dpwrussell:
I noticed that when I pasted the JSON from figure into the JSON text entry in the script for generating PDFs, then I got this error:

Traceback (most recent call last):
  File "./script", line 633, in <module>
    runScript()
  File "./script", line 620, in runScript
    fileAnnotation = create_pdf(conn, scriptParams)
  File "./script", line 547, in create_pdf
    addInfoPage(conn, scriptParams, c, panels_json, figureName)
  File "./script", line 490, in addInfoPage
    c.save()
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfgen/canvas.py", line 1215, in save
    self._doc.SaveToFile(self._filename, self)
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 219, in SaveToFile
    data = self.GetPDFData(canvas)
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 244, in GetPDFData
    return self.format()
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 424, in format
    IOf = IO.format(self)
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 869, in format
    fcontent = format(self.content, document, toplevel=1)   # yes this is at top level
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 80, in format
    f = element.format(document)
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 1600, in format
    return D.format(document)
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 676, in format
    L = [(format(PDFName(k),document)+b" "+format(dict[k],document)) for k in keys]
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 80, in format
    f = element.format(document)
  File "/usr/local/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 1776, in format
    if f is None: raise ValueError("format not resolved %s" % self.name)
ValueError: format not resolved None?show=image-2

It works fine when I run export-pdf from figure though.

Bug: Scale bar inside top/bottom right is is partially outside image

Hi,

Using figure 1.2.1 in OMERO 5.2.3:

When adding a scalebar to be 'inside' top-right, or bottom-right, and changing the font size, the scalebar moves outside the image.

The scalebar should move towards the centre of the image when it's increased in size, rather than it being clipped and leaving the image.

Perhaps a separate issue, but it seems once I've chosen to place the scalebar inside the image, not outside the image, it's no longer possible to place it outside again. The only choices are which corner.

screenshot 2016-05-25 18 55 43

method to build figure without creating file annotation on the server

The Figure_To_Pdf.py script could be used by a client to generate PDF or TIFF from the figure json like so:

script_params = {
    'Figure_JSON' : figure_json,
    'Export_Option' : 'TIFF',
    'Webclient_URI': 'https://omero1.bioch.ox.ac.uk/webclient/',
}
fig_export = TiffExport(conn, script_params, export_images=False)
fig_export.build_figure()

However, this method ends by uploading the built figure as a file annotation to the omero server. Would it be possible to have a method that only does the building of the figure?

Change colors of channels

Some users wanted to change the color of the channels.

The pre-defined colors are the standard but offer very little flexibility in terms of coloring.

Perhaps a color picker like in OMERO view figure could be used?

If image name contains non-ASCII characters, saving and generating PDF fails

Example: Image name LymphknotenNonParametric_4µ-pixel_spacing.dcm

Traceback:
File "/Users/andreas/omero/openmicroscopy/dist/lib/python/django/core/handlers/base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/andreas/omero/openmicroscopy/dist/lib/python/omeroweb/decorators.py" in wrapped
  440.             retval = f(request, *args, **kwargs)
File "/Users/andreas/omero/figure/views.py" in save_web_figure
  162.     figureJSON = str(figureJSON)

Exception Type: UnicodeEncodeError at /figure/save_web_figure/
Exception Value: 'ascii' codec can't encode character u'\xb5' in position 70: ordinal not in range(128)

RFE: Pixel Measurements

Exact measurements for both formatting and display that show the pixel area represented by an image viewport. E.g. If I had 2 same sized viewports on the same image but one was much more zoomed in that the other, the pixel measurements on that one would be less.

use of `Export_Option` in FigureExport

This is not a big issue, it's only the redudancy on the client that has to do:

TiffExport(conn, {'Export_Option' : 'TIFF', ...}, ...)

The option Export_Option in the Figure_To_Pdfscript is used to create a FigureExport or TiffExport object. It is then used again in FigureExport.build_figure to decide whether to create a zip file (it will create a zip file if exporting to a tiff file and there's multiple pages). However, that information is already in whether this is a TiffExport object. Having a class property like 'supports_multipage_per_file' would avoid that redudancy (although the TIFF does support multiple pages per file).

Export as movie

When we have time-lapse images in a figure, the figure itself could be exported as a movie, with all the included images playing simultaneously.
This would allow users to compose a specific layout for a movie just as they can do for a figure.
Time-stamp labels should probably show delta-T from start of movie.
Time offset of individual movies with respect to one-another will be preserved.
Possible export option would allow to choose start/end of the time-course.
Export options could be presented in a dialog box when user chooses export as movie.

Probably need to support "crop page to panels" first

figure version

Once we moved figure to become PyPi package I removed logic to read figure version from package.json. That's because package.json is not a part of the app and won't be included. I provided a workaround to read the version from resources like:

OMERO_FIGURE_VERSION = pkg_resources.require("omero-figure")[0].version

but I wasn;t sure if that is the best solution.

At the moment Figure version is in 2 places:

Would be nice to unify that.

cc @jburel

RFE: Histogram

Not strictly a Figure issue as everyone would love to see it in the clients as well, but it was mentioned so recording it here.

Basically everyone wants what softWoRx offers with regards to the histogram.

Change background color of canvas

Will,

It would be great if we could use the current color wheel to set the background color of the Canvas.

Indeed, sometimes it is preferable to have a black background for instance instead of white.

What say you?

Image is too big for OMERO.figure

We've recently run into an issue (figure 3.2.1 on a 5.4.5-ice36-b83 server) with tiled images that cannot be imported into OMERO.figure and give the error "Image '{NAME}' is too big for OMERO.figure.

toobig

One image in question is 8460 x 8460 pixels of 16bit data and 4 channels. I can't find any documentation about a file size limit other than issue 37 which led me to try a larger paper size. Going up to A0 still gives the same error.

The only workaround I've found is to downsample the images and keep a high-res for analysis and low res for figure, but this seems a bit perverse.

RFE: Pixel size on crop tool

From Sandra:
Needs the pixel size for the selection frame when cropping
Wants to be able to see the size and whether square etc. when cropping an image so can do same size-shaped crop on another image to enable comparison.

OMERO Meeting Topics

Hello,

The Davis lab have been trialling OMERO figure and have come up with a list of comments / queries that I hope we can discuss at the meeting:

  • can you use Gamma as well as max min with contrasting images in figure?
  • can you “copy and paste” contrasting settings between images in figure or type in specific contrast values so different images get the same contrast?
  • Could there be both max and average projection options for Z-stacks?
  • As well as rotate could there also be flip (or mirror) horizontal and vertical?
  • When you add images to a figure the most recent image can sit “on top” of another image as an overlay. Is there a way of doing this so you can get multiple image insertson figure independent of the order they were added (Layers)?
  • Is there a way of adding arbitrarily placed characters e.g. N for nucleus the same way you can add an arrow anywhere, or even an arbitrary txt box - e.g. for making posters?
  • Can you copy multiple image ID's at once from OMERO to paste into OMERO figure?

Many thanks

Josh

RFE (version : Version: v1.0.0-rc1)

  1. Tool tips for icons in the preview pane.
  2. Demo figure : Show in webclient could point at the JCB figure.
  3. Import as : (paste from local backup of the figure). --> Kinda acts like a template object and helps in omero independent archiving.
  4. Delete attachment (throw a pop-up with a warning message "this is an omero figure , and deleting this would delete the figure permanently".
  5. Maximum Intensity projection : Default option normally would be zmin to zmax. Explain the use of the two sliders via a tooltip?

Minor Bug :
Thumbnails not showing the "Edit ID" window.

RFE: Organisational Structure for Saved Figures

I can't stress enough how important this is. Everyone I showed it to immediately asked for this.

If the users embrace this they will quickly gather a huge number of saved Figures that need to be categorisable and browseable. They want to be able to have stuff like: Paper->Experiment->Figure1 etc, etc.

RFE: Modifier to restrict movement to X OR Y

It is very useful when working with something that should end up perfectly lined up to be able to move objects along one axis while locking the other.

For example, if I have four images in a square and wish to move the bottom two down a bit, it would be good to be able to hold down a modifier key while moving them so that they moved in the y axis only, x being locked.

Mirror images.

Rotation is very nice but for consistency sometimes you need to mirror an image (eg to get all images in the same orientation). Can you add a mirror function, combined with rotation this allows all possible orientations.

Feedback Link to GitHub Issues

At this early stage it would probably be a good idea to have a feedback link straight to GitHub issues on the main bar. Honestly, if it takes more than 1 click to get to the place to give feedback, most users will not ever get there.

Silent error when image is bigger than page size

Hi,

While fiddling with the allowed image size, we noticed that if the image is very big, the panel which holds the image in the figure gets created but not populated. The image successfully loads in the Preview, but not in the figure view.

Looking at the console, there are some JS errors coming from raphael.js having to do with negative coordinates on x-y system.

This bug is in principle not an issue when the pixel size is restricted to 5000x5000 but if this setting was arbitrary, there might still be a bug to be fixed here.

Bug: TypeError: unsupported operand type(s) for +=: 'long' and 'NoneType'

Figure 1.2.1, server "OME OMERO demo server"

I managed to come across the following error while trying to export a figure I made with a few images and a bundle of ROIs drawn on the images.

I can't replicate the error, but perhaps there's a range check or something which needs to be handled?

/usr/lib64/python2.6/site-packages/reportlab/lib/utils.py:653: DeprecationWarning: tostring() is deprecated. Please call tobytes() instead.
  self._data = im.tostring()
Traceback (most recent call last):
  File "./script", line 1716, in <module>
    runScript()
  File "./script", line 1703, in runScript
    fileAnnotation = export_figure(conn, scriptParams)
  File "./script", line 1660, in export_figure
    return figExport.buildFigure()
  File "./script", line 688, in buildFigure
    self.add_panels_to_page(panels_json, imageIds, page)
  File "./script", line 1343, in add_panels_to_page
    image, pilImg = self.drawPanel(panel, page, i)
  File "./script", line 1160, in drawPanel
    pilImg = self.getPanelImage(image, panel, origName)
  File "./script", line 1080, in getPanelImage
    cx += dx
TypeError: unsupported operand type(s) for +=: 'long' and 'NoneType'

figure group permissions are not obvious

Figures belong to both a user and a group. The first is pretty obvious and when searching for existing figures, one can filter by user. However, figure group permissions are never referred on the GUI. Since a user can belong to multiple groups, it's not obvious to the user which group his figures are.

The problem we just had were two users that belong to different primary groups and a same secondary group. They wanted to share figures with images from this secondary group. Because they were not aware of group permissions for figures, some of them ended up on their primary group and so were invisible to the other user.

The GUI should make some reference to the group a figure is in. I would guess a 'Move to group' button on the 'File' menu may also be useful.

Exporting multiple pages to PDF will only include the first page

Hi,

first of all: Thank you for this very useful plugin, it's one of the things our users like most about working with OMERO.

Now the bug report: Exporting multiple pages to PDF at our system with the latest OMERO.figure from GIT (2012-12-15) will only include the first page. Is this only us or is this functionality missing?

As a side node: The ability to add a label to the scale bar is quire crucial for our users to really adopt the plugin.

Thanks,

Tris

Bug: Length of scale bar in exported PDF/TIFF

Scale bars are displayed the correct length in the web UI, but in the exported file they are too long, apparently by a factor of 300/72, i.e. there might be an extra or missing call to scale_to_export_dpi.

screen shot 2018-07-09 at 13 56 25

Left is web UI, right is exported file.

min max range issue

Hi,

I am working with some of my users whom are using Figure. We are importing '.dv' files into figure and then doing maximum projection. We have found that by adjusting the min/max brightness settings in the OMERO.web client these settings are imported to Figure. This is good as it means we can have the same range in each image when we import each to Figure. We have found that by shift-clicking all the images within Figure, we can globally tune the min/max settings, but we have noticed a bug. When we move the max bar, the range we set in OMERO.web is lost and it defaults to the max image intensity level. This results in a loss of synchronisation between the grouped images and chaotic min/max control if the images have different max levels. We can work around this by just controlling all brightness settings in OMERO.web and then importing, but it is partly the power of OMERO.web to do this within this software package. Can you advise about this and potentially fix the issue. It would be best if in Figure it did not default to the max intensity of the image but retained the preset imported from OMERO.web.

Best,
Dominic

Resize images to match magnification/dpi.

I have 3 data sets that I wish to compare, they are from different systems with different pixel sizes. I am able to label them all with scales bars (of the right scale!) and have the same viewport size is pixels (eg 200x200) , al of this is brilliant. My question is can I make them all have the same effective magnification. eg the one with 10 nm pixels needs to be 4 times smaller than the one with 40 nm pixels.

Thanks, Ian

Batch download of .pdfs from Figure

What is the best way to download several Omero.Figure files from the webclient?

-Would like to retrieve them by their given file name rather than the file id number.
-Download a single zip containing multiple PDFs
-Script can be run from webclient / commandline/ or client-side python, whichever is easiest

Many thanks,
J

package.json metadata is out of date.

$ git diff package.json
diff --git a/package.json b/package.json
index ca8e65a..2293118 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "figure",
-  "version": "1.0.0-beta1",
+  "version": "1.1.1",
   "description": "OMERO figure creation app",
   "main": "index.js",
   "scripts": {
@@ -8,7 +8,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "git://github.com/will-moore/figure.git"
+    "url": "git://github.com/ome/figure.git"
   },
   "keywords": [
     "backbone",
@@ -18,7 +18,7 @@
   "author": "William Moore",
   "license": "GPL",
   "bugs": {
-    "url": "https://github.com/will-moore/figure/issues"
+    "url": "https://github.com/ome/figure/issues"

would be good if the release process could include an auto-bump.

Units symbol support

When we import an image from OMERO 5.1, display the units 'symbol' in the scalebar form and label (and save units enumeration, E.g. "MICROM"?).

Later we may want to allow users to choose the units of a scalebar. E.g. if an EM image has been imported with microns, you may want to show a scalebar in Angstroms etc. Will need conversion methods available somehow.

Add possibility to draw shapes

Will,

Our uses would love to have the possibility to place arrows, or other shapes, but mostly arrows on their Figure.

That way it would reduce the necessity to do this in another program later on.

What do you think?

Linked to that, our group here sometimes draws a box around the panel labels so that it looks more "straight". Having the possibility for shapes would allow to both annotate the panels and their labels nicely.

Removing labels or changing colors does not always work

Hi,

I have used the [image-name] to automatically add a label to an image and as you can see it has weird characters, especially the double quotes.

However, once it is added, the label cannot be deleted, or the color changed.

I guess it has something to do with the "".

Best,
problem

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.