Modulation of the Meisenheimer complex metabolism of nitro-benzothiazinones by targeted C-6 substitution - supporting code
This repository contains the necessary code and raw data to reproduce the analysis described in our manuscript Keiff, Bernal, et al. Commun. Chem. 2024.
For reproducibility purposes, it is recommended to run the code in a dedicated conda
environment. For data analysis, only Python
libraries commonly used in Chemoinformatics are required, as indicated in the environment.yml
file. To set up the environment first install a conda
distribution (e.g. miniconda
; follow instructions in the official Anaconda website). Afterward, create the environment as follows:
$ conda env create -f environment.yml
To run reaction energy profiles or redox potential calculations using our scripts, as described in the manuscript, autodE must be installed along side with ORCA and XTB.
-
redox_potential.py
runs optimization and single point energy calculations for the lowest energy conformer of a series of compounds, starting from SMILES strings. Calculations for the neutral (given form = oxidized form) and the corresponding radical anion (reduced form) are performed using the automation and wrapper functionalities ofautodE
. Calculation of the reduction potential is performed with thecalculate_redox_potential
function inutils.py
, following a classical thermodynamic cycle approach as shown below.For further information on the script, see help:
$ python redox_potential.py -h
-
reactivity.py
allows to sequentially calculate reaction energy profiles at DFT level for a set of reactions of interest. It creates a new folder to store the results individually obtained byautodE
. Use help to see the available options:$ python reactivity.py -h
-
reaction_profile_summary.py
helps retrieving data from a series of calculations inautodE
(as those obtained fromreactivity.py
). All the evaluated folders must be on the current directory. It generates a CSV file containing the respective reaction energetics (ΔE, ΔE‡, ΔG, ΔG‡). -
The
notebooks
, as their names indicate, contain some data preparation and analysis to obtain the figures shown in the paper. -
inputs
contains a CSV and a SMI file used as input forreactivity.py
andredox_potential.py
, respectively. -
data
contains separate files with calculated and experimental properties for each compound under study. It also includes the atom numbers for the nitro-BTZ core for each structure according to the respective Jaguar outputs. -
results
contains an Excel file, which presents calculated data combined with the experimentally measured properties for the ease of analysis and visualization. -
lib
contains custom Python modules necessary for the use of the above-mentioned scripts and notebooks.-
descriptors.py
presents a Python class to preprocess QM descriptors obtained from Jaguar calculations after retrieval with the Schrödinger'sqm_descriptors.py
script. -
redox.py
presents a Python class based on theReaction
class ofautodE
to perform automatic energy calculations at DFT level for neutral and radical anion forms of given species, for subsequent redox potential calculation. -
utils.py
is a module containing functions to calculate reaction energetics fromautodE
orreactivity.py
outputs, and redox potential fromredox_potential.py
outputs. Functions to calculate statitical correlations, combine calculated properties with experimental data, and process protein-ligand interactions from Schrödinger's SID are also included.
-
If you use this code or parts of the content in this repository, please cite it as:
@article{Keiff_Bernal_2024,
doi = {10.1038/s42004-024-01235-x},
url = {https://www.nature.com/articles/s42004-024-01235-x},
year = {2024},
month = {June},
publisher = {Nature},
volume = {7},
pages = {153},
author = {Keiff, François; Bernal, Freddy A.; Joch, Melanie; Jacques dit Lapierre, Thibault; Li, Yan; Liebing, Phil; Dahse, Hans-Martin; Vilotijevic, Ivan; Kloss, Florian},
title = {Modulation of the Meisenheimer complex metabolism of nitro-benzothiazinones by targeted C-6 substitution},
journal = {Communications Chemistry}
}