From 4fa7833a8754fec0c4d524d7e750d6a7d3e886b9 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Tue, 20 Nov 2018 11:47:00 -0700
Subject: [PATCH 01/19] minor correction [skip ci]

---
 docs/gui.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/gui.rst b/docs/gui.rst
index fc2af2a..e131a37 100644
--- a/docs/gui.rst
+++ b/docs/gui.rst
@@ -19,8 +19,8 @@ Step by step guide to run PhaME using web interface in a local machine. Docker a
     POSTGRES_HOST=postgres
     POSTGRES_PORT=5432
     POSTGRES_DB=phame_api01
-    POSTGRES_USER=debug
-    POSTGRES_PASSWORD=debug
+    POSTGRES_USER=<user>
+    POSTGRES_PASSWORD=<postgres_password>
 
 
 4. cd to the project root  directory `phame_api01`

From a0055b9945df92c25cbe757cd0d42ea2cf9fe760 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Tue, 20 Nov 2018 14:12:05 -0700
Subject: [PATCH 02/19] added git repo

---
 docs/gui.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/gui.rst b/docs/gui.rst
index e131a37..f95634e 100644
--- a/docs/gui.rst
+++ b/docs/gui.rst
@@ -7,7 +7,7 @@ Step by step guide to run PhaME using web interface in a local machine. Docker a
 
 .. code-block:: console
 
-    git clone
+    git clone git@github.com:LANL-Bioinformatics/phame-api.git
 
 
 2. create a `.postegres` file within the cloned directory `phame_api01/.envs/.local/.postgres`, and add following lines to it.

From 21c2c5891c4a6f865961cac0c2059fba2f869746 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Sat, 15 Dec 2018 10:50:43 -0700
Subject: [PATCH 03/19] more badges

---
 README.md | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 5920b72..1fad4fc 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,10 @@
 [![Build Status](https://travis-ci.org/mshakya/PhaME.svg?branch=master)](https://travis-ci.org/mshakya/PhaME)
 [![Waffle.io - Columns and their card count](https://badge.waffle.io/mshakya/PhaME-1.svg?columns=all)](https://waffle.io/mshakya/PhaME-1)
 [![Documentation Status](https://readthedocs.org/projects/phame/badge/?version=latest)](https://phame.readthedocs.io/en/latest/?badge=latest)
-[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io/recipes/phame/README.html)
+[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)]
+(http://bioconda.github.io/recipes/phame/README.html)
+[![docker](https://quay.io/repository/biocontainers/phame/status)](https://quay.io/repository/biocontainers/phame)
+[![phame-downloads](https://anaconda.org/bioconda/phame/badges/downloads.svg)]
 
 Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads. 
 Uses SNP multiple sequence alignment to construct a phylogenetic tree. 

From 846a9097b6a9920c100d7958116356283bb1c6b6 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Sat, 15 Dec 2018 11:01:31 -0700
Subject: [PATCH 04/19] [skip ci] minor change

---
 README.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 1fad4fc..e7746b9 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,7 @@
 [![Build Status](https://travis-ci.org/mshakya/PhaME.svg?branch=master)](https://travis-ci.org/mshakya/PhaME)
 [![Waffle.io - Columns and their card count](https://badge.waffle.io/mshakya/PhaME-1.svg?columns=all)](https://waffle.io/mshakya/PhaME-1)
 [![Documentation Status](https://readthedocs.org/projects/phame/badge/?version=latest)](https://phame.readthedocs.io/en/latest/?badge=latest)
-[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)]
-(http://bioconda.github.io/recipes/phame/README.html)
+[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io/recipes/phame/README.html)
 [![docker](https://quay.io/repository/biocontainers/phame/status)](https://quay.io/repository/biocontainers/phame)
 [![phame-downloads](https://anaconda.org/bioconda/phame/badges/downloads.svg)]
 

From b7183693939c7a1ea084ee3677e0aac111d9880c Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 15:50:54 -0700
Subject: [PATCH 05/19] splitting installation files

---
 docs/install/conda.rst                      | 26 +++++++++
 docs/{ => install}/docker.rst               |  6 +-
 docs/{gui.rst => install/web-interface.rst} |  0
 docs/installation.rst                       | 63 ---------------------
 4 files changed, 29 insertions(+), 66 deletions(-)
 create mode 100644 docs/install/conda.rst
 rename docs/{ => install}/docker.rst (91%)
 rename docs/{gui.rst => install/web-interface.rst} (100%)
 delete mode 100644 docs/installation.rst

diff --git a/docs/install/conda.rst b/docs/install/conda.rst
new file mode 100644
index 0000000..1175bc2
--- /dev/null
+++ b/docs/install/conda.rst
@@ -0,0 +1,26 @@
+Installing PhaME using conda
+############################
+
+PhaME can be installed using conda. If you do not have anaconda or miniconda installed, please do so. Installation of miniconda or anaconda is rather straight forward. After installtion of conda, add channels for bioconda and conda-forge using:
+ 
+ .. code-block:: console
+ 
+    $ conda config --add channels r
+    $ conda config --add channels defaults
+    $ conda config --add channels conda-forge
+    $ conda config --add channels bioconda
+
+
+Then simply run
+
+
+.. code-block:: console
+
+    conda install phame
+
+We recommend creating a separate conda environment for PhaME. You can create a conda environment by:
+
+.. code-block:: console
+
+    $ conda create -n my_env
+    $ conda install phame -n my_env
diff --git a/docs/docker.rst b/docs/install/docker.rst
similarity index 91%
rename from docs/docker.rst
rename to docs/install/docker.rst
index 1891fb3..d1875e7 100644
--- a/docs/docker.rst
+++ b/docs/install/docker.rst
@@ -10,15 +10,15 @@ To bypass the installation steps, we have provided a docker [image](https://stac
 	
 	.. code-block:: console
 		
-		$ docker pull quay.io/biocontainers/phame:1.0.1--0
+		$ docker pull quay.io/biocontainers/phame:1.0.3--0
 
 
 3. Check if the image is correctly downloaded by running the provided test:
 	
 	.. code-block:: console
 
-		$ docker run --rm quay.io/biocontainers/phame:1.0.1--1 phame -h
-		$ docker run --rm quay.io/biocontainers/phame:1.0.1--1 phame -vcheck
+		$ docker run --rm quay.io/biocontainers/phame:1.0.3--0 phame -h
+		$ docker run --rm quay.io/biocontainers/phame:1.0.3--0 phame -vcheck
 
 4. Run your own data using docker. A step by step guide
 	- Create a folder to mount onto your docker
diff --git a/docs/gui.rst b/docs/install/web-interface.rst
similarity index 100%
rename from docs/gui.rst
rename to docs/install/web-interface.rst
diff --git a/docs/installation.rst b/docs/installation.rst
deleted file mode 100644
index 2bf103d..0000000
--- a/docs/installation.rst
+++ /dev/null
@@ -1,63 +0,0 @@
-Installing PhaME
-################
-
-PhaME can be installed using conda. If you do not have anaconda or miniconda installed, please do so. Installation of miniconda or anaconda is rather straight forward. After installtion of conda, add channels for bioconda and conda-forge using:
- 
- .. code-block:: console
- 
-    $ conda config --add channels r
-    $ conda config --add channels defaults
-    $ conda config --add channels conda-forge
-    $ conda config --add channels bioconda
-
-
-Then simply run
-
-
-.. code-block:: console
-
-    conda install phame
-
-We do recommend creating a separate conda environment for PhaME. You can create a conda environment by:
-
-.. code-block:: console
-
-    $ conda create -n my_env
-    $ conda install phame -n my_env
-
-
-
-Dependencies
-============
-
-Programming/Scripting languages
--------------------------------
-* Perl > 5.16
-
-Third party softwares/packages
--------------------------------
-* MUMmer version 3.23 - For pairwise alignments of genomes and contigs using NUCmer 
-* Bowtie2 version >=2.2.8 - To map reads
-* BWA >= 0.7.17 - To map reads
-* SAMtools >=1.6 Convert BAM files and other miscs functions.
-* FastTree version >=2.1.9 - Construction of phylogenetic tree.
-* RAxML version >=8.2.9 - Maximum likelihood construction of phylogenetic tree.
-* mafft version >=7.305 - Alignment of protein coding genes for evolutionary analyses.
-* pal2nal version >=14 - Converts protein sequence alignment to codon alignments.
-* paml version >=4.8 - For evolutionary analyses
-* HyPhy version >=2.2 - For evolutionary analyses
-* cmake VER >= 3.0.1
-* gcc >= 4.9
-* bcftools VER >= 1.6 - For calling SNPs.
-* bbmap version >= 37.90 -  For picking references using mash
-
-Perl Packages
--------------
-* File::Basename = 2.85
-* File::Path = 2.09
-* Getopt::Long = 2.45
-* IO::Handle = 1.28
-* Parllel::ForkManager = 1.17
-* Statistics::Distributions = 1.02
-* Time::BaseName = 2.85
-* Time::HiRes = 1.9726

From 43d38d7989b43b6f7146d026354f1ba97c70479d Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 15:59:06 -0700
Subject: [PATCH 06/19] [skip ci] testing some doc changes

---
 docs/index.rst        | 4 ++--
 docs/introduction.rst | 9 +++++++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/docs/index.rst b/docs/index.rst
index 0898354..46a5989 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -4,9 +4,9 @@ PhaME: **Ph**\ylogenetics **a**\nd **M**\olecular **E**\volution analysis tool
 .. toctree::
    :numbered:
    :maxdepth: 2
-   
+
    introduction
-   installation
+   install
    runphame
    cases
    docker
diff --git a/docs/introduction.rst b/docs/introduction.rst
index b010772..5484523 100644
--- a/docs/introduction.rst
+++ b/docs/introduction.rst
@@ -7,3 +7,12 @@ What is PhaME?
 PhaME or Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analysis pertaining to phylogeny and moleuclar evolution.
 
 Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads, uses SNP multiple sequence alignment to construct a phylogenetic tree, and provides evolutionary analyses (genes under positive selection) using CDS SNPs.
+
+
+Quick usage
+===========
+To quickly get started with PhaME, you can install using conda.
+
+.. code-block:: console
+
+    conda install phame

From 48b9e19f3a4712d5906e4d0c1bb811567fa350ac Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 16:09:34 -0700
Subject: [PATCH 07/19] testing [skip ci]

---
 docs/index.rst | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/docs/index.rst b/docs/index.rst
index 46a5989..c9f847a 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,6 +1,11 @@
 PhaME: **Ph**\ylogenetics **a**\nd **M**\olecular **E**\volution analysis tool
 ##########################################################################
 
+Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analysis pertaining to phylogeny and moleuclar evolution.
+
+Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads, uses SNP multiple sequence alignment to construct a phylogenetic tree, and provides evolutionary analyses (genes under positive selection) using CDS SNPs.
+
+
 .. toctree::
    :numbered:
    :maxdepth: 2

From fddf4b4ead6488bf32bf0aa838c00c3226264007 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 16:22:43 -0700
Subject: [PATCH 08/19] [skip ci] testing readthedoc

---
 docs/index.rst | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/docs/index.rst b/docs/index.rst
index c9f847a..3a55df3 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -6,23 +6,28 @@ Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analy
 Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads, uses SNP multiple sequence alignment to construct a phylogenetic tree, and provides evolutionary analyses (genes under positive selection) using CDS SNPs.
 
 
+
+Introduction
+-----
 .. toctree::
    :numbered:
    :maxdepth: 2
-
    introduction
-   install
-   runphame
-   cases
-   docker
-   gui
-   commandline
-   output
-   database
-   third_party
-   troubleshooting
-   copyright
+
+Install
+-------
+.. toctree::
+   install/conda.rst
+   install/docker.rst
+   install/web-interface.rst
+
+
+Citation
+--------
+.. toctree::
    citation
-   contact
+
+Contact
+
 
 

From 7df38a84d95a3863a8125508727e48b549480584 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 16:36:34 -0700
Subject: [PATCH 09/19] [skip ci] fixing readthedocs

---
 docs/img/phame.png             | Bin 0 -> 47945 bytes
 docs/index.rst                 |  20 ++++++++------------
 docs/install/conda.rst         |   5 ++---
 docs/install/docker.rst        |   4 ++--
 docs/install/web-interface.rst |   2 +-
 5 files changed, 13 insertions(+), 18 deletions(-)
 create mode 100644 docs/img/phame.png

diff --git a/docs/img/phame.png b/docs/img/phame.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9cceddc5e73bc1ea90b86521164370ebc5d8d47
GIT binary patch
literal 47945
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
KMNUMnLSTX(o!wRd

literal 0
HcmV?d00001

diff --git a/docs/index.rst b/docs/index.rst
index 3a55df3..fa2a206 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -6,24 +6,20 @@ Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analy
 Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads, uses SNP multiple sequence alignment to construct a phylogenetic tree, and provides evolutionary analyses (genes under positive selection) using CDS SNPs.
 
 
-
-Introduction
------
 .. toctree::
-   :numbered:
    :maxdepth: 2
-   introduction
+   :hidden:
+   :caption: Introduction
+    introduction
 
-Install
--------
 .. toctree::
-   install/conda.rst
-   install/docker.rst
-   install/web-interface.rst
+    :maxdepth: 2
+    :caption: Install
+    install/conda.rst
+    install/docker.rst
+    install/web-interface.rst
 
 
-Citation
---------
 .. toctree::
    citation
 
diff --git a/docs/install/conda.rst b/docs/install/conda.rst
index 1175bc2..16d457a 100644
--- a/docs/install/conda.rst
+++ b/docs/install/conda.rst
@@ -1,7 +1,7 @@
-Installing PhaME using conda
+Conda
 ############################
 
-PhaME can be installed using conda. If you do not have anaconda or miniconda installed, please do so. Installation of miniconda or anaconda is rather straight forward. After installtion of conda, add channels for bioconda and conda-forge using:
+PhaME can be installed using [conda](https://conda.io/docs/index.html). If you do not have anaconda or miniconda installed, please do so. Installation of miniconda or anaconda is rather straight forward. After installtion of conda, add channels for bioconda and conda-forge using:
  
  .. code-block:: console
  
@@ -13,7 +13,6 @@ PhaME can be installed using conda. If you do not have anaconda or miniconda ins
 
 Then simply run
 
-
 .. code-block:: console
 
     conda install phame
diff --git a/docs/install/docker.rst b/docs/install/docker.rst
index d1875e7..8c500f3 100644
--- a/docs/install/docker.rst
+++ b/docs/install/docker.rst
@@ -1,5 +1,5 @@
-Running PhaME with Docker
-#########################
+Docker
+#######
 
 To bypass the installation steps, we have provided a docker [image](https://stackoverflow.com/questions/23735149/what-is-the-difference-between-a-docker-image-and-a-container) for PhaME. To run PhaME from a docker image, follow these steps:
 
diff --git a/docs/install/web-interface.rst b/docs/install/web-interface.rst
index f95634e..3b8311c 100644
--- a/docs/install/web-interface.rst
+++ b/docs/install/web-interface.rst
@@ -1,4 +1,4 @@
-Using PhaME through a web-interface.
+Web-interface.
 ####################################
 
 Step by step guide to run PhaME using web interface in a local machine. Docker and git is required.

From 6d34f2827902247c86e23459689dceaeee5ac12e Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 21:47:55 -0700
Subject: [PATCH 10/19] still fixing [skip ci]

---
 .gitignore     | 3 ++-
 docs/index.rst | 6 ++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/.gitignore b/.gitignore
index e030bcf..971dd81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,4 +25,5 @@ thirdParty/messages.log
 thirdParty/evolver.out
 thirdParty/errors.log
 messages.log
-*.log
\ No newline at end of file
+*.log
+docs/_build/*
\ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index fa2a206..f467983 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -8,20 +8,22 @@ Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/
 
 .. toctree::
    :maxdepth: 2
-   :hidden:
    :caption: Introduction
+   
     introduction
 
 .. toctree::
     :maxdepth: 2
     :caption: Install
+
     install/conda.rst
     install/docker.rst
     install/web-interface.rst
 
 
 .. toctree::
-   citation
+    :maxdepth: 2
+    citation
 
 Contact
 

From 60558de07612be2d61c3f6b7df838bd6955ea242 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 22:34:36 -0700
Subject: [PATCH 11/19] [skip ci] moving files around

---
 docs/README.rst            |  1 -
 docs/index.rst             | 30 +++++++++++------
 docs/install/docker.rst    | 68 +++++++++++++++++++-------------------
 docs/introduction.rst      |  4 +--
 docs/{ => usage}/cases.rst |  0
 5 files changed, 55 insertions(+), 48 deletions(-)
 delete mode 100644 docs/README.rst
 rename docs/{ => usage}/cases.rst (100%)

diff --git a/docs/README.rst b/docs/README.rst
deleted file mode 100644
index 30d74d2..0000000
--- a/docs/README.rst
+++ /dev/null
@@ -1 +0,0 @@
-test
\ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index f467983..8cbe3b8 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,5 +1,5 @@
 PhaME: **Ph**\ylogenetics **a**\nd **M**\olecular **E**\volution analysis tool
-##########################################################################
+##############################################################################
 
 Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analysis pertaining to phylogeny and moleuclar evolution.
 
@@ -7,25 +7,33 @@ Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/
 
 
 .. toctree::
-   :maxdepth: 2
-   :caption: Introduction
-   
-    introduction
+    :maxdepth: 2
+    :caption: INTRODUCTION
+
+    introduction.rst
+
+.. toctree::
+    :maxdepth: 2
+    :caption: INSTALL
+
+    install/conda
+    install/docker
+    install/web-interface
 
 .. toctree::
     :maxdepth: 2
-    :caption: Install
+    :caption: USAGE
 
-    install/conda.rst
-    install/docker.rst
-    install/web-interface.rst
+    usage/cases
 
 
 .. toctree::
     :maxdepth: 2
-    citation
+    :caption: CITATION
+
+    citation.rst
+
 
-Contact
 
 
 
diff --git a/docs/install/docker.rst b/docs/install/docker.rst
index 8c500f3..be96395 100644
--- a/docs/install/docker.rst
+++ b/docs/install/docker.rst
@@ -6,55 +6,55 @@ To bypass the installation steps, we have provided a docker [image](https://stac
 1. Install .. _Docker: https://docs.docker.com/install/
 
 
-2. Download the latest PhaME image from [quay.io](https:quay.io/) 
-	
-	.. code-block:: console
-		
-		$ docker pull quay.io/biocontainers/phame:1.0.3--0
+2. Download the latest PhaME image from [quay.io](https:quay.io/)
+
+    .. code-block:: console
+
+        $ docker pull quay.io/biocontainers/phame:1.0.3--0
 
 
 3. Check if the image is correctly downloaded by running the provided test:
-	
-	.. code-block:: console
+    
+    .. code-block:: console
 
-		$ docker run --rm quay.io/biocontainers/phame:1.0.3--0 phame -h
-		$ docker run --rm quay.io/biocontainers/phame:1.0.3--0 phame -vcheck
+        $ docker run --rm quay.io/biocontainers/phame:1.0.3--0 phame -h
+        $ docker run --rm quay.io/biocontainers/phame:1.0.3--0 phame -vcheck
 
 4. Run your own data using docker. A step by step guide
-	- Create a folder to mount onto your docker
+    - Create a folder to mount onto your docker
 
-	.. code-block:: console
-	
-		$ mkdir -p phame_analysis_folder
+    .. code-block:: console
+    
+        $ mkdir -p phame_analysis_folder
 
-	
-	- Create a `refdir` folder with complete genomes within `phame_analysis_folder`
+    
+    - Create a `refdir` folder with complete genomes within `phame_analysis_folder`
 
-  		This folder will contain fasta files representing complete genomes.
+          This folder will contain fasta files representing complete genomes.
 
-  		.. code-block:: console
-  		
-			$ cd phame_analysis_folder
-			$ mkdir -p refdir
+          .. code-block:: console
+          
+            $ cd phame_analysis_folder
+            $ mkdir -p refdir
 
-		Copy or download genomes and their gff files (if needed) onto this folder.
+        Copy or download genomes and their gff files (if needed) onto this folder.
 
-	- Create a `workdir` folder within the `phame_analysis_folder`.
-    	This folder will have all the intermediate and final outputs of the analysis including input contigs and reference.
+    - Create a `workdir` folder within the `phame_analysis_folder`.
+        This folder will have all the intermediate and final outputs of the analysis including input contigs and reference.
 
-		.. code-block:: console
-		
-			$ mkdir -p workdir
+        .. code-block:: console
+        
+            $ mkdir -p workdir
 
-	- Create a control file.
-    	All the inputs and parameters of a PhaME analysis is set in the control file. Using the provided template create a control file with apprpriate parameters and save it in the `phame_analysis_foler`.
+    - Create a control file.
+        All the inputs and parameters of a PhaME analysis is set in the control file. Using the provided template create a control file with apprpriate parameters and save it in the `phame_analysis_foler`.
 
-	- Run the analysis using docker.
+    - Run the analysis using docker.
 
-	.. code-block:: console
-	
-		$ docker run --rm -v $(pwd)/phame_analysis_folder:/data migun/phame src/phame /data/ecoli.ctl
-		$ git clone https://github.com/mshakya/phame_examples.git
-		$ docker run --rm -v $(pwd)/phame_examples:/data migun/phame-1 perl src/phame /data/ecoli/ecoli.ctl
+    .. code-block:: console
+    
+        $ docker run --rm -v $(pwd)/phame_analysis_folder:/data migun/phame src/phame /data/ecoli.ctl
+        $ git clone https://github.com/mshakya/phame_examples.git
+        $ docker run --rm -v $(pwd)/phame_examples:/data migun/phame-1 perl src/phame /data/ecoli/ecoli.ctl
 
 
diff --git a/docs/introduction.rst b/docs/introduction.rst
index 5484523..9139128 100644
--- a/docs/introduction.rst
+++ b/docs/introduction.rst
@@ -1,8 +1,8 @@
 Introduction
-############
+#############
 
 What is PhaME?
-=============
+==============
 
 PhaME or Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analysis pertaining to phylogeny and moleuclar evolution.
 
diff --git a/docs/cases.rst b/docs/usage/cases.rst
similarity index 100%
rename from docs/cases.rst
rename to docs/usage/cases.rst

From 50875031454c12f296c3023ebbf364ece0c76956 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 22:35:45 -0700
Subject: [PATCH 12/19] [skip ci] image file

---
 docs/img/{phame.png => runPhame.png} | Bin
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename docs/img/{phame.png => runPhame.png} (100%)

diff --git a/docs/img/phame.png b/docs/img/runPhame.png
similarity index 100%
rename from docs/img/phame.png
rename to docs/img/runPhame.png

From 939429318f9b0555b013394bd282a61d4bb816e7 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 22:42:18 -0700
Subject: [PATCH 13/19] [skip ci] renaming files

---
 docs/conf.py                        | 177 ++++++++++++++++++++++++++++
 docs/img/{runPhame.png => logo.png} | Bin
 2 files changed, 177 insertions(+)
 create mode 100644 docs/conf.py
 rename docs/img/{runPhame.png => logo.png} (100%)

diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..219dc9f
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,177 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'phame'
+copyright = '2018, migun'
+author = 'migun'
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = ''
+
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+
+html_logo = 'img/logo.png'
+html_theme = 'alabaster'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+html_theme_options = {
+    'logo_only': True
+}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'phame'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'phame.tex', 'phame Documentation',
+     'migun', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'phame', 'phame Documentation',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'phame', 'phame Documentation',
+     author, 'phame', 'One line description of project.',
+     'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
\ No newline at end of file
diff --git a/docs/img/runPhame.png b/docs/img/logo.png
similarity index 100%
rename from docs/img/runPhame.png
rename to docs/img/logo.png

From 875599d4c561209c00cbefa642c256f0bb0cca6c Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 22:50:22 -0700
Subject: [PATCH 14/19] [skip ci] arranged docs

---
 docs/conf.py                             |   6 +-
 docs/index.rst                           |   3 +-
 docs/{ => introduction}/introduction.rst |   2 +
 docs/introduction/runphame.rst           | 294 +++++++++++++++++++++++
 docs/runphame.rst                        | 290 ----------------------
 5 files changed, 301 insertions(+), 294 deletions(-)
 rename docs/{ => introduction}/introduction.rst (99%)
 create mode 100644 docs/introduction/runphame.rst
 delete mode 100644 docs/runphame.rst

diff --git a/docs/conf.py b/docs/conf.py
index 219dc9f..7cd3676 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -82,9 +82,9 @@
 # further.  For a list of options available for each theme, see the
 # documentation.
 #
-html_theme_options = {
-    'logo_only': True
-}
+# html_theme_options = {
+#     'logo_only': True
+# }
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
diff --git a/docs/index.rst b/docs/index.rst
index 8cbe3b8..7967086 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -10,7 +10,8 @@ Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/
     :maxdepth: 2
     :caption: INTRODUCTION
 
-    introduction.rst
+    introduction/introduction
+    introduction/runphame
 
 .. toctree::
     :maxdepth: 2
diff --git a/docs/introduction.rst b/docs/introduction/introduction.rst
similarity index 99%
rename from docs/introduction.rst
rename to docs/introduction/introduction.rst
index 9139128..542ffbc 100644
--- a/docs/introduction.rst
+++ b/docs/introduction/introduction.rst
@@ -4,6 +4,8 @@ Introduction
 What is PhaME?
 ==============
 
+
+
 PhaME or Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analysis pertaining to phylogeny and moleuclar evolution.
 
 Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads, uses SNP multiple sequence alignment to construct a phylogenetic tree, and provides evolutionary analyses (genes under positive selection) using CDS SNPs.
diff --git a/docs/introduction/runphame.rst b/docs/introduction/runphame.rst
new file mode 100644
index 0000000..6ba7253
--- /dev/null
+++ b/docs/introduction/runphame.rst
@@ -0,0 +1,294 @@
+How to run PhaME?
+#################
+After installation, PhaME only requires a control file along with your input files.
+
+.. code-block:: console
+
+    $ phame phame.ctl
+
+
+What is in control file?
+========================
+.. _control_file:
+    .. In a control file, parameters and input folders are specified.
+
+    .. Here is how a control file looks like with the description of their options.
+
+
+::
+
+       refdir = test/data/ebola_ref  # directory where reference (Complete) files are located
+      workdir = test/workdirs/ebola_complete # directory where contigs/reads files are located and output is stored
+
+    reference = 2  # 0:pick a random reference from refdir; 1:use given reference; 2: use ANI based reference
+      reffile = KJ660347.fasta  # reference filename when option 1 is chosen
+
+      project = t4  # main alignment file name
+
+      cdsSNPS = 1  # 0:no cds SNPS; 1:cds SNPs, divides SNPs into coding and non-coding sequences, gff file is required
+
+      buildSNPdb = 0 # 0: only align to reference 1: build SNP database of all complete genomes from refdir
+
+    FirstTime = 1  # 1:yes; 2:update existing SNP alignment, only works when buildSNPdb is used first time to build DB
+
+         data = 0  # *See below 0:only complete(F); 1:only contig(C); 2:only reads(R); 
+                   # 3:combination F+C; 4:combination F+R; 5:combination C+R; 
+                   # 6:combination F+C+R; 7:realignment  *See below 
+        reads = 2  # 1: single reads; 2: paired reads; 3: both types present;
+
+         tree = 1  # 0:no tree; 1:use FastTree; 2:use RAxML; 3:use both;
+    bootstrap = 0  # 0:no; 1:yes;  # Run bootstrapping  *See below
+            N = 100  # Number of bootstraps to run *See below    
+  
+    PosSelect = 1  # 0:No; 1:use PAML; 2:use HyPhy; 3:use both # these analysis need gff file to parse genomes to genes
+
+         code = 0  # 0:Bacteria; 1:Virus; 2: Eukarya # Bacteria and Virus sets ploidy to haploid
+
+        clean = 0  # 0:no clean; 1:clean # remove intermediate and temp files after analysis is complete
+
+      threads = 2  # Number of threads to use
+
+       cutoff = 0.1  # Linear alignment (LA) coverage against reference - ignores SNPs from organism that have lower cutoff.
+
+       * When using data option 1,2,5 need a complete reference to align/map to.
+       * Use data option 7 when need to extract SNPs using a sublist of already aligned genomes.
+
+
+It is a simple text file similar to the ones used PAML analysis.
+
+What do parameters in control file stand for?
+==============================================
+
+1. *refdir*
+A directory with reference genomes (complete genomes) and their annotation file in gff format (optional). Each file should represent a genome and have following extensions. The path to the folder should be either absolute or relative to the location of the control file. Please avoid filenames that have multiple `.` or has special characters like `:` in their name.
+    - `*`.fasta
+    - `*`.fna
+    - `*`.fa
+    - `*`.gff  (optional: to analyze Coding region SNPs of a selected reference file)    
+
+For example, a typical reference folder with reference genomes look like this:
+
+::
+
+    $ ls ref/
+    GCA_000006925_2_ASM692v2_genomic.fna   GCA_000017745_1_ASM1774v1_genomic.fna  GCA_000026245_1_ASM2624v1_genomic.fna   GCA_000227625_1_ASM22762v1_genomic.fna
+    GCA_000007405_1_ASM740v1_genomic.fna   GCA_000017765_1_ASM1776v1_genomic.fna  GCA_000026265_1_ASM2626v1_genomic.fna   GCA_000245515_1_ASM24551v1_genomic.fna
+    GCA_000008865_1_ASM886v1_genomic.fna   GCA_000017985_1_ASM1798v1_genomic.fna  GCA_000026265_1_ASM2626v1_genomic.gff   GCA_000257275_1_ASM25727v1_genomic.fna
+
+
+Each of these files represent one genome. Each genome may have multiple sequences representing multiple replicons or contigs, but are all part of one genome. `gff` files corresponding to a genome must have the same exact name and in the same folder, just different extension. For example, `gff` file for genome `GCA_000006925_2_ASM692v2_genomic.fna` is `GCA_000006925_2_ASM692v2_genomic.gff`.
+
+2. *workdir*
+This is the folder where intermediate and final results of analysis are stored. The path to the folder should be either absolute or relative to the location of the control file. Additionally, if the analysis includes incomplete genomes or contig files and raw reads, they must be in this folder. Contigs file must have following extensions to be recognised as contig file.
+     - `*`.contig
+     - `*`.contigs
+
+    For example, a working directory with contigs folder look like this:
+
+::
+
+    $ ls workdir/*.contig\
+    workdir/GCA_000155105_1_ASM15510v1_genomic.contig  workdir/GCA_000968895_2_ASM96889v2_genomic.contig   workdir/GCA_001514825_1_ASM151482v1_genomic.contig
+    workdir/GCA_000190495_1_ASM19049v1_genomic.contig  workdir/GCA_000968905.2_ASM96890v2_genomic.contig   workdir/GCA_001514845_1_ASM151484v1_genomic.contig
+    workdir/GCA_000191665_1_ecmda7_genomic.contig      workdir/GCA_001471755_1_ASM147175v1_genomic.contig  workdir/GCA_001514865_1_ASM151486v1_genomic.contig
+
+
+If the analysis includes reads, they must be in `workdir` as well and decompressed. If reads are paired, they must have same file name at the beginning of the name and `R1` and `R2` at the end of the name and needs to have `.fastq` as their extension (`*_`R1.fastq `*_`R2.fastq). Any file that have `*.fastq` as their extension but dont have paired reads will be treated as single reads. For example, a working folder with paired raw read files loole like this:
+
+::
+
+    $ ls *.fastq
+    GGB_SRR2000383_QC_trimmed_R1.fastq  GGB_SRR2000383_QC_trimmed_R2.fastq  GGC_SRR2164314_QC_trimmed_R1.fastq  GGC_SRR2164314_QC_trimmed_R2.fastq
+
+
+3. *reference*
+    This is where you specify how do you want to pick your reference genome. The available options are:
+        - 0: randomly pick a genome from `refdir` folder as the reference genome.
+        - 1: use the specified genome as the reference. Genome's filename is specified in the `reffile` option.
+        - 2: picks a `mid point` genome based on the  Average Nucleotide Identity (ANI) among all genomes. It uses mash (implemented in BBMap) to calculate ANI.
+
+4. *reffile*
+    This is where you specify the reference genome, if option 1 is picked in previous option. File name of the genome is written here and the program will look for that file in `reffile` folder. For example, `KJ660347.fasta` in the control file example above is found in the `reffile` folder.
+
+5. *project*
+    The name of the project. All the important downstream output filenames will have the specified project name as their prefix.
+
+6. *cdsSNPS*
+    This option allows users to parse SNPs based on their position into coding and non-coding sequences. It can be turned ON (0) or OFF (1). If turned ON, the picked reference genome must have a corresponding gff file. This option is automatically turned ON, if Molecular evolutionary analyses is turned ON (see below).
+
+7. *buildSNPdb*
+    This option will turn ON (1) or OFF (0) database creation, which is essentially all possible pairwise alignment of all genomes in `refdir`. Turning this ON will significantly increase the runtime.
+
+8. *FirstTime*
+    This options default is 1, which reruns everything. The option 2, which only recalculates the SNP matrix only works when SNP database is turned ON in previous step.
+
+9. *data*
+    Select the appropriate option based on the type of data that was included in the analysis. 
+        - 0: only full/complete(F);
+
+            + Select this option if you only have full/complete genomes or you only want to analyze these genomes from the dataset. Full/COmplete genomes are the ones that are found in *refdir*.
+            
+        - 1: only contig(C); 
+
+            + Select this option if you only have contigs and one reference that is complete. PhaME requires users to input a complete genome as reference. This option will only report contigs in the final alignments and the tree.
+
+        - 2: only reads(R);
+
+            + Select this option if you only want to analyze reads file. Remember similar to option 1, a reference must be given.
+
+        - 3: combination F+C;
+
+            + Select this option if you have full/complete genome and contigs.
+
+        - 4: combination F+R;
+
+            + Select thsi option if you have full/complete genomes and only reads.
+
+        - 5: combination C+R; 
+
+            + Select this option if you have full/complete genomes and reads. However, it still requires at least one Full/Complete genome.
+
+        - 6:combination F+C+R;
+
+            + Select this option if you have full/complete, contigs, and read datasets in your analysis.
+
+        - 7:realignment 
+
+            + Select this option if you want to realign using a subset of genomes that have already been aligned using one of the option above. It requires editing the `working_list.txt` file.
+
+10. *reads*
+    This option is dependent on option chosen in `data`. If the analysis contains only single reads, enter 1, if paired reads enter 2, and if both are present enter 3.
+
+11. *tree*
+    The option to generate tree. If 0 is entered, no tree is generted. If 1 is entered, only FastTree is used. If 2 is entered, only RAxML is used. If 3 is entered, both FastTree and RAxMl are used to make trees.
+
+12. *bootstrap*
+  - The option is valid if 2 or 3 is selected in `tree` option. It will calculate bootstrap trees using RAxML.
+
+13. *N*
+  - Specify the number of bootstrap trees to generate if its turned ON in `bootstrap` option.
+
+14. *PosSelect*
+    The option to turn ON and select type of molecular evolution analysis to be done. Enter 0 to turn OFF molecular evolutionary analysis, 1 to use PAML to do molecular evolutionary analysis, 2 to use HyPhy, and 3 to use both of them. Turning this option ON will significantly slow the runtime. If this option is turned ON, you must provide the gff file for the corresponding reference genome.
+
+15. *code*
+    This specifies the pre-calculated parameters during genome alignments.Option 0 which is specific for bacteria uses, `Bacteria` aligns using default option with `maxmatch` for nucmer. And, option 1 which is for`Virus` sets option for nucmer alignment with `maxmatch` turned ON and `-b 200 -c 65 -d 0.12 -g 90 -l 20`.
+
+16. *clean*
+    Turning this option ON (1) will remove intermediate files.
+
+17. *threads*
+    Specify the number of threads to run analysis ON.
+
+18. *cutoff*
+    This options lets user control the genomes to include based on how much of their region was included in the alignemnt against the reference genome. Linear alignment (LA) coverage against reference - ignores SNPs from organism that have lower cutoff.
+
+
+What output files are produced?
+===============================
+  
+Summary files ( all files are found under folder `workdir/results`)
+
+    - SNP alignment files
+
+        + all positions (including monomorphic sites)
+
+            * `project`_all_alignment.fna
+        - all detected SNPs
+            `project`_all_snp_alignment.fna
+        - SNPs in CDS (coding sequence)
+            `project`_cds_snp_alignment.fna
+        - intergenic SNPs
+            `project`_int_snp_alignment.fna
+
+    - Newick tree files
+        - bootstrap mapped Maximum Likelihood trees
+            - RAxML_bipartitionsBranchLabels.`project`_all_best
+            - RAxML_bipartitions.`project`_all_best 
+        - bootstraps
+            - RAxML_bootstrap.`project`_all_b
+        - best ML tree
+            - RAxML_bestTree.`project`_all
+        - RAxML tree using only CDS SNPs
+        - FastTree using all SNPs
+            - `project`_all.fasttree
+    - FastTree using SNPs from coding sequence
+        `project`_cds.fasttree
+    
+    - Other files:
+        - coordinates of gaps throughout the overall alignment
+            `project`_gaps.txt
+        - the size of gaps between `reference` and other genomes.
+            `project`_all_gaps.txt
+        - A tab delimited summary file containing information on the core genome size, total SNPs, etc.
+            `project`_summaryStatistics.txt 
+                - Most rows are genome name (first column), attribute name (second column), and corresponding value (third column)
+                  - `Total_length` for genome size (total base pair) of the corresponding genome (first column)
+                - `Gap_legnth` for total gaps in the corresponding genome (first column)
+                - One row labeled `REPEAT` (first column) and `Gap_length`(second column) correspond to repeat size (third column) of reference genome.
+                - `Reference used` shows the name of the reference genome used.
+                - `Total gap length:` shows the length of total gaps in the alignment.
+                - `Core genome length:` shows the length of genomes that were aligned.
+                - `Total SNPs:` shows the length of SNPs.
+                - `CDS SNPs:` shows the subset of SNPs from Total SNPs that fall within coding regions.
+        - A pairwise list of all compared position with coordinates between references and samples
+            `project`_comparison.txt
+            `project`_stats.txt (also contains if SNPs are in coding or non-coding regions)
+        - A matrix file that lists the number of SNPs present between genomes
+            - all core regions
+                `project`_snp_coreMatrix.txt
+            - CDS only
+                `project`_snp_CDSmatrix.txt
+            - intergenic only
+                  `project`_snp_intergenicMatrix.txt
+    - Log file
+        `project`.log
+    
+    - Error file
+         `project`.error 
+
+Directory structures	
+
+    - `working directory`/files
+         references (concatenated chromosomes)
+    - `working directory`/results
+         All output files
+    - `working directory`/results/snps
+        SNP coordinate files generated from NUCmer and bowtie
+            - `g1_g2.snps`: contains pairwise snps between `g1` and `g2`. For example:
+    
+    .. code-block:: console
+
+        [P1] [SUB]   [SUB]   [P2]    [BUFF]  [DIST]  [FRM]   [TAGS]
+        127     T       C    127        22      127     1       1   KJ660347_1_18959    ZEBOV_2002_Ilembe_1_18958
+        149     T       C    149        6       149     1       1   KJ660347_1_18959    ZEBOV_2002_Ilembe_1_18958
+        155     C       A    155        6       155     1       1   KJ660347_1_18959    ZEBOV_2002_Ilembe_1_18958
+
+
+  - `working directory`/results/gaps
+      - Gap coordinate files generated from NUCmer and bowtie
+  - `working directory`/results/stats
+      - Intermediate stat files generated when parsing NUCmer and Bowtie results
+        - `g1_g2.coords` is a table file that contains regions of genome `g1` and `g2` that were aligned.
+        - `g_repeat_coords.txt` is a table that contains region within genome `g` that were detected as similar.
+        - `g_repeat_stats.txt` contains genome size, repeat segment, and repeat length of genome `g`. For example:
+        
+        ::
+
+            ZEBOV_2007_4Luebo size: 18958
+            Repeats segment #:  0
+            Repeats total length:   0 (0.00%)
+
+        - `repeat_stats.txt` summary of all `g_repeat_stats.txt`.
+
+  - `working directory`/results/temp
+      - Temporary files generated
+  - `working directory`/results/PSgenes
+      - All gene fasta files  that contain at least 1 SNP, along with their amino acid sequences and codon alignments
+  - `working directory`/results/paml
+      - PAML results
+  - `working directory`/results/hyphy
+      - HyPhy results
+  - `working directory`/results/`*_ambiguousSNPpositions.txt`
+      - Positions in genomes represented as raw reads where there are ambiguous SNPs.
+
diff --git a/docs/runphame.rst b/docs/runphame.rst
deleted file mode 100644
index d93979c..0000000
--- a/docs/runphame.rst
+++ /dev/null
@@ -1,290 +0,0 @@
-How to run PhaME?
-#################
-After installation, PhaME only requires a control file along with your input files.
-
-.. code-block:: console
-
-	$ phame phame.ctl
-
-
-What is in control file?
-========================
-.. _control_file:
-In a control file, parameters and input folders are specified. Here is how a control file looks like with the description of their options.
-::
-
-	   refdir = test/data/ebola_ref  # directory where reference (Complete) files are located
-	  workdir = test/workdirs/ebola_complete # directory where contigs/reads files are located and output is stored
-
-	reference = 2  # 0:pick a random reference from refdir; 1:use given reference; 2: use ANI based reference
-	  reffile = KJ660347.fasta  # reference filename when option 1 is chosen
-
-	  project = t4  # main alignment file name
-
-	  cdsSNPS = 1  # 0:no cds SNPS; 1:cds SNPs, divides SNPs into coding and non-coding sequences, gff file is required
-
-	  buildSNPdb = 0 # 0: only align to reference 1: build SNP database of all complete genomes from refdir
-
-	FirstTime = 1  # 1:yes; 2:update existing SNP alignment, only works when buildSNPdb is used first time to build DB
-
-		 data = 0  # *See below 0:only complete(F); 1:only contig(C); 2:only reads(R); 
-				   # 3:combination F+C; 4:combination F+R; 5:combination C+R; 
-				   # 6:combination F+C+R; 7:realignment  *See below 
-		reads = 2  # 1: single reads; 2: paired reads; 3: both types present;
-
-		 tree = 1  # 0:no tree; 1:use FastTree; 2:use RAxML; 3:use both;
-	bootstrap = 0  # 0:no; 1:yes;  # Run bootstrapping  *See below
-			N = 100  # Number of bootstraps to run *See below    
-  
-	PosSelect = 1  # 0:No; 1:use PAML; 2:use HyPhy; 3:use both # these analysis need gff file to parse genomes to genes
-
-		 code = 0  # 0:Bacteria; 1:Virus; 2: Eukarya # Bacteria and Virus sets ploidy to haploid
-
-		clean = 0  # 0:no clean; 1:clean # remove intermediate and temp files after analysis is complete
-
-	  threads = 2  # Number of threads to use
-
-	   cutoff = 0.1  # Linear alignment (LA) coverage against reference - ignores SNPs from organism that have lower cutoff.
-
-	   * When using data option 1,2,5 need a complete reference to align/map to.
-	   * Use data option 7 when need to extract SNPs using a sublist of already aligned genomes.
-
-
-It is a simple text file similar to the ones used PAML analysis.
-
-What do parameters in control file stand for?
-==============================================
-
-1. *refdir*
-A directory with reference genomes (complete genomes) and their annotation file in gff format (optional). Each file should represent a genome and have following extensions. The path to the folder should be either absolute or relative to the location of the control file. Please avoid filenames that have multiple `.` or has special characters like `:` in their name.
-  - `*`.fasta
-  - `*`.fna
-  - `*`.fa
-  - `*`.gff  (optional: to analyze Coding region SNPs of a selected reference file)    
-
-For example, a typical reference folder with reference genomes look like this:
-
-::
-
-	$ ls ref/
-	GCA_000006925_2_ASM692v2_genomic.fna   GCA_000017745_1_ASM1774v1_genomic.fna  GCA_000026245_1_ASM2624v1_genomic.fna   GCA_000227625_1_ASM22762v1_genomic.fna
-	GCA_000007405_1_ASM740v1_genomic.fna   GCA_000017765_1_ASM1776v1_genomic.fna  GCA_000026265_1_ASM2626v1_genomic.fna   GCA_000245515_1_ASM24551v1_genomic.fna
-	GCA_000008865_1_ASM886v1_genomic.fna   GCA_000017985_1_ASM1798v1_genomic.fna  GCA_000026265_1_ASM2626v1_genomic.gff   GCA_000257275_1_ASM25727v1_genomic.fna
-
-
-Each of these files represent one genome. Each genome may have multiple sequences representing multiple replicons or contigs, but are all part of one genome. `gff` files corresponding to a genome must have the same exact name and in the same folder, just different extension. For example, `gff` file for genome `GCA_000006925_2_ASM692v2_genomic.fna` is `GCA_000006925_2_ASM692v2_genomic.gff`.
-
-2. *workdir*
-This is the folder where intermediate and final results of analysis are stored. The path to the folder should be either absolute or relative to the location of the control file. Additionally, if the analysis includes incomplete genomes or contig files and raw reads, they must be in this folder. Contigs file must have following extensions to be recognised as contig file.
-	 - `*`.contig
-	 - `*`.contigs
-
-	For example, a working directory with contigs folder look like this:
-
-::
-
-	$ ls workdir/*.contig\
-	workdir/GCA_000155105_1_ASM15510v1_genomic.contig  workdir/GCA_000968895_2_ASM96889v2_genomic.contig   workdir/GCA_001514825_1_ASM151482v1_genomic.contig
-	workdir/GCA_000190495_1_ASM19049v1_genomic.contig  workdir/GCA_000968905.2_ASM96890v2_genomic.contig   workdir/GCA_001514845_1_ASM151484v1_genomic.contig
-	workdir/GCA_000191665_1_ecmda7_genomic.contig      workdir/GCA_001471755_1_ASM147175v1_genomic.contig  workdir/GCA_001514865_1_ASM151486v1_genomic.contig
-
-
-If the analysis includes reads, they must be in `workdir` as well and decompressed. If reads are paired, they must have same file name at the beginning of the name and `R1` and `R2` at the end of the name and needs to have `.fastq` as their extension (`*_`R1.fastq `*_`R2.fastq). Any file that have `*.fastq` as their extension but dont have paired reads will be treated as single reads. For example, a working folder with paired raw read files loole like this:
-
-::
-
-	$ ls *.fastq
-	GGB_SRR2000383_QC_trimmed_R1.fastq  GGB_SRR2000383_QC_trimmed_R2.fastq  GGC_SRR2164314_QC_trimmed_R1.fastq  GGC_SRR2164314_QC_trimmed_R2.fastq
-
-
-3. *reference*
-	This is where you specify how do you want to pick your reference genome. The available options are:
-		- 0: randomly pick a genome from `refdir` folder as the reference genome.
-		- 1: use the specified genome as the reference. Genome's filename is specified in the `reffile` option.
-		- 2: picks a `mid point` genome based on the  Average Nucleotide Identity (ANI) among all genomes. It uses mash (implemented in BBMap) to calculate ANI.
-
-4. *reffile*
-	This is where you specify the reference genome, if option 1 is picked in previous option. File name of the genome is written here and the program will look for that file in `reffile` folder. For example, `KJ660347.fasta` in the control file example above is found in the `reffile` folder.
-
-5. *project*
-	The name of the project. All the important downstream output filenames will have the specified project name as their prefix.
-
-6. *cdsSNPS*
-	This option allows users to parse SNPs based on their position into coding and non-coding sequences. It can be turned ON (0) or OFF (1). If turned ON, the picked reference genome must have a corresponding gff file. This option is automatically turned ON, if Molecular evolutionary analyses is turned ON (see below).
-
-7. *buildSNPdb*
-	This option will turn ON (1) or OFF (0) database creation, which is essentially all possible pairwise alignment of all genomes in `refdir`. Turning this ON will significantly increase the runtime.
-
-8. *FirstTime*
-	This options default is 1, which reruns everything. The option 2, which only recalculates the SNP matrix only works when SNP database is turned ON in previous step.
-
-9. *data*
-	Select the appropriate option based on the type of data that was included in the analysis. 
-		- 0: only full/complete(F);
-
-		    + Select this option if you only have full/complete genomes or you only want to analyze these genomes from the dataset. Full/COmplete genomes are the ones that are found in *refdir*.
-		    
-		- 1: only contig(C); 
-
-		    + Select this option if you only have contigs and one reference that is complete. PhaME requires users to input a complete genome as reference. This option will only report contigs in the final alignments and the tree.
-
-		- 2: only reads(R);
-
-		    + Select this option if you only want to analyze reads file. Remember similar to option 1, a reference must be given.
-
-		- 3: combination F+C;
-
-		    + Select this option if you have full/complete genome and contigs.
-
-		- 4: combination F+R;
-
-		    + Select thsi option if you have full/complete genomes and only reads.
-
-		- 5: combination C+R; 
-
-		    + Select this option if you have full/complete genomes and reads. However, it still requires at least one Full/Complete genome.
-
-		- 6:combination F+C+R;
-
-		    + Select this option if you have full/complete, contigs, and read datasets in your analysis.
-
-		- 7:realignment 
-
-		    + Select this option if you want to realign using a subset of genomes that have already been aligned using one of the option above. It requires editing the `working_list.txt` file.
-
-10. *reads*
-	This option is dependent on option chosen in `data`. If the analysis contains only single reads, enter 1, if paired reads enter 2, and if both are present enter 3.
-
-11. *tree*
-	The option to generate tree. If 0 is entered, no tree is generted. If 1 is entered, only FastTree is used. If 2 is entered, only RAxML is used. If 3 is entered, both FastTree and RAxMl are used to make trees.
-
-12. *bootstrap*
-  - The option is valid if 2 or 3 is selected in `tree` option. It will calculate bootstrap trees using RAxML.
-
-13. *N*
-  - Specify the number of bootstrap trees to generate if its turned ON in `bootstrap` option.
-
-14. *PosSelect*
-	The option to turn ON and select type of molecular evolution analysis to be done. Enter 0 to turn OFF molecular evolutionary analysis, 1 to use PAML to do molecular evolutionary analysis, 2 to use HyPhy, and 3 to use both of them. Turning this option ON will significantly slow the runtime. If this option is turned ON, you must provide the gff file for the corresponding reference genome.
-
-15. *code*
-	This specifies the pre-calculated parameters during genome alignments.Option 0 which is specific for bacteria uses, `Bacteria` aligns using default option with `maxmatch` for nucmer. And, option 1 which is for`Virus` sets option for nucmer alignment with `maxmatch` turned ON and `-b 200 -c 65 -d 0.12 -g 90 -l 20`.
-
-16. *clean*
-	Turning this option ON (1) will remove intermediate files.
-
-17. *threads*
-	Specify the number of threads to run analysis ON.
-
-18. *cutoff*
-	This options lets user control the genomes to include based on how much of their region was included in the alignemnt against the reference genome. Linear alignment (LA) coverage against reference - ignores SNPs from organism that have lower cutoff.
-
-
-What output files are produced?
-===============================
-  
-Summary files ( all files are found under folder `workdir/results`)
-
-	- SNP alignment files
-
-	    + all positions (including monomorphic sites)
-
-	        * `project`_all_alignment.fna
-		- all detected SNPs
-			`project`_all_snp_alignment.fna
-		- SNPs in CDS (coding sequence)
-			`project`_cds_snp_alignment.fna
-		- intergenic SNPs
-			`project`_int_snp_alignment.fna
-
-	- Newick tree files
-		- bootstrap mapped Maximum Likelihood trees
-			- RAxML_bipartitionsBranchLabels.`project`_all_best
-			- RAxML_bipartitions.`project`_all_best 
-		- bootstraps
-			- RAxML_bootstrap.`project`_all_b
-		- best ML tree
-			- RAxML_bestTree.`project`_all
-		- RAxML tree using only CDS SNPs
-		- FastTree using all SNPs
-			- `project`_all.fasttree
-	- FastTree using SNPs from coding sequence
-		`project`_cds.fasttree
-	
-	- Other files:
-		- coordinates of gaps throughout the overall alignment
-			`project`_gaps.txt
-		- the size of gaps between `reference` and other genomes.
-			`project`_all_gaps.txt
-		- A tab delimited summary file containing information on the core genome size, total SNPs, etc.
-			`project`_summaryStatistics.txt 
-				- Most rows are genome name (first column), attribute name (second column), and corresponding value (third column)
-		  		- `Total_length` for genome size (total base pair) of the corresponding genome (first column)
-				- `Gap_legnth` for total gaps in the corresponding genome (first column)
-				- One row labeled `REPEAT` (first column) and `Gap_length`(second column) correspond to repeat size (third column) of reference genome.
-				- `Reference used` shows the name of the reference genome used.
-				- `Total gap length:` shows the length of total gaps in the alignment.
-				- `Core genome length:` shows the length of genomes that were aligned.
-				- `Total SNPs:` shows the length of SNPs.
-				- `CDS SNPs:` shows the subset of SNPs from Total SNPs that fall within coding regions.
-		- A pairwise list of all compared position with coordinates between references and samples
-			`project`_comparison.txt
-			`project`_stats.txt (also contains if SNPs are in coding or non-coding regions)
-		- A matrix file that lists the number of SNPs present between genomes
-			- all core regions
-				`project`_snp_coreMatrix.txt
-			- CDS only
-				`project`_snp_CDSmatrix.txt
-			- intergenic only
-	  			`project`_snp_intergenicMatrix.txt
-	- Log file
-		`project`.log
-	
-	- Error file
- 		`project`.error 
-
-Directory structures	
-
-	- `working directory`/files
-	 	references (concatenated chromosomes)
-	- `working directory`/results
-	 	All output files
-	- `working directory`/results/snps
-		SNP coordinate files generated from NUCmer and bowtie
-			- `g1_g2.snps`: contains pairwise snps between `g1` and `g2`. For example:
-	
-	.. code-block:: console
-
-		[P1] [SUB]   [SUB]   [P2]    [BUFF]  [DIST]  [FRM]   [TAGS]
-		127     T       C    127        22      127     1       1   KJ660347_1_18959    ZEBOV_2002_Ilembe_1_18958
-		149     T       C    149        6       149     1       1   KJ660347_1_18959    ZEBOV_2002_Ilembe_1_18958
-		155     C       A    155        6       155     1       1   KJ660347_1_18959    ZEBOV_2002_Ilembe_1_18958
-
-
-  - `working directory`/results/gaps
-	  - Gap coordinate files generated from NUCmer and bowtie
-  - `working directory`/results/stats
-	  - Intermediate stat files generated when parsing NUCmer and Bowtie results
-		- `g1_g2.coords` is a table file that contains regions of genome `g1` and `g2` that were aligned.
-		- `g_repeat_coords.txt` is a table that contains region within genome `g` that were detected as similar.
-		- `g_repeat_stats.txt` contains genome size, repeat segment, and repeat length of genome `g`. For example:
-		
-		::
-
-			ZEBOV_2007_4Luebo size: 18958
-			Repeats segment #:  0
-			Repeats total length:   0 (0.00%)
-
-		- `repeat_stats.txt` summary of all `g_repeat_stats.txt`.
-
-  - `working directory`/results/temp
-	  - Temporary files generated
-  - `working directory`/results/PSgenes
-	  - All gene fasta files  that contain at least 1 SNP, along with their amino acid sequences and codon alignments
-  - `working directory`/results/paml
-	  - PAML results
-  - `working directory`/results/hyphy
-	  - HyPhy results
-  - `working directory`/results/`*_ambiguousSNPpositions.txt`
-	  - Positions in genomes represented as raw reads where there are ambiguous SNPs.
-

From 3d5d7759e6ae6a4629fad872c82000a247796e70 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 19 Dec 2018 23:10:41 -0700
Subject: [PATCH 15/19] [skip ci] changing theme

---
 docs/conf.py   | 9 +++++----
 docs/index.rst | 9 ++++-----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 7cd3676..02d7e12 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -76,15 +76,16 @@
 #
 
 html_logo = 'img/logo.png'
-html_theme = 'alabaster'
+html_theme = 'sphinx_rtd_theme'
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
 #
-# html_theme_options = {
-#     'logo_only': True
-# }
+html_theme_options = {
+    'logo_only': True,
+    'display_version': False,
+}
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
diff --git a/docs/index.rst b/docs/index.rst
index 7967086..a0212a6 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -3,7 +3,6 @@ PhaME: **Ph**\ylogenetics **a**\nd **M**\olecular **E**\volution analysis tool
 
 Phylogenetic and Molecular Evolution (PhaME) analysis tool allows suite of analysis pertaining to phylogeny and moleuclar evolution.
 
-Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads, uses SNP multiple sequence alignment to construct a phylogenetic tree, and provides evolutionary analyses (genes under positive selection) using CDS SNPs.
 
 
 .. toctree::
@@ -28,11 +27,11 @@ Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/
     usage/cases
 
 
-.. toctree::
-    :maxdepth: 2
-    :caption: CITATION
+.. .. toctree::
+..     :maxdepth: 2
+..     :caption: CITATION
 
-    citation.rst
+..     citation.rst
 
 
 

From 86c23556673b8db367cd119c43aa5c8eb6a19bf3 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Tue, 8 Jan 2019 09:56:57 -0700
Subject: [PATCH 16/19] changes in doc based on mark's coment

---
 README.md                      | 2 +-
 docs/install/web-interface.rst | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index e7746b9..6323471 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
 [![Documentation Status](https://readthedocs.org/projects/phame/badge/?version=latest)](https://phame.readthedocs.io/en/latest/?badge=latest)
 [![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io/recipes/phame/README.html)
 [![docker](https://quay.io/repository/biocontainers/phame/status)](https://quay.io/repository/biocontainers/phame)
-[![phame-downloads](https://anaconda.org/bioconda/phame/badges/downloads.svg)]
+![phame-downloads](https://anaconda.org/bioconda/phame/badges/downloads.svg)
 
 Given a reference, PhaME extracts SNPs from complete genomes, draft genomes and/or reads. 
 Uses SNP multiple sequence alignment to construct a phylogenetic tree. 
diff --git a/docs/install/web-interface.rst b/docs/install/web-interface.rst
index 3b8311c..97783f2 100644
--- a/docs/install/web-interface.rst
+++ b/docs/install/web-interface.rst
@@ -23,11 +23,11 @@ Step by step guide to run PhaME using web interface in a local machine. Docker a
     POSTGRES_PASSWORD=<postgres_password>
 
 
-4. cd to the project root  directory `phame_api01`
+4. cd to the project root  directory `phame_api`
 
 .. code-block:: console
 
-    cd phame_api01
+    cd phame_api
 
 5. Create docker containers.
 
@@ -39,7 +39,7 @@ Step by step guide to run PhaME using web interface in a local machine. Docker a
 
 .. code-block:: console
 
-    docker-compose up
+    docker-compose up -d
 
 7. `docker-compose run --rm web /bin/bash -c "python -c  'import database; database.init_db()'"` to initialize the database.
 
@@ -48,4 +48,4 @@ Step by step guide to run PhaME using web interface in a local machine. Docker a
     docker-compose run --rm web /bin/bash -c "python -c  'import database; database.init_db()'"
 
 
-8. If all went well, :sunglasses: you can go to localhost:8080 to see the phame webpage.
\ No newline at end of file
+8. If all went well, you can go to open http://localhost to access the phame web-interface.
\ No newline at end of file

From a213b45d7be498f30a2a5ecaab70c13b897e61f8 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Tue, 8 Jan 2019 10:20:47 -0700
Subject: [PATCH 17/19] changes based on mark

---
 docs/install/web-interface.rst | 105 ++++++++++++++++++++++++++-------
 1 file changed, 85 insertions(+), 20 deletions(-)

diff --git a/docs/install/web-interface.rst b/docs/install/web-interface.rst
index 97783f2..2088e2f 100644
--- a/docs/install/web-interface.rst
+++ b/docs/install/web-interface.rst
@@ -1,51 +1,116 @@
 Web-interface.
-####################################
+##############
 
-Step by step guide to run PhaME using web interface in a local machine. Docker and git is required.
+Phame App
+=========
 
-1. clone the repo 
+This Dockerized application contains all of the code you need to run PhaME as a standalone app. It has containers for 
+the PhaME application, the web interface, Celery and Redis queues and a PostGREs database.
+
+Step by step guide to running PhaME using a web interface on a local machine. 
+*Docker and git are required.*
+
+1. clone the repo
 
 .. code-block:: console
 
-    git clone git@github.com:LANL-Bioinformatics/phame-api.git
+    $ git clone git@github.com:LANL-Bioinformatics/phame-app.git
 
+2. cd to the project root directory `phame-app`
 
-2. create a `.postegres` file within the cloned directory `phame_api01/.envs/.local/.postgres`, and add following lines to it.
+.. code-block:: console
+   
+   $ cd phame-app
+
+3. run 
 
 .. code-block:: console
 
-    # PostgreSQL
-    # ------------------------------------------------------------------------------
-    POSTGRES_HOST=postgres
-    POSTGRES_PORT=5432
-    POSTGRES_DB=phame_api01
-    POSTGRES_USER=<user>
-    POSTGRES_PASSWORD=<postgres_password>
+    $ cp .envs/.local/.postgres_template phame-app/.envs/.local/.postgres 
+    $ cp .envs/.local/.email_template phame-app/.envs/.local/.email
 
+4. Edit the `.postgres` file and change the values for `POSTGRES_USER` and `POSTGRES_PASSWORD`
 
-4. cd to the project root  directory `phame_api`
+5. Create docker containers.
 
 .. code-block:: console
 
-    cd phame_api
+   $ docker-compose -f docker-compose-local.yml build
+
+6. start docker
+
+.. code-block:: console
+
+   $ docker-compose -f docker-compose-local.yml up -d
+
+7. initialize the database.
+
+.. code-block:: console
+
+    $ docker-compose -f docker-compose-local.yml run --rm web /bin/bash -c "python -c  'import database; database.init_db()'"
+
+If all went well, you can go to `localhost` to see the phame webpage.
+
+Running PhaME using a web interface
+==================================================================================
+
+The user input files can require a lot of storage space. Use these instructions if you want to store the users' data on 
+a data volume that is different from the main volume where the Docker container is created. 
+
+Go through steps 1-3 as for the local installation and then:
+
+1. Run 
+
+.. code-block:: console
+
+    mkdir -p /path/to/api/uploads
+
+
+2. Update paths in `docker-compose-production.yml` to the volume where you want to store the users' upload files for the 
+`phame` and `web` containers.
+
+.. code-block:: console
+
+    phame:
+        volumes:
+          - phame_data:/phame_api/media
+          - /path/to/api/uploads:/api/static/uploads
+    web:
+        volumes:
+          - phame_data:/phame_api/media
+          - /path/to/api/uploads:/api/static/uploads
+
+
+For example set volumes to `- /vol_d/api/uploads:/api/static/uploads` if you want to store the upload files
+on `/vol_d`
 
 5. Create docker containers.
 
 .. code-block:: console
 
-    docker-compose build
+   docker-compose -f docker-compose-production.yml build
 
 6. start docker
 
 .. code-block:: console
 
-    docker-compose up -d
+    docker-compose -f docker-compose-production.yml up -d
 
-7. `docker-compose run --rm web /bin/bash -c "python -c  'import database; database.init_db()'"` to initialize the database.
+Monitoring tasks
+================
 
-.. code-block:: console
+Browse to `localhost:5555` to see the Flower Dashboard. Here you can see the status of the celery workers and their tasks.
+
+You can look at projects run by other users if you create an `admin` account and login to that account. Click on the 
+admin user icon in the upper right corner and select the username for the projects you would like to view. 
+
+Email notifications
+===================
+
+If you would like users to receive email notifications with the error and execution logs when their projects have finished running:
 
-    docker-compose run --rm web /bin/bash -c "python -c  'import database; database.init_db()'"
+1. Setup an email client. We use https://www.mailgun.com/
 
+2. Edit the `.email` file and change the values for `API_KEY`, `EMAIL_URL` and `SENDER`
 
-8. If all went well, you can go to open http://localhost to access the phame web-interface.
\ No newline at end of file
+3. Edit `phame-app/api/config.py` and set `SEND_NOTIFICATIONS = True`
\ No newline at end of file

From d92ea86ba76571262e383bce0b33e85bd23d9edc Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Tue, 8 Jan 2019 10:35:36 -0700
Subject: [PATCH 18/19] minor changes

---
 docs/install/web-interface.rst | 2 +-
 lib/PhaME.pm                   | 7 ++++---
 src/phame                      | 5 ++++-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/docs/install/web-interface.rst b/docs/install/web-interface.rst
index 2088e2f..759d6d9 100644
--- a/docs/install/web-interface.rst
+++ b/docs/install/web-interface.rst
@@ -52,7 +52,7 @@ Step by step guide to running PhaME using a web interface on a local machine.
 If all went well, you can go to `localhost` to see the phame webpage.
 
 Running PhaME using a web interface
-==================================================================================
+===================================
 
 The user input files can require a lot of storage space. Use these instructions if you want to store the users' data on 
 a data volume that is different from the main volume where the Docker container is created. 
diff --git a/lib/PhaME.pm b/lib/PhaME.pm
index 1203143..64da6cf 100644
--- a/lib/PhaME.pm
+++ b/lib/PhaME.pm
@@ -446,7 +446,7 @@ sub movefiles {
             system("mv $dir/*.fasttree $dir/trees/");
         }
         elsif ($trees == 2 || $trees == 4){
-            system("mv $dir/RAxML* $dir/trees/");
+            system("mv $dir/RAxML*.* $dir/trees/");
         }
         elsif ($trees == 3 || $trees == 4){
             system("mv $dir/*.fna.* $dir/trees/");
@@ -628,7 +628,7 @@ sub buildTree {
         print OUT "Also bootstraping IQ-Trees trees\n";
         print OUT "\n";
         my $iqtree
-            = "iqtree -m TEST -s $outdir/$name\_snp_alignment.fna -nt $thread -bc $bootstrap 2>>$error >> $log\n\n";
+            = "iqtree -m TEST -s $outdir/$name\_snp_alignment.fna -nt $thread 2>>$error >> $log\n\n";
         print OUT $iqtree;
         if ( system($iqtree) ) { die "Error running $iqtree.\n"; }
     }
@@ -637,7 +637,8 @@ sub buildTree {
 
     if ( $tree == 1 ) { return ("Fasttree phylogeny complete"); }
     if ( $tree == 2 ) { return ("RAxML phylogeny complete"); }
-    if ( $tree == 3 ) { return ("Phylogeny complete"); }
+    if ( $tree == 3 ) { return ("IQ-TREE Phylogeny complete"); }
+    if ( $tree == 4 ) { return ("All phylogeny complete"); }
 }
 
 sub bootstrap {
diff --git a/src/phame b/src/phame
index 45b877e..cc7cd4f 100755
--- a/src/phame
+++ b/src/phame
@@ -230,9 +230,10 @@ while (<CTL>) {
     # default is NO.
     if (/FirstTime\s*=\s*(1|2)\s*#{0,1}.*$/) { $time = $1; }
     if (/data\s*=\s*(\d)\s*#{0,1}.*$/)       { $data = $1; }
-    if (/SNPSfilter\s*=\s*(\d+\.*\d+)\s*#.*$/) { $snp_filter = $1; }
     #     0=Finished; 1=contig; 2=reads; 3=F+C; 4=F+R; 5=C+R 6=F+C+R
     if (/\s+reads\s*=\s*(1|2|3)\s*#{0,1}.*$/) { $reads = $1; }
+    if (/SNPsfilter\s*=\s*(\d+\.*\d+)\s*#.*$/) { $snp_filter = $1; }
+
     if (/tree\s*=\s*(0|1|2|3|4)\s*#{0,1}.*$/)   { $tree  = $1; }
     #0=no tree; 1=fasttree; 2=raxml; 3=iqtree;4=both
 
@@ -262,6 +263,7 @@ while (<CTL>) {
         }
     }
     if (/cutoff\s*=\s*(\d+\.*\d+)\s*#.*$/) { $cutoff = $1; }
+
 }
 close CTL;
 ##########################################################################################
@@ -364,6 +366,7 @@ END_MESSAGE
 
 }
 
+print "\tSNPs filter:\t$snp_filter\n";
 print "\tCode:\t$type\n";
 print "\tLog file:\t$logfile\n";
 print "\tError file:\t$error\n";

From 95085268aae1d2504f56bd5aa99c16a46bcb4902 Mon Sep 17 00:00:00 2001
From: Migun Shakya <microbeatic@gmail.com>
Date: Wed, 30 Jan 2019 09:33:52 -0700
Subject: [PATCH 19/19] [skip ci] header change

---
 docs/install/web-interface.rst | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/docs/install/web-interface.rst b/docs/install/web-interface.rst
index 759d6d9..6936332 100644
--- a/docs/install/web-interface.rst
+++ b/docs/install/web-interface.rst
@@ -8,6 +8,8 @@ This Dockerized application contains all of the code you need to run PhaME as a
 the PhaME application, the web interface, Celery and Redis queues and a PostGREs database.
 
 Step by step guide to running PhaME using a web interface on a local machine. 
+==============================================================================
+
 *Docker and git are required.*
 
 1. clone the repo
@@ -51,8 +53,8 @@ Step by step guide to running PhaME using a web interface on a local machine.
 
 If all went well, you can go to `localhost` to see the phame webpage.
 
-Running PhaME using a web interface
-===================================
+Step by step guide to running PhaME using a web interface on a production machine.
+==================================================================================
 
 The user input files can require a lot of storage space. Use these instructions if you want to store the users' data on 
 a data volume that is different from the main volume where the Docker container is created.