|
|
## Table of contents
|
|
|
|
|
|
* [Glossary](#glossary)
|
|
|
* [Overview](#overview)
|
|
|
* [Orthology Primer](#orthology_primer)
|
|
|
* [Orthology Inference](#orthology_inference)
|
|
|
* [Graph-based Approaches](#graph_based)
|
|
|
* [Tree-based Approaches](#tree_based)
|
|
|
* [Monophyly masking](#monophyly_masking)
|
|
|
* [Paralogy pruning](#paralogy_pruning)
|
|
|
* [Contamination-like Issues](#contamination_like)
|
|
|
|
|
|
## Glossary <a name="glossary"></a>
|
|
|
|
|
|
> * **Homology** – Shared features due to common ancestry.
|
|
|
> * **Homologous genes** (=homologs) – Genes that share a common ancestry.
|
|
|
> * **Paralogous genes** (=paralogs) – Homologous genes derived by a duplication event.
|
|
|
> * **Orthologous genes** (=orthologs) – Homologous genes derived by a speciation event.
|
|
|
> * **Inparalogs** – Paralogs which were derived through a species-specific gene duplication event.
|
|
|
> * **Outparalogs** – Non-inparalogous paralogs.
|
|
|
> * **One-to-one orthologs** – A set of genes where no OTU is represented by more than one copy per gene.
|
|
|
> * **Many:many orthologs** – A set of genes where two, or more, orthologs are present.
|
|
|
> * **Graph-based orthology inference** – Methods for obtaining a set of homologs from a set of loci based on similarity.
|
|
|
> * **Tree-based orthology inference** – Methods for obtaining 1:1 orthologs from a set of homologs using phylogenetic trees.
|
|
|
|
|
|
## Overview <a name="overview"></a>
|
|
|
|
|
|
PhyloPyPruner is a Python package for refining the output of a graph-based
|
|
|
orthology inference approach such as
|
|
|
[OrthoMCL](https://www.ncbi.nlm.nih.gov/pubmed/12952885),
|
|
|
[OrthoFinder](https://www.ncbi.nlm.nih.gov/pubmed/26243257) or
|
|
|
[HaMStR](https://www.ncbi.nlm.nih.gov/pubmed/19586527). Similar to other
|
|
|
tree-based orthology inference methods (e.g.,
|
|
|
[PhyloTreePruner](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3825643/),
|
|
|
[UPhO](https://academic.oup.com/mbe/article/33/8/2117/2578877),
|
|
|
[Agalma](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3840672/) and
|
|
|
[Phylogenomic Dataset
|
|
|
Reconstruction](https://www.ncbi.nlm.nih.gov/pubmed/25158799)), it
|
|
|
uses phylogenetic trees in order to obtain genes that are 1:1 orthologous. In
|
|
|
addition to filters and algorithms seen in pre-existing tools, this package
|
|
|
provides new methods for differentiating [contamination-like
|
|
|
sequences](https://gitlab.com/fethalen/phylopypruner/wikis/About-PhyloPyPruner#contamination-like-issues-)
|
|
|
from paralogs.
|
|
|
|
|
|
## Orthology Primer <a name="orthology_primer"></a>
|
|
|
|
|
|
Processes such as lineage-splitting, gene duplication and gene extinction events affects gene relationships and various terms has hence been introduced to describe the different ways in which genes can be related. Genes which share a common ancestry are said to be _homologous_ (homologous genes are also known as _homologs_). In addition, homologs are further subcategorized into various homology subclasses: Homologs related by a speciation event are known as _orthologous genes_ (or _orthologs_), whereas homologs related by a gene duplication event are known as _paralogous genes_ (or _paralogs_). Furthermore, _inparalogs_ (a species-specific gene duplication) are different from _outparalogs_ (non-inparalogous paralogs).
|
|
|
|
|
|
## Orthology Inference <a name="orthology_inference"></a>
|
|
|
|
|
|
_Orthology inference_ is the process of deriving sequences related by speciation (i.e., _orthologs_), rather than gene duplication (i.e., _paralogs_), from a set of loci which share common ancestry. Distinguishing between orthologs and paralogs is critical to phylogenetic tree reconstruction, as comparing paralogs in a phylogenetic context results in a tree which reflects the history of gene duplication events rather than speciation events. Current approaches for orthology inference can be grouped into graph-based and tree-based methods.
|
|
|
|
|
|
>>>
|
|
|
**Note.** We seldom know the true history of genes and therefor the orthologs we infer are hypotheses.
|
|
|
>>>
|
|
|
|
|
|
### Graph-based Approaches <a name="graph_based"></a>
|
|
|
|
|
|
Graph-based 'orthology inference' methods cluster sequences together based on an all-_versus_-all BLAST followed by filtering by hit-fraction, Markov clustering or both. Software packages that use a graph-based approach include [OrthoMCL](https://www.ncbi.nlm.nih.gov/pubmed/12952885),
|
|
|
[OrthoFinder](https://www.ncbi.nlm.nih.gov/pubmed/26243257) and [HaMStR](https://www.ncbi.nlm.nih.gov/pubmed/19586527).
|
|
|
|
|
|
For example, in OrthoMCL, putative orthologs are identified by finding the _reciprocal best hits (RBH)_ across different proteomes. Two sequences, from two different species, are each others RBH if and only if they both are more similar to one another than to any other sequence across the two different species. In addition, putative "recent" paralogs are identified by finding sequences, _within_ the same species, which are reciprocally more similar to each other than to any other sequence outside of the species. From this information, graphs are created where nodes represent sequences and edges their relationship. The paralogs are used to adjust the weighting of the edges, in order to avoid biases that arise due to the strong similarity between sequences. A Markov clustering algorithm (MCL) is then separate the sequences into different orthologous groups. The MCL simulates random walks across the different nodes, in order to assess the transition probabilities across different sequences.
|
|
|
|
|
|
### Tree-based Approaches <a name="tree_based"></a>
|
|
|
|
|
|
Since the output from a graph-based approach often contains paralogs or _many:many orthologs_ (a group where more than one set of orthologs has been recognized), a tree-based approach may be employed to derive strict 1:1 orthologs, which is a requirement for phylogenetic inference. As the name implies, these methods make use of phylogenetic trees, in order to refine the output of a graph-based approach. Each homologous group is aligned and a phylogenetic tree is inferred for each alignment. The orthology inference program then uses the information within this tree, to identify subsets of 1:1 orthologs, where no species is present more than once for each loci.
|
|
|
|
|
|
<img src="https://gitlab.com/fethalen/phylopypruner/raw/master/doc/images/proteomes2orthologs.png">
|
|
|
|
|
|
**Figure 1.** An overview of a tree-based orthology inference approach. First,
|
|
|
sequences from different species are clustered together based on an
|
|
|
all-versus-all BLAST, followed by Markov clustering. Each node in the cluster
|
|
|
corresponds to a sequence and each edge corresponds to a similarity score.
|
|
|
Homologous groups are then aligned and a phylogenetic tree is inferred from the
|
|
|
alignment. From this tree, orthologous groups can be identified and paralogs
|
|
|
are pruned away.
|
|
|
|
|
|
An example of tree-based approaches are [Agalma](https://bitbucket.org/caseywdunn/agalma), [PhyloTreePruner](https://sourceforge.net/projects/phylotreepruner/), [UPhO](https://github.com/ballesterus/UPhO), [TreeKo](http://treeko.cgenomics.org/) and [Phylogenomic Dataset Reconstruction](https://bitbucket.org/yangya/phylogenomic_dataset_construction). During tree-based orthology inference, two main processes can be recognized: _monophyly masking_ and _paralogy pruning_.
|
|
|
|
|
|
#### Monophyly masking <a name="monophyly_masking"></a>
|
|
|
|
|
|
During monophyly masking, _inparalogs_ (species-specific gene duplications) and or _isoforms_ (products derived from alternative splicing) that form a monophyly and come from the same species are replaced by a single sequence. From the sequences within the group, one sequence is chosen by picking a sequence (1) by random, (2) by choosing the longest sequence, or (3) by choosing the sequence with the shortest pairwise distance to the rest of the sequences within the alignment.
|
|
|
|
|
|
#### Paralogy pruning <a name="paralogy_pruning"></a>
|
|
|
|
|
|
Paralogy pruning is the process of deriving 1:1 orthologs from a set of homologs, recognized by a graph-based orthology inference approach, through the guidance of a phylogenetic tree. Several methods are available for paralogy pruning, but all of them uses phylogenetic trees in some kind of way. The name paralogy pruning comes from the paralogy trimming step, which is necessary to derive strict 1:1 orthologs from a set of homologs. All the methods that PhyloPyPruner provides are further explained in [the methods section of this Wiki](https://gitlab.com/fethalen/phylopypruner/wikis/methods#paralogy-pruning-).
|
|
|
|
|
|
In the following table, we compare the various paralogy pruning methods found across different tree-based orthology inference programs.
|
|
|
|
|
|
**Table 1:** Comparison chart of paralogy pruning methods in tree-based programs.
|
|
|
|
|
|
| Method | PhyloPyPruner | PhyloTreePruner | Agalma | UPhO | Phylogenomic Dataset Reconstruction |
|
|
|
| -- | -- | -- | -- | -- | -- |
|
|
|
| Largest subtree (LS) | ✓ | ✓ | | | |
|
|
|
| Maximum inclusion (MI) | ✓ | | ✓ | ✓ | ✓ |
|
|
|
| Rooted tree (RT) | ✓ | | | | ✓ |
|
|
|
| Monophyletic outgroups (MO) | ✓ | | | | ✓ |
|
|
|
| 1to1 orthologs (1to1) | ✓ | | | | ✓ |
|
|
|
|
|
|
## Contamination-like Issues <a name="contamination_like"></a>
|
|
|
|
|
|
>>>
|
|
|
**Definition.** Contamination-like
|
|
|
sequences are those interpreted as paralogs by earlier tree-based approaches,
|
|
|
but, based on their position in a tree relative to other sequences from the
|
|
|
same taxon and a lack of evidence for paralogy in other taxa, are most likely
|
|
|
the result of exogenous contamination, misalignment, sequencing errors, etc.
|
|
|
>>>
|
|
|
|
|
|
Contaminant sequences or misidentified paralogy can cause tree-based approaches to erroneously infer paralogy and unnecessarily exclude many sequences. Sequence contamination can be introduced in during the sampling step (due to symbionts, foreign sequences from gut content, or other non-target organisms living in close association with the target organism (e.g., epibionts or parasites). Little in the way of bioinformatic tools are available to help identify and reduce contamination in phylogenomic datasets today and most of the available tools rely on information that is not always available when your sequences are derived from, for example, a public database.
|
|
|
|
|
|
This programs provides various tools for reducing the amount of contamination-like sequences. Cross-contaminants may be identified and removed by setting a minimum threshold for pairwise distance across species. Furthermore, individual OTUs with a negative impact on the results can be identified by our novel _paralogy frequency metric_ (number of paralogs present per species, normalized by the times said species is present) or by a jackknife approach. The jackknife approach provides an extensive statistical report, which shows the impact of removing each OTU, one by one. Finally, the stability of expected monophyletic groups may be asserted by defining subclades. The program then provides a report on how many times said group forms a monophyletic group across all trees, after various filters have been applied. |
|
|
\ No newline at end of file |