alifedata-phyloinformatics-convert helps apply traditional phyloinformatics software to alife standardized data
Project description
alifedata-phyloinformatics-convert helps apply traditional phyloinformatics software to alife standardized data
Free software: MIT license
Documentation: https://alifedata-phyloinformatics-convert.readthedocs.io.
Usage
Use apc
’s RosettaTree
interface for flexible conversion between phylogenetic data structures and schemas.
First, create a RosettaTree
object from any supported structure/schema
import io
import pathlib
import alifedata_phyloinformatics_convert as apc
import anytree
import Bio
import dendropy
import ete3 as ete
import networkx
import pandas
import phylotrackpy
newickstr = "((A,B),(C,D));"
for obj in [
anytree.AnyNode(),
Bio.Phylo.read(io.StringIO(newickstr), "newick"),
dendropy.Tree.get(data=newickstr, schema="newick"),
ete.Tree(newickstr),
networkx.DiGraph(),
pandas.DataFrame({"id": [0], "ancestor_list": "[None]"}), # alife standard
phylotrackpy.systematics.Systematics(lambda x: x),
]:
converter = apc.RosettaTree(obj)
# from phyloinformatics schema
# ... nexml and nexus also supported!
converter = apc.RosettaTree.from_newick(newickstr)
converter = apc.RosettaTree.from_newick(pathlib.Path("read.newick"))
with open("read.newick", "r") as fp:
converter = apc.RosettaTree.from_newick(fp)
# from alife standard data via Pandas
converter = apc.RosettaTree(pandas.read_csv("read-alifestd.csv"))
Then, convert or serialize data
# ... converter created as above
converter.as_alife # pandas DataFrame
converter.as_biopython
converter.as_dendropy
converter.as_ete
converter.as_networkx
converter.as_phylotrack
# serialization, nexml and nexus schemata also supported
converter.to_newick() # returns newick string
converter.to_newick(pathlib.Path("write.newick")) # writes to path
with open("write.newick", "w") as fp: # writes to file object
converter.to_newick(fp)
# alifestd serialization
converter.as_alife.to_csv("write-alifestd.csv", index=False)
Use apc
’s functional interface to convert between alife format other libraries’ tree objects
import alifedata_phyloinformatics_convert as apc
import pandas
alife_df = pandas.read_csv('alifedata.csv')
# biopython
tree = apc.alife_dataframe_tobiopython_tree(alife_df)
frame = apc.biopython_tree_to_alife_dataframe(tree)
# dendropy
tree = apc.alife_dataframe_to_dendropy_tree(alife_df)
frame = apc.dendropy_tree_to_alife_dataframe(tree)
# ete
ete_tree = apc.alife_dataframe_to_ete_tree(alife_df)
frame = apc.ete_tree_to_alife_dataframe(tree)
# networkx
digraph = apc.alife_dataframe_to_networkx_digraph(alife_df)
frame = apc.networkx_digraph_to_alife_dataframe(digraph)
# phylotrackpy
systematics = apc.alife_dataframe_to_phylotrack_systematics(alife_df)
frame = apc.phylotrack_systematics_to_alife_dataframe(systematics)
# partial support is also included for,
# - adjacency lists
# - anytree trees
# - scipy linkage matrices
# ... see API documentation for details
Command Line Interface
Use apc
’s CLI toalifedata
command to convert newick, nexml, and nexus data to alife standard phylogenetics data
Usage: alifedata-phyloinformatics-convert toalifedata [OPTIONS]
convert standard alife phylogeny data to phloinformatics format
Options:
--input-file FILENAME phyloinformatics data file path; default
stdin
--input-schema TEXT phyloinformatics data format schema; options
include newick, nexml, and nexus [required]
--output-file FILENAME alife data file path; default stdout
--output-format TEXT alife data file format; default csv
--suppress-unifurcations / --keep-unifurcations
Compress sequences of nodes with single
descendants
--help Show this message and exit.
Use the fromalifedata
command to convert to other formats from alife standard phylogenetics data
Usage: alifedata-phyloinformatics-convert fromalifedata [OPTIONS]
convert phloinformatics data to standard alife phylogeny format
Options:
--input-file FILENAME alife data file path; default stdin
--input-format TEXT alife data file format; default csv
--output-file FILENAME phyloinformatics data file path; default
stdout
--output-schema TEXT phyloinformatics data format schema; options
include newick, nexml, and nexus [required]
--suppress-unifurcations / --keep-unifurcations
Compress sequences of nodes with single
descendants
--help Show this message and exit.
Installation
Install from PyPi
pip3 install alifedata-phyloinformatics-convert
Citing
If alifedata-phyloinformatics-convert is used in scientific publication, please cite it as
Matthew Andres Moreno and Santiago Rodriguez Papa. (2024). mmore500/alifedata-phyloinformatics-convert. Zenodo. https://doi.org/10.5281/zenodo.10701178
@software{moreno2024apc,
author = {Matthew Andres Moreno AND Santiago {Rodriguez Papa}},
title = {mmore500/alifedata-phyloinformatics-convert},
month = feb,
year = 2024,
publisher = {Zenodo},
doi = {10.5281/zenodo.10701178},
url = {https://doi.org/10.5281/zenodo.10701178}
}
And don’t forget to leave a star on GitHub!
Credits
Built using the DendroPy library. This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
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
File details
Details for the file alifedata-phyloinformatics-convert-0.16.3.tar.gz
.
File metadata
- Download URL: alifedata-phyloinformatics-convert-0.16.3.tar.gz
- Upload date:
- Size: 173.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcc6c00b04e6bf4213abe829fb3524f3b61b76d92e993ae3ad06837765ce2a5c |
|
MD5 | 84a7b53611b32210321c66dbb310ae90 |
|
BLAKE2b-256 | 40601e03654748144926886fe79ca27593e48da40790b06f85bfcf9c624a1363 |
File details
Details for the file alifedata_phyloinformatics_convert-0.16.3-py2.py3-none-any.whl
.
File metadata
- Download URL: alifedata_phyloinformatics_convert-0.16.3-py2.py3-none-any.whl
- Upload date:
- Size: 34.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01e7703aa08a964b4bd26d8bf57f36f513d73a04a61f89fb23bb2431daf8eccf |
|
MD5 | 67fadfa5b3546887919172cdf9e5b4ea |
|
BLAKE2b-256 | ab06f3f9533d6ddd9cd7c28fd71ece9c3fc28fa27c1a43fbeed9053c7f15eea3 |