From b7ab078fed69ad6fa6f11fa2378e22dd39cf6777 Mon Sep 17 00:00:00 2001 From: Pierre Barbera Date: Wed, 12 Feb 2020 14:39:00 +0100 Subject: [PATCH] small commit for v0.1.0 --- README.md | 45 ++++++++++++++++++++++++++++++++++-------- doc/pipeline_draw.pdf | Bin 0 -> 43374 bytes 2 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 doc/pipeline_draw.pdf diff --git a/README.md b/README.md index fe904b8..58e29b8 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,25 @@ -# scrapp -Species Counting on Reference trees viA Phylogenetic Placements +# SCRAPP -# Using SCRAPP +1. **[Introduction](#introduction)** +2. **[Installation](#installation)** +3. **[Usage](#usage)** +4. **[Citing SCRAPP](#citing-scrapp)** -Simple call for a common combination of files, using 4 threads: +## Introduction +Species Counting on Reference trees viA Phylogenetic Placements - ./scrapp.py --jplace epa_result.jplace --alignment query.fasta --threads 4 +## Installation -or with MPI: +### Through Conda +``` +conda install -c bioconda scrapp +``` +Thats it! now you can even skip the remaining installation instructions. - ./scrapp.py --jplace epa_result.jplace --alignment query.fasta --parallel mpi --threads 4 +### From Source + +#### Satisfying Dependencies -# Requirements @@ -33,3 +41,24 @@ Then use sudo update-alternatives --config mpirun to configure. + +#### Getting the Source +Perhaps the most robust route to setting up SCRAPP is to do a recursive clone of this github repository: +``` +git clone --recursive https://github.com/Pbdas/scrapp.git +``` + +Alternatively, if the code was downloaded as an archive of the source folder, the setup script _should_ fetch the source tree dependencies automatically (if there is an internet connection). + +## Usage +Simple call for a common combination of files, using 4 threads: + + ./scrapp.py --jplace epa_result.jplace --alignment query.fasta --threads 4 + +or with MPI: + + ./scrapp.py --jplace epa_result.jplace --alignment query.fasta --parallel mpi --threads 4 + +## Citing SCRAPP + +If you use SCRAPP, please cite the following papers: \ No newline at end of file diff --git a/doc/pipeline_draw.pdf b/doc/pipeline_draw.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3ba4cdbf76546be6e1d7ff6888ba692458157566 GIT binary patch literal 43374 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 z