DOI: 10.5061/dryad.sj3tx96fn
title: Nuclear quantum effects slow down the energy transfer in biological light-harvesting complexes

description: We assess how quantum-mechanical effects associated with high-frequency
 chromophore vibrations influence excitation energy transfer in biological
 light-harvesting complexes. After defining a classical nuclear limit that
 is consistent with the quantum-classical equilibrium, we include nuclear
 quantum effects through a variational polaron transformation of the
 high-frequency vibrational modes. This approach is validated by comparison
 with fully quantum-mechanical benchmark calculations and applied to three
 prototypical light-harvesting complexes. For light-harvesting complex 2 of
 purple bacteria, the inter-ring transfer is 1.5 times slower in the
 quantum treatment than the classical. For the Fenna-Matthews-Olson
 complex, the transfer rate is the same in both cases, whereas for
 light-harvesting complex II of spinach, transfer is 1.7 times slower in
 the quantum treatment. The effect is most pronounced for systems with
 large excitonic energy gaps and strong vibronic coupling to high-frequency
 modes. In all cases, nuclear quantum effects are found to be unimportant
 for the directionality of energy transfer.
description: # Nuclear quantum effects slow down the energy transfer in biological
 light-harvesting complexes
 [https://doi.org/10.5061/dryad.sj3tx96fn](https://doi.org/10.5061/dryad.sj3tx96fn) ## Description of the data and file structure ### Files and variables #### File: results.zip **Description:**  Files starting with "LH2", "FMO" or "LHC2" contains the plotted data with time (in fs) as first column and populations (unitless) in the following columns. Each file is named according to the pattern [system]-[population type or figure number]-[method].dat * \[system]: * LH2: 24-site light-harvesting complex 2 in purple bacteria * FMO: 7-site Fenna-Matthews-Olson complex * LHC2: 14-site light-harvesting couplex II in spinach * \[population type or figure number]: * B850: total population of sites 16-24 * sites: population of each site 1-24 in the columns following time * Pa: total population of Chla sites * fig2: population of each site 1-7 for the model used in Fig2 * figS1: population of each site 1-7 for the model used in FigS1 *  [method]: * all_classical: MASH with all modes classical * VPT: MASH with the variational polaron transformation for the high frequencies * without_high: MASH without high frequencies * wigner: MASH with an initial Wigner distribution * without_any_discrete: MASH without any discrete modes Files starting with "SI" contain the equilibrium site populations plotted in figure S2. The first column is the mean population, and the second column is the standard error in the mean. The row number corresponds to the site index. Here, the [method] refers to * bare: equilibrium of the uncoupled system * classical: single bead equilibrium * quantum: 8-bead equilibrium ## Code/software (Zenodo - Software Related work) ### Overview This directory contains * A main Python script `mash.py` * A script `model.py` with functions for setting up the model, handling input/output, sampling initial variables, and running a debug trajectory * A Fortran source code in `src/` that runs the trajectories These allow you to run MASH for various potentials, initial conditions and observables. ### How to compile Prerequisites: * gfortran (it also compiles and runs with ifort, but you will need to manually update the makefile) * lapack * numpy.f2py for Python3 Compile by typing `make [option]` and one of the following options * `clean` Remove compiled files and restart from clean directory * `fast` Produces fast parallelized code * `debug` Uses plenty of warning flags and should tell at which line the code breaks. Also check that you have the required Python packages installed. One way to ensure this is to (preferably in a virtual environment) run `pip install -r requirements.txt`. ### How to run `mash.py +[args].in` where `[args].in` is an argument file with one line per argument (allowing commented lines). See `examples` for example input files. There are plenty of available option flags and you can add more to suit your system. Hints: * Make sure `mash.py` is executable, otherwise `chmod u+x mash.py` * Create a symbolic link to `mash.py` in some place in your PATH, so that you can call it from anywhere. * You may need to add the directory to your PYTHONPATH. ### Input Run `mash.py -h` to see the available options. In general you should know about the following: * `model` String specifying your model system. * Model-specific parameters like `beta`, `Delta` etc. * `init` Integer that specifies initial state (index starts at 0) * `dt` Timestep * `nt` Number of timesteps * `ntraj` Number of trajectories * `nucsamp` Nuclear sampling option (see "sampling" in model.py) * `elsamp` Electronic sampling option (see "sampling" in model.py) * `obstyp` Specify what kind of observables you want to measure (e.g. `pop` for populations) ### Output You should see a file `pop.out` which contains time in the first column and then the state populations in the following columns. ### Examples The `examples` folder contains `lh2.in`, `fmo8.in`, and `lhc2.in` with input parameters appropriate for the corresponding models in the associated paper. (Note: these are example inputs only -- the actual convergence parameters are indicated in the paper.) ## Access information Other publicly accessible locations of the data: * n/a Data was derived from the following sources: * The files LH2-B850-fully_quantum.dat and LH2-B850-no_backaction (included for comparison) were obtained by screen-grabbing from Kundu, Dani and Makri, *Sci. Adv.*, 8, eadd0023 (2022).