LinguiPhyR
LinguiPhyR: A Package for Linguistic Phylogenetic Analysis in R - Published in JOSS (2024)
Science Score: 98.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: wiley.com, joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Repository
Linguistic Phylogenetic Analysis in R
Basic Info
- Host: GitHub
- Owner: marccanby
- License: apache-2.0
- Language: R
- Default Branch: main
- Size: 10.2 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
LinguiphyR
LinguiphyR is a package that provides an R Shiny app that enables parsimony-based linguistic phylogenetic analysis. You can upload a dataset of linguistic characters to the app, run a search to find optimal trees, and analyze the trees using a variety of tools and visualizations.
Getting Started
If you have not installed R and RStudio, please follow the instructions at https://posit.co/download/rstudio-desktop/.
Step 1: Install LinguiphyR
The latest version can be installed from Github in R Studio. You must first install ggtree from BiocManager.:
``` if (!requireNamespace("BiocManager", quietly = TRUE)) { install.packages("BiocManager") } BiocManager::install("ggtree")
install.packages("remotes") remotes::install_github("marccanby/linguiphyr") ```
The same command may be called to upgrade the package.
- Note: If you are asked "Do you want to install from sources the package which needs compilation?", we recommend saying "no".
Step 2: Install PAUP*
Tree estimation is performed using PAUP*, which must be installed separately:
Go to http://phylosolutions.com/paup-test/.
For Mac:
- Click on
paup4a168_osx.gz, which will download a zipped file. Unzip it, and rename the resultingpaup4a168_osxfile topaup. - Move this file to a new directory (e.g.
~/Documents/paup/) on your computer. - Navigate to this directory, and run
chmod a+x paupto enable executable permissions on the file.- Note: You may also have to right click on the
paupexecutable in Finder and selectOpento avoid the warning about the software being from an unidentified developer when you later try to call it from the LinguiphyR app.
- Note: You may also have to right click on the
To make this binary available to R, run the following command in R:
Sys.setenv(PATH = paste("~/Documents/paup/:", Sys.getenv("PATH"), sep=""))Replace~/Documents/paup/with the directory where you put the PAUP* binary. This will only make the binary available for your current R session. If you want to make it permanently available, you can add this line to your R profile file, which is typically located at~/.Rprofileor~/.Rprofile.site.
- Click on
For Windows:
- Click on
paup4-setup.msi, follow the directions to install it.
- Click on
Running the App
Once the software is installed, you can run LinguiphyR with the following commands:
library(linguiphyr)
run_app()
Example Analysis
As can be seen in the figure below, you can analyze linguistic datasets simply by interacting with the user interface (UI), which describes the app's various features.
You can run an example tree search and analysis using the ringe_screened_dataset.csv file contained in the data folder.
This file contains a dataset in the format expected by LinguiphyR.
The dataset is the screened version of the Indo-European dataset published in Ringe et al., 2002.
Follow these steps:
1. After launching the app, upload ringe_screened_dataset.csv on the "Data Upload" page. After doing so, you can see various statistics about the dataset.
2. Click on the "Tree Search" tab and hit "Run PAUP*" on the left sidebar (you don't need to change the default options). This runs a heuristic maximum parsimony tree search using PAUP*. A popup window showing "Running....." will appear.
3. Wait for the "PAUP* Output" text box to populate (note: this may take up to 30 seconds, even after the "Running....." message disappears).
4. Click on the "Analysis" tab. Here, you can visualize the tree found by PAUP*, annotate internal nodes with reconstructed states, see incompatible characters, and more. We recommend rooting the tree at "HI" ("Hittite"), one of the Anatolian languages, which is the branch believed to break off first.

How to Contribute
If you have any questions or feedback regarding LinguiPhyR, or encounter a bug, please create an issue, or send an email to marc.canby@gmail.com!
We also welcome code contributions from the community. Please adhere to the following guidelines: * If you notice a bug you would like to fix, first raise an issue. Then, create a pull request with your proposed changes. * If you are interested in suggesting a new feature, first create an issue for others to discuss before proceeding with a pull request.
Owner
- Login: marccanby
- Kind: user
- Repositories: 1
- Profile: https://github.com/marccanby
JOSS Publication
LinguiPhyR: A Package for Linguistic Phylogenetic Analysis in R
Tags
R Shiny phylogenetics historical linguistics indo-europeanCitation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Canby
given-names: Marc E.
orcid: "https://orcid.org/0000-0002-8420-9658"
doi: 10.5281/zenodo.13626333
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Canby
given-names: Marc E.
orcid: "https://orcid.org/0000-0002-8420-9658"
date-published: 2024-10-22
doi: 10.21105/joss.06201
issn: 2475-9066
issue: 102
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 6201
title: "LinguiPhyR: A Package for Linguistic Phylogenetic Analysis in
R"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.06201"
volume: 9
title: "LinguiPhyR: A Package for Linguistic Phylogenetic Analysis in R"
GitHub Events
Total
- Issues event: 1
- Push event: 10
- Pull request event: 13
- Create event: 5
Last Year
- Issues event: 1
- Push event: 10
- Pull request event: 13
- Create event: 5
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 9
- Total pull requests: 28
- Average time to close issues: about 1 month
- Average time to close pull requests: about 19 hours
- Total issue authors: 3
- Total pull request authors: 1
- Average comments per issue: 1.56
- Average comments per pull request: 0.04
- Merged pull requests: 26
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 12
- Average time to close issues: N/A
- Average time to close pull requests: 2 days
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 10
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- SimonGreenhill (6)
- SietzeN (1)
Pull Request Authors
- marccanby (47)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite
- DT * imports
- RColorBrewer * imports
- TreeTools * imports
- ape * imports
- assertthat * imports
- castor * imports
- dplyr * imports
- ggplot2 * imports
- ggtree * imports
- magrittr * imports
- plotly * imports
- rlang * imports
- shiny * imports
- shinydashboard * imports
- shinyjs * imports
- shinythemes * imports
- stringr * imports
