You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PhyloPandas provides a Pandas-like interface for reading sequence and phylogenetic tree data into pandas DataFrames. This enables easy manipulation of phylogenetic data using familiar Python/Pandas functions. Finally, phylogenetics for humans!
How does it work?
Don't worry, we didn't reinvent the wheel. PhyloPandas is simply a DataFrame
(great for human-accessible data storage) interface on top of Biopython (great for parsing/writing sequence data) and DendroPy (great for reading tree data).
PhyloPandas does two things:
It offers new read functions to read sequence/tree data directly into a DataFrame.
It attaches a new phyloaccessor to the Pandas DataFrame. This accessor provides writing methods for sequencing/tree data (powered by Biopython and dendropy).
# Read a format.df=ph.read_fasta('sequences.fasta')
# Write to a different format.df.phylo.to_phylip('sequences.phy')
Tree data:
Read newick tree data
df=ph.read_newick('tree.newick')
Visualize the phylogenetic data (powered by phylovega).
df.phylo.display(
height=500,
)
Contributing
If you have ideas for the project, please share them on the project's Gitter chat.
It's easy to create new read/write functions and methods for PhyloPandas. If you
have a format you'd like to add, please submit PRs! There are many more formats
in Biopython that I haven't had the time to add myself, so please don't be afraid
to add them! I thank you ahead of time!
Testing
PhyloPandas includes a small pytest suite. Run these tests from base directory.
$ cd phylopandas
$ pytest
Install
Install from PyPI:
pip install phylopandas
Install from source:
git clone https://github.com/Zsailer/phylopandas
cd phylopandas
pip install -e .
Dependencies
BioPython: Library for managing and manipulating biological data.
DendroPy: Library for phylogenetic scripting, simulation, data processing and manipulation
Pandas: Flexible and powerful data analysis / manipulation library for Python
pandas_flavor: Flavor pandas objects with new accessors using pandas' new register API (with backwards compatibility).