Quartet

R package to calculate the similarity of two trees based on the number of shared four-taxon subtrees (or splits)

https://github.com/ms609/quartet

Science Score: 59.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 12 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 6 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary

Keywords

bioinformatics comparison cran phylogenetic-trees phylogenetics quartet quartet-distance research-tool tree

Keywords from Contributors

morphological-analysis tree-search consensus-tree graphics plotting-in-r ternary-plots
Last synced: 6 months ago · JSON representation

Repository

R package to calculate the similarity of two trees based on the number of shared four-taxon subtrees (or splits)

Basic Info
Statistics
  • Stars: 16
  • Watchers: 4
  • Forks: 5
  • Open Issues: 10
  • Releases: 0
Topics
bioinformatics comparison cran phylogenetic-trees phylogenetics quartet quartet-distance research-tool tree
Created about 9 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing Code of conduct Codemeta

README.md

Project Status: Inactive. Build Status codecov CRAN Status Badge CRAN Downloads DOI

Quartet

'Quartet' is an R package that calculates the quartet distance between two trees (Estabrook et al. 1985), a measure of their similarity based on the number of shared four-taxon subtrees.

The quartet distance outperforms a number of widely used tree distances (e.g. the Robinson–Foulds, path, and rearrangement distances) against a number theoretical and practical measures (Steel & Penny 1993; Smith 2020), and is particularly valuable in the construction of tree spaces (Smith 2021).

'Quartet' uses the 'tqDist' algorithm (Brodal et al. 2004; Sand et al. 2014). Unlike many other implementations, it distinguishes between quartets that are contradicted by one tree, and quartets that are simply absent due to a lack of resolution (i.e. the presence of polytomies; see Smith 2019). 'Quartet' makes this distinction in both the quartet metric (function QuartetStatus()) and the partition metric (i.e. Robinson-Foulds distance; function SplitStatus()).

Using the package

Install and load the library from CRAN as follows: install.packages('Quartet') library('Quartet')

For the latest features, install the development version: r if(!require("curl")) install.packages("curl") if(!require("remotes")) install.packages("remotes") remotes::install_github("ms609/Quartet")

You will need Rtools installed in order to build the development version from source.

View the function reference and basic usage instructions.

Known limitations

Quartet supports trees with up to 477 leaves. Larger trees contain more quartets than can be represented by R's signed 32-bit integers. The underlying 'tqDist' library may handle trees with up to 568 leaves, and 64-bit integer representations could increase this number further.
Making either of these improvements within the R package would require substantial additional work, but could be implemented -- do file an issue if this would be useful to you.

References

  • Brodal G.S., Fagerberg R., Pedersen C.N.S. 2004. Computing the quartet distance between evolutionary trees in time O(n log n). Algorithmica 38:377–395.

  • Estabrook G.F., McMorris F.R., Meacham C.A. 1985. Comparison of undirected phylogenetic trees based on subtrees of four evolutionary units. Syst. Zool. 34:193–200.

  • Sand A., Holt M.K., Johansen J., Brodal G.S., Mailund T., Pedersen C.N.S. 2014. tqDist: a library for computing the quartet and triplet distances between binary or general trees. Bioinformatics 30:2079–2080. https://doi.org/10.1093/bioinformatics/btu157

  • Smith, M.R. 2019. Bayesian and parsimony approaches reconstruct informative trees from simulated morphological datasets. Biol. Lett. 15:20180632. https://doi.org/10.1098/rsbl.2018.0632

  • Smith, M.R. 2020. Information theoretic generalized Robinson–Foulds metrics for comparing phylogenetic trees. Bioinformatics, 36:5007–5013. https://dx.doi.org/10.1093/bioinformatics/btaa614

  • Smith, M.R. 2022. Robust analysis of phylogenetic tree space. Systematic Biology, syab100. https://dx.doi.org/10.1093/sysbio/syab100

  • Steel, M. and Penny, D. 1993. Distributions of tree comparison metrics: some new results. Syst. Biol. 42: 126-141. https://doi.org/10.1093/sysbio/42.2.126

Please note that the 'Quartet' project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Owner

  • Name: Martin R. Smith
  • Login: ms609
  • Kind: user
  • Location: Durham, UK
  • Company: Department of Earth Sciences, Durham University

Palaeontology & phylogenetics

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "Quartet",
  "description": "Calculates the number of four-taxon subtrees consistent with a pair of cladograms, calculating the symmetric quartet distance of Bandelt & Dress (1986), Reconstructing the shape of a tree from observed dissimilarity data, Advances in Applied Mathematics, 7, 309-343 <doi:10.1016/0196-8858(86)90038-2>, and using the tqDist algorithm of Sand et al. (2014), tqDist: a library for computing the quartet and triplet distances between binary or general trees, Bioinformatics, 30, 20792080 <doi:10.1093/bioinformatics/btu157> for pairs of binary trees.",
  "name": "Quartet: Comparison of Phylogenetic Trees Using Quartet and Split Measures",
  "relatedLink": "https://ms609.github.io/Quartet/",
  "codeRepository": "https://github.com/ms609/Quartet/",
  "issueTracker": "https://github.com/ms609/Quartet/issues/",
  "license": "https://spdx.org/licenses/GPL-2.0",
  "version": "1.2.7",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.4.1 (2024-06-14)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Martin R.",
      "familyName": "Smith",
      "email": "martin.smith@durham.ac.uk",
      "@id": "https://orcid.org/0000-0001-5660-1727"
    }
  ],
  "copyrightHolder": [
    {
      "@type": "Person",
      "givenName": "Martin R.",
      "familyName": "Smith",
      "email": "martin.smith@durham.ac.uk",
      "@id": "https://orcid.org/0000-0001-5660-1727"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Martin R.",
      "familyName": "Smith",
      "email": "martin.smith@durham.ac.uk",
      "@id": "https://orcid.org/0000-0001-5660-1727"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "bookdown",
      "name": "bookdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=bookdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "phangorn",
      "name": "phangorn",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=phangorn"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "Rcpp",
      "name": "Rcpp",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=Rcpp"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "usethis",
      "name": "usethis",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=usethis"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "vdiffr",
      "name": "vdiffr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=vdiffr"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.5.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "TreeTools",
      "name": "TreeTools",
      "version": ">= 1.4.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=TreeTools"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "ape",
      "name": "ape",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ape"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "PlotTools",
      "name": "PlotTools",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=PlotTools"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "Rdpack",
      "name": "Rdpack",
      "version": ">= 0.7",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=Rdpack"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "Ternary",
      "name": "Ternary",
      "version": ">= 1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=Ternary"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "viridisLite",
      "name": "viridisLite",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=viridisLite"
    },
    "SystemRequirements": null
  },
  "fileSize": "754.606KB",
  "citation": [
    {
      "@type": "SoftwareSourceCode",
      "datePublished": "2019",
      "author": [
        {
          "@type": "Person",
          "givenName": [
            "Martin",
            "R."
          ],
          "familyName": "Smith",
          "email": "martin.smith@durham.ac.uk"
        }
      ],
      "name": "Quartet: comparison of phylogenetic trees using quartet and split measures",
      "identifier": "10.5281/zenodo.2536318",
      "description": "R package version 1.2.7",
      "@id": "https://doi.org/10.5281/zenodo.2536318",
      "sameAs": "https://doi.org/10.5281/zenodo.2536318"
    },
    {
      "@type": "ScholarlyArticle",
      "datePublished": "2014",
      "author": [
        {
          "@type": "Person",
          "givenName": "Andreas",
          "familyName": "Sand"
        },
        {
          "@type": "Person",
          "givenName": [
            "Morten",
            "K."
          ],
          "familyName": "Holt"
        },
        {
          "@type": "Person",
          "givenName": "Jens",
          "familyName": "Johansen"
        },
        {
          "@type": "Person",
          "givenName": [
            "Gerth",
            "S."
          ],
          "familyName": "Brodal"
        },
        {
          "@type": "Person",
          "givenName": "Thomas",
          "familyName": "Mailund"
        },
        {
          "@type": "Person",
          "givenName": [
            "Christian",
            "N.",
            "S."
          ],
          "familyName": "Pedersen"
        }
      ],
      "name": "tqDist: a library for computing the quartet and triplet distances between binary or general trees",
      "identifier": "10.1093/bioinformatics/btu157",
      "pagination": "2079--2080",
      "@id": "https://doi.org/10.1093/bioinformatics/btu157",
      "sameAs": "https://doi.org/10.1093/bioinformatics/btu157",
      "isPartOf": {
        "@type": "PublicationIssue",
        "issueNumber": "14",
        "datePublished": "2014",
        "isPartOf": {
          "@type": [
            "PublicationVolume",
            "Periodical"
          ],
          "volumeNumber": "30",
          "name": "Bioinformatics"
        }
      }
    },
    {
      "@type": "ScholarlyArticle",
      "datePublished": "2019",
      "author": [
        {
          "@type": "Person",
          "givenName": [
            "Martin",
            "R."
          ],
          "familyName": "Smith",
          "email": "martin.smith@durham.ac.uk"
        }
      ],
      "name": "Bayesian and parsimony approaches reconstruct informative trees from simulated morphological datasets",
      "identifier": "10.1098/rsbl.2018.0632",
      "pagination": "20180632",
      "@id": "https://doi.org/10.1098/rsbl.2018.0632",
      "sameAs": "https://doi.org/10.1098/rsbl.2018.0632",
      "isPartOf": {
        "@type": "PublicationIssue",
        "issueNumber": "2",
        "datePublished": "2019",
        "isPartOf": {
          "@type": [
            "PublicationVolume",
            "Periodical"
          ],
          "volumeNumber": "15",
          "name": "Biology Letters"
        }
      }
    }
  ]
}

GitHub Events

Total
  • Release event: 1
  • Watch event: 4
  • Issue comment event: 1
  • Push event: 35
  • Create event: 2
Last Year
  • Release event: 1
  • Watch event: 4
  • Issue comment event: 1
  • Push event: 35
  • Create event: 2

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 758
  • Total Committers: 6
  • Avg Commits per committer: 126.333
  • Development Distribution Score (DDS): 0.096
Past Year
  • Commits: 2
  • Committers: 1
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Martin R. Smith m****s@g****m 685
Martin R. Smith 1****9 38
Martin R. Smith m****h@d****k 23
Martin R. Smith p****8@d****k 8
GitHub Actions a****s@g****m 3
Fabrizio Sandri 1****i 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 33
  • Total pull requests: 36
  • Average time to close issues: 3 months
  • Average time to close pull requests: 10 days
  • Total issue authors: 5
  • Total pull request authors: 2
  • Average comments per issue: 0.3
  • Average comments per pull request: 0.94
  • Merged pull requests: 34
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ms609 (29)
  • RaSieb (1)
  • simone-says (1)
  • MurrelSaldanha (1)
  • mmore500 (1)
Pull Request Authors
  • ms609 (36)
  • FabrizioSandri (1)
Top Labels
Issue Labels
enhancement (2) bug (1) help wanted (1) R3.6.0 (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 811 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 5
  • Total versions: 11
  • Total maintainers: 1
cran.r-project.org: Quartet

Comparison of Phylogenetic Trees Using Quartet and Split Measures

  • Versions: 11
  • Dependent Packages: 3
  • Dependent Repositories: 5
  • Downloads: 811 Last month
Rankings
Forks count: 10.8%
Dependent packages count: 10.9%
Dependent repos count: 13.0%
Average: 18.2%
Stargazers count: 19.3%
Downloads: 37.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.4.0 depends
  • TreeTools >= 1.4.0 depends
  • Rdpack >= 0.7 imports
  • Ternary >= 1.0 imports
  • ape * imports
  • viridisLite * imports
  • Rcpp * suggests
  • bookdown * suggests
  • knitr * suggests
  • phangorn * suggests
  • rmarkdown * suggests
  • testthat * suggests
  • usethis * suggests
  • vdiffr * suggests