Automated evaluation of computational nanoreactor simulations
Project description
Processing of Computational Nanoreactor Simulations
This package implements various tools to automatically post-process and evaluate nanoreactor MD simulations.
Available tools include
-
Automated molecule recognition [1] from ab initio nanoreactor simulations [2] based on Wiberg Bond Orders [3]
-
Automated network construction [1]
-
RDKit [4] based event recognition
-
stored list of reactions for further refinement
-
-
Visualization tools (plots, molecular grids, PyMOL movie (available only directly from GitHub repository))
Install:
To install nanoreactor_processing type:
$ pip install nanoreactor-processing
Requirements:
- python >= 3.8
- numpy >= 1.23
- scipy >= 1.8
- pandas >= 1.4
- networkx >= 2.8
- matplotlib >= 3.5
- seaborn >= 0.11
- pyvis >= 0.2
- rdkit >= 2021.03.4
Basic Usage:
To use the functions implemented in nanoreactor_processing you should be able to generate files with the following format from your MD simulation:
Trajectory: .xyz file
Format:
1 number of atoms
2 TIME: time step
3 elem x y z
4 elem x y z
.
.
Bond order file: only the upper triangular matrix needs to be stored
Format:
1 TIME: time step
2 wbo(0,1)
3 wbo(0,2)
4 wbo(0,3)
.
.
To start the automated post-processing for your ab initio nanoreactor simulations you have to first create a NanoSim object:
import nanoreactor_processing
from nanoreactor_processing import *
from nanoreactor_processing import NanoSim
from nanoreactor_processing import NanoNetwork
nanoSim = NanoSim(path_to_traj, path_to_bo_file)
# apply functions to your newly created object to generate fragments and compute SMILES:
nanoSim.generate_frag_lists()
nanoSim.generate_mols_smiles()
...
If you have already generated the fragment file (mols file), then you can also include it as an argument to speed up the evaluation:
...
nanoSim = NanoSim(path_to_traj, path_to_bo_file, path_to_mols_file)
...
To generate the reaction network use the stored data frame:
...
df = read_write_utils.read_trafo_df(path_to_df)
reactions_list = nanoreactor_network.construct_reactions_list(df)
nanoNet = NanoNetwork()
nanoNet.create_network(reactions_list)
...
If you encounter any problems with the Draw module in RDKit try to add the following line to your script:
from rdkit.Chem.Draw import IPythonConsole
The scripts for generating a PyMOL movie from your trajectory and data frame are available only at GitHub as they require PyMOL as an interpreter. A free version of PyMOL can be installed with:
$ apt-get install pymol
Documentation:
Code documentation can be created with pdoc3:
$ pip install pdoc3
$ pdoc3 --html nanoreactor_processing -o doc/
References:
This work:
- A. Stan et al., J. Chem. Theory Comput. (2022); https://doi.org/10.1021/acs.jctc.2c00754
Other references:
- L.-P. Wang et al., Nat. Chem. (2014); https://doi.org/10.1038/nchem.2099
- K. Wiberg, Tetrahedron (1968); https://doi.org/10.1016/0040-4020(68)88057-3
- G. Landrum, "RDKit: Open-source cheminformatics. https://www.rdkit.org"; https://doi.org/10.5281/zenodo.5085999
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nanoreactor_processing-1.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5111601d627a322a4b7e9ff904a33e5c2c05f38b785fafe6fac80a1587f5533 |
|
MD5 | 236d8b9b221e77289ab2af4995ec5dee |
|
BLAKE2b-256 | 785becbbc552b1ffd088a0a2ebcf366ab1f6b76911dad1bfee41da024c8f0e07 |
Hashes for nanoreactor_processing-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70cf9ba08a2a8371a786afaaa18ddd6dbc8e27228a23999f578e575e9d623768 |
|
MD5 | 7b0c0cbc1e2e36bd316705a88a40c9d3 |
|
BLAKE2b-256 | 7e62066cb36f2db65f8a1fcf73d448fd0fe38df7be910af8fe9b6b0aa353f02d |