Molwind Server Concept

The Molwind server communicates with the World Wind client by dynamically generating molecule image layers from a set of chemical structures that have been hierarchically partitioned before. Molwind enables scientists to interactively navigate through large chemical compound spaces by easily changing between different levels of structural detail while relationships between similar (neighboring) compound classes are visually maintained. This unleashes the high degree of intuitive navigation offered by modern geospatial browsers such as NASA's World Wind specifically in the area of view-dependent level-of-detail rendering.

Conceptually, the server allows arbitrarily layered data sets to be served to the World Wind client and can therefore be easily extended to visualize e.g. protein families or pathway modules.

The web application is implemented in the Java programming language utilizing the Chemistry Development Kit (CDK) for molecule rendering. In principle, chemical data sets can be prepared in many different ways to reflect hierarchical organization. We have chosen to partition the chemical space according to a procedure of Murcko fragmentation, ring extraction and iterative substructure searches resulting in a hierarchy of fragments which grow larger with increasing levels or depth.

The hierarchically organized data set is read by the Molwind server. Subsequently, it is iteratively grouped by levels, i.e. substructures. The individual molecules of a group are placed using a spring embedder algorithm. Extra layers are added to enhance user's experience while zooming.

When the World Wind client requests a tile image at a certain longitude / latitude and level of resolution, the Molwind server determines those molecules which are visible on the tile. It generates an empty tile image and maps the relative positions of visible molecules onto the geospatial coordinate space of the tile which is then served to the client.

Molwind Working Steps

Molwind working steps

Calculate Topological Information

Step 1

  • Read source file with pedigree information.
  • Create populations (all objects sharing the same mother).
  • Group the individuals.
  • Calculate the positions relative to the geographical center of the population ("Spring embedder").
  • Calculate the size.

Step 2

  • Spread the first population over the world.
  • Place the center of the child generation one level below on the parent X/Y-coordinates.
  • Calculate the absolute X/Y-coordinates of the objects.

Dynamic Image Generation

  • Create the structure images, e.g. using the Chemistry Development Kit (CDK).
  • Determine relative positions of structures on the corresponding tile.
  • Create an empty tile image.
  • Place the structure images on the tile image according to their global positions.
  • Save and deliver the picture.
Dynamic Image Generation