### A Pluto.jl notebook ###
# v0.19.38
using Markdown
using InteractiveUtils
# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error).
macro bind(def, element)
quote
local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end
local el = $(esc(element))
global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el)
el
end
end
# ╔═╡ ec90119e-6c25-4162-8b93-620a6cc4a554
begin
using PlutoTeachingTools
using PhyloNetworks
using NewickTree
using Downloads
using HypertextLiteral
using PlutoUI
using Plots
using DataFrames
using CSV
md"""*Unhide this cell to see the Julia environment.*"""
end
# ╔═╡ 9f51f0da-2f32-4b34-b510-106991af5e9a
md"""*Notebook version*: **2.1.0** *See version info*: $(@bind showversions CheckBox())"""
# ╔═╡ cf04fb10-c82a-4f99-84c6-24fb2da174ce
begin
if showversions
md"""
- **2.1.0**: add Arabic consonants to phonology dictionary
- **2.0.1**: add better error checking on display of values dependent on selections not yet made by user.
- **2.0.0**: first draft of nb to use in S'24 courses. Integrates `PhyloNetworks` to assess model trees for parsimony.
- **1.0.0**: initial release version to use in Bio114 class meeting in S'23.
"""
else
md""
end
end
# ╔═╡ f9e3b172-2d2b-4fa9-9b6b-5b2a000e8434
TableOfContents()
# ╔═╡ cf0bf814-7679-40b3-ae0f-8b0dbdde5834
md""" # Language evolution
"""
# ╔═╡ 932c6efa-b4d2-4194-becb-f840dcf140e4
md"""!!! tip "Overview"
In this lab, you will:
1. explore data we collected as a group about the *phonology* of a selected vocabulary list in multiple languages. You will select a subset of the observations that you decide are relevant to understanding relations among the languages.
2. then try to explain the differences you observe as an evolutionary process which you will model as a *evolutionary tree*.
3. then compare your hypothesized tree to trees computed automatically for maximum *parsimony* based on the data you selected.
"""
# ╔═╡ 3d5022ec-e8b1-4e49-8d81-be8af2f998e1
md"""## Background: understanding the data"""
# ╔═╡ bebab1d4-c987-4be1-977f-ab3cffc149f5
md"""### Try out some sample words"""
# ╔═╡ 7c3e8a97-617c-4ca7-b6e2-4ef386f58b1e
md"""!!! note "Understanding the phonological data"
We will analyze the *first consonant sound* of each word in our survey, according to three properties:
1. where the sound is formed in the mouth
2. how the sound is made
3. whether or not the vocal chords also sound (voiced vs. unvoiced)
To get more familiar with what these properties mean, you can use this form to try out sample words, and optionally compare a diagram of where sounds are produced in the mouth.
"""
# ╔═╡ f05d9c29-511b-4b72-865e-e3548efdd46f
md"""*See an illustration of phonological properties* $(@bind seediagram CheckBox())"""
# ╔═╡ 67d9aca7-3236-420c-8dfd-96c253aa1321
if seediagram
md"""""" |> aside
end
# ╔═╡ 8086f905-c547-4bd9-9716-da3fc33e7eff
md"""*Enter an example word to analyze*: $(@bind sample TextField(default="quick"))"""
# ╔═╡ e6f5fe38-cb09-11ed-093a-89974c867831
md"""## (1) Explore data"""
# ╔═╡ 82d4c65a-c0f0-4496-95ee-0f16dbdab926
md"""!!! note "Interpreting the data set"
Can we find systematic relationships in the sample data? Do some languages consistently show similar features? E.g., are there languages that consistently use voiced values or fricative pronounciation for the same kind of initial consonant (such as for labial or dental consonants)?
Use the following interactive summaries to compare the phonological features for a single term across all the languages surveyed, or compare the features of multiple terms in a summary table.
"""
# ╔═╡ b50fee84-95c6-4e2b-b28e-ddf379e211d4
md"""*Choose dataset to analyze*: $(@bind dataset Select(["s23" => "Spring '23 dataset", "s24" => "Spring '24 dataset"], default = "s24"))"""
# ╔═╡ 834c5625-69b2-4e3d-a7dd-8be84422f03f
md"""### Compare features for a single term"""
# ╔═╡ 8dc318f2-35e2-4c21-b78c-d13b4d1e5077
md"""### Compare features for multiple terms"""
# ╔═╡ 20cc299d-eaa5-4f88-96df-41798a78aee3
md"""*See labels for traits*: $(@bind seekey CheckBox())"""
# ╔═╡ 8e1a8736-2ca4-4d04-802f-4ef51c9219ac
md"""## (2) Draw a tree"""
# ╔═╡ 9d3eb9e3-c00f-44e8-8cc3-ec61af246fe8
md"""### Visualizing your tree"""
# ╔═╡ 2161a08e-36c2-41c3-adff-14528fcd964d
md"""Your tree as drawn by Mermaid:"""
# ╔═╡ 7df0a9ab-7c7e-4d2b-a284-0a1ca2967ef3
md"""## (3). Evaluate your model"""
# ╔═╡ 16dc6793-063c-4f04-88e5-050c896e25b9
md"""### Measuring the parsimony of your tree
Smaller scores are better:
"""
# ╔═╡ 65bd06db-5bb0-4efd-a20d-e2b191091a83
md"""### Comparing an optimal tree
"""
# ╔═╡ e3020259-79d5-4e5f-9879-34e6514840e2
md"""!!! note "Trees optimized for parsimony"
For a given set of data, we can mathematically determine a tree that is the most parsimonious model of evolution leading to the diversity observed in the data. This "optimal" model may or may not be historically correct. In the case of language evolution, for example, vocabulary that is *borrowed* from one language to another can confuse the evolutionary model because similarities and differences are *not* due to evolution.
The following cells compute a tree optimized for parsimony based on your model.
"""
# ╔═╡ 1ab72af2-d6a5-488b-8101-9adf79d273b6
html"""
"""
# ╔═╡ bd11c81e-1c93-4cb1-9b79-62d0d658a9fa
md"""
---
> # Stuff behind the scenes you can ignore
"""
# ╔═╡ 4ef7995a-4c47-4389-bfd3-f3cea5fa5df3
md"""### Optimal tree"""
# ╔═╡ 26afc76c-211d-4b78-8f8f-c6de2cf2be83
md"""### Computation of phonology values"""
# ╔═╡ 281fe574-cf9d-4a19-8557-52cfe13fd9f1
"""Compose labels for features for selected vocabulary terms."""
function featurelabels(idxlist, features)
if isempty(idxlist)
[]
else
termlist = []
for i in idxlist
t = features[i, 1]
for phonoprop in ["place","voice","manner"]
push!(termlist, string(t,"_", phonoprop))
end
end
termlist
end
end
# ╔═╡ ca496151-93e8-418b-8906-151b653f1541
codingdict = Dict([
"labial" => 1,
"dental" => 2,
"palatal" => 3,
"velar" => 4,
"sibilant" => 5,
"labiovelar" => 6,
"vowel" => 7,
"voiced" => 1,
"unvoiced" => 2,
"plosive" => 1,
"fricative" => 2
])
# ╔═╡ 8c079fc8-50c1-4d1d-8708-82139a7136b2
"""Encode data in a `Phonology` structure as integer values for
computation of parsimony in a tree model.
"""
function encodestruct(phono, codedict = codingdict)
if isnothing(phono)
[0,0,0]
else
# place, voice, manner
placeval = haskey(codedict, phono.place) ? codedict[phono.place] : 0
voiceval = haskey(codedict, phono.voice) ? codedict[phono.voice] : 0
mannerval = haskey(codedict, phono.manner) ? codedict[phono.manner] : 0
[placeval,voiceval,mannerval]
end
end
# ╔═╡ fa737dfb-8306-4eaf-8554-6d473c8e8e60
md"""### Source data
> Read data from file and organize it into a 2-dimensional matrix,
> with each row representing a word and each column a language.
"""
# ╔═╡ 59ce4fe7-c8fc-4b4a-bf15-ed4a7b3ba95e
url = "https://raw.githubusercontent.com/neelsmith/papyrus_to_pixels/main/data/languages/$(dataset).cex"
# ╔═╡ 8cf14601-04ac-4197-b05a-cecdaea21c44
"Download data and format for analysis."
function loaddata(u)
tmp = Downloads.download(u)
all_lines = readlines(tmp)
rm(tmp)
lang_names = split(all_lines[1], "|")
datalines = filter(ln -> ! isempty(ln), all_lines[2:end])
lang_names, datalines
end
# ╔═╡ cc80b08c-98b3-4ad3-b6b4-af0c250634ef
langnames, srcdata = loaddata(url)
# ╔═╡ e4d4df04-5ad6-4bea-86c3-6113a77cdd5b
"""!!! note "Defining a tree using Mermaid syntax"
Work in the in the cell below that assigns a long string value to the variable `langauges`:
1. Use mermaid notation to express relations between ancestor and descendant, like this: `OldEnglish --> English`
2. When you add nodes for earlier phases that aren't included in the list of languages below (i.e., nodes like `OldEnglish`), use simple names with alphabetic characters only.
3. Make sure your graph includes a node named `root` that is the root of your tree (and therefore the ancestor of all other nodes in your graph).
4. To refer to languages in the current data set, use the following names: **$(join(langnames, ", "))**
5. In this reconstruction, your `root` node should have multiple child nodes, and your tree should include more than one evolutionary generation. (I.e., not *all* nodes will be direct children of `root`.)
""" |> Markdown.parse
# ╔═╡ 020da4a6-3251-49bc-bbb8-19339965a53b
# ╔═╡ fb63a544-ca46-43e4-810f-af5a6ae526e5
# Read data into a set of global arrays
featuremtrx = begin
datamtrx = Array{String}(undef, length(srcdata),length(langnames))
for (rownum,ln) in enumerate(srcdata)
cols = split(ln, "|")
if length(cols) == length(langnames)
for (colnum, col) in enumerate(cols)
datamtrx[rownum, colnum] = col
end
end
end
datamtrx
end
# ╔═╡ 5e05badd-982c-48e5-9111-da5180e7616a
# Read data into a set of global arrays
begin
for ln in srcdata
cols = split(ln, "|")
if length(cols) == 7
push!(english, cols[1])
push!(dutch, cols[2])
push!(french, cols[3])
push!(german, cols[4])
push!(latin, cols[5])
push!(spanish, cols[6])
push!(turkish, cols[7])
end
end
end
# ╔═╡ 3946304a-a0db-418d-b470-d8b035d42776
md"""### Phonological analysis
>
> Phonology data and functions to analyze and look up phonology for the initial sound of a string"""
# ╔═╡ 987fd8d1-6f47-4db9-8338-d5889ddd8e09
"""Structure for phonology of a consonant"""
struct Phonology
place
voice
manner
end
# ╔═╡ b8351248-9abb-487d-8e8f-151d01c83762
"Dictionary mapping consonant sounds to `Phonology` structures."
phonologydata = Dict(
"b" => Phonology("labial", "voiced", "plosive"),
"p" => Phonology("labial", "unvoiced", "plosive"),
"f" => Phonology("labial", "unvoiced", "fricative"),
"v" => Phonology("labial", "voiced", "fricative"),
"ب" => Phonology("labial", "voiced", "plosive"),
"ف" => Phonology("labial", "unvoiced", "fricative"),
"б" => Phonology("labial", "voiced", "plosive"),
"в" => Phonology("labial", "voiced", "fricative"),
"п" => Phonology("labial", "unvoiced", "plosive"),
"d" => Phonology("dental", "voiced", "plosive"),
"t" => Phonology("dental", "unvoiced", "plosive"),
"th" => Phonology("dental", "unvoiced", "fricative"),
"ت" => Phonology("dental", "unvoiced", "plosive"),
"ث" => Phonology("dental", "unvoiced", "fricative"),
"к" => Phonology("palatal", "unvoiced", "plosive"),
"ك" => Phonology("palatal", "unvoiced", "plosive"),
"خ" => Phonology("palatal", "unvoiced", "fricative"),
"ق" => Phonology("velar", "unvoiced", "plosive"),
"д" => Phonology("dental", "voiced", "plosive"),
"т" => Phonology("dental", "unvoiced", "plosive"),
"g" => Phonology("palatal", "voiced", "plosive"),
"k" => Phonology("palatal", "unvoiced", "plosive"),
"г" => Phonology("palatal", "voiced", "plosive"),
"ч" => Phonology("palatal", "unvoiced", "fricative"),
"qu" => Phonology("labiovelar", "unvoiced", "plosive"),
"m" => Phonology("liquid", "", ""),
"n" => Phonology("liquid", "", ""),
"r" => Phonology("liquid", "", ""),
"l" => Phonology("liquid", "", ""),
"ل" => Phonology("liquid", "", ""),
"ر" => Phonology("liquid", "", ""),
"م" => Phonology("liquid", "", ""),
"ن" => Phonology("liquid", "", ""),
"н" => Phonology("liquid", "", ""),
"м" => Phonology("liquid", "", ""),
"л" => Phonology("liquid", "", ""),
"р" => Phonology("liquid", "", ""),
"s" => Phonology("sibilant","unvoiced", ""),
"س" => Phonology("sibilant","unvoiced", ""),
"ش" => Phonology("sibilant","unvoiced", ""),
"z" => Phonology("sibilant","voiced", ""),
"ш" => Phonology("sibilant","unvoiced", ""),
"с" => Phonology("sibilant","unvoiced", ""),
"з" => Phonology("sibilant","voiced", ""),
"a" => Phonology("vowel","", ""),
"e" => Phonology("vowel","", ""),
"i" => Phonology("vowel","", ""),
"o" => Phonology("vowel","", ""),
"u" => Phonology("vowel","", ""),
"а" => Phonology("vowel","", ""),
"е" => Phonology("vowel","", ""),
"о" => Phonology("vowel","", ""),
"أ" => Phonology("vowel","", ""),
"ا" => Phonology("vowel","", ""),
)
# ╔═╡ 4bc2cf7d-a2f2-4851-a93c-fc99f9bb450b
"""Look up phonology data for a consonant."""
function phonology_for(c, phones)
cval = lowercase(c) |> string
if haskey(phones, cval)
phones[cval]
else
nothing
end
end
# ╔═╡ 1c6ee4cd-fa93-4733-8ac1-add2b35f664c
"""Find initial phoneme in `s`"""
function initialsound(raw)
if isempty(raw)
raw
else
s = lowercase(raw)
clusters = ["sh", "sch",
"th",
"qu", "cu",
]
initial = s[1]
for cl in clusters
if startswith(s, cl)
initial = cl
end
end
if startswith(s, r"c[ei]")
initial = "s"
elseif startswith(s, "cu")
initial = "qu"
elseif startswith(s,r"c[ao]")
initial = "k"
end
initial
end
end
# ╔═╡ 120f8508-d854-42be-bf21-1527e6001fbb
md"""Initial sound to analyze: **$(string(initialsound(sample)))**"""
# ╔═╡ 5f946ada-56ea-4ddc-b8c6-b28c0115aa48
begin
samplephono = phonology_for(initialsound(sample), phonologydata)
if isnothing(samplephono)
md"""No analysis for **$(string(initialsound(sample)))**"""
else
samplereply = """
- Place of articulation: *$(samplephono.place)*
- Manner: *$(samplephono.manner)*
- Voice: *$(samplephono.voice)*
""" |> Markdown.parse
end
end
# ╔═╡ d725acfb-8b75-44d4-945c-3c7fdc8660e9
md"""(Computations later in this notebook represent each value as a numeric code. The values for **$(string(initialsound(sample)))** will be encoded as **$(phonology_for(initialsound(sample), phonologydata) |> encodestruct)**.)
"""
# ╔═╡ b54cf045-15d3-4267-95f8-399fe71e4672
"""Compute numeric features for user's current seledtion of terms."""
function encodeterms(datalines)
if isempty(datalines)
[]
else
numcols = length(datalines) * 3
numrows = length(split(datalines[1], "|"))
termscores = []
for ln in datalines # i:i+1 will be your col number
termlist = split(ln, "|") # these are the terms for each lang.
phonostructs = [phonology_for(initialsound(wd), phonologydata) for wd in termlist]
phonoscores = [encodestruct(phono) for phono in phonostructs] |> Iterators.flatten |> collect
push!(termscores, phonoscores)
end
flatscores = termscores |> Iterators.flatten |> collect
# We now have one vector fo each term. We want to reshape this
# to have one vector for each language.
scores = zeros(Int8, numrows, numcols)
scoreidx = 0
for row in 1:numrows
for col in 1:numcols
scoreidx = scoreidx + 1
scores[row,col] = flatscores[scoreidx]
end
end
scores
end
end
# ╔═╡ 3bf86905-c1a0-447a-b3a6-b45f51beaf1b
"""For a row of data in delimited-text format, compute its Phonology structures
and convert them to numeric representation.
Parameters:
- `delimited`: a string of data delimted by `|`
- `phonologydict`: a dictionary mapping consonant strings to `Phonology` structures
- `codesdict`: a dictionary to use in converting `Phonology` structures to numeric sequences
"""
function coderow(delimited, phonologydict, codesdict = codingdict)
cols = split(delimited, "|")
phonostructs = [phonology_for(initialsound(wd), phonologydict) for wd in cols]
digital = map(phonostructs) do phono
if isnothing(phono)
[0,0,0]
else
encodestruct(phono, codedict = codesdict)
end
end
digital |> Iterators.flatten |> collect
#phonostructs
end
# ╔═╡ 443e2b97-445b-48bc-8934-526ff00c315f
md"""### Interactive elements for user interface
>
> Build user-selectable menu:
>
> Extract the first column of the data matrix (presumed to be English), and
> build a `Select` menu from it.
"""
# ╔═╡ cba0774e-6ffa-4312-ba0a-2ebcfc3c1be4
# Construct menu for selecting term to examine
begin
menu = Pair{Int, String}[0 => ""]
for (i,w) in enumerate(featuremtrx[:, 1])
push!(menu, i => w)
end
end
# ╔═╡ 3fa6ffb2-8e09-40dc-9356-47743e912a32
md"""From the following alphabetized list of $(length(menu[2:end])) English terms, choose one to compare with terms in other languages:
"""
# ╔═╡ 499181ee-1c7b-49ff-ab3a-1889ae285d1d
md"""*English term*: $(@bind termidx Select(menu))"""
# ╔═╡ d6fa7afc-d3e3-4205-8d35-639dee64cfc2
begin
if termidx > 0
lines = ["Phonology of words corresponding to English *$(featuremtrx[ termidx, 1])*",
"",
"| Language | Term | Place | Voice | Manner |",
"| --- | --- | --- |--- | --- |"
]
for lang in 1:length(langnames)
wd = featuremtrx[termidx, lang]
wordinitial = initialsound(wd)
phono = phonology_for(initialsound(wd), phonologydata)
row = ""
if isnothing(phono)
row = "| **" * langnames[lang] * "** | $(wd) | - | - | - |"
else
row = "| **" * langnames[lang] * "** | " * join([wd, phono.place, phono.voice, phono.manner], " | ") * " |"
end
push!(lines, row)
end
join(lines, "\n") |> Markdown.parse
else
md""
end
end
# ╔═╡ c8f4fd19-e4e9-4277-b4ee-6f073891c8d5
@bind termsidx MultiCheckBox(menu[2:end], select_all=true)
# ╔═╡ 1570fe48-d964-4306-9ca8-588fceb8e73a
dataselection = [srcdata[i] for i in termsidx]
# ╔═╡ a66def90-5401-47dc-9951-1aa59404d018
"""Compose Markdown table with values for selected vocabulary."""
function mdtableview(rownames, colnames, data)
if isempty(colnames)
""
else
mdtable = []
hdrrow = vcat(["language"], colnames)
splitter = map(hdrrow) do col
"| --- "
end
push!(splitter, " |")
push!(mdtable, string("| " , join(hdrrow, "| " ), " |"))
push!(mdtable, join(splitter," "))
r,c = data |> size
for i in 1:r
rowvals = ["| " * rownames[i]]
for j in 1:c
push!(rowvals, string("| ", data[i,j]))
end
rowstring = string(join(rowvals," ") , " |")
push!(mdtable, rowstring)
end
join(mdtable,"\n")
end
end
# ╔═╡ 9dde598a-dd5b-450a-ac0a-88b6eeca2dfc
dirmenu = [
"BT" => "Bottom to top (BT)",
"TB" => "Top to bottom (TB)",
"LR" => "Left to right (LR)",
"RL" => "Right to left (RL)",
]
# ╔═╡ 70f93115-a9bc-414f-8aa3-05543b3847f8
md"""*Choose a direction for your tree*: $(@bind direction Select(dirmenu))"""
# ╔═╡ 11d8ffcc-cb70-49cb-b6ae-e2e00a2e2983
languages = """
flowchart $(direction)
root --> labialfamily
labialfamily --> fricativegroup
labialfamily --> plosivegroup
fricativegroup --> English
fricativegroup --> Dutch
plosivegroup --> French
fricativegroup --> German
plosivegroup --> Spanish
plosivegroup --> Italian
root --> Turkish
root --> Arabic
"""
# ╔═╡ 572b9936-2301-44ea-90ca-a77d16b78d9f
mermaid(languages)
# ╔═╡ 57a98d63-c3c6-451e-baab-50829d6a6d20
"""Implement interpreting Mermaid diagram."""
function mermaid(s)
@htl """
$s""" end # ╔═╡ 3b0cde1a-698e-43f0-aa92-d26d1b9bafdc md"""### All the Newick""" # ╔═╡ 2aa7facd-0a0f-4913-866e-fcaef38a93e6 """Extract list of unique nodes from a list of source->target pairs.""" function nodes(pairings) left = map(pr -> pr[1], pairings) right = map(pr -> pr[2], pairings) vcat(left, right) |> unique end # ╔═╡ 23353d30-cddb-48cf-8e6c-021a166c8b4b """Find leaf nodes of a rooted tree expressed as src->target pairings""" function tips(pairlist) left = map(pr -> pr[1], pairlist) #filter(nd -> ! (nd in right), pairlist)[1] filter(nd -> ! (nd in left), nodes(pairlist)) end # ╔═╡ 1205b182-a761-4ce2-ae73-c61276de48f4 """Find all root nodes in a graph expressed as src -> target pairs. """ function rootnodes(pairings) right = map(pr -> pr[2], pairings) filter(nodes(pairings)) do nd ! (nd in right) end end # ╔═╡ 5f0afde2-faa5-40ab-9857-d8d604f14d16 """Find a single root node of tree expressed as source->target pairs. If the graph includes more than one root, it arbirarily takes the first one. """ function root(pairings) rootnodes(pairings)[1] end # ╔═╡ fba21a41-225b-4582-bf00-558e6aef1269 """Find children of a node in a list of source->target pairs.""" function kids(nd, pairings) map(filter(pr -> pr[1] == nd, pairings)) do pr pr[2] end end # ╔═╡ 9220e1c7-985e-4259-8868-6050dd4bda7a """Recursively compose elements of a Newick format tree from a rooted tree represented as src-> target pairs.""" function newicktree(pairings, currentnode = nothing, cattable = [], sibling = false) #@info("cattable: $(cattable)") nd = isnothing(currentnode) ? root(pairings) : currentnode if isnothing(currentnode) #@info("Starting from root $(nd)") end #@info("Pushing $(nd): sibling? $(sibling)") push!(cattable, nd) kidnodes = kids(nd, pairings) if isempty(kidnodes) else #@info("-- Has children so pushing right paren") push!(cattable, ")") for (i, kid) in enumerate(kidnodes) #@info("child $(i): $(kid)") newicktree(pairings, kid, cattable, i < length(kidnodes)) end #@info("-- Closing node $(nd) with left paren") push!(cattable, "(") end #@info("Node $(nd): sibling? $(sibling)") if sibling push!(cattable, ",") end cattable end # ╔═╡ e858f651-314d-49ce-a6d8-b49528d8cf43 """Find parent of a node in a list of source->target pairs.""" function parent(nd, pairings) map(filter(pr -> pr[2] == nd, pairings)) do pr pr[1] end end # ╔═╡ effced2c-836b-4f63-ada6-4b8bfcedfad9 """Extract source->target pairs from a Mermaid diagram""" function mermaidpairs(txt) pairlines = filter(split(txt, "\n")) do ln contains(ln, "-->") end [split(ln, " --> ") for ln in pairlines] end # ╔═╡ 32db71ef-cf4f-48c4-93cb-5afb13ce4a0a """Represent a Mermaid flow chart as a Newick tree.""" function newick(txt) node_edge_pairs = mermaidpairs(txt) if isempty(node_edge_pairs) nothing else (node_edge_pairs |> newicktree |> reverse |> join) * ";" end end # ╔═╡ 0f736a63-71cb-42e1-b6fd-ff65767da05a newickform = newick(languages); # ╔═╡ 5c30f550-f684-40dd-a90d-8f03e723dc20 modeltree = isnothing(newickform) ? nothing : readTopology(newickform) # ╔═╡ ce4899c4-62c2-492c-b7f2-71a852eb666b if isnothing(modeltree) else modeltree |> PhyloNetworks.getroot end # ╔═╡ 6206ed4b-b340-4497-9e68-d4144e33d42c newickmodel = isnothing(newickform) ? nothing : readnw(newickform); # ╔═╡ 19c2c305-f433-4326-b421-c666bc66c6bf if isnothing(newickmodel) else md"""A plot of your tree interpreted as a phyogenetic network:""" end # ╔═╡ 842ba5b3-2aba-4081-bb8f-4d61cb312b06 if isnothing(newickmodel) else plot(newickmodel) end # ╔═╡ d78fd333-96ea-4948-b2a0-27f9607b42ef newick(languages) # ╔═╡ 2e9620b6-ee9a-462a-8b50-3267fbac0df3 md"""### Organizing data in different structures""" # ╔═╡ a5320c36-9a5f-4c50-b20a-a0c3a30d8f4a """Make a DataFrame using given row and column labels together with a list of data values.""" function frameify(rowlabels, collabels, data) hdr = ["taxon," * join(collabels, ",")] for (rownum, lang) in enumerate(rowlabels) row = lang * "," * join(data[rownum,:], ",") push!(hdr, row) end str = join(hdr,"\n") f = tempname() open(f, "w") do io write(io, str) end df = CSV.File(f) |> DataFrame rm(f) df end # ╔═╡ 36bdd651-c69c-42d1-baa8-a35dc8a336ac traitnames = featurelabels(termsidx, featuremtrx) # ╔═╡ bce931be-d82f-4de5-9edf-3e8a69e2f3dc # Short labels for display in table that might have *many* columns colhdrs = isempty(traitnames) ? [] : ["t$(i)" for i in 1:length(traitnames)] # ╔═╡ d5df5b10-1b6c-4e53-b3a4-830fdb6b65b2 if seekey expanded = [] for (short, long) in zip(colhdrs, traitnames) push!(expanded, string("- **", short,"**: ", long)) end "### Key to trait values\n\n" * join(expanded,"\n") |> Markdown.parse |> aside end # ╔═╡ be3eb016-4474-4089-9e8e-5d87882c5de2 scores = encodeterms(dataselection) # ╔═╡ fc76beaa-bfd4-4b7e-8df4-ff185d7270a9 mdtableview(langnames, colhdrs, scores) |> Markdown.parse # ╔═╡ 2c8e3ecd-b754-4af4-83aa-a0dc7a0bdcd4 df = isempty(termsidx) ? nothing : frameify(langnames, traitnames, scores) # ╔═╡ 8b491005-40a6-428c-964c-ffa307d82574 opt = if isnothing(modeltree) nothing else try maxParsimonyNet(modeltree, df, hmax=1, outgroup="root") catch e @info("Wasn't able to make an optimal tree: $(e)") nothing end end ; # ╔═╡ c7d0511b-4e31-487b-b8cf-7aa0ff2ee14e if isnothing(opt) md"""!!! warn "⛔️Warning⛔️" *Unable to compute an optimal tree based on the model defined in the Mermaid graph*. """ else md"""Optimal tree based on parsimony:""" end # ╔═╡ 43af70f9-7a19-4a12-8b0c-ae30de856b51 if isnothing(opt) else printNodes(opt) end # ╔═╡ 8c354ee1-931a-409d-9447-a2a767b471fe optnewick = isnothing(opt) ? nothing : PhyloNetworks.writeTopology(opt) # ╔═╡ b336ec6b-f61b-412d-b747-163b90b7d7f9 optmodel = isnothing(optnewick) ? nothing : readnw(optnewick) # ╔═╡ 374b2fee-b724-4e39-9873-a9552c19da79 if isnothing(optmodel) else plot(optmodel) end # ╔═╡ a472f6f5-878d-4c85-ba7a-d355737f419f phylospecies, phylotraits = isnothing(df) ? (nothing, nothing) : PhyloNetworks.readCSVtoArray(df); # ╔═╡ e7a9cfd1-63a9-4b41-9dba-c681954af353 if isnothing(modeltree) else parsimonySoftwired(modeltree, phylospecies, phylotraits) end # ╔═╡ 2f0c79f7-e003-4d74-8195-4581d70d4d2e if isnothing(modeltree) else parsimonyGF(modeltree,phylospecies,phylotraits,:softwired) end # ╔═╡ 6f16e9d2-4da8-446f-8196-2fb5fbe07c86 numspecies, numtraits = if isempty(scores) (0,0) else scores |> size end # ╔═╡ 00000000-0000-0000-0000-000000000001 PLUTO_PROJECT_TOML_CONTENTS = """ [deps] CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" HypertextLiteral = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" NewickTree = "b0a14db8-6308-4ebc-8917-f72cd81f5094" PhyloNetworks = "33ad39ac-ed31-50eb-9b15-43d0656eaa72" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" PlutoTeachingTools = "661c6b06-c737-4d37-b85c-46df65de6f69" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" [compat] CSV = "~0.10.12" DataFrames = "~1.6.1" HypertextLiteral = "~0.9.5" NewickTree = "~0.3.1" PhyloNetworks = "~0.16.3" Plots = "~1.40.1" PlutoTeachingTools = "~0.2.14" PlutoUI = "~0.7.57" """ # ╔═╡ 00000000-0000-0000-0000-000000000002 PLUTO_MANIFEST_TOML_CONTENTS = """ # This file is machine-generated - editing it directly is not advised julia_version = "1.10.0" manifest_format = "2.0" project_hash = "3da12477ac8d2652a6ae2bf256f5e4b873ab5ec5" [[deps.AbstractPlutoDingetjes]] deps = ["Pkg"] git-tree-sha1 = "c278dfab760520b8bb7e9511b968bf4ba38b7acc" uuid = "6e696c72-6542-2067-7265-42206c756150" version = "1.2.3" [[deps.AbstractTrees]] git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.5" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.Automa]] deps = ["PrecompileTools", "TranscodingStreams"] git-tree-sha1 = "588e0d680ad1d7201d4c6a804dcb1cd9cba79fbb" uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" version = "1.0.3" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[deps.BioGenerics]] deps = ["TranscodingStreams"] git-tree-sha1 = "7bbc085aebc6faa615740b63756e4986c9e85a70" uuid = "47718e42-2ac5-11e9-14af-e5595289c2ea" version = "0.1.4" [[deps.BioSequences]] deps = ["BioSymbols", "PrecompileTools", "Random", "Twiddle"] git-tree-sha1 = "6fdba8b4279460fef5674e9aa2dac7ef5be361d5" uuid = "7e6ae17a-c86d-528c-b3b9-7f778a29fe59" version = "3.1.6" [[deps.BioSymbols]] deps = ["PrecompileTools"] git-tree-sha1 = "e32a61f028b823a172c75e26865637249bb30dff" uuid = "3c28c6f8-a34d-59c4-9654-267d177fcfa9" version = "5.1.3" [[deps.BitFlags]] git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" version = "0.1.8" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" version = "1.0.8+1" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] git-tree-sha1 = "679e69c611fff422038e9e21e270c4197d49d918" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" version = "0.10.12" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.16.1+1" [[deps.Calculus]] deps = ["LinearAlgebra"] git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" version = "0.5.1" [[deps.CodeTracking]] deps = ["InteractiveUtils", "UUIDs"] git-tree-sha1 = "c0216e792f518b39b22212127d4a84dc31e4e386" uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" version = "1.3.5" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.4" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" version = "3.24.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.11.4" [[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" version = "0.10.0" weakdeps = ["SpecialFunctions"] [deps.ColorVectorSpace.extensions] SpecialFunctionsExt = "SpecialFunctions" [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.10" [[deps.Combinatorics]] git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" version = "1.0.2" [[deps.Compat]] deps = ["TOML", "UUIDs"] git-tree-sha1 = "d2c021fbdde94f6cdaa799639adfeeaa17fd67f5" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" version = "4.13.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] CompatLinearAlgebraExt = "LinearAlgebra" [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "1.0.5+1" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.3.1" [[deps.Contour]] git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" version = "0.6.2" [[deps.Crayons]] git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" [[deps.DataAPI]] git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.16.0" [[deps.DataFrames]] deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" version = "0.18.16" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" version = "1.0.0" [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[deps.DelimitedFiles]] deps = ["Mmap"] git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" version = "1.9.1" [[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" version = "0.25.107" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" DistributionsDensityInterfaceExt = "DensityInterface" DistributionsTestExt = "Test" [deps.Distributions.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.DocStringExtensions]] deps = ["LibGit2"] git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" version = "0.9.3" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" [[deps.DualNumbers]] deps = ["Calculus", "NaNMath", "SpecialFunctions"] git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" version = "0.6.8" [[deps.EpollShim_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" version = "0.0.20230411+0" [[deps.ExceptionUnwrapping]] deps = ["Test"] git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" version = "0.1.10" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.5.0+0" [[deps.FASTX]] deps = ["Automa", "BioGenerics", "PrecompileTools", "StringViews", "TranscodingStreams"] git-tree-sha1 = "bff5d62bf5e1c382a370ac701bcaea9a24115ac6" uuid = "c2308a5c-f048-11e8-3e8a-31650f418d12" version = "2.1.4" weakdeps = ["BioSequences"] [deps.FASTX.extensions] BioSequencesExt = "BioSequences" [[deps.FFMPEG]] deps = ["FFMPEG_jll"] git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" version = "0.4.1" [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" version = "4.4.4+1" [[deps.FilePathsBase]] deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" uuid = "48062228-2e41-5def-b9a4-89aafe57970f" version = "0.9.21" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random"] git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" version = "1.9.3" weakdeps = ["PDMats", "SparseArrays", "Statistics"] [deps.FillArrays.extensions] FillArraysPDMatsExt = "PDMats" FillArraysSparseArraysExt = "SparseArrays" FillArraysStatisticsExt = "Statistics" [[deps.FixedPointNumbers]] deps = ["Statistics"] git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.4" [[deps.Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" [[deps.Formatting]] deps = ["Printf"] git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" version = "0.4.2" [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" version = "2.13.1+0" [[deps.FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.10+0" [[deps.Functors]] deps = ["LinearAlgebra"] git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" version = "0.4.7" [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[deps.GLFW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" version = "3.3.9+0" [[deps.GLM]] deps = ["Distributions", "LinearAlgebra", "Printf", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "StatsModels"] git-tree-sha1 = "273bd1cd30768a2fddfa3fd63bbc746ed7249e5f" uuid = "38e38edf-8417-5370-95a0-9cbb8c7f171a" version = "1.9.0" [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] git-tree-sha1 = "3458564589be207fa6a77dbbf8b97674c9836aab" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" version = "0.73.2" [[deps.GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" version = "0.73.2+0" [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" version = "0.21.0+0" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" version = "2.76.5+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" version = "1.3.14+0" [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "ac7b73d562b8f4287c3b67b4c66a5395a19c1ae8" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "1.10.2" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" version = "0.3.23" [[deps.Hyperscript]] deps = ["Test"] git-tree-sha1 = "179267cfa5e712760cd43dcae385d7ea90cc25a4" uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" version = "0.0.5" [[deps.HypertextLiteral]] deps = ["Tricks"] git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653" uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" version = "0.9.5" [[deps.IOCapture]] deps = ["Logging", "Random"] git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" version = "0.2.4" [[deps.InlineStrings]] deps = ["Parsers"] git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.0" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" version = "1.3.0" [[deps.IrrationalConstants]] git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" version = "0.2.2" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" version = "0.1.7" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" version = "1.5.0" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "3.0.1+0" [[deps.JuliaInterpreter]] deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] git-tree-sha1 = "7b762d81887160169ddfc93a47e5fd7a6a3e78ef" uuid = "aa1ae85d-cabe-5617-a682-6adf51b2e16a" version = "0.9.29" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" version = "3.100.1+0" [[deps.LERC_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" uuid = "88015f11-f218-50d7-93a8-a6af411a945d" version = "3.0.0+1" [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" version = "15.0.7+0" [[deps.LZO_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" version = "2.10.1+0" [[deps.LaTeXStrings]] git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.1" [[deps.Latexify]] deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" version = "0.16.1" [deps.Latexify.extensions] DataFramesExt = "DataFrames" SymEngineExt = "SymEngine" [deps.Latexify.weakdeps] DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.4" [[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "8.4.0+0" [[deps.LibGit2]] deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" [[deps.LibGit2_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" version = "1.6.4+0" [[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" version = "1.11.0+1" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" [[deps.Libffi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" version = "3.2.2+1" [[deps.Libgcrypt_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" version = "1.8.7+0" [[deps.Libglvnd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" version = "1.6.0+0" [[deps.Libgpg_error_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" version = "2.35.0+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" uuid = "89763e89-9b03-5906-acba-b20f662cd828" version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" version = "2.36.0+0" [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" version = "0.3.27" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" LogExpFunctionsInverseFunctionsExt = "InverseFunctions" [deps.LogExpFunctions.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.3" [[deps.LoweredCodeUtils]] deps = ["JuliaInterpreter"] git-tree-sha1 = "20ce1091ba18bcdae71ad9b71ee2367796ba6c48" uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" version = "2.4.4" [[deps.MIMEs]] git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" version = "0.1.4" [[deps.MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.13" [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" version = "1.1.9" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.2+1" [[deps.Measures]] git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" version = "0.3.2" [[deps.Missings]] deps = ["DataAPI"] git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" version = "1.1.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2023.1.10" [[deps.NLopt]] deps = ["NLopt_jll"] git-tree-sha1 = "d1d09c342c3dd9b3bae985b088bd928632e4d79e" uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" version = "1.0.1" [deps.NLopt.extensions] NLoptMathOptInterfaceExt = ["MathOptInterface"] [deps.NLopt.weakdeps] MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" [[deps.NLopt_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "9b1f15a08f9d00cdb2761dcfa6f453f5d0d6f973" uuid = "079eb43e-fd8e-5478-9966-2cf3e3edb778" version = "2.7.1+0" [[deps.NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.2" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.NewickTree]] deps = ["AbstractTrees", "RecipesBase", "Test"] git-tree-sha1 = "591aac784c7ea032ac97a53af19cfbfa7e39afaf" uuid = "b0a14db8-6308-4ebc-8917-f72cd81f5094" version = "0.3.1" [[deps.Ogg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.5+1" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" version = "0.3.23+2" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+2" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" version = "3.0.13+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" uuid = "91d4177d-7536-5919-b921-800302f37372" version = "1.3.2+0" [[deps.OrderedCollections]] git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.6.3" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.42.0+1" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" version = "0.11.31" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.8.1" [[deps.PhyloNetworks]] deps = ["BioSequences", "BioSymbols", "CSV", "Combinatorics", "DataFrames", "DataStructures", "Dates", "Distributed", "Distributions", "FASTX", "Functors", "GLM", "LinearAlgebra", "NLopt", "Printf", "Random", "StaticArrays", "Statistics", "StatsBase", "StatsFuns", "StatsModels"] git-tree-sha1 = "414065ef095aba2fc7d76d38c43cbdff2ab02943" uuid = "33ad39ac-ed31-50eb-9b15-43d0656eaa72" version = "0.16.3" [[deps.Pipe]] git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" version = "1.3.0" [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" uuid = "30392449-352a-5448-841d-b1acce4e97dc" version = "0.42.2+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.10.0" [[deps.PlotThemes]] deps = ["PlotUtils", "Statistics"] git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" version = "3.1.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.4.0" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" version = "1.40.1" [deps.Plots.extensions] FileIOExt = "FileIO" GeometryBasicsExt = "GeometryBasics" IJuliaExt = "IJulia" ImageInTerminalExt = "ImageInTerminal" UnitfulExt = "Unitful" [deps.Plots.weakdeps] FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" [[deps.PlutoHooks]] deps = ["InteractiveUtils", "Markdown", "UUIDs"] git-tree-sha1 = "072cdf20c9b0507fdd977d7d246d90030609674b" uuid = "0ff47ea0-7a50-410d-8455-4348d5de0774" version = "0.0.5" [[deps.PlutoLinks]] deps = ["FileWatching", "InteractiveUtils", "Markdown", "PlutoHooks", "Revise", "UUIDs"] git-tree-sha1 = "8f5fa7056e6dcfb23ac5211de38e6c03f6367794" uuid = "0ff47ea0-7a50-410d-8455-4348d5de0420" version = "0.1.6" [[deps.PlutoTeachingTools]] deps = ["Downloads", "HypertextLiteral", "LaTeXStrings", "Latexify", "Markdown", "PlutoLinks", "PlutoUI", "Random"] git-tree-sha1 = "89f57f710cc121a7f32473791af3d6beefc59051" uuid = "661c6b06-c737-4d37-b85c-46df65de6f69" version = "0.2.14" [[deps.PlutoUI]] deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] git-tree-sha1 = "a6783c887ca59ce7e97ed630b74ca1f10aefb74d" uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" version = "0.7.57" [[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" version = "1.4.3" [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" version = "1.2.0" [[deps.Preferences]] deps = ["TOML"] git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.1" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" version = "2.3.1" [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" version = "6.5.3+1" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" version = "2.9.4" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[deps.RecipesBase]] deps = ["PrecompileTools"] git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" version = "1.3.4" [[deps.RecipesPipeline]] deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" version = "0.6.12" [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" [[deps.RelocatableFolders]] deps = ["SHA", "Scratch"] git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" version = "1.0.1" [[deps.Requires]] deps = ["UUIDs"] git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" [[deps.Revise]] deps = ["CodeTracking", "Distributed", "FileWatching", "JuliaInterpreter", "LibGit2", "LoweredCodeUtils", "OrderedCollections", "Pkg", "REPL", "Requires", "UUIDs", "Unicode"] git-tree-sha1 = "3fe4e5b9cdbb9bbc851c57b149e516acc07f8f72" uuid = "295af30f-e4ad-537b-8983-00126c2a3abe" version = "3.5.13" [[deps.Rmath]] deps = ["Random", "Rmath_jll"] git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" version = "0.7.1" [[deps.Rmath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" version = "0.4.0+0" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" uuid = "6c6a2e73-6563-6170-7368-637461726353" version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" version = "1.4.1" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" [[deps.ShiftedArrays]] git-tree-sha1 = "503688b59397b3307443af35cd953a13e8005c16" uuid = "1277b4bf-5013-50f5-be3d-901d8477a67a" version = "2.0.0" [[deps.Showoff]] deps = ["Dates", "Grisu"] git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" version = "1.0.3" [[deps.SimpleBufferStream]] git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[deps.SortingAlgorithms]] deps = ["DataStructures"] git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" version = "1.2.1" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" version = "1.10.0" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" version = "2.3.1" [deps.SpecialFunctions.extensions] SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" [deps.SpecialFunctions.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" uuid = "90137ffa-7385-5640-81b9-e52037218182" version = "1.9.2" [deps.StaticArrays.extensions] StaticArraysChainRulesCoreExt = "ChainRulesCore" StaticArraysStatisticsExt = "Statistics" [deps.StaticArrays.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[deps.StaticArraysCore]] git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.2" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" version = "1.10.0" [[deps.StatsAPI]] deps = ["LinearAlgebra"] git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" version = "0.34.2" [[deps.StatsFuns]] deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" version = "1.3.1" [deps.StatsFuns.extensions] StatsFunsChainRulesCoreExt = "ChainRulesCore" StatsFunsInverseFunctionsExt = "InverseFunctions" [deps.StatsFuns.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" [[deps.StatsModels]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Printf", "REPL", "ShiftedArrays", "SparseArrays", "StatsAPI", "StatsBase", "StatsFuns", "Tables"] git-tree-sha1 = "5cf6c4583533ee38639f73b880f35fc85f2941e0" uuid = "3eaba693-59b7-5ba5-a881-562e759f1c8d" version = "0.7.3" [[deps.StringManipulation]] deps = ["PrecompileTools"] git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.3.4" [[deps.StringViews]] git-tree-sha1 = "f7b06677eae2571c888fd686ba88047d8738b0e3" uuid = "354b36f9-a18e-4713-926e-db85100087ba" version = "1.3.3" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" version = "7.2.1+1" [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" [[deps.TableTraits]] deps = ["IteratorInterfaceExtensions"] git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" version = "1.11.1" [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" [[deps.TensorCore]] deps = ["LinearAlgebra"] git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" version = "0.1.1" [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.TranscodingStreams]] git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.10.3" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] TestExt = ["Test", "Random"] [[deps.Tricks]] git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" version = "0.1.8" [[deps.Twiddle]] git-tree-sha1 = "29509c4862bfb5da9e76eb6937125ab93986270a" uuid = "7200193e-83a8-5a55-b20d-5d36d44a0795" version = "1.1.2" [[deps.URIs]] git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" version = "1.5.1" [[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [[deps.UnicodeFun]] deps = ["REPL"] git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" version = "0.4.1" [[deps.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" version = "1.19.0" [deps.Unitful.extensions] ConstructionBaseUnitfulExt = "ConstructionBase" InverseFunctionsUnitfulExt = "InverseFunctions" [deps.Unitful.weakdeps] ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" [[deps.UnitfulLatexify]] deps = ["LaTeXStrings", "Latexify", "Unitful"] git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" version = "1.6.3" [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" version = "0.2.0" [[deps.Vulkan_Loader_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" version = "1.3.243+0" [[deps.Wayland_jll]] deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" version = "1.21.0+1" [[deps.Wayland_protocols_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" version = "1.31.0+0" [[deps.WeakRefStrings]] deps = ["DataAPI", "InlineStrings", "Parsers"] git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" version = "1.4.2" [[deps.WorkerUtilities]] git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" version = "1.6.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" version = "2.12.2+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "ac88fb95ae6447c8dda6a5503f3bafd496ae8632" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" version = "5.4.6+0" [[deps.Xorg_libICE_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" version = "1.0.10+1" [[deps.Xorg_libSM_jll]] deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" uuid = "c834827a-8449-5923-a945-d239c165b7dd" version = "1.2.3+0" [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" version = "1.8.6+0" [[deps.Xorg_libXau_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" version = "1.0.11+0" [[deps.Xorg_libXcursor_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" version = "1.2.0+4" [[deps.Xorg_libXdmcp_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" version = "1.1.4+0" [[deps.Xorg_libXext_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" version = "1.3.4+4" [[deps.Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" version = "5.0.3+4" [[deps.Xorg_libXi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" version = "1.7.10+4" [[deps.Xorg_libXinerama_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" version = "1.1.4+4" [[deps.Xorg_libXrandr_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" version = "1.5.2+4" [[deps.Xorg_libXrender_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" version = "0.9.10+4" [[deps.Xorg_libpthread_stubs_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" version = "0.1.1+0" [[deps.Xorg_libxcb_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" version = "1.15.0+0" [[deps.Xorg_libxkbfile_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" version = "1.1.2+0" [[deps.Xorg_xcb_util_cursor_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" version = "0.1.4+0" [[deps.Xorg_xcb_util_image_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" version = "0.4.0+1" [[deps.Xorg_xcb_util_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" version = "0.4.0+1" [[deps.Xorg_xcb_util_keysyms_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" version = "0.4.0+1" [[deps.Xorg_xcb_util_renderutil_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" version = "0.3.9+1" [[deps.Xorg_xcb_util_wm_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" version = "0.4.1+1" [[deps.Xorg_xkbcomp_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" version = "1.4.6+0" [[deps.Xorg_xkeyboard_config_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" uuid = "33bec58e-1273-512f-9401-5d533626f822" version = "2.39.0+0" [[deps.Xorg_xtrans_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" version = "1.5.0+0" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.13+1" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.5+0" [[deps.eudev_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" version = "3.2.9+0" [[deps.fzf_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" version = "0.43.0+0" [[deps.gperf_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" version = "3.1.1+0" [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" version = "3.4.0+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" version = "0.15.1+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" version = "5.8.0+1" [[deps.libevdev_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" version = "1.11.0+0" [[deps.libfdk_aac_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" version = "2.0.2+0" [[deps.libinput_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" uuid = "36db933b-70db-51c0-b978-0f229ee0e533" version = "1.18.0+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] git-tree-sha1 = "873b4f805771d3e4bafe63af759a26ea8ca84d14" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" version = "1.6.42+0" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" version = "1.3.7+1" [[deps.mtdev_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" version = "1.1.6+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.52.0+1" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+2" [[deps.x264_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" version = "2021.5.5+0" [[deps.x265_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" version = "3.5.0+0" [[deps.xkbcommon_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" version = "1.4.1+1" """ # ╔═╡ Cell order: # ╟─ec90119e-6c25-4162-8b93-620a6cc4a554 # ╟─9f51f0da-2f32-4b34-b510-106991af5e9a # ╟─cf04fb10-c82a-4f99-84c6-24fb2da174ce # ╟─f9e3b172-2d2b-4fa9-9b6b-5b2a000e8434 # ╟─cf0bf814-7679-40b3-ae0f-8b0dbdde5834 # ╟─932c6efa-b4d2-4194-becb-f840dcf140e4 # ╟─3d5022ec-e8b1-4e49-8d81-be8af2f998e1 # ╟─bebab1d4-c987-4be1-977f-ab3cffc149f5 # ╟─7c3e8a97-617c-4ca7-b6e2-4ef386f58b1e # ╟─67d9aca7-3236-420c-8dfd-96c253aa1321 # ╟─f05d9c29-511b-4b72-865e-e3548efdd46f # ╟─8086f905-c547-4bd9-9716-da3fc33e7eff # ╟─120f8508-d854-42be-bf21-1527e6001fbb # ╟─5f946ada-56ea-4ddc-b8c6-b28c0115aa48 # ╟─d725acfb-8b75-44d4-945c-3c7fdc8660e9 # ╟─e6f5fe38-cb09-11ed-093a-89974c867831 # ╟─82d4c65a-c0f0-4496-95ee-0f16dbdab926 # ╟─b50fee84-95c6-4e2b-b28e-ddf379e211d4 # ╟─834c5625-69b2-4e3d-a7dd-8be84422f03f # ╟─3fa6ffb2-8e09-40dc-9356-47743e912a32 # ╟─499181ee-1c7b-49ff-ab3a-1889ae285d1d # ╟─d6fa7afc-d3e3-4205-8d35-639dee64cfc2 # ╟─8dc318f2-35e2-4c21-b78c-d13b4d1e5077 # ╟─c8f4fd19-e4e9-4277-b4ee-6f073891c8d5 # ╟─20cc299d-eaa5-4f88-96df-41798a78aee3 # ╟─d5df5b10-1b6c-4e53-b3a4-830fdb6b65b2 # ╟─fc76beaa-bfd4-4b7e-8df4-ff185d7270a9 # ╟─8e1a8736-2ca4-4d04-802f-4ef51c9219ac # ╟─70f93115-a9bc-414f-8aa3-05543b3847f8 # ╟─e4d4df04-5ad6-4bea-86c3-6113a77cdd5b # ╠═11d8ffcc-cb70-49cb-b6ae-e2e00a2e2983 # ╟─9d3eb9e3-c00f-44e8-8cc3-ec61af246fe8 # ╟─2161a08e-36c2-41c3-adff-14528fcd964d # ╟─572b9936-2301-44ea-90ca-a77d16b78d9f # ╟─19c2c305-f433-4326-b421-c666bc66c6bf # ╟─842ba5b3-2aba-4081-bb8f-4d61cb312b06 # ╠═5c30f550-f684-40dd-a90d-8f03e723dc20 # ╟─0f736a63-71cb-42e1-b6fd-ff65767da05a # ╠═d78fd333-96ea-4948-b2a0-27f9607b42ef # ╟─6206ed4b-b340-4497-9e68-d4144e33d42c # ╟─7df0a9ab-7c7e-4d2b-a284-0a1ca2967ef3 # ╟─16dc6793-063c-4f04-88e5-050c896e25b9 # ╠═e7a9cfd1-63a9-4b41-9dba-c681954af353 # ╠═2f0c79f7-e003-4d74-8195-4581d70d4d2e # ╟─65bd06db-5bb0-4efd-a20d-e2b191091a83 # ╟─e3020259-79d5-4e5f-9879-34e6514840e2 # ╟─c7d0511b-4e31-487b-b8cf-7aa0ff2ee14e # ╟─374b2fee-b724-4e39-9873-a9552c19da79 # ╟─43af70f9-7a19-4a12-8b0c-ae30de856b51 # ╟─1ab72af2-d6a5-488b-8101-9adf79d273b6 # ╟─bd11c81e-1c93-4cb1-9b79-62d0d658a9fa # ╟─4ef7995a-4c47-4389-bfd3-f3cea5fa5df3 # ╟─ce4899c4-62c2-492c-b7f2-71a852eb666b # ╠═8b491005-40a6-428c-964c-ffa307d82574 # ╠═b336ec6b-f61b-412d-b747-163b90b7d7f9 # ╠═8c354ee1-931a-409d-9447-a2a767b471fe # ╟─26afc76c-211d-4b78-8f8f-c6de2cf2be83 # ╟─1570fe48-d964-4306-9ca8-588fceb8e73a # ╟─281fe574-cf9d-4a19-8557-52cfe13fd9f1 # ╟─b54cf045-15d3-4267-95f8-399fe71e4672 # ╟─8c079fc8-50c1-4d1d-8708-82139a7136b2 # ╟─3bf86905-c1a0-447a-b3a6-b45f51beaf1b # ╟─ca496151-93e8-418b-8906-151b653f1541 # ╟─fa737dfb-8306-4eaf-8554-6d473c8e8e60 # ╟─59ce4fe7-c8fc-4b4a-bf15-ed4a7b3ba95e # ╠═cc80b08c-98b3-4ad3-b6b4-af0c250634ef # ╟─8cf14601-04ac-4197-b05a-cecdaea21c44 # ╟─020da4a6-3251-49bc-bbb8-19339965a53b # ╟─fb63a544-ca46-43e4-810f-af5a6ae526e5 # ╟─5e05badd-982c-48e5-9111-da5180e7616a # ╟─3946304a-a0db-418d-b470-d8b035d42776 # ╟─987fd8d1-6f47-4db9-8338-d5889ddd8e09 # ╟─b8351248-9abb-487d-8e8f-151d01c83762 # ╟─4bc2cf7d-a2f2-4851-a93c-fc99f9bb450b # ╟─1c6ee4cd-fa93-4733-8ac1-add2b35f664c # ╟─443e2b97-445b-48bc-8934-526ff00c315f # ╠═cba0774e-6ffa-4312-ba0a-2ebcfc3c1be4 # ╟─a66def90-5401-47dc-9951-1aa59404d018 # ╟─9dde598a-dd5b-450a-ac0a-88b6eeca2dfc # ╟─57a98d63-c3c6-451e-baab-50829d6a6d20 # ╟─3b0cde1a-698e-43f0-aa92-d26d1b9bafdc # ╟─32db71ef-cf4f-48c4-93cb-5afb13ce4a0a # ╟─9220e1c7-985e-4259-8868-6050dd4bda7a # ╟─23353d30-cddb-48cf-8e6c-021a166c8b4b # ╟─5f0afde2-faa5-40ab-9857-d8d604f14d16 # ╟─1205b182-a761-4ce2-ae73-c61276de48f4 # ╟─2aa7facd-0a0f-4913-866e-fcaef38a93e6 # ╟─fba21a41-225b-4582-bf00-558e6aef1269 # ╟─e858f651-314d-49ce-a6d8-b49528d8cf43 # ╟─effced2c-836b-4f63-ada6-4b8bfcedfad9 # ╟─2e9620b6-ee9a-462a-8b50-3267fbac0df3 # ╟─a5320c36-9a5f-4c50-b20a-a0c3a30d8f4a # ╠═a472f6f5-878d-4c85-ba7a-d355737f419f # ╠═36bdd651-c69c-42d1-baa8-a35dc8a336ac # ╠═bce931be-d82f-4de5-9edf-3e8a69e2f3dc # ╠═2c8e3ecd-b754-4af4-83aa-a0dc7a0bdcd4 # ╠═be3eb016-4474-4089-9e8e-5d87882c5de2 # ╠═6f16e9d2-4da8-446f-8196-2fb5fbe07c86 # ╟─00000000-0000-0000-0000-000000000001 # ╟─00000000-0000-0000-0000-000000000002