%% Generated by Sphinx.
\def\sphinxdocclass{report}
\documentclass[letterpaper,10pt,english]{sphinxmanual}
\ifdefined\pdfpxdimen
   \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen
\fi \sphinxpxdimen=.75bp\relax
\ifdefined\pdfimageresolution
    \pdfimageresolution= \numexpr \dimexpr1in\relax/\sphinxpxdimen\relax
\fi
%% let collapsible pdf bookmarks panel have high depth per default
\PassOptionsToPackage{bookmarksdepth=5}{hyperref}

\PassOptionsToPackage{warn}{textcomp}
\usepackage[utf8]{inputenc}
\ifdefined\DeclareUnicodeCharacter
% support both utf8 and utf8x syntaxes
  \ifdefined\DeclareUnicodeCharacterAsOptional
    \def\sphinxDUC#1{\DeclareUnicodeCharacter{"#1}}
  \else
    \let\sphinxDUC\DeclareUnicodeCharacter
  \fi
  \sphinxDUC{00A0}{\nobreakspace}
  \sphinxDUC{2500}{\sphinxunichar{2500}}
  \sphinxDUC{2502}{\sphinxunichar{2502}}
  \sphinxDUC{2514}{\sphinxunichar{2514}}
  \sphinxDUC{251C}{\sphinxunichar{251C}}
  \sphinxDUC{2572}{\textbackslash}
\fi
\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amstext}
\usepackage{babel}



\usepackage{tgtermes}
\usepackage{tgheros}
\renewcommand{\ttdefault}{txtt}



\usepackage[Bjarne]{fncychap}
\usepackage{sphinx}

\fvset{fontsize=auto}
\usepackage{geometry}


% Include hyperref last.
\usepackage{hyperref}
% Fix anchor placement for figures with captions.
\usepackage{hypcap}% it must be loaded after hyperref.
% Set up styles of URL: it should be placed after hyperref.
\urlstyle{same}

\addto\captionsenglish{\renewcommand{\contentsname}{Contents:}}

\usepackage{sphinxmessages}
\setcounter{tocdepth}{1}



\title{prescott}
\date{Oct 10, 2023}
\release{1.5.0}
\author{Mustafa Tekpinar}
\newcommand{\sphinxlogo}{\vbox{}}
\renewcommand{\releasename}{Release}
\makeindex
\begin{document}

\ifdefined\shorthandoff
  \ifnum\catcode`\=\string=\active\shorthandoff{=}\fi
  \ifnum\catcode`\"=\active\shorthandoff{"}\fi
\fi

\pagestyle{empty}
\sphinxmaketitle
\pagestyle{plain}
\sphinxtableofcontents
\pagestyle{normal}
\phantomsection\label{\detokenize{index::doc}}


\sphinxstepscope


\chapter{Introduction}
\label{\detokenize{introduction:introduction}}\label{\detokenize{introduction::doc}}

\section{What is PRESCOTT?}
\label{\detokenize{introduction:what-is-prescott}}
\sphinxAtStartPar
PRESCOTT (PRESCOTT: Population awaRe Epistatic and StruCtural mOdel of muTational effecTs) is a package predicting mutational effects in a protein based
on population, evolutionary and structural information. It is made up of
two main programs: escott and prescott.

\sphinxAtStartPar
ESCOTT can calculate effects of single point mutations and multiple
point mutations. On the other hand, PRESCOTT incorporates population
frequencies into ESCOTT predictions. Therefore, you need to run ESCOTT
first to have predictions of mutational effects. We recommend using
PRESCOTT package via our web site or our docker image due to its
dependencies.


\section{Input Data Requirements}
\label{\detokenize{introduction:input-data-requirements}}

\subsection{Input Data Requirements for escott}
\label{\detokenize{introduction:input-data-requirements-for-escott}}
\sphinxAtStartPar
escott requires two files:
\begin{itemize}
\item {} 
\sphinxAtStartPar
a multiple sequence alignment (MSA) file in fasta format (mandatory):

\end{itemize}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n}{Your} \PYG{n}{query} \PYG{n}{protein} \PYG{n}{must} \PYG{n}{be} \PYG{n}{the} \PYG{n}{first} \PYG{n}{sequence} \PYG{o+ow}{in} \PYG{n}{the} \PYG{n}{fasta} \PYG{n}{file}\PYG{o}{.} \PYG{n}{In} \PYG{n}{addition}\PYG{p}{,} \PYG{n}{the} \PYG{n}{query} \PYG{n}{sequence} \PYG{n}{should} \PYG{o+ow}{not} \PYG{n}{contain} \PYG{n+nb}{any} \PYG{n}{gaps}\PYG{o}{.}
\end{sphinxVerbatim}
\begin{itemize}
\item {} 
\sphinxAtStartPar
a structure file in PDB format (optional but highly recommended).

\end{itemize}

\sphinxAtStartPar
One of the fastest ways to obtain both input MSA and a PDB file is to
run colabfold:
\sphinxurl{https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb}

\sphinxAtStartPar
Please note that the MSA file produced by colabfold (a3m file) can
contain gaps in the query sequence. You have to remove them before using
it in PRESCOTT. You can remove the gaps with pragrams that have a GUI,
such as ugene (\sphinxurl{http://ugene.net/}) or jalview (\sphinxurl{https://www.jalview.org/}).

\sphinxAtStartPar
For testing purpose, you can find some example input files for BLAT
protein in data/ folder of this repository.


\subsection{Input Data Requirements for prescott}
\label{\detokenize{introduction:input-data-requirements-for-prescott}}
\sphinxAtStartPar
prescott requires three files:
\begin{itemize}
\item {} 
\sphinxAtStartPar
output file of escott (the file ending with …normPredCombi.txt)

\item {} 
\sphinxAtStartPar
a fasta file containing only your query sequence

\item {} 
\sphinxAtStartPar
gnomad csv file containing to be downloaded from \sphinxurl{https://gnomad.broadinstitute.org/} for your protein.

\end{itemize}


\section{Usage}
\label{\detokenize{introduction:usage}}
\sphinxAtStartPar
You can find example bash scripts for escott and prescott in examples
folder of this repository.

\sphinxAtStartPar
Below, you will find examples of the most basic usage. Consult to the
documentation for further details.


\subsection{Running the escott program}
\label{\detokenize{introduction:running-the-escott-program}}
\sphinxAtStartPar
Let’s assume that our input MSA is inputAli.fasta and input.pdb is our
structure file in PDB format.

\sphinxAtStartPar
Run the program by issuing the following command in a bash terminal:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
escott inputAli.fasta \PYGZhy{}\PYGZhy{}pdbfile input.pdb
\end{sphinxVerbatim}

\sphinxAtStartPar
A quick help can be accessed by typing

\begin{sphinxVerbatim}[commandchars=\\\{\}]
escott \PYGZhy{}\PYGZhy{}help
\end{sphinxVerbatim}

\sphinxAtStartPar
By default, ESCOTT will predict the effect of all possible single
mutations at all positions in the query sequence. Alternatively, a set
of single or multiple mutations can be given with the option \sphinxhyphen{}m. Each
line of the file should contain a mutation (e.g. D136R) or combination
of mutations separated by colons and ordered according to their
positions in the sequence (e.g. D136R,V271A).


\subsection{Running the prescott program}
\label{\detokenize{introduction:running-the-prescott-program}}
\sphinxAtStartPar
A quick help can be accessed by typing

\begin{sphinxVerbatim}[commandchars=\\\{\}]
prescott \PYGZhy{}\PYGZhy{}help
\end{sphinxVerbatim}

\sphinxAtStartPar
Run the program by issuing the following command in a bash terminal:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
prescott \PYGZhy{}e ../data/MLH1\PYGZus{}normPred\PYGZus{}evolCombi.txt \PYGZhy{}g ../data/gnomAD\PYGZus{}v2.1.1\PYGZus{}MLH1\PYGZus{}HUMAN\PYGZus{}ENSG00000076242.csv \PYGZhy{}s ../data/MLH1.fasta
\end{sphinxVerbatim}

\sphinxAtStartPar
The most important output is prescott\sphinxhyphen{}scores.txt file, which produces
frequecy modified scores for the mutations.

\sphinxAtStartPar
Please note that the example input files for prescott are in the data
directory of this repository.


\section{Installation}
\label{\detokenize{introduction:installation}}
\sphinxAtStartPar
PRESCOTT is implemented in Python 3 and R. It has been tested only on
Linux. Since PRESCOTT has many dependencies, we recommend using our web
site or our docker image. If you are a determined user, you can find the
steps required to install it from the source in the following link (or
in the docs folder of this repository):


\section{Citation}
\label{\detokenize{introduction:citation}}
\sphinxAtStartPar
Coming soon…

\sphinxstepscope


\chapter{Using ESCOTT via Docker}
\label{\detokenize{docker:using-escott-via-docker}}\label{\detokenize{docker::doc}}

\section{Requirements}
\label{\detokenize{docker:requirements}}
\sphinxAtStartPar
You need to have docker installed on your machine. You can consult the
following page for this: \sphinxurl{https://docs.docker.com/get-docker/}

\sphinxAtStartPar
I am assuming some basic familiarity with Linux/Unix/MacOS terminal
commands.

\sphinxAtStartPar
Let’s start our favorite terminal app.

\sphinxAtStartPar
You must create a folder called docker\sphinxhyphen{}tutorial and go to that empty
folder:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
mkdir docker\PYGZhy{}tutorial
\PYG{n+nb}{cd} docker\PYGZhy{}tutorial
\end{sphinxVerbatim}


\section{Getting the example input data}
\label{\detokenize{docker:getting-the-example-input-data}}
\sphinxAtStartPar
Let’s download the sample data provided in the PRESCOTT repository for
this exercise. First, we will download the multiple sequence alignment
file in fasta format:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
wget http://gitlab.lcqb.upmc.fr/tekpinar/PRESCOTT/raw/8d766d4d11af0e93c9da8fc2c5cc1bfc457d2936/data/aliBLAT.fasta
\end{sphinxVerbatim}

\sphinxAtStartPar
If you don’t have wget, you can try the same command with curl:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
curl http://gitlab.lcqb.upmc.fr/tekpinar/PRESCOTT/raw/8d766d4d11af0e93c9da8fc2c5cc1bfc457d2936/data/aliBLAT.fasta \PYGZgt{}aliBLAT.fasta
\end{sphinxVerbatim}

\sphinxAtStartPar
Please verify that the aliBLAT.fasta file is in the folder.

\sphinxAtStartPar
Now, we will download the PDB (Protein Databank) file for BLAT:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
wget http://gitlab.lcqb.upmc.fr/tekpinar/PRESCOTT/raw/8d766d4d11af0e93c9da8fc2c5cc1bfc457d2936/data/blat\PYGZhy{}af2.pdb
\end{sphinxVerbatim}


\section{Single point mutation calculations}
\label{\detokenize{docker:single-point-mutation-calculations}}
\sphinxAtStartPar
In order to make sure that the docker is installed:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
sudo docker \PYGZhy{}h
\end{sphinxVerbatim}

\sphinxAtStartPar
If it shows you a list of options, you are on a good track. On MacOS,
you may not need ‘sudo’ word before the docker command at all.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
sudo docker run \PYGZhy{}ti \PYGZhy{}\PYGZhy{}rm \PYGZhy{}\PYGZhy{}mount \PYG{n+nv}{type}\PYG{o}{=}bind,source\PYG{o}{=}\PYG{n+nv}{\PYGZdl{}PWD},target\PYG{o}{=}/home/tekpinar/research/myexample \PYG{l+s+se}{\PYGZbs{}}
tekpinar/prescott\PYGZhy{}docker:v1.5.0
\end{sphinxVerbatim}

\sphinxAtStartPar
You are in the container (your virtual operating system) now. You
created a folder called myexample in your container with the previous
command. Let’s change to that folder.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n+nb}{cd} ../myexample/
\end{sphinxVerbatim}

\sphinxAtStartPar
When you check the data in that folder with ‘ls’ command, you are
supposed to see aliBLAT.fasta and blat\sphinxhyphen{}af2.pdb files. Basically, your
docker\sphinxhyphen{}tutorial folder on the host system and myexample folder on the
docker container are pointing to the same place.


\subsection{Obtaining the entire single point mutation landscape}
\label{\detokenize{docker:obtaining-the-entire-single-point-mutation-landscape}}
\sphinxAtStartPar
In this step, we will use only evolutionary information from an MSA file:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
escott aliBLAT.fasta
\end{sphinxVerbatim}

\sphinxAtStartPar
After a few minutes of calculation, you must see at least two files named
BLAT\_normPred\_evolCombi.txt and BLAT\_normPred\_evolCombi.png. You have
the entire single point mutational landscape of BLAT protein in these
files.

\sphinxAtStartPar
If you want to utilize structural information (highly recommended) as well as
evolutionary information:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
escott aliBLAT.fasta \PYGZhy{}\PYGZhy{}pdbfile blat\PYGZhy{}af2.pdb
\end{sphinxVerbatim}


\subsection{Predicting the effect of a subset of single point mutations}
\label{\detokenize{docker:predicting-the-effect-of-a-subset-of-single-point-mutations}}
\sphinxAtStartPar
If you are interested in only a bunch of single point mutations,
you have to prepare a mut file. The format is a simple text file and
each line contains a single point mutation such as D26A….
Fortunately, we have an example mut in data folder of PRESCOTT repository.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
wget http://gitlab.lcqb.upmc.fr/tekpinar/PRESCOTT/raw/master/data/Stiffler\PYGZus{}2015\PYGZus{}BLAT\PYGZus{}ECOLX.mut
\end{sphinxVerbatim}

\sphinxAtStartPar
Similar to the previous step, there are two possible ways to do the calculations: with or without
structural information. First, let’s do it without structural information:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
escott aliBLAT.fasta \PYGZhy{}m Stiffler\PYGZus{}2015\PYGZus{}BLAT\PYGZus{}ECOLX.mut
\end{sphinxVerbatim}

\sphinxAtStartPar
You can include structural information in the following way:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
escott aliBLAT.fasta \PYGZhy{}\PYGZhy{}pdbfile blat\PYGZhy{}af2.pdb \PYG{l+s+se}{\PYGZbs{}}
\PYGZhy{}m Stiffler\PYGZus{}2015\PYGZus{}BLAT\PYGZus{}ECOLX.mut
\end{sphinxVerbatim}

\sphinxAtStartPar
You will have BLAT\_normPred\_evolCombi.txt file in your folder. However, the output
format is completely different from the entire mutational landscape scanning file.
Each line of this file is a mutation and its predicted effect separated by a space.
In addition, you won’t have a png file like in the previous case.


\section{Multiple point mutation calculations}
\label{\detokenize{docker:multiple-point-mutation-calculations}}
\sphinxAtStartPar
Sometimes, we need to see effects of double or triple mutations. ESCOTT can
perform calculations if you provide a mut file. In this case, the mut file must
have the following format:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
E26D:Y44R
E56N:A77F:H94V
\end{sphinxVerbatim}

\sphinxAtStartPar
The first line of the text file is impact of a double mutation and the second
line is the impact of the triple mutations. As you can see, the mutations are
separated by a colon(:) character.
The output file will be in a similar format. Each line will contain the multiple
mutation and its predicted effect, separated by a space.


\section{Running several jobs using docker}
\label{\detokenize{docker:running-several-jobs-using-docker}}
\sphinxstepscope


\chapter{Analyzing and Modifying the ESCOTT Output}
\label{\detokenize{analysis:analyzing-and-modifying-the-escott-output}}\label{\detokenize{analysis::doc}}

\section{Raw ESCOTT Scores and Their Interpretation}
\label{\detokenize{analysis:raw-escott-scores-and-their-interpretation}}
\sphinxAtStartPar
There is not a hardcoded limit for raw ESCOTT scores. However, the values
range between {[}\sphinxhyphen{}12, 2{]} generally. The lower values mean the mutations is impactful,
while values close to 0 means the mutation does not have any significant impact.

\sphinxAtStartPar
We should note that most of the ‘impactful’ mutations are deleterious but
it is not always the case.


\section{Entire Single Point Mutation Landscape Calculations}
\label{\detokenize{analysis:entire-single-point-mutation-landscape-calculations}}
\sphinxAtStartPar
By default, ESCOTT will only output the combined (independent
and epistatic) scores*:

\sphinxAtStartPar
There are three output files:
\begin{enumerate}
\sphinxsetlistlabels{\arabic}{enumi}{enumii}{}{.}%
\item {} 
\sphinxAtStartPar
myProt\_normPred\_evolCombi.txt
\begin{quote}

\sphinxAtStartPar
myProt is the short name in the MSA file for your protein. The
‘myProt\_normPred\_evolCombi.txt’ file contains 20 rows (for 20 amino acids
in alphabetical order) and L columns, where L is the number of amino acids
in your protein of interest. Since this file is horizontal, it is easy to
read it in R or Python but difficult to find the mutations you are interested.
\end{quote}

\item {} 
\sphinxAtStartPar
myProt\_normPred\_evolCombiTransposed.txt
\begin{quote}

\sphinxAtStartPar
As the name implies, this is the transposed version of the combined results.
It is easier to find the mutations you are interested in this file. Just
check the row corresponding to the mutation.
\end{quote}

\item {} 
\sphinxAtStartPar
myProt\_normPred\_evolCombi.png
\begin{quote}

\sphinxAtStartPar
This is the image file of the combined results. It selects ‘Oranges\_r’
matplotlib color map by default. You can change it by adding ‘\textendash{}colormap turbo\_r’
for a more fancy look during the esgemme call. It \textendash{}colormap argument accepts
all the color maps in matplotlib.
\end{quote}

\end{enumerate}

\sphinxAtStartPar
Note*: If you want to see epistatic and independent contributions as well,
you should add ‘\textendash{}verbose true’ argument while calling esgemme.


\section{Selected Single Point or Multiple Point Mutation Calculations}
\label{\detokenize{analysis:selected-single-point-or-multiple-point-mutation-calculations}}
\sphinxAtStartPar
Since you used a mutation file to predict mutations, you will have your combined (epistatic+independent)
results in the same format, such as :
\begin{description}
\sphinxlineitem{{\color{red}\bfseries{}*}. myProt\_normPred\_evolCombi.txt:}
\sphinxAtStartPar
A2C \sphinxhyphen{}6.23
A2D \sphinxhyphen{}1.23
.
.
.
D286F \sphinxhyphen{}0.23

\end{description}

\sphinxstepscope


\chapter{Preparing Your Own Input}
\label{\detokenize{input-preparation:preparing-your-own-input}}\label{\detokenize{input-preparation::doc}}

\section{Preparing Your Input MSA and PDB with Colabfold}
\label{\detokenize{input-preparation:preparing-your-input-msa-and-pdb-with-colabfold}}
\sphinxAtStartPar
You have a fasta file for your protein of interest and you want to understand
impact of (certain) mutations.
Before starting, please make sure that your fasta file does not contain a gap.
The quickest method to obtain both multiple sequence alignment and a protein
structure is to use Colabfold. Let’s do this step by step:
\begin{enumerate}
\sphinxsetlistlabels{\arabic}{enumi}{enumii}{}{.}%
\item {} 
\sphinxAtStartPar
Let’s go the Colabfold web site:

\sphinxAtStartPar
\sphinxurl{https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb}

\sphinxAtStartPar
Sign in using your gmail account.

\item {} 
\sphinxAtStartPar
Click on the ‘Connect’ button on the top right hand side.

\item {} 
\sphinxAtStartPar
Clean ‘query\_sequence’ box and paste your sequence to the ‘query\_sequence’ box.
For me, I selected adenylate kinase (AKE) as my example fasta sequence
(\sphinxurl{https://www.rcsb.org/fasta/entry/4AKE/display}).

\item {} 
\sphinxAtStartPar
Change the ‘jobname’ to something that makes more sense to you.

\item {} 
\sphinxAtStartPar
Go to the menu bar of your ‘AlphaFold2.ipynb’ notebook, where ‘File, Edit,
View, Insert, Runtime, Tools, Help’ are listed. Click on the Runtime and
select ‘Run all’.

\item {} 
\sphinxAtStartPar
This process make take from a few minutes to a few hours depending on your
protein size. It will give you an a3m file and up to 5 PDB models. Put these
files in a clean folder and change the directory to that folder in your
terminal.

\item {} 
\sphinxAtStartPar
Unfortunately, a3m file is not in fasta format and it contains gap columns.
We have to clean those gaps. We can do that with a GUI program like Ugene
or Jalview. However, it is a labor intensive procedure. Here, I will use a
small tool that I developed and added to the PRESCOTT docker image that I created.

\item {} 
\sphinxAtStartPar
Start the docker image with the following command:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
sudo docker run \PYGZhy{}ti \PYGZhy{}\PYGZhy{}rm \PYGZhy{}\PYGZhy{}mount \PYG{n+nv}{type}\PYG{o}{=}bind,source\PYG{o}{=}\PYG{n+nv}{\PYGZdl{}PWD},target\PYG{o}{=}/home/tekpinar/research/myexample \PYG{l+s+se}{\PYGZbs{}}
tekpinar/esgemme\PYGZhy{}docker:v1.3.0
\end{sphinxVerbatim}

\item {} 
\sphinxAtStartPar
Now, change the directory to myexample folder.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n+nb}{cd} ../myexample/
ls \PYGZhy{}l
\end{sphinxVerbatim}

\sphinxAtStartPar
We are supposed to see our a3m and pdb files in this folder.

\item {} 
\sphinxAtStartPar
Let’s use a small script from hhsuite to convert a3m file to fasta format.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
reformat.pl a3m fas AKE.a3m AKE.fasta
\end{sphinxVerbatim}

\item {} 
\sphinxAtStartPar
Final step and we are there:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
demust removegaps \PYGZhy{}i AKE.fasta \PYGZhy{}o AKE\PYGZus{}nogaps.fasta
\end{sphinxVerbatim}

\end{enumerate}

\sphinxAtStartPar
There is one last step to reach our goal. ID and description parts of the
a3m and fasta files are too long. We have to shorten them. We can do that with
\begin{quote}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
awk \PYG{l+s+s1}{\PYGZsq{}BEGIN\PYGZob{}FS=\PYGZdq{} \PYGZdq{}\PYGZcb{}\PYGZob{}if(NF\PYGZgt{}1) \PYGZob{}printf(\PYGZdq{}\PYGZgt{}\PYGZpc{}s\PYGZbs{}n\PYGZdq{}, \PYGZdl{}1)\PYGZcb{}else\PYGZob{}print \PYGZdl{}0\PYGZcb{}\PYGZcb{}\PYGZsq{}} AKE\PYGZus{}nogaps.fasta \PYGZgt{} AKE\PYGZus{}nogaps\PYGZus{}short\PYGZus{}names.fasta
\PYG{c+c1}{\PYGZsh{} Recheck this command if you can remove extra \PYGZgt{}}
\end{sphinxVerbatim}
\end{quote}

\sphinxAtStartPar
Congratulations! Now, you have all the input files required for PRESCOTT:
I. An input MSA: AKE\_nogaps\_short\_names.fasta
II. An input PDB: myprotein.pdb

\sphinxstepscope


\chapter{Installation}
\label{\detokenize{installation:installation}}\label{\detokenize{installation::doc}}
\sphinxAtStartPar
PRESCOTT is implemented in Python 3 and R. It has been tested only on
Linux. Since PRESCOTT has many dependencies, we recommend using our web
site or our docker image. If you are a determined user, here comes the
steps required to install it from the source.


\section{Installing the dependencies:}
\label{\detokenize{installation:installing-the-dependencies}}
\sphinxAtStartPar
PRESCOTT has the following external dependencies:
\begin{itemize}
\item {} 
\sphinxAtStartPar
Joint Evolutionary Trees: \sphinxurl{http://www.lcqb.upmc.fr/JET2/} and its dependencies:
\begin{itemize}
\item {} 
\sphinxAtStartPar
java

\item {} 
\sphinxAtStartPar
naccess: \sphinxurl{http://www.bioinf.manchester.ac.uk/naccess/}

\end{itemize}

\end{itemize}

\sphinxAtStartPar
After you installed JET2 define a parameter called JET2\_PATH inside your .profile file.
You can open .profile as follows:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
gedit \PYGZti{}/.profile
\end{sphinxVerbatim}

\sphinxAtStartPar
You should add a command like below to the end of that file, save and exit.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n+nb}{export} \PYG{n+nv}{JET2\PYGZus{}PATH}\PYG{o}{=}/home/tekpinar/JET2/
\end{sphinxVerbatim}

\sphinxAtStartPar
Please, do not forget to replace /home/tekpinar/JET2 with your own file path.

\sphinxAtStartPar
Then, source the saved .profile so that the environment variable will be taken into account:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n+nb}{source} \PYGZti{}/.profile
\end{sphinxVerbatim}

\sphinxAtStartPar
JET2 is essential and it should be installed to be able to use PRESCOTT.


\section{Preparation of the environment and installation of PRESCOTT}
\label{\detokenize{installation:preparation-of-the-environment-and-installation-of-prescott}}
\sphinxAtStartPar
Step by step installation on Ubuntu 22.04

\sphinxAtStartPar
Prepare your environment and install the required packages:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
sudo apt\PYGZhy{}get update \PYGZhy{}\PYGZhy{}fix\PYGZhy{}missing \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y \PYGZhy{}\PYGZhy{}no\PYGZhy{}install\PYGZhy{}recommends apt\PYGZhy{}utils \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y software\PYGZhy{}properties\PYGZhy{}common \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y autotools\PYGZhy{}dev \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y automake \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y build\PYGZhy{}essential \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y python3\PYGZhy{}dev \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y python3\PYGZhy{}pip \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y r\PYGZhy{}base r\PYGZhy{}base\PYGZhy{}core \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y muscle \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y default\PYGZhy{}jre \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y ncbi\PYGZhy{}blast+ \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y nano \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y less \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y wget \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install csh \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y hmmer \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get install \PYGZhy{}y libboost\PYGZhy{}all\PYGZhy{}dev \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo apt\PYGZhy{}get clean \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo rm \PYGZhy{}rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
\end{sphinxVerbatim}

\sphinxAtStartPar
\#Dssp installation

\sphinxAtStartPar
If you are using Ubuntu 20.04, you can install dssp by the following command

\begin{sphinxVerbatim}[commandchars=\\\{\}]
sudo apt\PYGZhy{}get install dssp
\end{sphinxVerbatim}

\sphinxAtStartPar
Otherwise, you can install it from the source by the following commands.
Please note that default dssp in Ubuntu 22.04 is not working properly.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
wget https://github.com/cmbi/dssp/archive/refs/heads/master.zip   \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
unzip \PYGZhy{}o master.zip \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{n+nb}{cd} dssp\PYGZhy{}master/  \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
./autogen.sh \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
./configure \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
make \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo make install \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo ln \PYGZhy{}s /usr/local/bin/mkdssp /usr/local/bin/dssp \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
\PYG{n+nb}{cd} ../ \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo rm \PYGZhy{}rf dssp\PYGZhy{}master/ \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo rm \PYGZhy{}f master.zip
\end{sphinxVerbatim}

\sphinxAtStartPar
\#HHSUITE installation

\begin{sphinxVerbatim}[commandchars=\\\{\}]
wget https://github.com/soedinglab/hh\PYGZhy{}suite/releases/download/v3.3.0/hhsuite\PYGZhy{}3.3.0\PYGZhy{}AVX2\PYGZhy{}Linux.tar.gz \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
mkdir hhsuite \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
mv hhsuite\PYGZhy{}3.3.0\PYGZhy{}AVX2\PYGZhy{}Linux.tar.gz hhsuite/ \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
\PYG{n+nb}{cd} hhsuite \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
tar xvfz hhsuite\PYGZhy{}3.3.0\PYGZhy{}AVX2\PYGZhy{}Linux.tar.gz \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
rm \PYGZhy{}f hhsuite\PYGZhy{}3.3.0\PYGZhy{}AVX2\PYGZhy{}Linux.tar.gz
\end{sphinxVerbatim}

\sphinxAtStartPar
\#Add it to your path permanently inside .bashrc or .profile or .bash\_profile
Check the location of hhsuite folder and add it to your path
In my case it was in /home/tekpinar/research/lcqb folder. Therefore, I added the following line
to my .profile file.
Open .profile file with gedit:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
gedit \PYGZti{}/.profile
\end{sphinxVerbatim}

\sphinxAtStartPar
Now, add the following line to the end of the file.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n+nv}{PATH}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{/home/tekpinar/research/lcqb/hhsuite/bin:/home/tekpinar/research/lcqb/hhsuite/scripts:}\PYG{n+nv}{\PYGZdl{}PATH}\PYG{l+s+s2}{\PYGZdq{}}
\end{sphinxVerbatim}

\sphinxAtStartPar
Of course, your path will not be /home/tekpinar/research/lcqb/ and you have to modify the path according to
your system. Save the file and exit. Then,

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n+nb}{source} \PYGZti{}/.profile
\end{sphinxVerbatim}

\sphinxAtStartPar
\#
\begin{quote}

\sphinxAtStartPar
cd PRESCOTT
\end{quote}

\sphinxAtStartPar
\#Download PRESCOTT from \sphinxurl{http://gitlab.lcqb.upmc.fr/tekpinar/PRESCOTT} repository and go inside the PRESCOTT folder.!
You can download the master version using command line as follows:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
git clone http://gitlab.lcqb.upmc.fr/tekpinar/PRESCOTT.git
\end{sphinxVerbatim}

\sphinxAtStartPar
If you would like the development version:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
git clone \PYGZhy{}b development http://gitlab.lcqb.upmc.fr/tekpinar/PRESCOTT.git
\end{sphinxVerbatim}

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{n+nb}{cd} PRESCOTT
\end{sphinxVerbatim}


\section{Configuring default.conf file}
\label{\detokenize{installation:configuring-default-conf-file}}
\sphinxAtStartPar
Inside PRESCOTT/esgemme folder, there is an important file called default.conf.
This file contains essential parameters of PRESCOTT, such as paths of
external parts, default internal parameters. etc. You have to correct the Software section of this
file according to your system.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
pip3 install \PYGZhy{}e . \PYG{o}{\PYGZam{}\PYGZam{}}\PYG{l+s+se}{\PYGZbs{}}
\PYG{n+nb}{cd} ../
\end{sphinxVerbatim}

\sphinxAtStartPar
\#Installing the required R packages

\begin{sphinxVerbatim}[commandchars=\\\{\}]
sudo Rscript \PYGZhy{}e \PYG{l+s+s1}{\PYGZsq{}install.packages(\PYGZdq{}seqinr\PYGZdq{}, repos=\PYGZdq{}http://cran.us.r\PYGZhy{}project.org\PYGZdq{}, dependencies=TRUE)\PYGZsq{}}
\end{sphinxVerbatim}

\sphinxAtStartPar
\#Installing secondary programs such as ev\_couplings to obtain MSA files.

\begin{sphinxVerbatim}[commandchars=\\\{\}]
wget https://github.com/debbiemarkslab/plmc/archive/refs/heads/master.zip \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
unzip \PYGZhy{}o master.zip \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
\PYG{n+nb}{cd} plmc\PYGZhy{}master \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
make all\PYGZhy{}openmp32 \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
sudo cp bin/plmc /usr/local/bin/ \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
\PYG{n+nb}{cd} ../ \PYG{o}{\PYGZam{}\PYGZam{}} \PYG{l+s+se}{\PYGZbs{}}
rm \PYGZhy{}rf master.zip plmc\PYGZhy{}master
\end{sphinxVerbatim}


\chapter{Indices and tables}
\label{\detokenize{index:indices-and-tables}}\begin{itemize}
\item {} 
\sphinxAtStartPar
\DUrole{xref,std,std-ref}{genindex}

\item {} 
\sphinxAtStartPar
\DUrole{xref,std,std-ref}{modindex}

\item {} 
\sphinxAtStartPar
\DUrole{xref,std,std-ref}{search}

\end{itemize}



\renewcommand{\indexname}{Index}
\printindex
\end{document}