diff report.jmd @ 0:cc0957c46408 draft

"planemo upload for repository https://github.com/kirstvh/MultiplexCrisprDOE commit b6c1b1860eee82b06ed4a592d1f9eee6886be318-dirty"
author padge
date Thu, 12 May 2022 17:39:18 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/report.jmd	Thu May 12 17:39:18 2022 +0000
@@ -0,0 +1,102 @@
+---
+title: MultiplexCrisprDOE
+---
+
+<!-- this setup dependencies, but doesn't appear in the generated document -->
+```julia; echo = false; results = "hidden"
+using Pkg
+"Plots" ∉ keys(Pkg.project().dependencies) && Pkg.add("Plots")
+#"DSP" ∉ keys(Pkg.project().dependencies) && Pkg.add("DSP")
+#"Images" ∉ keys(Pkg.project().dependencies) && Pkg.add("Images")
+"DataStructures" ∉ keys(Pkg.project().dependencies) && Pkg.add("DataStructures")
+"PrettyTables" ∉ keys(Pkg.project().dependencies) && Pkg.add("PrettyTables")
+"DataFrames" ∉ keys(Pkg.project().dependencies) && Pkg.add("DataFrames")
+"Latexify" ∉ keys(Pkg.project().dependencies) && Pkg.add("Latexify")
+```
+## Tool
+
+* **Method:**     `j println(WEAVE_ARGS.tool_info["method"])`
+
+* **Description:** `j println(WEAVE_ARGS.tool_info["description"])`
+
+* **Mode:** `j println(WEAVE_ARGS.tool_info["mode"])`
+
+* **Mode description:** `j println(WEAVE_ARGS.tool_info["mode_description"])`
+
+## Variables
+
+```julia; echo = false
+using DataFrames
+using PrettyTables
+df = DataFrame("Argument" => collect(keys(WEAVE_ARGS.args_info)), "Value" => collect(values(WEAVE_ARGS.args_info)))
+#pt = pretty_table(df, nosubheader=true; alignment=:l)
+```
+
+```julia; echo = false
+    using Plots
+    if haskey(WEAVE_ARGS.grna_dict,"p_gRNA_reads")
+        h1 = histogram(WEAVE_ARGS.grna_dict["p_gRNA_reads"], label="", 
+                        xlabel="Number of reads per gRNA", 
+                        linecolor="white", 
+                        normalize=:probability,
+                        xtickfontsize=10,ytickfontsize=10,
+                        color=:mediumturquoise, size=(600,350), bins = 25,
+                        ylabel="Relative frequency", 
+                        title="gRNA frequency distribution")
+        display(h1)
+    end
+```
+
+```julia; echo = false
+    using Plots
+    if haskey(WEAVE_ARGS.grna_dict,"p_gRNA_edit")
+        h2 = histogram(WEAVE_ARGS.grna_dict["p_gRNA_edit"], 
+                        normalize = :probability,
+                        linecolor = "white",
+                        label="", 
+                        color=:turquoise4,
+                        xtickfontsize=10,ytickfontsize=10, xlim = (0, 1),
+                        xticks=(0:0.1:1),
+                        bins = 150,
+                        xlabel="gRNA editing efficiency", 
+                        ylabel="Relative frequency", 
+                        title="gRNA genome editing effiency distribution")
+        display(h2)
+    end
+```
+
+```julia; echo = false
+    using Plots
+    if haskey(WEAVE_ARGS.output,"output file")
+        println("Output written to:")
+        println(WEAVE_ARGS.output["output file"])
+    elseif haskey(WEAVE_ARGS.output,"E_sim")
+        E_sim = WEAVE_ARGS.output["E_sim"]
+        sd_sim = WEAVE_ARGS.output["sd_sim"]
+        k = WEAVE_ARGS.args_info["# of gRNAs / combi gRNA/Cas construct"]
+        x = WEAVE_ARGS.args_info["# of target genes in the experiment"]
+        println("**How many plants need to be included in the plant library (on average) to obtain full coverage of all k-combinations of gene knockouts?**")
+        println("On average, ", Int(ceil(E_sim)), " plants need to be sampled at random to observe all ", k, "-combinations of ", x, " gene knockouts. Standard deviation = ", Int(ceil(sd_sim)), " plants")
+    elseif haskey(WEAVE_ARGS.output,"P_sim")
+        p = plot(WEAVE_ARGS.output["pls"], WEAVE_ARGS.output["P_sim"], label="Pₓ₂", 
+                title="Probability of full combinatorial coverage with respect to plant library size",
+                xlabel="N", ylabel="Pₓₖ", 
+                xticks = (0:500:50000, string.(0:500:50000)),
+                size=(900,400), color=:turquoise4, linewidth=2)
+                hline!([0.95], linestyle=:dash, color=:grey, label="Pₓₖ = 0.95", legend=:bottomright)
+        display(p)
+        println("At a given number of plants, what is the probability that all pairwise combinations of gene knockouts are observed?")
+        println("N_95_P: ", WEAVE_ARGS.output["N_95_P"])
+    elseif haskey(WEAVE_ARGS.output,"E_cov")
+        p = plot(WEAVE_ARGS.output["pls"], WEAVE_ARGS.output["E_cov"],
+                label="E[γₓ₂]", title="Expected combinatorial coverage w.r.t. plant library size",
+                xlabel="N", ylabel="E[γₓₖ]", 
+                xticks = (0:500:50000, string.(0:500:50000)),
+                size=(800,400), color=:turquoise4, linewidth=2)
+                hline!([0.95], linestyle=:dash, color=:grey, label="E[γₓₖ] = 0.95", legend=:bottomright)
+        display(p)
+        println("At a given number of plants, what is the expected coverage of pairwise gene knockout combinations?")
+        println("N_95: ", WEAVE_ARGS.output["N_95"])
+    end
+```
+