|
1 | 1 | Parsnp is a command-line-tool for efficient microbial core genome alignment and SNP detection. Parsnp was designed to work in tandem with Gingr, a flexible platform for visualizing genome alignments and phylogenetic trees; both Parsnp and Gingr form part of the Harvest suite :
|
2 | 2 |
|
3 | 3 |
|
| 4 | + |
4 | 5 | # Installation
|
5 | 6 | ## From conda
|
6 | 7 | Parsnp is available on the [Bioconda](https://bioconda.github.io/user/install.html#set-up-channels) channel. This is the recommended method of installation. Once you have [added the Bioconda channel](https://bioconda.github.io/user/install.html#set-up-channels) to your conda environment, `parsnp` can be installed via
|
7 | 8 | ```
|
8 | 9 | conda install parsnp
|
9 | 10 | ```
|
10 | 11 |
|
11 |
| -## From source |
| 12 | +Instructions for building Parsnp from source are available towards the end of this README. |
| 13 | + |
| 14 | +# Running Parsnp |
| 15 | +Parsnp can be run multiple ways, but the most common is with a set of genomes and a reference. |
| 16 | +``` |
| 17 | +parsnp -g <reference_genbank> -d <genomes> |
| 18 | +``` |
| 19 | +``` |
| 20 | +parsnp -r <reference_fasta> -d <genomes> |
| 21 | +``` |
| 22 | +For example, |
| 23 | +``` |
| 24 | +parsnp -r examples/mers_virus/ref/England1.fna -d examples/mers_virus/genomes/*.fna -o examples-out |
| 25 | +``` |
| 26 | + |
| 27 | +## Partition mode |
| 28 | +Parsnp 2 will group query genomes up into random partitions of at least `--min-partition-size` genomes each (50 by default). Parsnp is then run independently on each group, and the resulting alignment of each group is merged into a single alignment of all input genomes. This limits the input size for an individual "core" Parsnp step, leading to significantly less memory and CPU usage. We've also shown, on simulated and empirical data, that this partitioning step often leads to increased core-genome size and better phylogenetic signal. |
| 29 | + |
| 30 | +The `--no-partition` flag allows users to run all query genomes at once. |
| 31 | + |
| 32 | +## Output files |
| 33 | +* `parsnp.xmfa` is the core-genome alignment. |
| 34 | +* `parsnp.ggr` is the compressed representation of the alignment generated by the harvest-toolkit. This file can be used to visualize alignments with Gingr. |
| 35 | +* `parsnp.snps.mblocks` is the core-SNP signature of each sequence in fasta format. This is the file which is used to generate `parsnp.tree` |
| 36 | +* `parsnp.tree` is the resulting phylogeny. |
| 37 | +* If run in partition mode, Parsnp will produce a `partition` folder in the output directory, which contains the output of each of the partitioned runs. |
| 38 | + |
| 39 | + |
| 40 | +### XMFA format |
| 41 | +The output XMFA file contains a header section mapping contig names to indices. Following the header section, the LCBs/clusters are reported in the XMFA format, where the ID for each record in an LCB is formatted as: |
| 42 | + |
| 43 | +``` |
| 44 | +[fileidx]:[concat_start]-[concat_end] [strand] cluster[x] s[contig_idx]:p[contig_pos] |
| 45 | +``` |
| 46 | + |
| 47 | +The `concat_start` and `concat_end` values are internal to parsnp. The sequence for this record can be found in the file at index `fileidx` (these are declared at the top of the xmfa) on the `contig_idx`th contig starting at position `contig_pos`. |
| 48 | + |
| 49 | +## Building from source |
12 | 50 |
|
13 | 51 | To build Parsnp from source, users must have automake 1.15, autoconf, and libtool installed. Parsnp also requires RaxML (or FastTree), Harvest-tools, and numpy. Some additional features require pySPOA, Mash, FastANI, and Phipack. All of these packages are available via Conda (many on the Bioconda channel).
|
14 | 52 |
|
@@ -44,44 +82,6 @@ Note that the `parsnp` executable in `bin/` is not the same as the one in the ro
|
44 | 82 | ## OSX Users (Catalina)
|
45 | 83 | Recent OSX have a Gatekeeper, that's designed to ensure that only softwre from known developers runs on tour Mac. Please refer to this link to enable the binaries shipped with Parsnp to run: https://support.apple.com/en-us/HT202491
|
46 | 84 |
|
47 |
| -# Running Parsnp |
48 |
| -Parsnp can be run multiple ways, but the most common is with a set of genomes and a reference. |
49 |
| -``` |
50 |
| -parsnp -g <reference_genbank> -d <genomes> |
51 |
| -``` |
52 |
| -``` |
53 |
| -parsnp -r <reference_fasta> -d <genomes> |
54 |
| -``` |
55 |
| -For example, |
56 |
| -``` |
57 |
| -parsnp -r examples/mers_virus/ref/England1.fna -d examples/mers_virus/genomes/*.fna -o examples-out |
58 |
| -``` |
59 |
| - |
60 |
| -## Partition mode |
61 |
| -Parsnp 2 includes a new mode which can be activated with `--partition`. This mode randomly splits the input genomes up into groups of *p* genomes each, where *p* defaults to 50 and can be changed with `--partition-size=p`. Parsnp is then run independently on each group, and the resulting alignment of each group is merged into a single alignment of all input genomes. This mode is intended for large datasets, as it reduces the computational requirements. |
62 |
| - |
63 |
| -``` |
64 |
| -parsnp -r examples/mers_virus/ref/England1.fna -d examples/mers_virus/genomes/*.fna --partition --partition-size 10 -o examples-out-partitioned |
65 |
| -``` |
66 |
| - |
67 |
| -More examples can be found in the [readthedocs tutorial](https://harvest.readthedocs.io/en/latest/content/parsnp/tutorial.html) |
68 |
| - |
69 |
| -## Output files |
70 |
| -* `parsnp.xmfa` is the core-genome alignment. |
71 |
| -* `parsnp.ggr` is the compressed representation of the alignment generated by the harvest-toolkit. This file can be used to visualize alignments with Gingr. |
72 |
| -* `parsnp.snps.mblocks` is the core-SNP signature of each sequence in fasta format. This is the file which is used to generate `parsnp.tree` |
73 |
| -* `parsnp.tree` is the resulting phylogeny. |
74 |
| -* If run in partition mode, Parsnp will produce a `partition` folder in the output directory, which contains the output of each of the partitioned runs. |
75 |
| - |
76 |
| -### XMFA format |
77 |
| -The output XMFA file contains a header section mapping contig names to indices. Following the header section, the LCBs/clusters are reported in the XMFA format, where the ID for each record in an LCB is formatted as: |
78 |
| - |
79 |
| -``` |
80 |
| -[fileidx]:[concat_start]-[concat_end] [strand] cluster[x] s[contig_idx]:p[contig_pos] |
81 |
| -``` |
82 |
| - |
83 |
| -The `concat_start` and `concat_end` values are internal to parsnp. The sequence for this record can be found in the file at index `fileidx` (these are declared at the top of the xmfa) on the `contig_idx`th contig starting at position `contig_pos`. |
84 |
| - |
85 | 85 | ## Misc
|
86 | 86 |
|
87 | 87 | CITATION provides details on how to cite Parsnp.
|
|
0 commit comments