UnityMol  0.9.6-875
UnityMol viewer / In developement
User Guide - Virtual reality immersion (Oculus and Vive)

post-v0.9.5

umollogo
Todo:
Describe the first steps to get started with using the VR builds of UnityMol.

Introduction

This part of the user guide describes how to use UnityMol within an immersive Virtual Reality context, in particular using head mounted displays such as the Oculus Rift or the HTC Vive. The status of hardware support is indicated in the following table:

Hardware Status Comments
HTC Vive
experimental
Displacing and zooming molecules works. An intial experimentation room was generated and serves as context with teleport possibility. Relevant UnityMol functionality has to be made available through the controlers. Aim to improve performance. GUI, HCI etc. to improve. Active collaboration with Nick Cramer
Oculus Rift
experimental
Visualization works fine, interaction needs to be implemented. An early prototype using the Xbox One controler is under development. LeapMotion/Orion is supported. Aim to improve performance. GUI, HCI etc. to improve
Microsoft Hololens
planned
We will probably experiment with this device before the end of the year
3D Display wall
planned
We will experiment with this as soon as our new wall is implemented
Samsung Gear VR
planned
We will probably experiment with this device end of 2016/early 2017

General questions

Here we discuss some items that are important if users are going to work with a HMD for an extended period of time. For instance user comfort and interactivity are important considerations directly affected by the means chosen to interact and the type of menu system that is implemented.

How to interact with the scene while wearing the HMD?

Right now we focus on using the interaction facilities of the various devices, that is the Vive controllers for the HTC Vive (which has quite a few buttons) and the Xbox One controller for the Oculus.

For the Vive controllers, move, rotate, zoom and teleport are implemented.

For the Xbox One controller, we are currently experimenting with a mapping of combo-type menus that cycle through several options on a single button.

We also have the LeapMotion (Orion build) working, It was tested with Oculus and LeapMotion fixed onto the HMD. One can move, rotate and zoom the molecule.

HTC Vive experiments

Note
A part about HTC Vive experiments should be completed here.

Visualizing Protein Structures with UnityMol and the Oculus Rift

This part of the user guide is based on a contribution by Fátima Pardo & João Rodrigues. We thank them for their feedback and enthusiasm in testing UnityMol with an Oculus Rift.

General Preparation Tips

  • Mount the Leap Motion on the Oculus Rift and plug its short USB cable to the port on the opposite side of the Rift`s power button. The LED of the Leap Motion should turn green (if the Rift is connected).
  • Make sure the Rift and the Leap are both connected and ON when you turn on the computer. Turning the Rift later during boot or only when starting up UnityMol usually prevents headset tracking.
  • If you can, calibrate the OR and Leap Motion beforehand, specially the Leap (sensitive to the room`s lighting conditions).

General Usage Tips

  • There are three basic types of movement you can perform with your hands to explore the molecule in UnityMol using the Oculus Rift and the Leap motion sensor:
    • One/Two Handed Pinch: starts an action.
    • Rotation:
      • One-Handed (coarser): pinch point in space (center of rotation) and rotate hand/wrist.
      • Two-Handed (finer): pinch two points (define a line that is the axis of rotation) and move hands.
    • Translation:
      • One-Handed: pinch point in space and move hand.
      • Two-Handed: same as above, but with two points. Not very useful.
    • Zoom:
      • You can zoom by pulling the protein towards yourself.
      • Two-Handed Zoom: pinch two points and open/close your arms (like opening a bag of fries).
    • Two-Handed movements can be hard to control and sometimes lead to clipping of the viewing plane.
  • The Leap Motion sensor is very sensitive to pinching movements. If you are not moving the molecule, try to keep your hands outside of the sensor`s range. To do so, open your hands completely (high-five!) and slowly move them to your lap.
  • To reset the molecule to the viewports center, pressR` on the keyboard.
  • You can zoom in/out by literally moving forward/backward with your head, same with peeking around a certain part of the molecule. Just move as if the object is actually there.

Examples for immersive exploration

The following section describes systems that we think are good examples for the general public. The coloring and rendering options are just our opinion, feel free to explore.

Hemoglobin (PDB ID: 3a0g)

Goal: introduce the users to the environment and protein structure (find the heme!)

Biological background

Hemoglobin was the second protein to have its structure determined by X-ray crystallography, and is the protein that makes your blood red. It is composed of four different protein chains, two alpha and two beta chains, each of which hosts a special molecule called heme. Heme molecules contain one iron atom each, which binds oxygen that you breathe and carries it in your bloodstream. They also bind carbon monoxide, unfortunately way way tighter than oxygen, making this gas a lethal silent poison for us. Each hemoglobin molecule can bind 4 oxygen molecules, but it does so cooperatively, in that each oxygen molecule bound to the proteins facilitates the binding of the next one. This is possible because proteins are not static objects and their structure allows for small-to-large changes that accomodate different functions.

Being such an important protein, hemoglobin is also at the root of many diseases. Sickle cell anemia, for instance, is caused by a single change in its amino acid sequence: the glutamate in position 6 of each beta chain is mutated to a valine. This change makes hemoglobin sticky and causes the formation of long aggregates of dexoygenated hemoglobin that end up deforming the red blood cell, which then ruptures more easily. Fun fact, this also makes the life harder for others, like the malaria parasite, so it can actually be an advantage! Another disease, Thalassemia, is caused by a mismatch in the production of alpha and beta chains, which should be in equal number.

For the tutor

Explain the user the biology behind hemoglobin and point out the two alpha and beta chains. Let them find the heme groups, the iron atom, and the oxygen molecules. Point the user to the oxygen molecule and the nearby histidine residue that is the start of the conformational change. Have the user find GLU7 and explain him the anemia issue.

Input file preparation

First, prepare a corresponding PDB file as follows:

  1. Download the structure from RCSB PDB and remove solvent molecules.
  • Build the biological unit and name each chain appropriately: A,C (alpha) and B,D (beta).
  • Move the heme groups to a fifth chain (name it H for convenience). Renumber them from 1 to 4.
  • Move the oxygen molecules to a sixth chain (name it O for convenience). Renumber them from 1 to 4.
  • Move GLU7 of chains B and D to a seventh chain (name it S).

Visualization Settings

Next, move to UnitMol:

  1. Load the molecule in UnityMol from the processed PDB file (e.g. hemoglobin_oxy.pdb)
  • Set the representation to Optimized Hyperballs
  • Open the Panel menu:
    • Select the IUPAC? color scheme.
  • –Open the Renderer menu:
    • Set the Texture to dessin/toon3 (first row, third column; open circle with thin black outline)
    • Select Chain A (use the Chains selector) and press the colored rectangle to open the Color Selector. Write 112, 193, and 179 in the three boxes next to the Close button.
    • Repeat the step above for chains B, C, and D and set the following colors:
      • Chain B: 36, 123, 160
      • Chain C: 255, 224, 102
      • Chain D: 242, 95, 92
    • Select Chain S and press the colored rectangle to open the Color Selector. Write 0, 255, 0 and press the Close button.
    • Select Chain H.
    • Click on None on the right of Quick atoms selection and then on Extended Atoms Selection; Select the atoms with name FE. Set their color to 185, 30, 200. Drag the Scale slider all the way to the right, up to 150.

Green Fluorescent Protein (PDB ID: 1ema)

Goal: introduce users to the concept of secondary structures (cartoon mode)

Biological background

GFP, short for Green Fluorescent Protein, is a protein found in a jellyfish species of the Northern Pacific, that converts blue light produced by another protein (aequorin) to green light. The protein absorbs ultraviolet light from the sunlight and emits it as lower-energy green light. This simple property has been used as a research tool for decades by scientists, which attach GFP to a particular object of interest, whether another protein or an entire virus, and then record images under ultraviolet light of a very specific wavelength. This allows the scientists to follow, for example, the start and spread of a virus infection within an entire organism, or, if under a microscope, the life of a protein inside the cell. Some have even used it to make glowing pets!

GFP`s fluorescence stems from a tryad of aminoacids buried deep in its core - serine, tyrosine, glycine - that suffer a special chemical reaction and create a two-ringed chromophore capable of absorbing high-energy uv photons. The secondary structure of GFP, a cylindrical structure called a beta-barrel, protects the chromophore from the environment in the cell (water!) and creates the perfect environment for the photon capture/release reaction to happen.

Our knowledge of GFP`s structure and chemistry allowed scientists to perform specific changes in the amino acids of GFP and design new forms of the protein that produce differently colored lights. This array of reporters, some sensitive to changes in pH and temperature or to the presence of certain molecules, is a powerful tool for scientists of several fields of research.

For the tutor

Have the user explore the structure of the protein first, using the secondary structure panel. Have them note the barrel, explain beta-sheets and alpha-helices as basic structural elements of proteins, and point them to the beautiful structure inside the barrel, which houses the chromophore. Then, switch to the all-atom representation and explain the chemistry of the chromophore, not in much detail!

Input file preparation

  • Download the structure from RCSB PDB and remove solvent.
  • Edit the PDB file to change the selenomethione residues (4 of them) to regular methionines: resn MSE to MET, HETATM to ATOM, and SE atoms to S (name and element).

Visualization Settings

  • Load the molecule in UnityMol from the processed PDB file (e.g. gfp.pdb)
  • Set the representation to Optimized Hyperballs
  • Open the Panel menu:
    • Select the Basic color scheme.
  • Open the Renderer menu:
    • Set the Texture to artex/artball10 (third panel, second row, fifth column)
    • Select only carbon atoms by pressing the C(xxxx) button (xxxx is the number of atoms, can vary).
    • Press the colored rectangle to open the Color Selector. Write 255, 255, 255 in the three boxes and press the Close button.
    • Select Residue CRO (use the Residue selector) and press the colored rectangle to open the Color Selector. Write 160, 0, and 155 in the three boxes next to the Close button.
  • Click the Atoms menu to close the Atom Appearance pane.
  • Click the Sec. Structures menu and toggle Enable Secondary structures
Warning
Toggling the SS view on/off and moving the molecule in between might cause some weird resets to the view. Try to keep it simple for the user.

Influenza N1 Neuraminidase (PDB ID: 2hu4)

Goal: understand why Tamiflu might not longer work against the flu!

Biological background

Viruses tend to infect host (e.g. human) cells and hijack their protein and nucleic acid production machinery to replicate themselves. To gain entrance to the host's cells, the Influenza virus recognizes and attaches to sugar molecules at their surface. Newly synthesized viruses also recognize and latch onto these sugar molecules on their way out of the host cell. Neuraminidase`s function is to clip the ends of these sugar chains and allow the virus to go and infect other cells. The various strains of Influenza (HxNx) are named after several subtypes of both neuraminidase (N1-9) and hemagglutinnin, which are the reason behind the species specificity of some strains and also why you are getting the flu that often!

The function of neuraminidase makes it an attractive target for anti-viral drugs, such as Tamiflu. Tamiflu is a slightly bulkier version of sialic acid, the natural substrate of neuraminidase, and was designed to interfere with viral release and slow the progress of the infection, giving enough time to your immune system to build up its defenses and fight back. Unfortunately, the influenza virus has an extremely high mutation rate and there have been reports of strains for which Tamiflu is no longer effective. The reason behind this resistance was elucidated by structural biologists, who pinpointed a mutation at histidine 274 to a larger tyrosine amino acid that pushes a neighboring amino acid, glutamate 276, down towards the binding pocket. Since sialic acid is smaller, it can still perfectly fit, outcompeting the drug and rendering it less effective. Nature: being stubborn and keeping it simple since 4.1 billion years ago.

For the tutor

Let the user find the binding site and the tamiflu molecule. Guide them visually through the resistance mechanism, highlighting the chemistry of the molecule and of the mutation.

Input file preparation

  • Download the structure from RCSB PDB and remove solvent and all chains except A;.
  • Move the Tamiflu molecule (residue G39) to a second chain (name it T).
  • Move residues H274 and E276 to a third and fourth chains, H and E, respectively.

Visualization Settings

  • Load the molecule in UnityMol from the processed PDB file (e.g. influenza.pdb)
  • Set the representation to Optimized Hyperballs
  • Open the Panel menu:
    • Select the Basic color scheme.
  • Open the Renderer menu:
    • Set the Texture to dessin/toon3 (first row, third column; open circle with thin black outline)
    • Select Chain A (use the Chains selector).
    • Select only carbon atoms by pressing the C(xxxx) button (xxxx is the number of atoms, can vary).
    • Press the colored rectangle to open the Color Selector. Write 255, 255, 255 in the three boxes next to the Close button.
    • Repeat the step above for chains H, T, and E and set the following colors:
      • Chain H: 0, 255, 0
      • Chain E: 255, 0, 255
      • Chain T: 250, 120, 80