package for reconstructing semi-directed phylogenetic level-1 networks from four-leaved networks and sequence alignments
Project description
physquirrel
physquirrel is a Python package for phylogenetic network analysis, with a focus on reconstructing semi-directed phylogenetic level-1 networks from quarnets and/or sequence alignments. The package provides tools to build and visualize phylogenetic networks, leveraging the Squirrel algorithm for efficient network reconstruction.
List of important features
- $\delta$-heuristic to construct quarnets (4-leaf subnetworks) from a multiple sequence alignment (in
.fastaor.nexusformat) - Squirrel algorithm to construct semi-directed phylogenetic level-1 networks from quarnets
- Visualization of networks
- Exporting phylogenetic trees and networks in
eNewickformat - Methods to extract information from a network (e.g. its set of splits, its displayed quarnets)
Installation
If you have an up-to-date version of Python installed on your device, the standard package manager pip should come pre-installed. Then, you can install physquirrel from PyPI by simply using the following command in a terminal:
python -m pip install physquirrel
Example usage
Importing the package
To get started with physquirrel, open a Python shell and import the package with:
import physquirrel as psq
Creating a set of quarnets
Use the $\delta$-heuristic to create a dense set of tf-quarnets from a multiple sequence alignment as follows:
msa = psq.MSA('path/to/msa/file.fasta')
Q = msa.delta_heuristic()
Alternatively, the dense set of tf-quarnets can also be loaded directly from a .txt file as follows:
Q = psq.DenseQuarnetSet('path/to/quarnet/file.txt')
This method assumes that the .txt file contains one line per tf-quarnet. The quarnets need to be one of the following two types:
SQ: a b c dfor a quarnet on leaves ${a,b,c,d}$ with a split $ab|cd$.4C: a b c dfor a quarnet on leaves ${a,b,c,d}$ with a four-cycle $a,b,c,d$ and the leaf $a$ below the reticulation.
Reconstructing a network
To create a network from the dense set of tf-quarnets, run the Squirrel algorithm:
N = Q.squirrel()
To view the network and print its eNewick string (with an arbitrary rooting), run:
N.visualize()
eNewick = N.create_enewick()
print(eNewick)
For a complete overview of different methods and extra parameter options, please check the method descriptions in the source code of physquirrel.
Citation
If you use physquirrel, please cite the corresponding paper:
Squirrel: Reconstructing semi-directed phylogenetic level-1 networks from four-leaved networks and sequence alignments by Niels Holtgrefe, Katharina T. Huber, Leo van Iersel, Mark Jones, Samuel Martin, and Vincent Moulton.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for physquirrel-1.0.1-py3-none-any.whl
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 | b2788a49a3585915b450182c72d4dfa62b7f68677f8be0064c0de17f1e20c285 |
|
| MD5 | b14d4a4c772dec28c0e7334264912146 |
|
| BLAKE2b-256 | 5001e0dac1fa7911f4aa3799872b2735b3b76ad3928fd95ee41757c3087a2933 |