Skip to content

Releases: LBT-CNRS/UnityMol-Releases

UnityMol version 1.0.36

19 Jul 09:38
Compare
Choose a tag to compare

UnityMol 1.0.36 public version

This is the public version of UnityMol 1.0.36 source files released (July 2020) with ABPS-UnityMol paper: Visualizing biomolecular electrostatics in virtual reality with UnityMol-APBS (10.1002/pro.3773)

APBS integration was done by Joseph Laurenti.

UnityMol 1.0 Features

  • clean data structure / code base with a high level API, unit tests, doxygen documentation
  • Virtual Reality (VR) capabilities with VRTK (Oculus/Vive/Windows Mixed Reality HMDs/...)
  • a python console to script all actions in UnityMol
  • save/load commands to save/restore the current scene
  • advanced selections using MDAnalysis language
  • fast hyperball representation
  • classical molecular representations cartoon/surface (EDTSurf/MSMS)/line/fieldlines/
  • covalent bonds based on OpenMM topology definition here
  • molecular file parsers: PDB/mmCIF/GRO/MOL2/SDF/XYZ
  • trajectory reader: XTC | Trajectory smoother built-in
  • MDAnalysis version of libxdrfile -> low memory usage even for large trajectories
  • object space ambient occlusion (AO) for surfaces and VDW hyperballs
  • new Unity UI system (faster than 0.9.x versions)

Requirements

UnityMol is based on the game engine Unity.

This version is working on Unity 2019.4.21f1 LTS, tested on Windows/Mac/Linux. Main developpement is done on Windows.

Known Bugs

  • Some shaders do not work correctly on Metal so make sure you use OpenGL on Mac.
  • There is a bug on Unity for Mac (before 2020.2.0a12) that makes an empty Unity project consume a lot of CPU resources even when the focus is lost. This is not UnityMol code causing it.
  • Do not activate adaptive rendering for Oculus... Rendering bugs

APBS

The integration of APBS tools was mainly done by Joseph Laurenti from Nathan Baker's group at PNNL.

First, install PDB2PQR and APBS (https://sourceforge.net/projects/pdb2pqr/ & https://sourceforge.net/projects/apbs/), for example with "C:/APBS_PDB2PQR/apbs/bin/apbs.exe" & "C:/APBS_PDB2PQR/pdb2pqr/pdb2pqr.exe".
Set executable path by clicking the first button of the PDB2PQR menu, UnityMol will look in sub directories for apbs and pdb2pqr binaries.

Note that some steps will load another molecular file and hide the previous one.

APBS tools are not binded to APIPython functions so you cannot script APBS calls for now.

License

UnityMol is dual-licensed under the LGPL-3.0 (see under). However, all external assets used in UnityMol are under a permissive open-source license: MIT/Apache-2.0/BSD-3.0

For commercial use, UnityMol can be licensed under a custom license. Please contact [email protected]

License: LGPL v3

the UnityMol team

Official version 0.9.3 release aka Sweet UnityMol

22 Aug 12:08
Compare
Choose a tag to compare

$Id: README 23 2014-12-09 21:37:11Z baaden $

This is UnityMol/SVN revision $Rev: 676 aka 0.9.3 $.
This document is still work in progress.

(Sweet) UnityMol - Readme

Sweet UnityMol is a molecular viewer and prototyping platform for the Unity3D game engine with specific extensions for sugar molecules as described in a recent publication (Perez et al., Glycobiology 2014). It is developped by Marc Baaden's team in Paris based on previous work (Lv et al., 2013) and includes HyperBalls
designed to visualize molecular structures using GPU graphics card capabilities based on shaders (GLSL or Cg).
It can read Protein Data Bank (PDB) files, Cytoscape networks, OpenDX maps and Wavefront OBJ meshes.

All Sweet UnityMol functionality is integrated in more recent UnityMol releases.

More information on http://unitymol.sourceforge.net

Features

  • SugarRibbons, RingBlending and more sugar-related visual representations
  • Lit sphere artistic texturing of surfaces and HyperBalls
  • Screen space effects from Unity (Blur, Glow, ..)
  • Animated electric field lines
  • (Simple) surfaces with cut planes
  • specific representations for carbohydrates and polysaccharides
  • description to be completed soon

Scene organization

  • Molecule.unity: Full UnityMol application. Only works as standalone or in the editor.
  • MainMenu.unity: Main Menu with buttons to load pre-defined scenes in a webplayer context.
  • 1KX2.unity: pre-defined scene loading 1KX2.pdb from Scenes/1KX2/
  • Fieldines.unity: pre-defined scene loading fieldline.pdb/.json/.obj from Scenes/fieldlines/
  • Network.unity: pre-defined scene loading a CytoScape network
  • FromPDB.unity: pre-defined scene fetching a PDB file corresponding to the PDB id entered in the Main Menu (no validation for the moment)

If a scene is not loaded correctly, no error message is displayed for the moment. Try to go back to the Main Menu (Open->Main menu) and load another scene.

Scene creation

  • Let's create a scene called Toto:

    Copy Molecule.unity into Toto.unity
    Create a C# script named ScenePreload_Toto.cs in Assets/Scripts/. The class must inherit from MonoBehaviour.
    You need a method with the following signature:

        IEnumerator InitScene(RequestPDB requestPDB)
        {
    
        }
    

    Inspire yourself from ScenePreload_Fieldlines or ScenePreload_1KX2 to initialize the scene with the content you want.
    Be sure to be in the scene Toto in Unity and select the LoadBox object in the hierarchy.
    Then just add ScenePreload_Toto.cs as a component of LoadBox.

The method InitScene will be called after Molecule3D and the GUI are initialized.
Normally you can initialize everything and change any flag from here.
UIData.server_url will be www.shaman.ibpc.fr/umolweb in the Editor and "." otherwise.

About the HyperBalls shaders

The shaders are working great for OpenGL versions of Unity (MacOS, Windows with the -force-opengl flag).
If you want to modify these shaders and have them work in Direct3D you have to follow this procedure:

Make your changes in the OpenGL version of the shaders: BallImproved.shader and StickImproved.shader.
Let Unity compile them. It will throw some errors. Select the shader in the project tree and click on "Open compiled shader" in the inspector.
Copy the content of this file and paste it into Ball_HyperBalls_D3D.shader or Stick_HyperBalls_D3D.shader respectively.
Then replace the occurences of "oDepth.z" by "oDepth" . There is only one in the original shader.
Change the name of the shader at the top of the file to "FvNano/Ball HyperBalls D3D" or "FvNano/Stick HyperBalls D3D".

UnityMol is able to detect the platform it runs on and choose the appropriate shaders.

Citations

Related work

Copyright and License

This program is under the CeCill-C licence, which is compatible with the LGPL licence.