GithubHelp home page GithubHelp logo

senppoa / amk_tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dgarayr/amk_tools

1.0 0.0 0.0 111 KB

Generation of visualization dashboards for reaction networks in AutoMeKin, including networks, energies, molecular models and profiles, based in Bokeh

Python 100.00%

amk_tools's Introduction

Visualization tools for AutoMeKin

Diego Garay-Ruiz, 2021 Institute of Chemical Research of Catalonia Prof. Carles Bo Research group

Basic features

The amk-tools library provides tools to read, process and visualize the reaction networks generated by AutoMeKin. It is organized in two modules:

  • RXReader (arx). Parses & processes the RXNet files generated by AutoMeKin to NetworkX.Graph objects containing all the information about the network: connectivity, energies, XYZ geometries and frequencies for every intermediate and transition state. Moreover, contains functions to fetch paths in the network and basic Matplotlib-based plots for networks and energy profiles.
  • RXVisualizer (arxviz). Generates Bokeh-based interactive dashboards for the reaction networks processed by RXReader, containing:
    • Interactive network plot, allowing the user to zoom and move around. Hovering over nodes or edges shows the corresponding name and energy.
    • JSMol instance to display 3D models of the selected node/edge in the network, including vibrational normal modes.
    • Visualization of energy profiles along the network, which may be filtered by energy or by the presence of a given species.

These dashboards are generated as independent HTML files, not requiring a live Python server.

Usage guidelines

The simplest way to generate a dashboard from AutoMeKin results is to call the amk_gen_view.py script, taking arguments from STDIN (the amk-tools/scripts directory must be in your $PATH):

$amk_gen_view.py FINALDIR RXNFILE, where FINALDIR is the folder containing AMK results and RXNFILE is the name of the RXNet file to be used (RXNet, RXNet.cg or RXNet.rel). Additional arguments that may be passed are:

  • --barrierless. Include the barrierless routes stored in RXNet.barrless.
  • --vibrations NVIBR. Add only NVIBR normal modes to the visualization. Default is -1, meaning that ALL modes are included.
  • --paths [SOURCE] [TARGET] Locate paths in the network connecting SOURCE to TARGET, to include energy profile visualizations in the dashboards. When both SOURCE and TARGET are specified, a simple search is performed including only the routes that connect both nodes. If --paths is passed without further specification, all possible cyclic paths along the network are searched (much slower). If only SOURCE is specified, all cyclic paths are also searched, and then filtered to only keep these with connections to SOURCE.
  • --cutoff_path CUTOFF. Maximum depth for two-ended path search (number of intermediate nodes between SOURCE and TARGET), default is 4.
  • --outfile FILENAME. Name of the output HTML file containing the dashboard.
  • --title TITLE. Title shown in the dashboard.

If more control is desired, the user should use a custom Python script.

Dependencies

  • NetworkX
  • Bokeh 2.x (>= 2.3.2, < 3.0.0)
  • jsmol_bokeh_extension
  • NodeJS (>= 14.0.0)
  • matplotlib

Installation instructions

A basic installer from setuptools, setup.py is provided. Inside the main folder, run:

pip install -e .

to install the package in editable mode: thus, all changes in the py files of the modules RXReader and RXVisualizer will be directly applied to the calculations where the modules are used.

Bokeh 3.x is not currently supported due to changes in the API.

amk_tools's People

Contributors

emartineznunez avatar

Stargazers

Tang Kun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.