<p>Project page for the research article "Autonomous adaptive optimization of NMR
experimental conditions for precise inference of minor conformational states
of proteins based on chemical exchange saturation transfer"</p>
<p>The files are available
<a href="https://dmsgrdm.riken.jp:5000/9w25r/files/dir/s3compatriken/" rel="nofollow">here</a>.
The following is the content of <code><a href="http://readme.md" rel="nofollow">readme.md</a></code> file.</p>
<hr>
<h1>1. Software used in this research</h1>
<h2>1-1. Directory structure</h2>
<pre class="highlight"><code>software/
├── exe/
│ ├── pp/ (NMR pulse program)
│ │ └── kas_hsqc_cest_etf3gpsitc2d (*1-3-2)
│ ├── au/ (TopSpin AU program)
│ │ └── kas_adapt_nmr
│ └── MATLAB/
│ ├── obs_prep01_peakpick.m
│ ├── ... (other .m files)
│ ├── matlab_adaptive_nmr/
│ │ ├── removedigitalfilter.m (*1-3-3)
│ │ ├── R1rho_Kasai.m
│ │ └── ... (other .m files)
│ ├── mcmcstat-master/
│ │ └── ... (MATLAB program files) (*1-3-4)
│ └── java/
│ └── RemoteNMR.jar
├── src/
│ └── java/
│ └── remotenmr/
│ ├── RemoteNMR.java
│ └── ... (other .java files)
└── doc/
└── javadoc/
├── index.html
└── ... (other document files)</code></pre>
<h2>1-2. Requirement</h2>
<p>The MATLAB program depends on "Parallel Computing Toolbox" and "Statistics and
Machine Learning Toolbox".</p>
<p>The MATLAB program also requires JSch library (tested with jsch-0.1.55.jar).
Standard MATLAB setup may automatically install JSch. If not, download from
<a href="http://www.jcraft.com/jsch/" rel="nofollow">http://www.jcraft.com/jsch/</a> and set the MATLAB environment variable
<code>javaclasspath</code> to the .jar file.</p>
<h2>1-3. LICENCE</h2>
<h3>1-3-1. Original programs</h3>
<p>The programs used in this research except for those indicated with asterisk at
Chapter 1-1 are copyrighted product by Takuma Kasai, one of the authors of the
article, and licensed under a Creative Commons Attribution 4.0 International
License (CC BY 4.0).</p>
<blockquote>
<p>Copyright (c) 2022-2024, Takuma Kasai</p>
<p>You are free to:
- Share: copy and redistribute the material in any medium or format for any purpose,
even commercially.
- Adapt: remix, transform, and build upon the material for any purpose, even
commercially.
The licensor cannot revoke these freedoms as long as you follow the license terms.</p>
<p>Under the following terms:
- Attribution: You must give appropriate credit, provide a link to the license, and
indicate if changes were made. You may do so in any reasonable manner,
but not in any way that suggests the licensor endorses you or your use.
- No additional restrictions: You may not apply legal terms or technological measures
that legally restrict others from doing anything the
license permits.</p>
<p>Notices:
You do not have to comply with the license for elements of the material in the public
domain or where your use is permitted by an applicable exception or limitation .</p>
<p>No warranties are given. The license may not give you all of the permissions necessary
for your intended use. For example, other rights such as publicity, privacy, or moral
rights may limit how you use the material.</p>
<p>Full license text: <a href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow">https://creativecommons.org/licenses/by/4.0/</a></p>
</blockquote>
<p><strong>[Important Notice]</strong></p>
<p>This software includes measurement programs that require careful
configuration to avoid potential damage to equipment. Users are advised to
thoroughly review the documentation and ensure that all settings are correct
before using the software. The authors and contributors are not responsible
for any damage that may occur as a result of using this software.</p>
<p><strong>[Request for Citation]</strong></p>
<p>If you use this software in your research, please cite the following paper:</p>
<p>T. Kasai and T. Kigawa, "Autonomous adaptive optimization of NMR experimental
conditions for precise inference of minor conformational states of proteins
based on chemical exchange saturation transfer",
bioRxiv 2024.10.07.616944; doi: <a href="https://doi.org/10.1101/2024.10.07.616944" rel="nofollow">https://doi.org/10.1101/2024.10.07.616944</a></p>
<h3>1-3-2. NMR pulse program</h3>
<p>The NMR pulse program in this research, named "kas_hsqc_cest_etf3gpsitc2d", is
based on "hsqc_cest_etf3gpsotc3d" provided by Bruker BioSpin GmbH, with only
minor modifications made. The copyright for the program belongs to Bruker
BioSpin GmbH, and the authors of this article does not intend to claim
copyright for it.</p>
<h3>1-3-3. nmrglue</h3>
<p>The MATLAB script "removedigitalfilter.m" is a translation from a python
module "nmrglue" (<a href="https://www.nmrglue.com/" rel="nofollow">https://www.nmrglue.com/</a>) copyrighted by Jonathan J. Helmus
under the following license. The authors of this article does not intend to
claim copyright for it.</p>
<blockquote>
<p>Copyright Notice and Statement for the nmrglue Project</p>
<p>Copyright (c) 2010-2015 Jonathan J. Helmus\
All rights reserved.</p>
<p>Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:</p>
<p>a. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.</p>
<p>b. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the
distribution.</p>
<p>c. Neither the name of the author nor the names of contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.</p>
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
</blockquote>
<h3>1-3-4. MCMC toolbox for Matlab</h3>
<p>The files under the directory mcmcstat-master are from "MCMC toolbox for
Matlab" (<a href="https://mjlaine.github.io/mcmcstat/" rel="nofollow">https://mjlaine.github.io/mcmcstat/</a>) copyrighted by Marko Laine. The
author of this article, Takuma Kasai, made a slight modification on
"mcmcrun.m" for thread safety. The authors of this article does not intend to
claim copyright for the modification. The original license and permission
notice follows:</p>
<blockquote>
<p>Copyright (c) 2017, Marko Laine</p>
<p>Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:</p>
<p>The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
<p>The views and conclusions contained in the software and documentation are those
of the author and should not be interpreted as representing official policies,
either expressed or implied, of his employer.</p>
</blockquote>
<h2>1-4. Instruction</h2>
<h3>1-4-1. Pulse program</h3>
<p>"kas_hsqc_cest_etf3gpsitc2d" is a pulse program to acquire 2D
<sup>1</sup>H-<sup>15</sup>N correlation spectrum using a single experimental
condition of irradiation offset chemical shift (<code>cnst48</code> in ppm), irradiation
strength (<code>cnst9</code> in Hz), and irradiation duration (<code>d21</code> in second). This is
a modified version of the original pseudo-3D CEST pulse program
"hsqc_cest_et3gpsitc2d".</p>
<p>The parameter <code>d31</code> is the "T_max" value. In the original pulse program, <code>d31</code>
should be the same as, or slightly longer than, <code>d21</code> to keep experimental
time constant by addition of the recycle delay by <code>d31-d21</code>. In adaptive CEST
experiment, however, setting <code>d31</code> to the maximum value of the candidate
durations may wastefully elongate the total experimental time. Instead, we set
<code>d31</code> to the shortest non-zero duration among the candidate. For example, if
the irradiation duration was selected from 0, 0.5, or 1.0 s, <code>d31</code> was set to
0.5.</p>
<p>Before starting the adaptive CEST controlled by AU and MATLAB programs, we
recommend to manually run "kas_hsqccestetf3gpsitc2d" using the same parameters
as the planned adaptive CEST except for setting irradiation strength <code>cnst9</code>
to 0 for the following purposes. This experiment is hereafter called as
"REFERENCE".</p>
<ul>
<li>To verify the experimental settings other than adaptively controlled
<code>cnst48</code>, <code>cnst9</code>, and <code>d21</code>.</li>
<li>As a template experiment to be copied.</li>
<li>For peak intensity quantification (see 1-4-3-1 for detail).</li>
</ul>
<h3>1-4-2. AU program</h3>
<h4>1-4-2-1. General description</h4>
<p>The AU program runs on TopSpin. It reads experimental parameter files sent by
MATLAB program and executes experiments using those parameters. For safety, it
will check that the parameters are within predefined intervals. By default, a
directory to place files to communicate with the calculation computer is
automatically created as <code>~/adapt_nmr</code>.</p>
<h4>1-4-2-2. Usage</h4>
<p>Firstly, experimental settings hardcoded on the AU program in
<code>//////// user settings ////////</code> section should be modified.</p>
<ul>
<li><code>int exp_number</code>: Set number of adaptive NMR iterations.</li>
<li><code>int param_number</code>: Set number of experimental parameters adaptively
controlled. For CEST experiment, it should be 3 (offset, strength, and
duration).</li>
<li><code>int calculation_time</code>: Not mandatory. Set typical idle time for the next
experimental condition to display estimated finish time.</li>
<li>For each experimental parameter, set lower and upper limits and the variable
name on the pulse program as the following example.</li>
</ul>
<pre class="highlight"><code>// offset
param_lower[0] = 80.0;
param_upper[0] = 150.0;
strcpy(param_dest[0],"CNST48");</code></pre>
<p>This example shows that the first of 3 parameters should be set to <code>cnst48</code>
and its lower and upper limits are 80.0 and 150.0, respectively. The program
stops with error if the first parameter (offset chemical shift) is smaller
than 80 ppm or larger than 150 ppm.</p>
<p>Then, copy the REFERENCE experiment to create a new experiment (hereafter
"FIRST" experiment). The FIRST experiment is used for the first iteration as
well as template for the following iterations. For example, if you set
"adap/100" as the FIRST experiment and <code>exp_number</code> as 200, "adap/100" will be
copied to "adap/101" to "adap/299".</p>
<p>Finally, move to the FIRST experiment and execute AU program. After a message
like "==== ITERATION 1, EXPERIMENT 100 ==== standing by for condition"
appeared, start MATLAB program.</p>
<h3>1-4-3. MATLAB program</h3>
<h4>1-4-3-1. General description</h4>
<p>The MATLAB program can be used for two purposes, to acquire real data with NMR
instrument or to simulate experiment. Therefore, it has functionalities to
generate data for simulation, to communicate with NMR control PC, to analyze
data by MCMC, and to calculate experimental conditions.</p>
<p>There are four groups of scripts:</p>
<ul>
<li>(a) preparation for data generation (starting from "gen_prep")</li>
<li>(b) preparation for observation (starting from "obs_prep")</li>
<li>(c) common preparation (starting from "common_prep")</li>
<li>(d) common running (starting from "common_run")</li>
</ul>
<p>For simulation, scripts should be executed in order of (a), (c), and (d). For
real experiment, firstly (a) and (c) scripts should be executed. Then after
NMR is ready (see 1-4-2), scripts (d) should be executed.</p>
<p><strong>Note for the "REFERENCE" spectrum</strong>:
To quantify peak intensities, this program ulilizes linear regression of small
ROI containing the signal to a corresponding region of a REFERENCE spectrum.
Therefore, the REFERENCE spectrum must be acquired with the same settings
(number of data points, spectral width, and so on) as data. We recommend the
REFERENCE measurement using the same pulse program with setting irradiation
strength to 0 before adaptive CEST experiment. Note that this REFERENCE
spectrum is only used for intensity quantification of the other spectrum. Data
without irradiation (often called <em>I</em><sub>0</sub>) required for CEST analysis
are automatically acquired in some iterations by comparing the utility
function of <em>I</em><sub>0</sub> and the other experimental conditions.</p>
<h4>1-4-3-2. Preparation for data generation</h4>
<p>There are 3 scripts in this group.</p>
<p>The first is "gen_prep01_generator.m". This script builds a generator of 2D
NMR data. It has NMR-related parameters but not protein-related parameters. By
running this script users can visually check generated NMR spectra with 10
signals. Users may modify scripts:</p>
<ul>
<li><code>obj.DIRECTORY</code>: Directory name to store simulation and analysis results.</li>
<li><code>obj.gen.method = 'McConnell'</code>: If "McConnell", CEST is simulated by
numerically solving Bloch-McConnell equation. If "Palmer", it is by Palmer's
approximation
<a href="https://www.sciencedirect.com/science/article/abs/pii/S1090780714000159" rel="nofollow">[Palmer, J. Magn. Reson., 2014, 241:3-17]</a>
with <em>R</em><sub>1</sub> rho estimation proposed in this article. The former is
recommended to analyze effect of the approximation.</li>
<li>"NMR acquisition parameters": NMR parameters for 2D
<sup>1</sup>H-<sup>15</sup>N data such as data points, base frequency,
carrier frequency, and so on. The default parameters are suitable to
simulate typical 2D <sup>1</sup>H-<sup>15</sup>N acquisition.
<code>obj.gen.noise</code> value should be changed to analyze effect of different noise
levels.</li>
<li>"B0 inhomogeneity parameters" and "B1 inhomogeneity parameters": In this
program, <em>B</em><sub>0</sub> and <em>B</em><sub>1</sub> inhomogeneity is simulated by
linear combination of different field strengths. The default values simulate
a typical environment.</li>
</ul>
<p>The second is "gen_prep02_peaks.m". This script reads a peak list, i.e.
protein-related parameters. By running this script users can visually check
NMR spectra.</p>
<ul>
<li><code>peakfile = 'genpeaks_manual_70.txt'</code>: The simulation parameters used in
this research are provided as "genpeaks_manual_1.txt" and
"genpeaks_manual_70.txt" for 1-signal and 70-signal simulations,
respectively.</li>
</ul>
<p>The third is "gen_prep03_reference.m". By default this script simply copies
the generator for REFERENCE generation.</p>
<h4>1-4-3-3. Preparation for observation</h4>
<p>There are 3 scripts in this group.</p>
<p>The first is "obs_prep01_peakpick.m". By this script users should define
target signals by peak picking. For this purpose, the standard
<sup>1</sup>H-<sup>15</sup>N HSQC data should be acquired before starting CEST
experiment. The script automatically pick signals and stores the result as
"peaks_auto.txt" in <code>obj.DIRECTORY</code>. To manually set target signals, rename
this file "peaks_manual.txt" with modification and rerun the script.</p>
<ul>
<li><code>obj.DIRECTORY</code>: Directory name to store retrieved NMR data and analysis
results.</li>
<li><code>obj.pick.expdir</code>: HSQC data directory.</li>
<li><code>obj.pick.autopick_level</code>: Peak intensity threshold for picking.</li>
<li><code>obj.pick.autopick_h_region</code> and <code>obj.pick.autopick_n_region</code>: Lower and
upper limits of ROI (in ppm).</li>
</ul>
<p>The second is "obs_prep02_process.m". This script defines processing
parameters of NMR data. By default, the same processing parameters are used
for REFERENCE and the other data.</p>
<ul>
<li><code>obj.ref.expdir</code>: Directory for REFERENCE data.</li>
<li><code>obj.ref.proc.baseline_order</code>: Order of polynomial function used for
baseline correction. The first and second elements are for <sup>1</sup>H and
<sup>15</sup>N, respectively. For example, if <code>[2, 0]</code>, second order and
zero-th order are used for <sup>1</sup>H and <sup>15</sup>N, respectively.</li>
<li><code>obj.ref.proc.baseline_region</code>: Spectral region to apply baseline
correction. For example, if <code>[[5.38 10.5], []]</code>, only 5.38 to 10.5 ppm
region is baseline-corrected for <sup>1</sup>H and full spectral region is
baseline-corrected for <sup>15</sup>N.</li>
</ul>
<p>The third is "obs_prep03_observe.m". This script defines NMR acquisition and
communication related parameters.</p>
<ul>
<li>
<p><code>obj.obs.param_conversion{2,1}</code>: For <em>B</em><sub>1</sub> strength calibration,
MATLAB function receiving actual (desired) <em>B</em><sub>1</sub> strength and
returns nominal <em>B</em><sub>1</sub> strength to realize the actual
<em>B</em><sub>1</sub> value. <code>obj.obs.param_conversion{2,1} = @(x) x</code> should be
used to unable such value conversion for calibration.</p>
</li>
<li>
<p><code>hostname</code> and <code>username</code>: Set the host name and the account name of the
remote NMR-controlling computer.</p>
</li>
<li><code>sss.setPort()</code>: Set the port number if non-default SSH port is used.</li>
<li><code>sss.setIdentityFile()</code>: Set the path to the secret key file for "key
exchange" authorization.</li>
<li><code>sss.setKnownHostsFile()</code>: Set the path to the known hosts file (typically
"~/.ssh/known_hosts"). If you use this functionality, be sure to connect
manually via SSH before running MATLAB program.</li>
<li><code>sss.disableKnownHosts()</code>: If you want to skip "known hosts" check, invoke
this command.</li>
</ul>
<p>If users require settings for SSH connection not listed here, a customized
"com.jcraft.jsch.UserInfo" implementation is required. For detail, see javadoc
and <a href="http://www.jcraft.com/jsch/" rel="nofollow">JSch website</a>.</p>
<h4>1-4-3-4. Common preparation</h4>
<p>There are 2 scripts in this group.</p>
<p>The first is "common_prep10_intenisty.m". This script sets quantification
parameters of signal intensities and noise. By default this program estimates
noise level by sampling 100 background regions, i.e. regions without signals.
By running this script users can visually check the sampled regions. </p>
<ul>
<li><code>obj.quant.noise_region = {[6, 10.5], []}</code>: Regions to sample background
noise. <code>{[6, 10.5], []}</code> means 6 to 10.5 ppm for <sup>1</sup>H and full
spectrum for <sup>15</sup>N. Within this region, region near picked peaks are
automatically avoided for sampling noise.</li>
</ul>
<p>The second is "common_prep11_setup.m". This script sets parameters for
experimental conditions and data analysis.</p>
<ul>
<li><code>obj.mcmc.PARAM_NAME</code>: Parameter names to be estimated.</li>
<li><code>obj.mcmc.PARAM_LOWER</code> and <code>obj.mcmc.PARAM_UPPER</code>: Lower and upper limits of
parameters to be searched with MCMC.</li>
<li><code>obj.mcmc.ITERATION</code>, <code>obj.mcmc.UPDATESIGMA</code>, <code>obj.mcmc.BURNINTIME</code>,
<code>obj.mcmc.BURNIN</code>, and <code>obj.mcmc.THINNING</code>: MCMC parameters. These values,
especially <code>ITERATION</code> and <code>BURNIN</code> should be set depending on systems.
Although elongating <code>ITERATION</code> increases possibility to reach the global
minimum, to reduce idle time of the measurement instrument, <code>ITERATION</code>
should be sufficiently small. Since failure to reach the global optimum at
the specific iteration only affects on selection of the next experimental
condition, failure in limited number of iterations has little effect on the
final estimation of the parameters.</li>
<li>
<p><code>obj.mcmc.SKIP_IF_UNNECESSARY</code>: If false, MCMC is forced to run even when
selection of the experimental condition is unnecessory, for example,
conventional experiment. If force MCMC run at the specific iteration, set
the iteration numbers to <code>obj.mcmc.FORCE_AT_ITERATION</code>.</p>
</li>
<li>
<p><code>obj.adap.ITERATION</code>: Number of iterations for adaptive NMR measurement,
i.e., the number of 2D CEST measurements.</p>
</li>
<li><code>obj.adap.MODEL_FUNC</code>: MATLAB function for noiseless observation model. For
fast and precise calculation, We recommend "CEST_Palmer_Kasai" function,
which is Palmer's CEST approximation
<a href="https://www.sciencedirect.com/science/article/abs/pii/S1090780714000159" rel="nofollow">[Palmer, J. Magn. Reson., 2014,241:3-17]</a>
combined with <em>R</em><sub>1</sub> rho estimation proposed in this article.</li>
<li><code>obj.adap.STRATEGY = {'mi'}</code>: Using mutual information as the utility
function to select the next experimental condition. If using <code>{'order'}</code>,
all experimental condition candidates are evenly selected (but in a random
order), which means equivalent to the conventional experiment.</li>
<li><code>obj.adap.CONDITION</code>: List of candidates for the experimental condition. In
this implementation, it is generated as a combination of <code>offset</code>,
<code>strength</code>, and <code>duration</code>.</li>
<li><code>obj.disp.REALTIMEPLOT</code>: If true, posterior distribution of parameters,
observed or simulated data, and utility function are displayed for each
iteration. In simulation mode, setting true parameters to
<code>obj.disp.TRUE_PARAM</code> may help the visualization.</li>
</ul>
<h4>1-4-3-5. Common running</h4>
<p>There are 2 scripts in this group.</p>
<p>The first is "common_run20_adaptive.m". By running this script, measurement or
simulation is started. In typical case there is no need to modify the script.
In real measurement, be sure to prepare NMR (see 1-4-2) before running this
script. If necessary, the program requests to input the password or the
passphrase for the SSH authentification on a popup window of MATLAB.</p>
<p>The second is "common_run21_final.m". As described, the MCMC iteration for
selecting the next experimental condition should be small to reduce idle time.
The purpose of this script is to rerun MCMC with sufficiently long iterations
to precisely analyze data after the measurement finished.</p>
<ul>
<li><code>obj.finalmcmc.AT_ITERATION</code>: Specify iteration numbers for the final MCMC.
In typical case, running single MCMC with all acquired data is sufficient.
To do so, use <code>obj.finalmcmc.AT_ITERATION = obj.adap.ITERATION</code>.</li>
<li>Set <code>obj.finalmcmc</code> parameters similarly to <code>obj.mcmc</code>.</li>
</ul>
<h3>1-4-4. Java program</h3>
<p>The Java program is packaged as "RemoteNMR.jar" file and invoked from the
MATLAB scripts. Therefore, for typical use, users do not have to directly
invoke Java functions or modify the Java program.</p>
<p>To prepare for possibility of a disconnection during the experiment, the Java
object stores entered password or passphrase until closing MATLAB or clearing
Java object via MATLAB console. If this behavior is not suitable, users should
implement their own connection controls. See javadoc for more detail.</p>
<hr>
<h1>2. Data produced in this research</h1>
<h2>2-1. Directory structure</h2>
<pre class="highlight"><code>data/
├── mcmc/
│ ├── 20220926_obs.zip
│ └── ... (other .zip files)
├── mcmc_min/
│ ├── 20220926_obs.zip
│ └── ... (other .zip files)
├── nmr/
│ └── adap220926.zip
└── figure/
├── fig_1a.m
└── ... (other .m files)</code></pre>
<h2>2-2. License</h2>
<p>The data and MATLAB scripts to reproduce figures are licensed under a Creative Commons
Attribution 4.0 International License (CC BY 4.0).</p>
<blockquote>
<p>Copyright (c) 2022-2024, Takuma Kasai</p>
<p>You are free to:
- Share: copy and redistribute the material in any medium or format for any purpose,
even commercially.
- Adapt: remix, transform, and build upon the material for any purpose, even
commercially.
The licensor cannot revoke these freedoms as long as you follow the license terms.</p>
<p>Under the following terms:
- Attribution: You must give appropriate credit, provide a link to the license, and
indicate if changes were made. You may do so in any reasonable manner,
but not in any way that suggests the licensor endorses you or your use.
- No additional restrictions: You may not apply legal terms or technological measures
that legally restrict others from doing anything the
license permits.</p>
<p>Notices:
You do not have to comply with the license for elements of the material in the public
domain or where your use is permitted by an applicable exception or limitation .</p>
<p>No warranties are given. The license may not give you all of the permissions necessary
for your intended use. For example, other rights such as publicity, privacy, or moral
rights may limit how you use the material.</p>
<p>Full license text: <a href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow">https://creativecommons.org/licenses/by/4.0/</a></p>
</blockquote>
<h2>2-3. Data description</h2>
<p>The directory "mcmc" contains the outputs from MCMC and mutual-information
calculation. The directory "mcmc_min" contains their minimal subsets to
reproduce figures. The directory "nmr" contains the raw NMR data from NMR control
software TopSpin.</p>
<p>The following table shows correspondence of experiments and figures to these
data.</p>
<p>|simulation number or experiment |figure |MCMC data |NMR data |
|:-------------------------------------------------------|:---------------|:-------------------------------------------------|:-----------------------|
|simulation A1 |1, 2, S8, S9 |20230214gen_adap_S20_B10-50_O401_R2 |N/A |
|simulation A2 |3, S10 |20230214gen_adap_S20_B15_O401_R1 |N/A |
|simulation A3 |4, S12, S13, S14|20220803gen_adap_S20_B6-13-26-50_O401_R1 to _R10 |N/A |
|simulation A4 |4a |20220803gen_adap_S20_B6-13-26_O401_R1 to _R10 |N/A |
|simulation C4 |4a, S12 |20220803gen_conv_S20_B6-13-26_O63_R1 to _R10 |N/A |
|simulation C5 |S12 |20241125gen_conv_S20_B6-13_O127-63_R1 to _R10 |N/A |
|simulation C6 |S12 |20241125gen_conv_S20_B13-26_O127-63_R1 to _R10 |N/A |
|simulation C7 |S12 |20241125gen_conv_S20_B6_O191_R1 to _R10 |N/A |
|simulation C8 |S12 |20241125gen_conv_S20_B13_O191_R1 to _R10 |N/A |
|simulation C9 |S12 |20241125gen_conv_S20_B26_O191_R1 to _R10 |N/A |
|simulation C10 |S12 |20250210gen_conv_S20_B13-26_O127-63_R1 to _R10 |N/A |
|simulation C11 |S12 |20250210gen_conv_S20_B13_O191_R1 to _R10 |N/A |
|extended simulation A4 with a different utility function|S14 |20220803gen_adap_add1_S20_B6-13-26_O401_R1 to _R10|N/A |
|extended simulation. A4 with the same utility function |S14 |20220803gen_adap_add2_S20_B6-13-26_O401_R1 to _R10|N/A |
|real adaptive CEST experiment |5 |20220926_obs |adap220926/100 to /291 |
|real conventional CEST experiment |5 |20220929_obs |adap220926/1000 to /1767|</p>
<p>In addition, "nmr/adap220926/11" is the <sup>15</sup>N-HSQC data for prior
peak-picking purpose. "nmr/adap220926/20" is the REFERENCE data for peak
intensity quantification.</p>
<h2>2-4. Reproducing figures</h2>
<p>All data plots on the article can be reproduced using MATLAB scripts under the
directory "figure". Note that prior to running these scripts, the
corresponding MCMC data in the "mcmc_min" directory must be unzipped.</p>