phylodm


Namephylodm JSON
Version 3.2.0 PyPI version JSON
download
home_pageNone
SummaryEfficient calculation of phylogenetic distance matrices.
upload_time2024-10-08 01:11:19
maintainerNone
docs_urlNone
authorAaron Mussig <aaronmussig@gmail.com>
requires_python>=3.8
licenseGPL-3.0
keywords phylogenetic distance matrix symmetric
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🌲 PhyloDM

[![PyPI](https://img.shields.io/pypi/v/phylodm?color=yellow)](https://pypi.org/project/phylodm/)
[![BioConda](https://img.shields.io/conda/vn/bioconda/phylodm?color=43b02a)](https://anaconda.org/bioconda/phylodm)
[![Crates](https://img.shields.io/crates/v/phylodm?color=orange)](https://crates.io/crates/phylodm)
[![DOI](https://zenodo.org/badge/251473194.svg)](https://zenodo.org/badge/latestdoi/251473194)

PhyloDM is a high-performance library that converts a phylogenetic tree into a pairwise distance matrix. 

For a tree with 30,000 taxa, PhyloDM will use:

* ~14GB of memory (94% less than DendroPy)
* ~1 minute of CPU time (183x faster than DendroPy).

PhyloDM is written in Rust and is exposed to Python via the Python PyO3 API. This means it 
can be used in either Python or Rust, however, the documentation below is written for use in Python. For Rust documentation, see [Crates.io](https://docs.rs/phylodm/latest/phylodm/).

## ⚙ Installation

*Requires Python 3.9+*

### PyPI

Pre-compiled binaries are packaged for most 64-bit Unix platforms. If you are installing on a different platform then you
will need to have [Rust](https://www.rust-lang.org/tools/install) installed to compile the binaries. 

```shell
python -m pip install phylodm
```

### Conda

```shell
conda install -c b bioconda phylodm
```


## 🐍 Quick-start

A pairwise distance matrix can be created from either a Newick file, or DendroPy tree.

```python
from phylodm import PhyloDM

# PREPARATION: Create a test tree
with open('/tmp/newick.tree', 'w') as fh:
    fh.write('(A:4,(B:3,C:4):1);')

# 1a. From a Newick file
pdm = PhyloDM.load_from_newick_path('/tmp/newick.tree')

# 1b. From a DendroPy tree
import dendropy
tree = dendropy.Tree.get_from_path('/tmp/newick.tree', schema='newick')
pdm = PhyloDM.load_from_dendropy(tree)

# 2. Calculate the PDM
dm = pdm.dm(norm=False)
labels = pdm.taxa()

"""
/------------[4]------------ A
+
|          /---------[3]--------- B
\---[1]---+
           \------------[4]------------- C
           
labels = ('A', 'B', 'C')
    dm = [[0. 8. 9.]
          [8. 0. 7.]
          [9. 7. 0.]]
"""
```

### Accessing data
The `dm` method generates a symmetrical NumPy matrix and returns a tuple of
keys in the matrix row/column order.

```python
# Calculate the PDM
dm = pdm.dm(norm=False)
labels = pdm.taxa()

"""
/------------[4]------------ A
+
|          /---------[3]--------- B
\---[1]---+
           \------------[4]------------- C
           
labels = ('A', 'B', 'C')
    dm = [[0. 8. 9.]
          [8. 0. 7.]
          [9. 7. 0.]]
"""

# e.g. The following commands (equivalent) get the distance between A and B
dm[0, 1]  # 8
dm[labels.index('A'), labels.index('B')]  # 8
```

### Normalisation

If the `norm` argument of `dm` is set to `True`, then the data will be normalised 
by the sum of all edges in the tree.


## ⏱ Performance
Tests were executed using `scripts/performance/Snakefile` on an Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz.

For large numbers of taxa it is beneficial to use PhyloDM, however, if you have a small number 
of taxa in the tree it is beneficial to use DendroPy for the great features it provides.



![PhyloDM vs DendroPy resource usage](https://raw.githubusercontent.com/aaronmussig/PhyloDM/main/docs/img/performance.svg)


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "phylodm",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "phylogenetic, distance, matrix, symmetric",
    "author": "Aaron Mussig <aaronmussig@gmail.com>",
    "author_email": "Aaron Mussig <aaronmussig@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/54/73/73f7e4c88d7f276e7284657d83f53bad7b247a48c0800db49c8c54167b12/phylodm-3.2.0.tar.gz",
    "platform": null,
    "description": "# \ud83c\udf32 PhyloDM\n\n[![PyPI](https://img.shields.io/pypi/v/phylodm?color=yellow)](https://pypi.org/project/phylodm/)\n[![BioConda](https://img.shields.io/conda/vn/bioconda/phylodm?color=43b02a)](https://anaconda.org/bioconda/phylodm)\n[![Crates](https://img.shields.io/crates/v/phylodm?color=orange)](https://crates.io/crates/phylodm)\n[![DOI](https://zenodo.org/badge/251473194.svg)](https://zenodo.org/badge/latestdoi/251473194)\n\nPhyloDM is a high-performance library that converts a phylogenetic tree into a pairwise distance matrix. \n\nFor a tree with 30,000 taxa, PhyloDM will use:\n\n* ~14GB of memory (94% less than DendroPy)\n* ~1 minute of CPU time (183x faster than DendroPy).\n\nPhyloDM is written in Rust and is exposed to Python via the Python PyO3 API. This means it \ncan be used in either Python or Rust, however, the documentation below is written for use in Python. For Rust documentation, see [Crates.io](https://docs.rs/phylodm/latest/phylodm/).\n\n## \u2699 Installation\n\n*Requires Python 3.9+*\n\n### PyPI\n\nPre-compiled binaries are packaged for most 64-bit Unix platforms. If you are installing on a different platform then you\nwill need to have [Rust](https://www.rust-lang.org/tools/install) installed to compile the binaries. \n\n```shell\npython -m pip install phylodm\n```\n\n### Conda\n\n```shell\nconda install -c b bioconda phylodm\n```\n\n\n## \ud83d\udc0d Quick-start\n\nA pairwise distance matrix can be created from either a Newick file, or DendroPy tree.\n\n```python\nfrom phylodm import PhyloDM\n\n# PREPARATION: Create a test tree\nwith open('/tmp/newick.tree', 'w') as fh:\n    fh.write('(A:4,(B:3,C:4):1);')\n\n# 1a. From a Newick file\npdm = PhyloDM.load_from_newick_path('/tmp/newick.tree')\n\n# 1b. From a DendroPy tree\nimport dendropy\ntree = dendropy.Tree.get_from_path('/tmp/newick.tree', schema='newick')\npdm = PhyloDM.load_from_dendropy(tree)\n\n# 2. Calculate the PDM\ndm = pdm.dm(norm=False)\nlabels = pdm.taxa()\n\n\"\"\"\n/------------[4]------------ A\n+\n|          /---------[3]--------- B\n\\---[1]---+\n           \\------------[4]------------- C\n           \nlabels = ('A', 'B', 'C')\n    dm = [[0. 8. 9.]\n          [8. 0. 7.]\n          [9. 7. 0.]]\n\"\"\"\n```\n\n### Accessing data\nThe `dm` method generates a symmetrical NumPy matrix and returns a tuple of\nkeys in the matrix row/column order.\n\n```python\n# Calculate the PDM\ndm = pdm.dm(norm=False)\nlabels = pdm.taxa()\n\n\"\"\"\n/------------[4]------------ A\n+\n|          /---------[3]--------- B\n\\---[1]---+\n           \\------------[4]------------- C\n           \nlabels = ('A', 'B', 'C')\n    dm = [[0. 8. 9.]\n          [8. 0. 7.]\n          [9. 7. 0.]]\n\"\"\"\n\n# e.g. The following commands (equivalent) get the distance between A and B\ndm[0, 1]  # 8\ndm[labels.index('A'), labels.index('B')]  # 8\n```\n\n### Normalisation\n\nIf the `norm` argument of `dm` is set to `True`, then the data will be normalised \nby the sum of all edges in the tree.\n\n\n## \u23f1 Performance\nTests were executed using `scripts/performance/Snakefile` on an Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz.\n\nFor large numbers of taxa it is beneficial to use PhyloDM, however, if you have a small number \nof taxa in the tree it is beneficial to use DendroPy for the great features it provides.\n\n\n\n![PhyloDM vs DendroPy resource usage](https://raw.githubusercontent.com/aaronmussig/PhyloDM/main/docs/img/performance.svg)\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Efficient calculation of phylogenetic distance matrices.",
    "version": "3.2.0",
    "project_urls": {
        "Changelog": "https://github.com/aaronmussig/PhyloDM/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/aaronmussig/PhyloDM",
        "Homepage": "https://github.com/aaronmussig/PhyloDM",
        "Issues": "https://github.com/aaronmussig/PhyloDM/issues",
        "Repository": "https://github.com/aaronmussig/PhyloDM"
    },
    "split_keywords": [
        "phylogenetic",
        " distance",
        " matrix",
        " symmetric"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "227f88cd5939559480308a0c15c7c1f707f973b770240fcaea97d5ee3f6c5844",
                "md5": "41a51531c362d28c0ba32d27b6317303",
                "sha256": "f716296779314824e6540b681785bf1e62f406a302910aaf7a684b21e93576dc"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "41a51531c362d28c0ba32d27b6317303",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 293806,
            "upload_time": "2024-10-08T01:10:45",
            "upload_time_iso_8601": "2024-10-08T01:10:45.407007Z",
            "url": "https://files.pythonhosted.org/packages/22/7f/88cd5939559480308a0c15c7c1f707f973b770240fcaea97d5ee3f6c5844/phylodm-3.2.0-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c6059e0510d84fdb17646a9c1daff0513f858f334bad3486efd22b9d418a94fb",
                "md5": "bdce097de2d7b54438f37a78ead0d8c5",
                "sha256": "0971779ba6a159fb5c655754076e57f5d601d0a4bab29a886332e68452dd84d9"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "bdce097de2d7b54438f37a78ead0d8c5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 280578,
            "upload_time": "2024-10-08T01:10:46",
            "upload_time_iso_8601": "2024-10-08T01:10:46.656813Z",
            "url": "https://files.pythonhosted.org/packages/c6/05/9e0510d84fdb17646a9c1daff0513f858f334bad3486efd22b9d418a94fb/phylodm-3.2.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dceeb4e9e8e3f4180b0d140a0a97e1aa726a2c72b0028500367059517a2cf4fe",
                "md5": "1e8811078b8a24f11852c172ecac833a",
                "sha256": "b40f5987f61c2be4cedb7c0cbc383508c32a0b04708f6d8a1e9e2fbdd59e98ac"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1e8811078b8a24f11852c172ecac833a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 306981,
            "upload_time": "2024-10-08T01:10:48",
            "upload_time_iso_8601": "2024-10-08T01:10:48.400984Z",
            "url": "https://files.pythonhosted.org/packages/dc/ee/b4e9e8e3f4180b0d140a0a97e1aa726a2c72b0028500367059517a2cf4fe/phylodm-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "23c9693513839260d0b17fce3ad5d0ffdcd2c9c46a0ca9c522005a503e476284",
                "md5": "6abab4ea7470651d0137b1470ddfc911",
                "sha256": "64ce5221cd6f6dd00f7ab6a38c9a345a2a3b07f1da6b31e6f13f2c03e5626689"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6abab4ea7470651d0137b1470ddfc911",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 468056,
            "upload_time": "2024-10-08T01:10:49",
            "upload_time_iso_8601": "2024-10-08T01:10:49.824163Z",
            "url": "https://files.pythonhosted.org/packages/23/c9/693513839260d0b17fce3ad5d0ffdcd2c9c46a0ca9c522005a503e476284/phylodm-3.2.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "61cdc95f70eee4370f9bd7e6b543d770c4036f95eaf10e6e379dd2273fd859eb",
                "md5": "1c5e4093a0f8e4094949f67649e9f531",
                "sha256": "37861f419c044daf59c5f138cbbef25ba6e73078a38069d79b06e21901362120"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1c5e4093a0f8e4094949f67649e9f531",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 226542,
            "upload_time": "2024-10-08T01:10:51",
            "upload_time_iso_8601": "2024-10-08T01:10:51.349098Z",
            "url": "https://files.pythonhosted.org/packages/61/cd/c95f70eee4370f9bd7e6b543d770c4036f95eaf10e6e379dd2273fd859eb/phylodm-3.2.0-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "51897091ee69ca46d50e58edb2970715fc209f985d5800f1434e09b685404bda",
                "md5": "8cb5a244d540ebc3549937225fb8cfa8",
                "sha256": "54e50ffe6e5067511800d900fc463f6d0271d06654ad29b62abe75e558ed2806"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8cb5a244d540ebc3549937225fb8cfa8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 293760,
            "upload_time": "2024-10-08T01:10:52",
            "upload_time_iso_8601": "2024-10-08T01:10:52.726214Z",
            "url": "https://files.pythonhosted.org/packages/51/89/7091ee69ca46d50e58edb2970715fc209f985d5800f1434e09b685404bda/phylodm-3.2.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8da4aa8506802216e84517fe988bc9f3fc780d8512ebf7347bae8263b5b107ea",
                "md5": "db4be182df9c98f8e8083128b4cf5935",
                "sha256": "e228201a29b13a37f6badae6972d12f7532004984dfa8549cf6b7b47ddc679c8"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "db4be182df9c98f8e8083128b4cf5935",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 280568,
            "upload_time": "2024-10-08T01:10:54",
            "upload_time_iso_8601": "2024-10-08T01:10:54.243418Z",
            "url": "https://files.pythonhosted.org/packages/8d/a4/aa8506802216e84517fe988bc9f3fc780d8512ebf7347bae8263b5b107ea/phylodm-3.2.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e59d8b11baf953d4df0ab9d868cbe188dc02430018650d2fa35d4aaece54d152",
                "md5": "5d4176f6771931160d4ae70c742b87d8",
                "sha256": "5ac6fdc2390c9998e3709cd52230bea50cd16800bd1d72c82c0e68789a45b9b6"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5d4176f6771931160d4ae70c742b87d8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 307032,
            "upload_time": "2024-10-08T01:10:55",
            "upload_time_iso_8601": "2024-10-08T01:10:55.251707Z",
            "url": "https://files.pythonhosted.org/packages/e5/9d/8b11baf953d4df0ab9d868cbe188dc02430018650d2fa35d4aaece54d152/phylodm-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62bf2c9d3d810eedff31107824f39ab307a60855b3a27ede59a097f1a9e37321",
                "md5": "16177092cd6db9dc5c9c5b82387124d1",
                "sha256": "cfec1bf6dfff85b5a6257f8b207d7f0ae5e4d086e955b5512ed08b0517afbd9a"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "16177092cd6db9dc5c9c5b82387124d1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 468088,
            "upload_time": "2024-10-08T01:10:56",
            "upload_time_iso_8601": "2024-10-08T01:10:56.332894Z",
            "url": "https://files.pythonhosted.org/packages/62/bf/2c9d3d810eedff31107824f39ab307a60855b3a27ede59a097f1a9e37321/phylodm-3.2.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0a163f95544d248a08151ed6c79e82bdd00afe4ed79574ccc82ec2138a9ad8ff",
                "md5": "7287a8e77e7650d42d5278483cbd2684",
                "sha256": "f563497228b664c868411a6a0ce8e69f6bb662d472266e4e8d3db50543cf01e2"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7287a8e77e7650d42d5278483cbd2684",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 226464,
            "upload_time": "2024-10-08T01:10:57",
            "upload_time_iso_8601": "2024-10-08T01:10:57.938929Z",
            "url": "https://files.pythonhosted.org/packages/0a/16/3f95544d248a08151ed6c79e82bdd00afe4ed79574ccc82ec2138a9ad8ff/phylodm-3.2.0-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "50e0db76daa2e6f62c2f4be8536636efa3e9591145652f211f265da4c9118de2",
                "md5": "430d442c2cac5d1baa645e96e9397318",
                "sha256": "e9f4a44ceb7e86beb4a6f8fd02f7e720c2fc3ffbac4cab83da6a80a53288fc5c"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "430d442c2cac5d1baa645e96e9397318",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 292758,
            "upload_time": "2024-10-08T01:10:59",
            "upload_time_iso_8601": "2024-10-08T01:10:59.593205Z",
            "url": "https://files.pythonhosted.org/packages/50/e0/db76daa2e6f62c2f4be8536636efa3e9591145652f211f265da4c9118de2/phylodm-3.2.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "74fbe55c5451e189b2fe18dd26ff13d22f402e86925b1fb6bef9ee819aba6722",
                "md5": "1b49a84d0cee2c45c9599d9619d60cc5",
                "sha256": "fdf492ccfea95e0c132ac2a0b287e2ee6c847d61c426087db4e608681890886f"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1b49a84d0cee2c45c9599d9619d60cc5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 279325,
            "upload_time": "2024-10-08T01:11:00",
            "upload_time_iso_8601": "2024-10-08T01:11:00.936929Z",
            "url": "https://files.pythonhosted.org/packages/74/fb/e55c5451e189b2fe18dd26ff13d22f402e86925b1fb6bef9ee819aba6722/phylodm-3.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b51ede26fa203659d5d8fafadac0bf01280c8c18f6047a6cb44e31eedbb34b04",
                "md5": "0999bb27a8f5fa65c0a525de87a71e98",
                "sha256": "a3210f68e6d15d2896bd446c10763c001c0b0fe79a59ce5dd3023710b3b2c52f"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0999bb27a8f5fa65c0a525de87a71e98",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 306181,
            "upload_time": "2024-10-08T01:11:02",
            "upload_time_iso_8601": "2024-10-08T01:11:02.226644Z",
            "url": "https://files.pythonhosted.org/packages/b5/1e/de26fa203659d5d8fafadac0bf01280c8c18f6047a6cb44e31eedbb34b04/phylodm-3.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e9a7117ad8adb94a613cf4932e9221633f1c6789ead9c0dc1803150ee5a8d6be",
                "md5": "149f39d2d51eef745e6ef49082eb2844",
                "sha256": "5dbe89b7e55f5009867a2d6a014483f79ac1567d6d27494cfe06d1e559a34763"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "149f39d2d51eef745e6ef49082eb2844",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 467148,
            "upload_time": "2024-10-08T01:11:03",
            "upload_time_iso_8601": "2024-10-08T01:11:03.525179Z",
            "url": "https://files.pythonhosted.org/packages/e9/a7/117ad8adb94a613cf4932e9221633f1c6789ead9c0dc1803150ee5a8d6be/phylodm-3.2.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a731ae795e65d7f3ee55bed154cbd2cd2ed35476218cbf47b8f37f306c229fb",
                "md5": "1594af90149c44e7de76ae7f68b892ec",
                "sha256": "567f198131f38e543a5296b39b96461932be188f1713388d6e6f7830c77cab2b"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1594af90149c44e7de76ae7f68b892ec",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 224602,
            "upload_time": "2024-10-08T01:11:04",
            "upload_time_iso_8601": "2024-10-08T01:11:04.555900Z",
            "url": "https://files.pythonhosted.org/packages/4a/73/1ae795e65d7f3ee55bed154cbd2cd2ed35476218cbf47b8f37f306c229fb/phylodm-3.2.0-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5999da56dbcce65e040a36a7248be654226ef893e9600126a3cf85b142f3ad8",
                "md5": "43cbec1e35a3383cbe7ea8dbc517c9eb",
                "sha256": "f08dff463c8fd2109f05498aff1b99710e4ad9a58abd5f9d02af4c04876ea7ea"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp38-cp38-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "43cbec1e35a3383cbe7ea8dbc517c9eb",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 294021,
            "upload_time": "2024-10-08T01:11:05",
            "upload_time_iso_8601": "2024-10-08T01:11:05.592894Z",
            "url": "https://files.pythonhosted.org/packages/d5/99/9da56dbcce65e040a36a7248be654226ef893e9600126a3cf85b142f3ad8/phylodm-3.2.0-cp38-cp38-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f9adaeec87873537dfc1003898f8eb794bc83dc87f63ef5d7ce9398853ed1545",
                "md5": "3cef54a4731a6bdc3a5f14a756a959bf",
                "sha256": "17716aaf20611ca75fd775e83371f0cea9dcd7b71aa9149b44342b06c23fae79"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3cef54a4731a6bdc3a5f14a756a959bf",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 280786,
            "upload_time": "2024-10-08T01:11:06",
            "upload_time_iso_8601": "2024-10-08T01:11:06.694073Z",
            "url": "https://files.pythonhosted.org/packages/f9/ad/aeec87873537dfc1003898f8eb794bc83dc87f63ef5d7ce9398853ed1545/phylodm-3.2.0-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "975dc8dd949337f57afd7ca34f1dc542f24686a31efca6e01c2071ec16804c68",
                "md5": "2ae36dda7bb9a44560b37a2cb443e869",
                "sha256": "6b4841810c595559920ed0dd37dcb489628bc207589e40f32655639720b723a3"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2ae36dda7bb9a44560b37a2cb443e869",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 307432,
            "upload_time": "2024-10-08T01:11:07",
            "upload_time_iso_8601": "2024-10-08T01:11:07.822145Z",
            "url": "https://files.pythonhosted.org/packages/97/5d/c8dd949337f57afd7ca34f1dc542f24686a31efca6e01c2071ec16804c68/phylodm-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0493795943e9d22b408c7d2a11c91d8f51ce79b031685fa94e996aaeb1f6602d",
                "md5": "445745392dc9a8e9921bdf476be16bad",
                "sha256": "352b1a6e8fbea53bb116ff2a55116a94b12e982be15d074424bed79d67d4ba57"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp38-cp38-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "445745392dc9a8e9921bdf476be16bad",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 468537,
            "upload_time": "2024-10-08T01:11:09",
            "upload_time_iso_8601": "2024-10-08T01:11:09.543450Z",
            "url": "https://files.pythonhosted.org/packages/04/93/795943e9d22b408c7d2a11c91d8f51ce79b031685fa94e996aaeb1f6602d/phylodm-3.2.0-cp38-cp38-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11bc1160648f47054d3f508d4b1b93fbe3685c5b0485817014728665370593aa",
                "md5": "12824c9a0fbf21d7a6757f6bcffba063",
                "sha256": "05ff9b9a7fa6d2e215064bde087210fa0c203becdf6a4411056bd10d8ee78f1f"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp38-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "12824c9a0fbf21d7a6757f6bcffba063",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 226769,
            "upload_time": "2024-10-08T01:11:10",
            "upload_time_iso_8601": "2024-10-08T01:11:10.611634Z",
            "url": "https://files.pythonhosted.org/packages/11/bc/1160648f47054d3f508d4b1b93fbe3685c5b0485817014728665370593aa/phylodm-3.2.0-cp38-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcd8d46763a9aefd9c04a7ab65c7f41409082ccb7717121e7d620413d2f6785c",
                "md5": "69a232b2c55b5b4ea82896f0c40edfba",
                "sha256": "bcb41eb1cb874c761da7a042942508de26548b8b341efc14de35944be1742f83"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp39-cp39-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "69a232b2c55b5b4ea82896f0c40edfba",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 293967,
            "upload_time": "2024-10-08T01:11:11",
            "upload_time_iso_8601": "2024-10-08T01:11:11.652432Z",
            "url": "https://files.pythonhosted.org/packages/bc/d8/d46763a9aefd9c04a7ab65c7f41409082ccb7717121e7d620413d2f6785c/phylodm-3.2.0-cp39-cp39-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee7377d79c5a3feb5dc85af17aa68c832186497910ef2e5a67abfad8140ebab3",
                "md5": "dcb94fc8e3c615e26ffa7cce8eeb6456",
                "sha256": "b911efd995c9d6bf44b56f1b7ac62655973f2ace71cbcab0a96e34b092743922"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "dcb94fc8e3c615e26ffa7cce8eeb6456",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 280783,
            "upload_time": "2024-10-08T01:11:13",
            "upload_time_iso_8601": "2024-10-08T01:11:13.429844Z",
            "url": "https://files.pythonhosted.org/packages/ee/73/77d79c5a3feb5dc85af17aa68c832186497910ef2e5a67abfad8140ebab3/phylodm-3.2.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5d9755b287c6940086ef0e9aa725a89df39cbdee484e8e0386a7ff5c6e40ef73",
                "md5": "95aa874e34662177bf2e10607ea92c47",
                "sha256": "3eeb96313a4b8312d2548de4a8f61767863fd44caf2e6a833b736693ca41f085"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "95aa874e34662177bf2e10607ea92c47",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 307217,
            "upload_time": "2024-10-08T01:11:14",
            "upload_time_iso_8601": "2024-10-08T01:11:14.780681Z",
            "url": "https://files.pythonhosted.org/packages/5d/97/55b287c6940086ef0e9aa725a89df39cbdee484e8e0386a7ff5c6e40ef73/phylodm-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dbda9b953e0408c2cf3451e7b307feff90a049d1b0283221a9bdeb9f82dc19d7",
                "md5": "9258718687db7abd86511cd708c69b2f",
                "sha256": "3346f7c1b5abd69a9ef6542f64ac40f9ff41d2c68bc2444b396619b488e38d1a"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9258718687db7abd86511cd708c69b2f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 468375,
            "upload_time": "2024-10-08T01:11:15",
            "upload_time_iso_8601": "2024-10-08T01:11:15.781806Z",
            "url": "https://files.pythonhosted.org/packages/db/da/9b953e0408c2cf3451e7b307feff90a049d1b0283221a9bdeb9f82dc19d7/phylodm-3.2.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "01c4a65faf5b395f526dca6f72bcea01320bca6f4d691e0f8c27469c7bac7fb4",
                "md5": "1fce6f44da1d8e42140960a51cb72c1c",
                "sha256": "21cac921ade8910655ff830626d885d692b15711f59329c9fc3dee92e067b1b4"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1fce6f44da1d8e42140960a51cb72c1c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 226713,
            "upload_time": "2024-10-08T01:11:17",
            "upload_time_iso_8601": "2024-10-08T01:11:17.944893Z",
            "url": "https://files.pythonhosted.org/packages/01/c4/a65faf5b395f526dca6f72bcea01320bca6f4d691e0f8c27469c7bac7fb4/phylodm-3.2.0-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "547373f7e4c88d7f276e7284657d83f53bad7b247a48c0800db49c8c54167b12",
                "md5": "973f8be994ca036db71bf24b48f8c911",
                "sha256": "ddcf2ddd9de75b3e411cd9d1a8dab622840530a1db520b5016e03c9c45720694"
            },
            "downloads": -1,
            "filename": "phylodm-3.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "973f8be994ca036db71bf24b48f8c911",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 144377,
            "upload_time": "2024-10-08T01:11:19",
            "upload_time_iso_8601": "2024-10-08T01:11:19.683228Z",
            "url": "https://files.pythonhosted.org/packages/54/73/73f7e4c88d7f276e7284657d83f53bad7b247a48c0800db49c8c54167b12/phylodm-3.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-08 01:11:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aaronmussig",
    "github_project": "PhyloDM",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "phylodm"
}
        
Elapsed time: 1.16375s