Marvin Live resolver plugins load molecules into the editor by fetching the source for a given corporate or database ID. These plugins are NodeJS modules, stored in a folder set by Marvin Live's configuration file.
an instance of Marvin Live available for development purposes, i.e.: the ability to stop and start it, to try different configuration options
good understanding of Promises / async await
NodeJS module description: https://nodejs.org/api/modules.htmlPromise introduction: https://www.html5rocks.com/en/tutorials/es6/promises/#toc-async, https://github.com/kriskowal/q#readme
This plugin type is intended to fetch the MRV or SDF formatted chemical structure corresponding to a company specific ID or an alias, by making asynchronous network requests to RESTful JSON services.
Marvin Live scans the services directory to find the resolver plugins and generates a GUI element where chemists can type IDs. There may be only 1 resolver plugin active in a meeting room.
Resolver plugins are NodeJS modules , denoted by their filename:
*.resolve.js and their location in the services directory as configured during installation.
A resolver plugin exports the following required properties:
|resolve||async function||The main function of the plugin, called when the chemist types an ID and hits enter. The function should resolve the given ID or alias to a chemical structure and must return a
|name||string||Unique identifier of the plugin, used by Marvin Live for identification and internal communication. If multiple plugins use the same identifier, the last one to be loaded overrides the others.|
|label||string||Human readable name of the plugin, used by Marvin Live to display GUI elements related to this plugin.|
|domains||array of strings||List of domains where this plugin may be used, when authentication is enabled in Marvin Live. Use
You can find a brief selection of plugins in our Github repository: custom dictionaries in Name to Structure and Compound Registration.