### 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"""![](https://raw.githubusercontent.com/neelsmith/papyrus_to_pixels/main/data/languages/phono-diagram.gif)""" |> 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