Frequently Asked Questions


    Has the license validation changed? Why can Marvin JS not detect a valid license?

    The original license installation mechanism is deprecated. In the new mechanism, the Marvin JS Web Services (MJSWS) acts as the license server for the editor. It is designed for hosting the required services for Marvin JS.

    The platform-dependent (bundled) installer sets up a pre-configured Tomcat that runs MJSWS and hosts the Marvin JS editor as well. When this kind of installer is used, install the license for MJSWS as described in Marvin JS Web Services. The installer automatically registers MJSWS as the license server for the editor. The client-side and web services are automatically connected, and if the license to MJSWS is properly installed, no further user action is needed to set the license up on the client side. By default, the bundled Tomcat uses port 8080, but it can be customized. For more information, see Marvin JS Web Services.

    If you want to use an instance of Marvin JS that is separate from MJSWS (for example, embed it into your own application), you must set up the connection between the client side and the web services manually. For more information, see Installation and Upgrade.

    If you prefer Docker, MJSWS is also available as Docker image. To use it, run a container generated from the MJSWS image and forward a free port of the host machine.

    If your resources and MJSWS are available under different domains, you can avoid CORS issues. The most convenient way to resolve this is by using reverse proxy settings. You can register a path for the resources of the MJSWS host in your host-server configuration.

    As for not detecting the license, there are a few possibilities. These are listed below along with their solutions:

    • The web services are not running: make sure the web services are running, since MJSWS acts as the license server for Marvin JS. See the Marvin JS Web Services documentation about the running process.
    • The license is not installed to the proper directory: in this case, the web services cannot access the license. By opening the log of MJSWS, you can check where the web services will look for the license file by default. The default location of the log file is: <installation_path>/mjs-webservices/logs/mjsws.log. Alternatively, start the web services from the terminal and check the log on the console.
    • The license is expired: check both the expiration date and the support expiration date in your license file. If your license has expired, please contact the sales team.
    • The web server and the browser of the end-user have different clock settings. (Error message in the server response: "Timestamp is not in an acceptable window".): In order to get the license from the web services, the client and the server need to have their clock settings synchronized. Both the license request and the response timestamp is UTC-formatted, so if the client and the server are timezone aware, they render the same time string at the same instance.
    • The client-side editor is not connected the the web services: Make sure the license path is correctly added through the marvin.Sketch.license call. For more information, see Marvin JS API Reference.

      {info} When the client side is properly configured, an asynchronous call is made by Marvin JS to the /rest-1/license/grant endpoint upon loading the hosting page, and it can be verified through the browser's developer tools.

    Copy - Paste from/to Marvin JS

    Why do I lose items during copying (cutting) from Marvin JS application and pasting it?

    In Marvin JS, two copy formats are available: MRV or Mol V2000. If your administrator chose the latter, all the items which are not supported by Mol V2000 format, will be lost. Inside the application, we recommend using Duplication action (can be found in the Selection Context menu) or (if it is possible) to ask your administrator to change the copy format from MOL to MRV.

    When I press Cut/Copy/Paste buttons, instead of the action, I get a message which says I need to use the keyboard shortcuts. Why is that?

    This message appears in browsers which (by security reasons) do not give direct access for JavaScript applications to your system clipboard. In these cases, Marvin JS will remind you to use the keyboard shortcuts which will make the copy/paste function available via browser actions.

    I cannot paste my structure copied from MarvinSketch. How can I solve this?

    In Marvin Sketch, the MRV format is the default copy format in Windows OS. Although it is still possible to copy structures in OLE format. Microsoft OLE format is a binary format, which - because of security reasons - is not allowed to be copied or pasted by any of the browsers. There are some workarounds to paste your structures into Marvin JS canvas:

    1. By using the Copy as functionality that is available from the context menu or by pressing Ctrl+K, you can specify copy format. Please consider that Marvin JS only supports MRV and MOL V2000 formats natively, for pasting other formats, the appropriate web service should be installed. Marvin Sketch will remember your last choice, thus for successive copying, you only need to remember the Ctrl(Command)+K and Enter combination.
    2. In Marvin Sketch Ctrl(Cmd)+M shortcut is reserved for MRV copy. You can use this shortcut instead of Ctrl(Command)+C action for copying the selected structure.
      Copy paste workflow between Marvin JS and MarvinSketch

    I cannot paste my structure copied from other vendor's applications. How could I do this anyway?

    Some chemical editors handle the structures in special binary formats (e.g. SKC, CDX...), which are not allowed to paste by any browsers, because of security reasons. In most of these applications, there is an option that allows us to copy as another, text-based format. For example Mol V2000, Mol V3000, SMILES, SMARTS, etc. Copy your structure as one of the text formats, and you can easily paste these into Marvin JS. It is also a good solution, if you save your structure to the binary format, then open it via Import dialog or just Drag&Drop your file from your file system to Marvin JS canvas.

    How can I copy molecule names as text?

    You can display texts in Marvin JS in text-boxes. Copy your text into the clipboard, then open Marvin JS, select the Text tool and left-click on the Canvas. Paste the molecule name into the opening Text dialog, then press the OK button.


    How can I export my drawing as a reaction?

    If the structure on the canvas contains only a single step reaction, then it will be automatically exported as a reaction file by Marvin JS as default. This means, there will be separate blocks for reactants, products, and agents in the exported file; making it possible to use the file in a reaction search. In this case, only those file formats are available in the Export dialog which supports reactions (MRV, RXN, SMILES, CXSMILES, SMARTS, CXSMARTS, CML, RXN V3000, SDF, CSSDF, CDX, SKC).

    How multi-step reactions are exported? Can Marvin JS export multi-step reactions?

    Multi-step reactions are exported as graphical structures in MRV, CDX, SKC format. It means, Marvin JS can save these types of reactions, but roles like reactions/products/agents are not distinguished.

    How can separate components be handled together during reaction export? (For example in case of salts.)

    • Reactants or products: Marvin JS handles components which have no plus sign between as one 'merged component' during export automatically.
    • Agents: Agents should be selected manually to be handled together. Please check this page to see how: How to merge agents?