Amira

From NoskeWiki
Revision as of 01:02, 6 February 2019 by NoskeWiki (talk | contribs) (Created page with "==About== 300px|right|thumb|Amira interface showing a volume render (blue) and isosurface with clipping (orange) <b>Amira</b> is a commercial pr...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

About

Amira interface showing a volume render (blue) and isosurface with clipping (orange)

Amira is a commercial program for scientific visualization, processing, and analysis of 3D and 4D image and model data. It works on Windows (32 or 64 bit), Mac (32 bit only though) and Linux, and features a free 15 day trial, but a full license can cost in the vicinity of $4,000 USD with a fairly nasty pricing structure and over $800/year support (2009). As such, it's not a program many individuals or small labs have access to, but if you do have access, it does feature some pretty nice options for thresholding, volume rendering, filament tracking and generating movies.

I haven't personally used Amira a heap, but here I've collected some good videos and what few tricks I do know in Amira.


Tutorials (the fastest way to learn Amira)

The quickest way to get used to Amira is to install it and then work through its online tutorials. To access these tutorials click the menubar: Help >> User's Guide [F1] >> Tutorials (the second link down). You can also find these same tutorials in Chapter 2 in the Amira User's Guide (~page 15).


The Amira interface is relatively easy to use, but does take getting use to. Amira pretty unique in the way you open files and must build little colorful flowcharts called "networks" in order to visualize and "do stuff" with the data. Networks are saved as ".hx" files, and once you get used to it, they're actually pretty cool.


Common Tasks in Amira

Opening a 3D Image

One of the most common things to do in Amira is volume rendering and iso-surfacing of 3D data. To do either of these you must first start Amira then click "File >> Open Data... and locate your 3D image volume. For 3D images, Amira supports MRC files, 3D TIFF, DICOM, sets of 2D JPEG files and several other types. Once you have added data, it shows up as a green box in the "Pool" panel, but nothing will appear in the view window at this stage. To see the data you must select the green box and click one of the options above it. I suggest starting with a BoundingBox, to see an outline around your data, and then click OrthoSlice to see a single slice (note: if you click this again, you can see multiple slices at once). When you select the OrthoSlice you can change the slice number and several other properties in the Properties panel below. To show and hide these objects you can click the orange square. For even more options, click the right arrow on your green dataset object.


Iso-surface and Volume Rendering

Select your (green) image data in the Pool then click the right arrow and select Display >> Isosurface to add an isosurface, or Display >> Volren to see a volume rendering of your data. What I like is that you can change the threshold interactively (actually for isosurface you have to hit "Apply", but it's very fast), and apply nice color gradients to visualize 3D data nicely with minimum effort.


Creating and Exporting a Movie in Amira

Amira interface for movie making with the "DemoDirector" timeline in the bottom left

The interface for creating movies in Amira was significantly changed and improved in version 5.3 with a proper timeline / "DemoDirector" which shows all the different properties you are animation on a single timeline. Prior to 5.3 animations were a lot messier but the "CameraPath" feature still leaves much to be desired as it tends to produce very "jumpy" movies between keyframes. The best way to learn how to create a movies is the Amira tutorials called "2.11 Creating animated demonstrations with DemoMaker and DemoDirector" and "2.12 Creating movie files". Just quickly, the main steps are:

  • To animate objects:
    • Setup a dataset to display something
    • Click: Create >> Animation/Demo >> DemoMaker
    • Open the "DemoDirector" tab on the console window to display the timeline.
      • Note: if you can't see the console make sure View >> Console is ticked
    • Click "New event.." in the DemoDirector window and select what you want to animate.
      • Some examples of what you can animate: the (on/off) visibility and/or transparency of most objects, a ortho slice's number, rotation of a camera, and most other object properties.
    • Use the play control to preview the movie.
  • To move the camera / rotate the scene:
    • Click: Create >> CameraRotate or CameraPath and set its properties.
      • Note: for camera path you must click the little "Camera Path Editor" icon in the properties window, then zoom/rotate your normal window and click "add" to add keyframes.
    • In the DemoDirector add an event for your CameraRotate and stretch it over the desired frames.
  • To add "breaks" and "loops":
    • Click "new event" then select the top most options:
      • "Break, continue on keystroke [F4]" - inserts a "pause" where you must press [F4] to continue
      • "Go-to, jump to user specified time" - allows you to drag an arrow which will jump the movie forward or back to a loop point
  • To export your movie as a movie file:
    • Select your DemoMaker, then click the red "MovieMaker" button at the top.
    • Chose a movie file format and filename and then click the green "Apply" button to export the movie
      • NOTE: For better quality rendering you'll probably want to select "AntiAlias3", and you'll probably also want to set size to "Custom" if you have a particular resolution in X and Y you want your movie.
      • NOTE: If you're a fan of 3D glasses, notice they have some options for stereo viewing where it says "type".


Clipping

If you find there's too much data on screen or you wish to see inside a structure you may want to use clipping planes. Make sure you have at least one 3D image or surface added, then click: "Create >> Clipping Plane" and you'll see it appear as an orange box. Now click the little white square on the orange box, select "Data" and drag the line up to connect it to the (green) data object you wish to clip. At first nothing will happen, but if you select the ClippingPlane and click the little square "Clip" icon, it will toggle the clip between clipping above, below and clipping off. Notice you can change the translation, orientation (xy, xz, yz) and if you click rotate a handler appear in the 3D Viewing window that lets you change the angle. Notice that you can add multiple clipping planes to one object, and even animate then to move or turn on and off.

Note: in addition to the "ClippingPlane" object you can use the "OrthoSlice" or in fact any orange colored object connected to a green data object as a clipping plane.


Segmenting / Filament Tracking in Amira

Amira has four main buttons at the top left which represent four different modes:

  1. Object pool - the default mode where you create networks
  2. Filament editor - a pretty cool mode where you can track and create a "graph" of branching fibers though a combination of automatic detection and manual correction/tracking.
  3. Segmentation editor - where you can segmented a volume in 3D using a paint tool.
  4. Muti-Planular Viewer - shows a 4 port viewport where you can see and scroll slices along each axis.

The filament editor is actually very cool in that it has features to highlight and even find loops in different parts of the graph. The segmentation editor I'm not a big fan of however! Before using the segmentation editor you have to add your dataset, then click the right arrow (in the object pool) then "Labelling >> LabelField". The ability to paint in a 4 port window is cool, but I found it way slower than using something like IMOD to segment 3D volume. There's an interpolation feature, but this rarely seems to work. For more information see the tutorial "2.4 Segmentation of 3D Images". While I don't like Amira for segmentation, I do love visualization and interactive thresholding.


Loading IMOD models into Amira

IMOD is an free, open source package which many academic groups use to segment electron microscope volume. IMOD images are almost always MRC File Format (.mrc / .rec /.st), and the segmented mesh models are saved to IMOD Binary Model File Format (.mod). Amira will load MRC file formats directly, so all you'd need to do in Amira is "File >> Open Data.." to add your MRC file, click it and then add an OrthoSlice. Amira doesn't, however, read IMOD model files, and so you will first need to convert them to VRML 2 File Format (.wml / .vrml) using "imod2vrml2" IMOD command program inside a Terminal window as follows:

imod2vrml2 yourmodel.mod yourmodel.wml

WARNING: If imod2vrml2 is not recognized in you may need to install the latest version of IMOD, since this command wasn't added till around 2012. There is also an older "imod2vrml" routine, but this produces VRML 1 files and these don't load as well in Amira.


Back in Amira, you can now load your .wml file (File >> Open Data...), then click its right arrow to add an "IvDisplay" and, so long as you have a recent version of Amira, it should then appear in place with all your original colors. Unfortunately, IvDisplay has very few display options, and there's not way to show and hide the different "objects" you created in IMOD. If want to show, hide or hide individual objects there are two options:

  • Option 1: a bunch of different VRML files.
    • Open your model file in IMOD by typing "3dmod -V yourmodel.mod", then click the ModelView's Edit >> Objects... and use this interface to hide all but your desired subset of objects.
    • Save your model then run imod2vrml2 yourmodel.mod layer1.wml, to output just the visible objects, then repeat these last two steps for each subset of objects you want.
    • Load all your separate VRML files in IMOD (layer1.wml, layer2.wml, etc) and add an IvDisplay for each.
  • Option 2: generate a SURF file using different colors to differentiate layers.
    • Add your VRML with all your desired objects, then click its right arrow and "Compute >> IvToSurface".
    • With the new IvToSurface selected, tick "create patches by color" and nothing else, then click the green "Apply" button.
      • NOTE: With this approach objects will get classed into different "patches" based on their color, so you may want to use IMOD to change all your objects to slightly different colors for maximum control.
    • Select the new green "GeometrySurface" node that appeared then right click it to save it as an HxSurface binary (.hx) file called "GeometrySurface.surf". These "surf" files (HxSurface binary or ascii) are the 3D mesh formats that Amira seems to like most and thus have a bunch more display options - but you'll notice you can also use this dialog to export the mesh to an OBJ, VRML and a bunch of other formats.
    • Click the right arrow on "GeometrySurface.surf" and select Display >> SurfaceView.
    • With SurfaceView selected you can click "Clear" and then click the "Materials" drop down and then "Add" these "objects" one at a time. There are also several other display options and if you want to animate objects appearing you may like to add multiple "SurfaceView" nodes to your GeometrySurf. At this stage you can actually delete your original "yourmodel.wml" node if desired and your GeometrySurface.surf will remain.


This little guide shows how to load IMOD models into Amira for animation, but won't help you go the other direction, from an Amira segmentation to IMOD! Since Amira won't read of write model files, I think probably the most likely options would be to:

  • (a) create a new volume and save it to .tif stack inside Amira, then turn this into an MRC stack with tif2mrc, then use imodauto to generate a MODEL file with contours, or
  • (b) save your surface to an HxSurface ASCII file, write your own program to parse the points out to IMOD ASCII format or a simpler text file which point2model could then use to generate contours.

I haven't actually tested ether of these methods, so feel free to contact me if you know any techniques that work. :)


Correcting Misalignment

For some reason, you may sometimes find your VRML file loads in the wrong position and/or scale relative to your MRC volume. It could have something to do with header information, binning and/or trimming, but we're really not sure why; just that it's very annoying when Amira does this. Your VRML/WML may appear way off to the side so you may have to zoom out to even see it. To fix it you typically have to select the VRML box then in the Properties window for the this object select the little wireframe cube icon then select the "Transformer" manipulator and click "Dialog". In this dialog you can apply changes to scale and position. When the dialog is closed you can also click the square move icon at the top of the 3D View window to align it by eye and rotate the camera to check its aligned as best as possible. This is very crude, but unfortunately models don't always seem to appear where they're supposed to. Really hope Amira fixes this one day - if it can't figure out the scale of something it should just scale and align to the position of the last data object - instead the positioning of new models is almost random!


Online Videos

  • amira_intro_videos - a series of seven introductory slow paced videos by Roman Koning from Koster lab. These videos are very informative and take you though opening a volume, adding a bounding box then ortho slice, isosurface, volume rendering, navigating, saving and exporting surfaces as obj.


Update: a change of ownership

Amira was owned by the Visage Imaging / Visualization Sciences Group (VSG) but VSG was acquired by FEI in mid 2012 (read here) - so hopefully they'll fix some of the bugs and compatibility with IMOD software!


Links