Skip to main content

alifedata-phyloinformatics-convert

PyPI Status

CI Status

Documentation Status

image

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
import treeswift

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),
  treeswift.Tree.read_tree_newick(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
converter.as_treeswift

# 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)

# treeswift
treeswift_tree = apc.alife_dataframe_to_treeswift_tree(alife_df)
frame = apc.treeswift_tree_to_alife_dataframe(tree)

# 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.

Metadata

Release files for alifedata-phyloinformatics-convert 0.19.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for alifedata-phyloinformatics-convert 0.19.3
File Size Uploaded
alifedata-phyloinformatics-convert-0.19.3.tar.gz 177.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for alifedata-phyloinformatics-convert 0.19.3
File Interpreter ABI Platform
alifedata_phyloinformatics_convert-0.19.3-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 219.1 kB

Release files / alifedata-phyloinformatics-convert-0.19.3.tar.gz

Download URL alifedata-phyloinformatics-convert-0.19.3.tar.gz
Size 177.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fddece392351898410a0b1741d213d2f4e09b130ee39ceeaaddfd4375619f408
BLAKE2b-256 checksum
How to use checksums
9a41aff0111e41f7a29abd9c5a15865fe523c0367ddb07b070ec1e432c109c88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / alifedata_phyloinformatics_convert-0.19.3-py2.py3-none-any.whl

Download URL alifedata_phyloinformatics_convert-0.19.3-py2.py3-none-any.whl
Size 41.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
e0f9ebf41452e21e88070d91fc0135e4ec82f54215940aec825c07d20ef35c15
BLAKE2b-256 checksum
How to use checksums
25500c9de488f350b81b365511cf710bf8d38b214292ef07b4954b44edbbb2e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.19.3 This release

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.4

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.15.1

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page