\documentclass[10pt]{article}

\usepackage{fullpage}
\usepackage{setspace}
\usepackage{parskip}
\usepackage{titlesec}
\usepackage[section]{placeins}
\usepackage{xcolor}
\usepackage{breakcites}
\usepackage{lineno}
\usepackage{hyphenat}





\PassOptionsToPackage{hyphens}{url}
\usepackage[colorlinks = true,
            linkcolor = blue,
            urlcolor  = blue,
            citecolor = blue,
            anchorcolor = blue]{hyperref}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{%
  \errmessage{\noexpand\@combinedblfloats could not be patched}%
}%
\makeatother


\usepackage[round]{natbib}
\let\cite\citep




\renewenvironment{abstract}
  {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize}
  {\bigskip}

\titlespacing{\section}{0pt}{*3}{*1}
\titlespacing{\subsection}{0pt}{*2}{*0.5}
\titlespacing{\subsubsection}{0pt}{*1.5}{0pt}


\usepackage{authblk}


\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{latexsym}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs,array,multirow}
\usepackage{amsfonts,amsmath,amssymb}
\providecommand\citet{\cite}
\providecommand\citep{\cite}
\providecommand\citealt{\cite}
% You can conditionalize code for latexml or normal latex using this.
\newif\iflatexml\latexmlfalse
\providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}%

\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}










\begin{document}

\title{Valence - Quantifying GCMS Data}



\author[1]{Nolan Wilson}%
\author[1]{blakeboswell}%
\affil[1]{Affiliation not available}%


\vspace{-1em}



  
  \date{May 04, 2024}


\begingroup
\let\center\flushleft
\let\endcenter\endflushleft
\maketitle
\endgroup








\sloppy




\section*{Introduction}\label{introduction}

The GCMS methods in valence are intended to simplify the importation,
quantification and reporting for GCMS data presented in its native
format (e.g. \texttt{.ms}). The following is an example of how to import
data generated on an Agilent GCMS with a MS/TIC detector.

\section*{Getting Started}\label{getting-started}

Here we will show how to import and analyse GC-MS and GC-TIC data
generated from an Aglient GCMS. The same process can easily be applied
to GC-FID data if calibration curve data is avialable.This process
automates the following process for GCMS analysis: 1. Importing Data and
Compiling 2. Creating Calibration Curves 3. Quantifying Your Data 4.
Reporting and Plotting

To use the valence library you will need: * \textbf{.D folders} - which
contain .ms \& .csv files for each run. The .csv file should contain the
identified species and area calculated from Agilents MasshHunter
software. The .csv files are autogenerated when the area and
identification analysis is performed so you will just need to copy and
paste the whole .D folder. You will need .D folders for both your
unknowns and your standards.

\section*{Importing Data and
Compiling}\label{importing-data-and-compiling}

Getting the library ID data and TIC data can easily be performed using
valence. Simply import the libary and then use the \texttt{.from\_root}
method to get the data into python.

\texttt{from\ valence.build\ import\ AgilentGcms\ agi\ =\ Agilent.from\_root(\textquotesingle{}data\textquotesingle{})}

The \emph{data} folder should contain all of the *.D folders.

Now we can access the raw data in a pandas dataframe:

\texttt{agi.results\_lib.head()}\selectlanguage{english}
\begin{longtable}[]{@{}lllllllll@{}}
\toprule
key & header= & pk & rt & pct\_area & library\_id & ref & cas &
qual\tabularnewline
\midrule
\endhead
FA03.D & 1= & 1.0 & 5.7877 & 2.0335 & Methyl octanoate & 17.0 &
000000-00-0 & 96.0\tabularnewline
FA03.D & 2= & 2.0 & 7.3441 & 3.4015 & Methyl decanoate & 1.0 &
000000-00-0 & 98.0\tabularnewline
FA03.D & 3= & 3.0 & 8.0364 & 1.7448 & Methyl undecanoate & 2.0 &
000000-00-0 & 98.0\tabularnewline
FA03.D & 4= & 4.0 & 8.6715 & 3.9674 & Methyl dodecanoate & 3.0 &
000000-00-0 & 98.0\tabularnewline
FA03.D & 5= & 5.0 & 9.2781 & 1.9607 & Methyl tridecanoate & 4.0 &
000000-00-0 & 99.0\tabularnewline
\bottomrule
\end{longtable}

\texttt{agi.results\_tic.head()}\selectlanguage{english}
\begin{longtable}[]{@{}llllllllllll@{}}
\toprule
key & header= & peak & rt & first & max & last & pk\_ty & height & area
& pct\_max & pct\_total\tabularnewline
\midrule
\endhead
FA01.D & 1= & 1.0 & 12.288 & 1600.0 & 1609.0 & 1647.0 & rBV3 & 71023.0 &
478771.0 & 39.71 & 6.909\tabularnewline
FA01.D & 2= & 2.0 & 13.598 & 1830.0 & 1838.0 & 1864.0 & rBV2 & 247725.0
& 825285.0 & 68.46 & 11.91\tabularnewline
FA01.D & 3= & 3.0 & 14.428 & 1977.0 & 1983.0 & 2004.0 & rBV & 481706.0 &
1098175.0 & 91.09 & 15.85\tabularnewline
FA01.D & 4= & 4.0 & 15.08 & 2091.0 & 2097.0 & 2109.0 & rBV & 806692.0 &
1205528.0 & 100.0 & 17.40\tabularnewline
FA01.D & 5= & 5.0 & 15.692 & 2198.0 & 2204.0 & 2215.0 & rBV & 731146.0 &
1085862.0 & 90.07 & 15.67\tabularnewline
\bottomrule
\end{longtable}

With all of our data in one place, we may want to take a look at a
chromatogram to see if we have what we expect. Lets make a quick plot of
the first file \texttt{FA01.D}

\texttt{agi.chromatogram.loc{[}\textquotesingle{}FA01.D\textquotesingle{}{]}.plot(\textquotesingle{}tme\textquotesingle{},\textquotesingle{}tic\textquotesingle{})}\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/chromatogram/chromatogram}
\caption{{Gas Chromatogram of FA01.D
{\label{808766}}%
}}
\end{center}
\end{figure}

The \texttt{tic} and \texttt{library\ ID} data can be quickly compiled
into on pandas dataframe using \texttt{match\_area} which matches the
library IDs and the areas from each dataframe based on the retention
time.

\texttt{from\ valence.analyze\ import\ match\_area\ comp\ =\ match\_area(lib,area)\ comp.head()}\selectlanguage{english}
\begin{longtable}[]{@{}llllllllll@{}}
\toprule
key & pk & rt & library\_id & cas & qual & area & area\%\tabularnewline
\midrule
\endhead
FA03.D & 1.0 & 5.7877 & Methyl octanoate & 000000-00-0 & 96.0 &
1489466.0 & 0.020\tabularnewline
FA03.D & 2.0 & 7.3441 & Methyl decanoate & 000000-00-0 & 98.0 &
2491449.0 & 0.034\tabularnewline
FA03.D & 3.0 & 8.0364 & Methyl undecanoate & 000000-00-0 & 98.0 &
1277982.0 & 0.017\tabularnewline
FA03.D & 4.0 & 8.6715 & Methyl dodecanoate & 000000-00-0 & 98.0 &
2905961.0 & 0.040\tabularnewline
FA03.D & 5.0 & 9.2781 & Methyl tridecanoate & 000000-00-0 & 99.0 &
1436154.0 & 0.020\tabularnewline
\bottomrule
\end{longtable}

\section*{Creating Calibration Curves}\label{creating-calibration-curves}

Calibration curves are necessary if you want to quantify the
concentration of unknown species. For TIC data this means a calibration
curve for every species. For FID data, one can use correction
factors\cite{Faiola_2012,Kim_2014} or advanced approaches such as the
\href{http://www.activatedresearch.com/Public_Documents/PA_FlavorAnalysis_AppNote_1627.pdf}{polyarc}
which converts all species to methane before sending it to the detector.

We will use the simpliest case where a calibration curve is available
for each component. The data you will need to provide is a .csv with the
first column containing the name of the species and the subsequent
columns containing the concentrations for the respective standard vial.
The .csv can be imported and viewed using the lines of code below:

\emph{ALL CONCENTRATIONS SHOULD BE ENTERED IN CONSISTENT UNTIS,
COMMMONLY MOLAR (mol/L)}

\texttt{import\ pandas\ as\ pd\ standards\ =\ pd.read\_csv(\textquotesingle{}data/standards.csv\textquotesingle{})\ standards.head()}\selectlanguage{english}
\begin{longtable}[]{@{}llll@{}}
\toprule
library\_id & FA03.D & FA04.D & FA05.D\tabularnewline
\midrule
\endhead
Methyl palmitate & 0.25 & 0.5 & 1\tabularnewline
Methyl heptadecanoate & 0.25 & 0.5 & 1\tabularnewline
Methyl docosanoate & 0.25 & 0.5 & 1\tabularnewline
Methyl undecanoate & 0.25 & 0.5 & 1\tabularnewline
Methyl cis-8,11,14-eicosatrienoate & 0.25 & 0.5 & 1\tabularnewline
\bottomrule
\end{longtable}

With the concentration data available, we can now calculate the response
factor (i.e.~slope) for each species.

\texttt{from\ valence.analyze\ import\ std\_curves\ curves\ =\ std\_curves(comp,stnd)\ curves.head()}\selectlanguage{english}
\begin{longtable}[]{@{}llllllll@{}}
\toprule
library\_id & responsefactor & intercept & rvalue & pvalue & stderr &
max & min\tabularnewline
\midrule
\endhead
Methyl linoleate & 3.727e-08 & -0.215 & 0.982 & 0.122 & 7.234e-09 &
31474938 & 11356919\tabularnewline
Methyl myristate & 7.870e-08 & 0.035 & 0.985 & 0.016 & 9.802e-09 &
11874993 & 1821171\tabularnewline
Methyl arachidate & 7.146e-08 & -0.064 & 0.999 & 0.027 & 3.074e-09 &
14785000 & 4222622\tabularnewline
\bottomrule
\end{longtable}

We can also look at the fit for a specific species:

\texttt{import\ numpy\ as\ np\ species\ =\ \textquotesingle{}Methyl\ palmitate\textquotesingle{}\ x\ =\ list(stnd{[}stnd.library\_id==species{]}.loc{[}0{]}.values){[}1:{]}\ y\ =\ list(conc{[}conc.library\_id==species{]}.area{[}0:3{]}.values)}

\texttt{fit\ =\ np.polyfit(x,y,1)\ fit\_fn\ =\ np.poly1d(fit)\ plt.plot(x,y,\ \textquotesingle{}o\textquotesingle{},\ x,\ fit\_fn(x),\ \textquotesingle{}-\/-k\textquotesingle{})}

\section*{Quantifying Your Data}\label{quantifying-your-data}

With the determined response factors and compiled data we can now
quantify the unknown concentratons.

\texttt{from\ valence.analyze\ import\ concentrations\ conc\ =\ concentrations(comp,curves)\ conc.head()}\selectlanguage{english}
\begin{longtable}[]{@{}llllllllll@{}}
\toprule
\begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
key\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
pk\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
rt\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
library\_id\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
cas\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
qual\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
area\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
conc\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
conc\%\strut
\end{minipage} & \begin{minipage}[b]{0.04\columnwidth}\raggedright\strut
area\%\strut
\end{minipage}\tabularnewline
\midrule
\endhead
\begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
FA03.D\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
1.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
5.7877\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
Methyl octanoate\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
000000-00-0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
96.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
1489466.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.242\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.035\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.020\strut
\end{minipage}\tabularnewline
\begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
FA03.D\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
2.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
7.3441\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
Methyl decanoate\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
000000-00-0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
98.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
2491449.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.252\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.037\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.034\strut
\end{minipage}\tabularnewline
\begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
FA03.D\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
3.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
8.0364\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
Methyl undecanoate\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
000000-00-0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
98.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
1277982.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.253\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.037\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.017\strut
\end{minipage}\tabularnewline
\begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
FA03.D\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
4.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
8.6715\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
Methyl dodecanoate\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
000000-00-0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
98.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
2905961.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.244\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.035\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.040\strut
\end{minipage}\tabularnewline
\begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
FA03.D\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
5.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
9.2781\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
Methyl tridecanoate\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
000000-00-0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
99.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
1436154.0\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.249\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.036\strut
\end{minipage} & \begin{minipage}[t]{0.04\columnwidth}\raggedright\strut
0.020\strut
\end{minipage}\tabularnewline
\bottomrule
\end{longtable}

\emph{All concentrations are reported in molar.}

\section*{Reporting and Plotting Data}\label{reporting-and-plotting-data}

All of the analysis is done and can be archived to a couple .csv files
for later use. Before saving lets put the determined concentrations in a
pivot table and make a couple plots for reporting purposes.

\texttt{pd.pivot\_table(conc.reset\_index(),\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ index=\textquotesingle{}library\_id\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ columns=\textquotesingle{}key\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ values=\textquotesingle{}conc\textquotesingle{})}\selectlanguage{english}
\begin{longtable}[]{@{}lllllll@{}}
\toprule
library\_id & FA08.D & FA09.D & FA11.D & FA12.D & FA13.D &
FA14.D\tabularnewline
\midrule
\endhead
Methyl linolelaidate & & & & & &\tabularnewline
Methyl myristate & & & & & 0.055 &\tabularnewline
Methyl palmitate & & & 0.1 & 0.267 & 0.271 & 0.251\tabularnewline
Methyl palmitoleate & & & 0.094 & 0.174 & 0.306 & 0.16\tabularnewline
Methyl stearate & & & & & &\tabularnewline
cis-10-Pentadecenoic acid methyl ester & 2.175 & 3.326 & & &
&\tabularnewline
cis-9-Oleic methyl ester & & & & & &\tabularnewline
\bottomrule
\end{longtable}

There several great plotting packages available in python. Here we will
use Bokeh to show three plots:

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  Bar chart of normalized stacked concentrations
\item
  Bar chart of stacked concentrations
\item
  Bar chart of concentrations
\end{enumerate}

The code to produce the plots are shown below as an example of what can
be done to produce publication quality plots.

\texttt{from\ bokeh.charts\ import\ Bar,\ show,\ output\_notebook,\ output\_file\ from\ bokeh.layouts\ import\ gridplot\ output\_notebook()\ output\_file("barplots.html")}

\texttt{one\ =\ Bar(conc.reset\_index(),\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ label\ =\textquotesingle{}key\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ values\ =\ \textquotesingle{}conc\%\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ agg=\textquotesingle{}sum\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ stack=\textquotesingle{}library\_id\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ title\ =\ \textquotesingle{}Concentration\%\ -\ Stacked\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ legend\ =\ False)\ two\ =\ Bar(conc.reset\_index(),\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ label\ =\textquotesingle{}key\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ values\ =\ \textquotesingle{}conc\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ agg=\textquotesingle{}sum\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ stack=\textquotesingle{}library\_id\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ title\ =\ \textquotesingle{}Concentration\%\ -\ Sum\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ legend\ =\ None)\ three\ =\ Bar(conc.reset\_index(),\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ label\ =\textquotesingle{}key\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ values\ =\ \textquotesingle{}conc\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ group\ =\ \textquotesingle{}library\_id\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ title\ =\ \textquotesingle{}Concentration\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ legend\ =\ \textquotesingle{}top\_right\textquotesingle{},\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ height\ =\ 300)\ one.yaxis.axis\_label\ =\ \textquotesingle{}conc\%\textquotesingle{}\ two.yaxis.axis\_label\ =\ \textquotesingle{}conc\textquotesingle{}\ three.yaxis.axis\_label\ =\ \textquotesingle{}conc\textquotesingle{}\ three.legend.label\_text\_font\_size=\ "0.75em"\ three.legend.label\_text\_font\_style\ =\ "bold"\ p\ =\ gridplot({[}one,two,three{]},\ \ \ \ \ \ \ \ \ \ \ \ \ \ ncols=2,\ \ \ \ \ \ \ \ \ \ \ \ \ \ sizing\_mode=\textquotesingle{}scale\_width\textquotesingle{})\ show(p)}\selectlanguage{english}
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.70\columnwidth]{figures/barplot/barplot}
\caption{{This is a caption
{\label{158669}}%
}}
\end{center}
\end{figure}



\section*{Additional Examples}\label{additional-examples}

\subsection*{Plotting Spectral Data}\label{plotting-spectral-data}

\subsection*{Plotting calibration
curves}\label{plotting-calibration-curves}

\selectlanguage{english}
\FloatBarrier
\bibliographystyle{plainnat}
\bibliography{bibliography/converted_to_latex.bib%
}

\end{document}

