teiphy

teiphy: A Python Package for Converting TEI XML Collations to NEXUS and Other Formats - Published in JOSS (2022)

https://github.com/jjmccollum/teiphy

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 14 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    2 of 6 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

nexus phylogenetics python tei-xml text-encoding

Keywords from Contributors

turing-machine standardization pde mesh parallel interpretability evolutionary-algorithms ode pypi simulations

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

A Python package for converting TEI XML collations to NEXUS, BEAST 2.7 XML, and other formats

Basic Info
  • Host: GitHub
  • Owner: jjmccollum
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 12.1 MB
Statistics
  • Stars: 13
  • Watchers: 5
  • Forks: 5
  • Open Issues: 0
  • Releases: 22
Topics
nexus phylogenetics python tei-xml text-encoding
Created over 3 years ago · Last pushed 5 months ago
Metadata Files
Readme Contributing License Code of conduct

README.rst

.. start-badges

.. image:: https://raw.githubusercontent.com/jjmccollum/teiphy/main/docs/img/teiphy-logo.svg

|license badge| |testing badge| |coverage badge| |docs badge| |black badge| |git3moji badge| 
|iqtree badge| |raxml badge| |mrbayes badge| |beast badge| |stemma badge| |joss badge| |doi badge|

.. |license badge| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat
    :target: https://choosealicense.com/licenses/mit/

.. |testing badge| image:: https://github.com/jjmccollum/teiphy/actions/workflows/testing.yml/badge.svg
    :target: https://github.com/jjmccollum/teiphy/actions/workflows/testing.yml

.. |docs badge| image:: https://github.com/jjmccollum/teiphy/actions/workflows/docs.yml/badge.svg
    :target: https://jjmccollum.github.io/teiphy
    
.. |black badge| image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    
.. |coverage badge| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/jjmccollum/62997df516f95bbda6eaefa02b9570aa/raw/coverage-badge.json
    :target: https://jjmccollum.github.io/teiphy/coverage/

.. |git3moji badge| image:: https://img.shields.io/badge/git3moji-%E2%9A%A1%EF%B8%8F%F0%9F%90%9B%F0%9F%93%BA%F0%9F%91%AE%F0%9F%94%A4-fffad8.svg
    :target: https://robinpokorny.github.io/git3moji/

.. |iqtree badge| image:: https://github.com/jjmccollum/teiphy/actions/workflows/iqtree.yml/badge.svg
    :target: https://github.com/jjmccollum/teiphy/actions/workflows/iqtree.yml

.. |raxml badge| image:: https://github.com/jjmccollum/teiphy/actions/workflows/raxml.yml/badge.svg
    :target: https://github.com/jjmccollum/teiphy/actions/workflows/raxml.yml

.. |mrbayes badge| image:: https://github.com/jjmccollum/teiphy/actions/workflows/mrbayes.yml/badge.svg
    :target: https://github.com/jjmccollum/teiphy/actions/workflows/mrbayes.yml

.. |beast badge| image:: https://github.com/jjmccollum/teiphy/actions/workflows/beast.yml/badge.svg
    :target: https://github.com/jjmccollum/teiphy/actions/workflows/beast.yml

.. |stemma badge| image:: https://github.com/jjmccollum/teiphy/actions/workflows/stemma.yml/badge.svg
    :target: https://github.com/jjmccollum/teiphy/actions/workflows/stemma.yml

.. |joss badge| image:: https://joss.theoj.org/papers/e0a813f4cdf56e9f6ae5d555ce6ed93b/status.svg
    :target: https://joss.theoj.org/papers/e0a813f4cdf56e9f6ae5d555ce6ed93b
    
.. |doi badge| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.7455638.svg
   :target: https://doi.org/10.5281/zenodo.7455638

.. end-badges

.. start-about

A Python package for converting TEI XML collations to NEXUS and other formats.

Textual scholars have been using phylogenetics to analyze manuscript traditions since the early 1990s.
Many standard phylogenetic software packages accept as input the `NEXUS file format `_.
The ``teiphy`` program takes a collation of texts encoded using the `Text Encoding Initiative (TEI) guidelines `_
and converts it to a NEXUS format so that it can be used for phylogenetic analysis.
It can also convert to other formats as well, including Hennig86 (for TNT), PHYLIP (for RAxML), FASTA, and the XML format used by BEAST 2.7.

(Note: Some features that ``teiphy`` includes in BEAST 2 outputs will not work correctly with versions of BEAST 2 prior to v2.7.7.
Other features depend on the BEASTLabs, BEAST_CLASSIC, and BDSKY packages.
Make sure you have a recent version of BEAST 2 and these packages installed!)


.. end-about


.. start-quickstart

Installation
============

The software can be installed using ``pip``:

.. code-block:: bash

    pip install teiphy

Alternatively, you can install the package by cloning this repository and installing it with poetry:

.. code-block:: bash

    git clone https://github.com/jjmccollum/teiphy.git
    cd teiphy
    pip install poetry
    poetry install

Once the package is installed, you can run all unit tests via the command

.. code-block:: bash

    poetry run pytest

Usage
============

To use the software, run the ``teiphy`` command line tool:

.. code-block:: bash

    teiphy  

``teiphy`` can export to NEXUS, Hennig86 (TNT), PHYLIP (in the relaxed form used by RAxML), FASTA, BEAST 2.7 XML, CSV, TSV, Excel and ``stemma`` formats. 
``teiphy`` will try to infer the file format to export to from the extension of the output file. Accepted file extensions are:
".nex", ".nexus", ".nxs", ".ph", ".phy", ".fa", ".fasta", ".xml", ".tnt", ".csv", ".tsv", ".xlsx".

To explicitly say which format you wish to export to, use the ``--format`` option. For example:

.. code-block:: bash

    teiphy   --format nexus

For more information about the other options, see the help with:

.. code-block:: bash

    teiphy --help

Or see the documentation with explanations about `advanced usage `_.

The software can also be used in Python directly. 
See `API Reference `_ in the documentation for more information.

.. end-quickstart

Credits
============

.. start-credits

``teiphy`` was designed by Joey McCollum (Australian Catholic University) and Robert Turnbull (University of Melbourne).
We received additional help from Stephen C. Carlson (Australian Catholic University).

If you use this software, please cite the paper: Joey McCollum and Robert Turnbull, "``teiphy``: A Python Package for Converting TEI XML Collations to NEXUS and Other Formats," *JOSS* 7.80 (2022): 4879, DOI: 10.21105/joss.04879.

.. code-block:: bibtex

    @article{MT2022, 
        author = {Joey McCollum and Robert Turnbull}, 
        title = {{teiphy: A Python Package for Converting TEI XML Collations to NEXUS and Other Formats}}, 
        journal = {Journal of Open Source Software},
        year = {2022}, 
        volume = {7}, 
        number = {80}, 
        pages = {4879},
        publisher = {The Open Journal}, 
        doi = {10.21105/joss.04879}, 
        url = {https://doi.org/10.21105/joss.04879}
    }

Further details on the capabilities of ``teiphy``, particularly in terms of the text-critically valuable features it can map from TEI XML collations to BEAST 2 inputs, are discussed in Joey McCollum and Robert Turnbull, "Using Bayesian Phylogenetics to Infer Manuscript Transmission History," *DSH* 39.1 (2024): 258–279, DOI: 10.1093/llc/fqad089.

.. code-block:: bibtex

    @article{MT2024, 
        author = {Joey McCollum and Robert Turnbull}, 
        title = {{Using Bayesian Phylogenetics to Infer Manuscript Transmission History}}, 
        journal = {Digital Scholarship in the Humanities},
        year = {2024}, 
        volume = {39}, 
        number = {1}, 
        pages = {258--279},
        doi = {10.1093/llc/fqad089}, 
        url = {https://doi.org/10.1093/llc/fqad089}
    }

.. end-credits

Owner

  • Name: Joey McCollum
  • Login: jjmccollum
  • Kind: user
  • Location: Melbourne, VIC
  • Company: Australian Catholic University

PhD candidate at ACU · Developer of the open-cbgm library · Co-translator of Acts of John (Brepols) and The Tale of Peter Rabbit in Koine Greek (Gorgias)

JOSS Publication

teiphy: A Python Package for Converting TEI XML Collations to NEXUS and Other Formats
Published
December 19, 2022
Volume 7, Issue 80, Page 4879
Authors
Joey McCollum ORCID
Institute for Religion and Critical Inquiry, Australian Catholic University, Australia
Robert Turnbull ORCID
Melbourne Data Analytics Platform, University of Melboune, Australia
Editor
Mark A. Jensen ORCID
Tags
phylogenetics text encoding TEI NEXUS

GitHub Events

Total
  • Create event: 19
  • Release event: 15
  • Issues event: 12
  • Watch event: 1
  • Delete event: 7
  • Issue comment event: 10
  • Push event: 70
  • Pull request event: 15
  • Fork event: 2
Last Year
  • Create event: 19
  • Release event: 15
  • Issues event: 12
  • Watch event: 1
  • Delete event: 7
  • Issue comment event: 10
  • Push event: 70
  • Pull request event: 15
  • Fork event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 513
  • Total Committers: 6
  • Avg Commits per committer: 85.5
  • Development Distribution Score (DDS): 0.113
Past Year
  • Commits: 52
  • Committers: 3
  • Avg Commits per committer: 17.333
  • Development Distribution Score (DDS): 0.135
Top Committers
Name Email Commits
jjmccollum j****1@g****m 455
Robert Turnbull r****l@u****u 51
Daniel S. Katz d****z@i****g 3
Cat Smith 9****h 2
dependabot[bot] 4****] 1
Doron Chapnitsky 6****y 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 63
  • Total pull requests: 45
  • Average time to close issues: 8 days
  • Average time to close pull requests: 12 minutes
  • Total issue authors: 4
  • Total pull request authors: 5
  • Average comments per issue: 3.89
  • Average comments per pull request: 0.18
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 8
  • Pull requests: 13
  • Average time to close issues: 11 days
  • Average time to close pull requests: less than a minute
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.88
  • Average comments per pull request: 0.08
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • rbturnbull (33)
  • jjmccollum (24)
  • romanshomilies (5)
  • cmsmcq (1)
Pull Request Authors
  • jjmccollum (33)
  • rbturnbull (12)
  • dependabot[bot] (1)
  • chapnitsky (1)
  • danielskatz (1)
Top Labels
Issue Labels
enhancement (8) bug (2) question (1)
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 103 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 25
  • Total maintainers: 2
pypi.org: teiphy

Converts TEI XML collations to NEXUS and other formats

  • Versions: 25
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 103 Last month
Rankings
Dependent packages count: 6.6%
Stargazers count: 18.6%
Forks count: 19.6%
Average: 20.3%
Downloads: 26.3%
Dependent repos count: 30.6%
Maintainers (2)
Last synced: 4 months ago

Dependencies

poetry.lock pypi
  • alabaster 0.7.12 develop
  • attrs 22.1.0 develop
  • babel 2.10.3 develop
  • beautifulsoup4 4.11.1 develop
  • black 22.8.0 develop
  • bleach 5.0.1 develop
  • certifi 2022.6.15 develop
  • cffi 1.15.1 develop
  • cfgv 3.3.1 develop
  • charset-normalizer 2.1.1 develop
  • coverage 6.4.4 develop
  • defusedxml 0.7.1 develop
  • distlib 0.3.6 develop
  • docutils 0.17.1 develop
  • entrypoints 0.4 develop
  • fastjsonschema 2.16.1 develop
  • filelock 3.8.0 develop
  • identify 2.5.3 develop
  • idna 3.3 develop
  • imagesize 1.4.1 develop
  • importlib-metadata 4.12.0 develop
  • importlib-resources 5.9.0 develop
  • iniconfig 1.1.1 develop
  • jinja2 3.1.2 develop
  • jsonschema 4.15.0 develop
  • jupyter-client 7.3.5 develop
  • jupyter-core 4.11.1 develop
  • jupyterlab-pygments 0.2.2 develop
  • latexcodec 2.0.1 develop
  • livereload 2.6.3 develop
  • markupsafe 2.1.1 develop
  • mistune 2.0.4 develop
  • mypy-extensions 0.4.3 develop
  • nbclient 0.6.7 develop
  • nbconvert 7.0.0 develop
  • nbformat 5.4.0 develop
  • nbsphinx 0.8.9 develop
  • nest-asyncio 1.5.5 develop
  • nodeenv 1.7.0 develop
  • packaging 21.3 develop
  • pandocfilters 1.5.0 develop
  • pathspec 0.10.1 develop
  • pkgutil-resolve-name 1.3.10 develop
  • platformdirs 2.5.2 develop
  • pluggy 1.0.0 develop
  • pre-commit 2.20.0 develop
  • py 1.11.0 develop
  • pybtex 0.24.0 develop
  • pybtex-docutils 1.0.2 develop
  • pycparser 2.21 develop
  • pyparsing 3.0.9 develop
  • pyrsistent 0.18.1 develop
  • pytest 7.1.3 develop
  • pywin32 304 develop
  • pyyaml 6.0 develop
  • pyzmq 23.2.1 develop
  • requests 2.28.1 develop
  • setuptools 65.3.0 develop
  • snowballstemmer 2.2.0 develop
  • soupsieve 2.3.2.post1 develop
  • sphinx 5.1.1 develop
  • sphinx-autobuild 2021.3.14 develop
  • sphinx-click 3.1.1.dev4 develop
  • sphinx-copybutton 0.4.0 develop
  • sphinx-rtd-theme 1.0.0 develop
  • sphinxcontrib-applehelp 1.0.2 develop
  • sphinxcontrib-bibtex 2.5.0 develop
  • sphinxcontrib-devhelp 1.0.2 develop
  • sphinxcontrib-htmlhelp 2.0.0 develop
  • sphinxcontrib-jsmath 1.0.1 develop
  • sphinxcontrib-qthelp 1.0.3 develop
  • sphinxcontrib-serializinghtml 1.1.5 develop
  • tinycss2 1.1.1 develop
  • toml 0.10.2 develop
  • tomli 1.2.3 develop
  • tornado 6.2 develop
  • traitlets 5.3.0 develop
  • urllib3 1.26.12 develop
  • virtualenv 20.16.4 develop
  • webencodings 0.5.1 develop
  • zipp 3.8.1 develop
  • click 8.1.3
  • colorama 0.4.5
  • commonmark 0.9.1
  • et-xmlfile 1.1.0
  • lxml 4.9.1
  • numpy 1.23.2
  • openpyxl 3.0.10
  • pandas 1.4.4
  • pygments 2.13.0
  • python-dateutil 2.8.2
  • pytz 2022.2.1
  • rich 12.5.1
  • six 1.16.0
  • typer 0.6.1
  • typing-extensions 4.3.0
.github/workflows/docs.yml actions
  • JamesIves/github-pages-deploy-action 4.1.5 composite
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • openjournals/openjournals-draft-action master composite
  • schneegans/dynamic-badges-action v1.1.0 composite
.github/workflows/iqtree.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/mrbayes.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/publish.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • snok/install-poetry v1 composite
.github/workflows/raxml.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/stemma.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/testing.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/beast.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
  • actions/setup-python v3 composite
pyproject.toml pypi