Skip to main content

alifedata-phyloinformatics-convert helps apply traditional phyloinformatics software to alife standardized data

Project description

PyPI Status CI Status Documentation Status https://zenodo.org/badge/466241441.svg

alifedata-phyloinformatics-convert helps apply traditional phyloinformatics software to alife standardized data

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


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

alifedata_phyloinformatics_convert-0.16.3-py2.py3-none-any.whl (34.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file alifedata-phyloinformatics-convert-0.16.3.tar.gz.

File metadata

File hashes

Hashes for alifedata-phyloinformatics-convert-0.16.3.tar.gz
Algorithm Hash digest
SHA256 fcc6c00b04e6bf4213abe829fb3524f3b61b76d92e993ae3ad06837765ce2a5c
MD5 84a7b53611b32210321c66dbb310ae90
BLAKE2b-256 40601e03654748144926886fe79ca27593e48da40790b06f85bfcf9c624a1363

See more details on using hashes here.

File details

Details for the file alifedata_phyloinformatics_convert-0.16.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for alifedata_phyloinformatics_convert-0.16.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 01e7703aa08a964b4bd26d8bf57f36f513d73a04a61f89fb23bb2431daf8eccf
MD5 67fadfa5b3546887919172cdf9e5b4ea
BLAKE2b-256 ab06f3f9533d6ddd9cd7c28fd71ece9c3fc28fa27c1a43fbeed9053c7f15eea3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page