diff --git a/README.md b/README.md
index 61aed01..395ae43 100644
--- a/README.md
+++ b/README.md
@@ -2,14 +2,17 @@
This repository was used to generate figures for the OOPS Nature Protocols manuscript
+Additionally, a tutorial for identifying changes in RNA binding using OOPS is provided:
+('Identify_changes_in_RNA_binding.Rmd')
+
The repository structure is:
- raw:
-Copies of supplementary data from the original OOPS publication (https://www.nature.com/articles/s41587-018-0001-2)
+ Copies of supplementary data from the original OOPS publication (https://www.nature.com/articles/s41587-018-0001-2)
- notebooks:
-R markdown notebooks to analyse data and generate figures
+ R markdown notebooks
- results/plots:
-Plots from notebooks
+ Plots from notebooks
diff --git a/notebooks/Identify_changes_in_RNA_binding.Rmd b/notebooks/Identify_changes_in_RNA_binding.Rmd
index 17878e7..fad829f 100644
--- a/notebooks/Identify_changes_in_RNA_binding.Rmd
+++ b/notebooks/Identify_changes_in_RNA_binding.Rmd
@@ -273,6 +273,7 @@ p <- limma_results %>%
print(p)
ggsave('../results/plots/rna_binding_changes_volcano.png')
+ggsave('../results/plots/rna_binding_changes_volcano.pdf')
```
diff --git a/notebooks/Identify_changes_in_RNA_binding.nb.html b/notebooks/Identify_changes_in_RNA_binding.nb.html
index 061912c..89a305b 100644
--- a/notebooks/Identify_changes_in_RNA_binding.nb.html
+++ b/notebooks/Identify_changes_in_RNA_binding.nb.html
@@ -2184,12 +2184,18 @@
Identifying changes in RNA binding using a linear m
Saving 9.7 x 6 in image
+
+ggsave('../results/plots/rna_binding_changes_volcano.pdf')
+
+
+Saving 9.7 x 6 in image
+
Of course, the threshold for the fold changes you are interested in depends entirely on your prior expectations. A 2-fold threshold for “biologically” relevant changes will likely be overly conservative in the great majority of cases.
-LS0tCnRpdGxlOiAiSWRlbnRpZnlpbmcgY2hhbmdlcyBpbiBSTkEgYmluZGluZyB1c2luZyBhIGxpbmVhciBtb2RlbCIKb3V0cHV0OgogIHBkZl9kb2N1bWVudDogZGVmYXVsdAogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKaGVhZGVyLWluY2x1ZGVzOgotIFx1c2VwYWNrYWdle3hjb2xvcn0KLSBcdXNlcGFja2FnZXtmcmFtZWR9Ci0tLQoKCkluIHRoaXMgbm90ZWJvb2ssIHdlIHdpbGwgaWRlbnRpZnkgY2hhbmdlcyBpbiBSTkEgYmluZGluZyBmb2xsb3dpbmcgcGFyYWxsZWwgcXVhbnRpZmljYXRpb24gb2YgdGhlICJ0b3RhbCIgYW5kICJSTkEtYm91bmQiIHByb3RlaW4gYWJ1bmRhbmNlIHVzaW5nIHRoZSBPT1BTIHByb3RvY29sLiBXZSBzdGFydCB3aXRoIGEgc2luZ2xlIHByb3RlaW4gYW5kIHVzZSB0aGUgYmFzZSBmdW5jdGlvbiBgbG1gLCB0aGVuIGFwcGx5IHRoaXMgdG8gdGhlIGNvbXBsZXRlIGRhdGFzZXQgdG8gaWRlbnRpZnkgYWxsIHByb3RlaW5zIHdpdGggYSBjaGFuZ2UgaW4gUk5BIGJpbmRpbmcuIEZvbGxvd2luZyB0aGlzLCB3ZSB1c2UgdGhlIGBsaW1tYWAgcGFja2FnZSB0byB0ZXN0IGZvciBSTkEgYmluZGluZyBjaGFuZ2VzIHVzaW5nIGEgbW9kZXJhdGVkIHQtc3RhdGlzdGljLgoKQmVsb3cgd2UgbG9hZCB0aGUgcmVxdWlyZWQgcGFja2FnZXMgYW5kIHNldCBhIHBsb3R0aW5nIHRoZW1lLgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBsb2FkIHBhY2thZ2VzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGJpb2Jyb29tKQpsaWJyYXJ5KE1TbmJhc2UpCmxpYnJhcnkobGltbWEpCgojIHNldCB1cCBzdGFuZGFyZGlzZWQgcGxvdHRpbmcgc2NoZW1lCnRoZW1lX3NldCh0aGVtZV9idyhiYXNlX3NpemUgPSAyMCkgKwogICAgICAgICAgICB0aGVtZShwYW5lbC5ncmlkLm1ham9yPWVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgcGFuZWwuZ3JpZC5taW5vcj1lbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgIGFzcGVjdC5yYXRpbz0xKSkKCmNiUGFsZXR0ZSA8LSBjKCIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsICIjRjBFNDQyIiwKICAgICAgICAgICAgICAgIiMwMDcyQjIiLCAiI0Q1NUUwMCIsICIjQ0M3OUE3IiwgIiM5OTk5OTkiKQpgYGAKCgpXZSBzdGFydCBieSByZWFkaW5nIGluIHRoZSBkYXRhLiBPdXIgaW5wdXQgaGVyZSBpcyB0aGUgcHJvdGVpbi1sZXZlbCBxdWFudGlmaWNhdGlvbiBmb3IgdGhlIE5vY29kYXpvbGUgYXJyZXN0L3JlbGVhc2UgZXhwZXJpbWVudCBjb25kdWN0ZWQgZm9yIHRoZSBPT1BTIE5CVCBwYXBlciAoaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE1ODctMDE4LTAwMDEtMikuIEluIHRoaXMgZXhwZXJpbWVudCwgd2Ugd2FudGVkIHRvIGFzc2VzcyBjaGFuZ2VzIGluIFJOQSBiaW5kaW5nIGluIGFycmVzdGVkL3JlbGVhc2VkIGNlbGxzLiBUbyBkbyB0aGlzLCB3ZSBxdWFudGlmaWVkICJ0b3RhbCIgcHJvdGVpbiBhYnVuZGFuY2UgYW5kIFJOQS1ib3VuZCAoZXh0cmFjdGVkIGJ5IE9PUFMpIHByb3RlaW4gYWJ1bmRhbmNlLiBUaGUgcGVwdGlkZS1sZXZlbCBhYnVuZGFuY2VzIGhhdmUgYmVlbiBhZ2dyZWdhdGVkIHRvIHByb3RlaW4gbGV2ZWwgYWJ1bmRhbmNlIGFuZCBjZW50ZXItbWVkaWFuIG5vcm1hbGlzZWQuIFByb3RlaW5zIHdpdGggbWlzc2luZyB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIE9ubHkgcHJvdGVpbnMgcXVhbnRpZmllZCBpbiBib3RoICJ0b3RhbCIgYW5kICJPT1BTIiBzYW1wbGVzIGFyZSBpbmNsdWRlZC4KClRoZSBpbnB1dCBkYXRhIGhlcmUgaXMgaWRlbnRpY2FsIHRvIHN1cHBsZW1lbnRhcnkgdGFibGUgNSBmcm9tIHRoZSBhYm92ZSBwYXBlci4gCmBgYHtyfQpwcm90ZWluX3F1YW50X3JhdyA8LSByZWFkeGw6OnJlYWRfZXhjZWwoJy4uL3Jhdy9uY2JpXzMwNjA3MDM0X09PUFNfTkJUX3RhYmxlX1M1Lnhsc3gnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQ9Mywgc2tpcD0xLCBuX21heD0xOTE3KSAlPiUKICB0aWJibGU6OmNvbHVtbl90b19yb3duYW1lcygnbWFzdGVyX3Byb3RlaW4nKQoKYGBgCgpXZSB3YW50IHRvIHN0b3JlIHRoaXMgZGF0YSBpbiBhbiBNU25TZXQgc2luY2UgdGhpcyBpcyB0aGUgZGF0YSBzdHJ1Y3R1cmUgb25lIHdvdWxkIG5vcm1hbGx5IHVzZSB0byBzdG9yZSBwcm90ZW9taWNzIGRhdGEgd2l0aGluIFIuCgpBcyBhIHJlbWluZGVyLCB0aGUgYE1TblNldGAgY2xhc3MgbWltaWNzIHRoZSBgRXhwcmVzc2lvblNldGAgY2xhc3MgYW5kIGNvbnRhaW5zIDMgbWF0cmljZXM6CgoxLiBhc3NheSBkYXRhIChvYnRhaW5lZCB2aWE6IGBleHByc2ApCgoyLiBmZWF0dXJlIGRhdGEgKGBmRGF0YWApCgozLiBwaGVub3R5cGUgZGF0YSAoYHBEYXRhYCkKClRoZSBhc3NheSBkYXRhIGlzIHRoZSBxdWFudGlmaWNhdGlvbiBvZiB0aGUgZmVhdHVyZXMgKGNvdWxkIGJlIFBTTXMvcGVwdGlkZXMvcHJvdGVpbnMpIGFuZCBjb250YWlucyBvbmUgY29sdW1uIHBlciBzYW1wbGUKClRoZSBmZWF0dXJlIGRhdGEgZGVzY3JpYmVzIGVhY2ggZmVhdHVyZSwgZS5nIHBlcHRpZGUgc2VxdWVuY2UsIG1hc3RlciBwcm90ZWluIGFjY2Vzc2lvbiwgcmV0ZW50aW9uIHRpbWUgZXRjIGV0YwoKVGhlIHBoZW5vdHlwZSBkYXRhIGRlc2NyaWJlcyB0aGUgc2FtcGxlcwoKCkJlbG93LCB3ZSByZWFkIHRoZSBhYnVuZGFuY2VzIGludG8gdGhlIGFzc2F5IGRhdGEuIFRoZW4gd2UgdGFrZSB0aGUgY29sdW1uIG5hbWVzIG9mIHRoZSBhc3NheSBkYXRhICh0aGUgc2FtcGxlIG5hbWVzKSBhbmQgc2VwYXJhdGUgb3V0IHRoZSBjb21wb25lbnRzIG9mIHRoZXNlIHNhbXBsZSBuYW1lcyB0byBwcm92aWRlIHRoZSBkZXNjcmlwdGlvbnMgZm9yIHRoZSBzYW1wbGVzLiBOb3RlIHRoYXQgd2UgZG8gbm90IGhhdmUgYW55IGZlYXR1cmUgZGF0YSBoZXJlIHNpbmNlIHRoZSBpbnB1dCBkYXRhIGRvZXMgbm90IGRlY3JpYmUgYW55IGFzcGVjdHMgb2YgdGhlIGZlYXR1cmVzIChwcm90ZWlucykuCmBgYHtyfQpwcm90ZWluX3F1YW50IDwtIE1TblNldChleHBycz1hcy5tYXRyaXgocHJvdGVpbl9xdWFudF9yYXcpKQoKcERhdGEocHJvdGVpbl9xdWFudCkgPC0gZGF0YS5mcmFtZShzYW1wbGVfbmFtZT1jb2xuYW1lcyhwcm90ZWluX3F1YW50X3JhdykpICU+JQogIHNlcGFyYXRlKHNhbXBsZV9uYW1lLCBpbnRvPWMoJ3RpbWVwb2ludCcsICdyZXBsaWNhdGUnLCAndHlwZScpLCByZW1vdmU9RkFMU0UpICU+JQogIHRpYmJsZTo6Y29sdW1uX3RvX3Jvd25hbWVzKCJzYW1wbGVfbmFtZSIpCmBgYAoKTGV0J3MgdGFrZSBhIGxvb2sgYXQgb3VyIHByb3RlaW4gcXVhbnRpZmljYXRpb24gZGF0YS4gSWYgd2UgYHByaW50YCB0aGUgb2JqZWN0LCB3ZSBnZXQgYSBzdW1tYXJ5IGluY2x1ZGluZyB0aGUgcHJvY2Vzc2luZyBzdGVwcyBwZXJmb3JtZWQuIAoKSGVyZSB3ZSBoYXZlIDE5MTYgZmVhdHVyZXMgKHByb3RlaW5zKSBxdWFudGlmaWVkIGFjcm9zcyA2IHNhbXBsZXMuIAoKYGBge3J9CnByaW50KHByb3RlaW5fcXVhbnQpCmBgYAoKCkhlcmUncyB0aGUgdG9wIG9mIHRoZSBhc3NheSBkYXRhLgpgYGB7cn0KcHJpbnQoaGVhZChleHBycyhwcm90ZWluX3F1YW50KSwgMikpCmBgYAoKCkFuZCBoZXJlIGlzIHRoZSBwaGVub3R5cGUgZGF0YS4gQXMgd2UgY2FuIHNlZSwgd2UgaGF2ZSAzIHJlcGxpY2F0ZXMgZWFjaCBhbmQgdGhyZWUgdGltZXBvaW50cy4gCmBgYHtyfQpwcmludChwRGF0YShwcm90ZWluX3F1YW50KSkKYGBgCgpGb3Igb3VyIHB1cnBvc2VzLCB3ZSdyZSBvbmx5IGdvaW5nIHRvIGZvY3VzIG9uIHRoZSAwaCBhbmQgNmggdGltZXBvaW50cyBwaGFzZXMgc28gd2UgY2FuIHJlbW92ZSB0aGUgb3RoZXIgZGF0YS4gQmVsb3csIHdlIHN1YnNldCB0byB0aGUgMGggYW5kIDZoIHRpbWVwb2ludHMKYGBge3J9CnByb3RlaW5fcXVhbnQgPC0gcHJvdGVpbl9xdWFudFsscERhdGEocHJvdGVpbl9xdWFudCkkdGltZXBvaW50ICVpbiUgYygnMGgnLCAnNmgnKV0KYGBgCgpUbyBydW4gYGxtYCwgd2Ugd2lsbCBjb252ZXJ0IHRoZSBkYXRhIGZvcm1hdCBpbnRvIGEgInRpZHkiIGxvbmcgZm9ybWF0IGBkYXRhLmZyYW1lYCB1c2luZyBgYmlvYnJvb206OnRpZHkoKWAKYGBge3J9Cgpwcm90ZWluX3F1YW50X2xvbmcgPC0gcHJvdGVpbl9xdWFudCAlPiUgCiAgdGlkeShhZGRQaGVubz1UUlVFKSAgJT4lICMgInRpZHkiIHRoZSBvYmplY3QsIGUuZyBtYWtlIGl0IGludG8gYSB0aWR5IGRhdGEgZm9ybWF0IC0tPiBsb25nCiAgbXV0YXRlKGludGVuc2l0eT12YWx1ZSkgJT4lIGRwbHlyOjpzZWxlY3QoLXZhbHVlKSAjIHJlbmFtZSB0aGUgInZhbHVlIiBjb2x1bW4gLT4gImludGVuc2l0eSIKCmBgYAoKVG9wIG9mIHRoZSBwcm90ZWluIGV4cHJlc3Npb24gYGRhdGEuZnJhbWVgLiBTZWUgaG93IGVhY2ggaW50ZW5zaXR5IHZhbHVlIG5vdyBoYXMgaXQncyBvd24gcm93IHdpdGggdGhlIG90aGVyIGNvbHVtbnMgZGVzY3JpYmluZyB0aGUgYXNzb2NpYXRlZCBhc3BlY3RzIG9mIHRoZSBpbnRlbnNpdHkgdmFsdWUsIGUuZyB0aGUgcHJvdGVpbiBhbmQgZXhwZXJpbWVudGFsIGNvbmRpdGlvbgpgYGB7cn0KcHJpbnQoaGVhZChwcm90ZWluX3F1YW50X2xvbmcpKQpgYGAKCgpXZSB3YW50IHRvIHRlbGwgUiB3aGljaCBpcyB0aGUgb3JkZXIgb2YgdGhlIHZhbHVlcyBpbiB0aGUgY29uZGl0aW9uIGFuZCB0eXBlIGNvbHVtbnMgc28gdGhhdCB0aGUgZm9sZCBjaGFuZ2VzIGFyZSBpbiB0aGUgZXhwZWN0ZWQgZGlyZWN0aW9uLCBlLmcgcG9zaXRpdmUgPSBoaWdoZXIgaW4gNmggdnMgMGguCmBgYHtyfQpwcm90ZWluX3F1YW50X2xvbmckdGltZXBvaW50IDwtIGZhY3Rvcihwcm90ZWluX3F1YW50X2xvbmckdGltZXBvaW50LCBsZXZlbHM9YygiMGgiLCAiNmgiKSkKcHJvdGVpbl9xdWFudF9sb25nJHR5cGUgPC0gZmFjdG9yKHByb3RlaW5fcXVhbnRfbG9uZyR0eXBlLCBsZXZlbHM9YygidG90YWwiLCAiT09QUyIpKQoKYGBgCgoKCk5vdyB3ZSBtb2RlbCB0aGUgcHJvdGVpbiBpbnRlbnNpdHkgYWNjb3JkaW5nIHRvIHRoZSBtb2RlbHMgZGVzY3JpYmVkIGluIGAxX3NpbXBsZV9leGFtcGxlX3ZkLlJtZGAuIEFzIGFuIGV4YW1wbGUsIGxldCdzIHNlZSB0aGUgcmVzdWx0cyBmcm9tIGp1c3QgYXBwbHlpbmcgdGhlIG1vZGVscyB0byBhIHNpbmdsZSBVbmlwcm90SUQuCmBgYHtyLCBvdXQud2lkdGggPSAnNzAlJ30KcHJvdGVpbl9xdWFudF9sb25nICU+JSBmaWx0ZXIocHJvdGVpbiA9PSAnQTBBVlQxJykgJT4lCiAgZ2dwbG90KGFlcyh0aW1lcG9pbnQsIGludGVuc2l0eSwgZ3JvdXA9MSkpICsKICBnZW9tX3BvaW50KHNpemU9MikgKwogIHN0YXRfc3VtbWFyeShnZW9tPSJsaW5lIiwgZnVuLnk9bWVhbikgKwogIHhsYWIoIiIpICsKICBmYWNldF93cmFwKH50eXBlKQoKZml0IDwtIHByb3RlaW5fcXVhbnRfbG9uZyAlPiUgZmlsdGVyKHByb3RlaW4gPT0gJ0EwQVZUMScpICU+JQogIGxtKGZvcm11bGE9aW50ZW5zaXR5fnRpbWVwb2ludCp0eXBlKQoKcHJpbnQoc3VtbWFyeShmaXQpKQoKYGBgCgpXZSBjYW4gc2VlIHRoYXQgdGhlIG1vZGVsIGZpdHMgdGhlIGRhdGEgd2VsbCAoIk11bHRpcGxlIFItc3F1YXJlZDogIDAuOTY3MywJQWRqdXN0ZWQgUi1zcXVhcmVkOiAgMC45NTUgIikuIFdlIGNhbiBzZWUgdGhhdCB0aGUgaW50ZXJhY3Rpb24gdGVybSB0aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4gZm9yIGNoYW5nZXMgaW4gUk5BIGJpbmRpbmcgKCJ0aW1lcG9pbnQ2aDp0eXBlT09QUyIpIHNpZ25pZmljYW50bHkgZGV2aWF0ZXMgZnJvbSB6ZXJvLgoKQmVsb3csIHdlIG1ha2UgYSBmdW5jdGlvbiB0byBydW4gdGhlIGxpbmVhciBtb2RlbCBmb3IgYSBzaW5nbGUgcHJvdGVpbgpgYGB7cn0KQ2hhbmdlX2luX1JOQV9iaW5kaW5nX0xNIDwtIGZ1bmN0aW9uKG9iail7CiAgCiAgZml0IDwtIG9iaiAlPiUgbG0oZm9ybXVsYT1pbnRlbnNpdHkgfiB0aW1lcG9pbnQgKyB0eXBlICsgdGltZXBvaW50KnR5cGUpCiAgCiAgZml0X3ZhbHVlcyA8LSBjKGNvZWYoc3VtbWFyeShmaXQpKVsidGltZXBvaW50Nmg6dHlwZU9PUFMiLF0sCiAgICAgICAgICAgICAgICAgIHN1bW1hcnkoZml0KSRhZGouci5zcXVhcmVkKQogIAogIG5hbWVzKGZpdF92YWx1ZXMpIDwtIGMoImxtX2ZvbGRfY2hhbmdlIiwgImxtX3N0ZF9lcnJvciIsICJsbV90X3ZhbHVlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICJsbV9wX3ZhbHVlIiwgImxtX2Fkal9SX3NxdWFyZWQiKQogIGZpdF92YWx1ZXMgPC0gYXMuZGF0YS5mcmFtZSh0KGZpdF92YWx1ZXMpLCBzdHJpbmdzQXNGYWN0b3JzPUZBTFNFKQogIAogIHJldHVybihmaXRfdmFsdWVzKQp9CgpgYGAKClRlc3RpbmcgdGhlIGFib3ZlIGZ1bmN0aW9uIHdpdGggb3VyIGV4YW1wbGUgcHJvdGVpbgpgYGB7cn0KcHJvdGVpbl9xdWFudF9sb25nICU+JSBmaWx0ZXIocHJvdGVpbiA9PSAnQTBBVlQxJykgJT4lIENoYW5nZV9pbl9STkFfYmluZGluZ19MTSgpCmBgYAoKQmVsb3csIHdlIG1ha2UgYSBmdW5jdGlvbiB0byBydW4gdGhlIGBDaGFuZ2VfaW5fUk5BX2JpbmRpbmdfTE0gKClgIGZ1bmN0aW9uIG9uIGFsbCBwcm90ZWlucyBpbiB0dXJuIHVzaW5nIGRwbHlyLiBXZSB3aWxsIHVzZSB0aGUgc3RhbmRhcmQgQmVuamFtaW5pLUhvY2hiZXJnIG1ldGhvZCB0byBhZGp1c3QgcC12YWx1ZXMgZm9yIHRoZSBtdWx0aXBsZSB0ZXN0cyB3ZSBoYXZlIGNvbmR1Y3RlZC4KYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CnJ1bkxNIDwtIGZ1bmN0aW9uKG9iail7CiAgcmVzdWx0cyA8LSBvYmogJT4lCiAgICBncm91cF9ieShwcm90ZWluKSAlPiUgIyBncm91cCB0aGUgZGF0YSBmcmFtZSBieSB0aGUgdW5pcXVlIHByb3RlaW4gdmFsdWVzCiAgICAjIEFwcGx5IHRoZSBDaGFuZ2VfaW5fUk5BX2JpbmRpbmdfTE0gZnVuY3Rpb25zIHRvIGVhY2ggZ3JvdXA7ICIuIiBoZXJlIGlzIHRoZSB3aG9sZSBkYXRhIGZyYW1lIAogICAgZG8oQ2hhbmdlX2luX1JOQV9iaW5kaW5nX0xNKC4pKQoKICByZXN1bHRzJGxtX0JIIDwtIHAuYWRqdXN0KHJlc3VsdHMkbG1fcF92YWx1ZSwgbWV0aG9kPSJCSCIpIyBGRFIgCiAgCiAgcmV0dXJuKHJlc3VsdHMpCiAgIAp9CgpsbV9yZXN1bHRzIDwtIHByb3RlaW5fcXVhbnRfbG9uZyAgJT4lIHJ1bkxNKCkKCmBgYAoKQmVsb3csIHdlIHBsb3QgdGhlIHAtdmFsdWVzLiBVbmRlciB0aGUgbnVsbCBoeXBvdGhlc2lzIHRoZXkgc2hvdWxkIHNob3cgYW4gYXBwcm94aW1hdGVseSB1bmlmb3JtIGRpc3RyaWJ1dGlvbi4gSWYgdGhlcmUgd2VyZSBhIGxhcmdlIG51bWJlciBvZiBwcm90ZWlucyB3aXRoIGEgc2lnbmlmaWNhbnQgY2hhbmdlIGluIFJOQSBiaW5kaW5nLCB3ZSB3b3VsZCBleHBlY3QgYW4gYWRkaXRpb25hbCAic3Bpa2UiIHdpdGggbG93IHAtdmFsdWVzICg8MC4wNSkuIFdlIHNlZSBhbiBhcHByb3hpbWF0ZWx5IHVuaWZvcm0gZGlzdHJpYnV0aW9uIHdpdGggYSBsYXJnZSAnc3Bpa2UnIG9mIGxvdyBwLXZhbHVlcyBidXQgYWxzbyBhIHNsaWdodCBza2V3IHRvd2FyZHMgbG93IHAtdmFsdWUuIFRoaXMgbWF5IGluZGljYXRlIHRoZSBwcmVzZW5jZSBvZiBjaGFuZ2VzIGluIFJOQSBiaW5kaW5nIHdoaWNoIHdlIGFyZSBpbnN1ZmZpY2llbnRseSBwb3dlcmVkIHRvIGRldGVjdC4KYGBge3IsIG91dC53aWR0aCA9ICc1MCUnfQpsbV9yZXN1bHRzICU+JSBnZ3Bsb3QoYWVzKGxtX3BfdmFsdWUpKSArIGdlb21faGlzdG9ncmFtKGJpbnM9MjApCmBgYCAKCgpXZSBjYW4gdXNlIGEgdm9sY2FubyBwbG90IHRvIHRha2UgYSBsb29rIGF0IHRoZSBlc3RpbWF0ZWQgZm9sZCBjaGFuZ2VzIGFuZCBhc3NvY2lhdGVkIHAtdmFsdWVzCmBgYHtyLCBvdXQud2lkdGggPSAnNTAlJ30KCgpsbV9yZXN1bHRzICU+JQogIG11dGF0ZShzaWc9aWZlbHNlKGxtX0JIPDAuMDEsICJTaWcuIiwgIk5vdCBzaWcuIikpICU+JSAjIGFkZCAic2lnIiBjb2x1bW4KICBnZ3Bsb3QoYWVzKHg9bG1fZm9sZF9jaGFuZ2UsIHk9LWxvZzEwKGxtX3BfdmFsdWUpLCBjb2xvdXI9c2lnKSkgKwogIGdlb21fcG9pbnQoc2l6ZT0wLjI1KSArIAogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzPWMoImJsYWNrIiwgY2JQYWxldHRlWzZdKSwgbmFtZT0iIikgKyAjIG1hbnVhbGx5IGFkanVzdCBjb2xvdXJzCiAgeGxhYigiRm9sZCBjaGFuZ2UgKGxvZzIpIikgKyB5bGFiKCItbG9nMTAocC12YWx1ZSkiKSAjIG1hbnVhbCBheGVzIGxhYmVscwoKYGBgCgpOb3csIGxldCdzIGFwcGx5IGBsaW1tYWAgdG8gcGVyZm9ybWVkIGEgbW9kZXJhdGVkIHZlcnNpb24gb2YgdGhlIGFib3ZlIGxpbmVhciBtb2RlbGluZy4gRm9yIGEgZnVsbCBleHBsYW5hdGlvbiBvZiB0aGUgc3RlcHMgaW4gYSBgbGltbWFgIGFuYWx5c2lzLCBzZWU6IGh0dHBzOi8vYmlvY29uZHVjdG9yLm9yZy9wYWNrYWdlcy9yZWxlYXNlL2Jpb2MvdmlnbmV0dGVzL2xpbW1hL2luc3QvZG9jL3VzZXJzZ3VpZGUucGRmCgpGaXJzdCBvZiBhbGwgd2UgbmVlZCB0byBjcmVhdGUgYSBkZXNpZ24gbWF0cml4LiBXZSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBgcERhdGFgIHNpbmNlIHRoaXMgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzYW1wbGVzCgpgYGB7cn0KdGltZXBvaW50IDwtIGZhY3Rvcihwcm90ZWluX3F1YW50JHRpbWVwb2ludCwgbGV2ZWxzPWMoIjBoIiwgIjZoIikpCnR5cGUgPC0gZmFjdG9yKHByb3RlaW5fcXVhbnQkdHlwZSwgbGV2ZWxzPWMoInRvdGFsIiwgIk9PUFMiKSkKCmRlc2lnbiA8LSBtb2RlbC5tYXRyaXgofnRpbWVwb2ludCp0eXBlKSAKCmxpbW1hX2ZpdF9yZXN1bHRzIDwtIGxtRml0KHByb3RlaW5fcXVhbnQsIGRlc2lnbikKCmxpbW1hX2ZpdF9yZXN1bHRzIDwtIGNvbnRyYXN0cy5maXQobGltbWFfZml0X3Jlc3VsdHMsIGNvZWZmaWNpZW50cz0idGltZXBvaW50Nmg6dHlwZU9PUFMiKQoKbGltbWFfZml0X3Jlc3VsdHMgPC0gZUJheWVzKGxpbW1hX2ZpdF9yZXN1bHRzLCB0cmVuZD1UUlVFLCByb2J1c3Q9VFJVRSkgIyBCYXllc2lhbiBzaHJpbmthZ2UKYGBgCgpWaXN1YWxpc2luZyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvdGVpbiBhYnVuZGFuY2UgYW5kIHZhcmlhYmlsaXR5CmBgYHtyLCBvdXQud2lkdGggPSAnNzAlJ30KcGxvdFNBKGxpbW1hX2ZpdF9yZXN1bHRzKQpgYGAKCkJlbG93LCB3ZSBzdW1tYXJpc2UgdGhlIG51bWJlciBvZiBzaWduZmljYW50IHAtdmFsdWVzIChwb3N0IEJIIEZEUiBjb3JyZWN0aW9uKSB1c2luZyBhIDElIEZEUiB0aHJlc2hvbGQuIApgYGB7cn0Kc3VtbWFyeShkZWNpZGVUZXN0cyhsaW1tYV9maXRfcmVzdWx0cywgcC52YWx1ZT0wLjAxLCBhZGp1c3QubWV0aG9kPSJCSCIpKQpgYGAKCkJlbG93LCB3ZSBleHRyYWN0IHRoZSBsaW1tYSByZXN1bHRzCmBgYHtyLCBvdXQud2lkdGggPSAnNjAlJ30KbGltbWFfcmVzdWx0cyA8LSB0b3BUYWJsZShsaW1tYV9maXRfcmVzdWx0cywgY29lZiA9ICJ0aW1lcG9pbnQ2aDp0eXBlT09QUyIsIG4gPSBJbmYsIGNvbmZpbnQ9VFJVRSkKYGBgCgpBbmQgdGhlbiBtYWtlIHRoZSB2b2xjYW5vIHBsb3QgZm9yIHRoZSBgbGltbWFgIFJOQSBiaW5kaW5nIGNoYW5nZXMKYGBge3IsIG91dC53aWR0aCA9ICc3MCUnfQpsaW1tYV9yZXN1bHRzICU+JQogIG11dGF0ZShzaWc9aWZlbHNlKGFkai5QLlZhbDwwLjAxLCAiU2lnLiIsICJOb3Qgc2lnLiIpKSAlPiUgIyBhZGQgInNpZyIgY29sdW1uCiAgZ2dwbG90KGFlcyh4PWxvZ0ZDLCB5PS1sb2cxMChQLlZhbHVlKSwgY29sb3VyPXNpZykpICsKICBnZW9tX3BvaW50KHNpemU9MC4yNSkgKyAKICBzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcz1jKCJibGFjayIsIGNiUGFsZXR0ZVs2XSksIG5hbWU9IiIpICsgIyBtYW51YWxseSBhZGp1c3QgY29sb3VycwogIHhsYWIoIkZvbGQgY2hhbmdlIChsb2cyKSIpICsgeWxhYigiLWxvZzEwKHAtdmFsdWUpIikgIyBtYW51YWwgYXhlcyBsYWJlbHMKCmBgYAoKCkZpbmFsbHksIHdlIGNhbiBnZXQgYGxpbW1hYCB0byByZXR1cm4gdGhlIHNpZ25maWNhbnQgY2hhbmdlcyB1c2luZyBib3RoIHAtdmFsdWUgYW5kIGxvZy1mb2xkIGNoYW5nZSB0aHJlc2hvbGRzIHVzaW5nIHRoZSBUUkVBVCBtZXRob2QgdG8gZXhwbGljdGx5IHRlc3QgdGhlIG51bGwgaHlwb3RoZXNpcyB0aGF0IHRoZSBmb2xkIGNoYW5nZSBpcyBsZXNzIHRoYW4gb3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuICAoaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMTkxNzY1NTMpLiAKCgpgYGB7cn0KIyBUZXN0IG51bGwgaHlwb3RoZXNpcyB0aGFuIGNoYW5nZSBpcyA8Mi1mb2xkIApsaW1tYV9yZXN1bHRzX3RyZWF0IDwtIHRyZWF0KGxpbW1hX2ZpdF9yZXN1bHRzLGxmYz0xKSAKCiMgc3Vic2V0IHRvIHByb3RlaW5zIHBhc3NpbmcgdGhlIDElIEZEUiB0aHJlc2hvbGQgZm9yIGFic29sdXRlIGZvbGQgY2hhbmdlID4gMgpsaW1tYV9yZXN1bHRzX3RyZWF0X3NpZyA8LSB0b3BUcmVhdChsaW1tYV9yZXN1bHRzX3RyZWF0LCBjb2VmID0gInRpbWVwb2ludDZoOnR5cGVPT1BTIiwgbiA9IEluZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLnZhbHVlPTAuMDEsIGxmYz0xLCBhZGp1c3QubWV0aG9kPSJmZHIiLCBjb25maW50PTAuOTUpCgpgYGAKCkFuZCBiZWxvdyB3ZSByZXByb2R1Y2Ugb3VyIHZvbGNhbm8gcGxvdCBpbmNsdWRpbmcgdGhlIDk1JSBjb25maWRlbmNlIGludGVydmFsIGFuZCBoaWdobGlnaHQgdGhvc2UgcHJvdGVpbnMgd2hpY2ggaGF2ZSA8IDElIEZEUiBhbmQgYW4gYWJzb2x1dGUgZm9sZCBjaGFuZ2Ugc2lnbmlmaWNhbnRseSBncmVhdGVyIHRoYW4gMi4gV2UgY2FuIHNlZSB0aGF0IG1hbnkgb2YgdGhlIHByb3RlaW5zIHdpdGggYSBmb2xkIGNoYW5nZSAoRkMpIHBvaW50IGVzdGltYXRlID4gMiBoYXZlIGEgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgdGhhdCBvdmVybGFwcyB0aGUgZGFzaGVkIGxpbmVzIGZvciA+Mi1mb2xkIGNoYW5nZS4gVFJFQVQgYWxzbyB0YWtlcyB0aGUgbXVsdGlwbGUgdGVzdGluZyBpbnRvIGFjY291bnQgc28gaXQncyBldmVuIG1vcmUgY29uc2VydmF0aXZlIHRoYW4ganVzdCB1c2luZyB0aGUgOTUlIENJIHNob3duIGJlbG93LgoKYGBge3IsIGZpZy5oZWlnaHQ9NiwgZmlkLndpZHRoPTYsIG91dC53aWR0aCA9ICc2MCUnfQoKbGltbWFfcmVzdWx0cyRzaWcgPC0gaWZlbHNlKGxpbW1hX3Jlc3VsdHMkUC5WYWx1ZTw9MC4wMSwgIlNpZy4gY2hhbmdlIChGQyA+IDE7IDwxJSBGRFIpIiwgIj4xJSBGRFIiKSAjIGFkZCAic2lnIiBjb2x1bW4KbGltbWFfcmVzdWx0cyRzaWdbCiAgcm93bmFtZXMobGltbWFfcmVzdWx0cykgJWluJSByb3duYW1lcyhsaW1tYV9yZXN1bHRzX3RyZWF0X3NpZyldIDwtICJTaWcuIGNoYW5nZSAoRkMgPiAyOyA8MSUgRkRSKSIKCmxpbW1hX3Jlc3VsdHMkU0UgPC0gc3FydChsaW1tYV9maXRfcmVzdWx0cyRzMi5wb3N0KSAqIGxpbW1hX2ZpdF9yZXN1bHRzJHN0ZGV2LnVuc2NhbGVkWywxXQoKcCA8LSBsaW1tYV9yZXN1bHRzICU+JQogIGdncGxvdChhZXMobG9nRkMsIC1sb2cxMChQLlZhbHVlKSwgY29sb3VyPXNpZykpICsKICBnZW9tX3BvaW50KHNpemU9MC41KSArCiAgZ2VvbV9lcnJvcmJhcmgoYWVzKHhtaW49Q0kuTCwgeG1heD1DSS5SKSwgYWxwaGE9MC4zLCBzaXplPTAuNSkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzPWMoImdyZXkyMCIsIGNiUGFsZXR0ZVtjKDIsNildKSwgbmFtZT0iIikgKyAjIG1hbnVhbGx5IGFkanVzdCBjb2xvdXJzCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTEsIGxpbmV0eXBlPTIsIGNvbG91cj0iZ3JleTcwIikgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdD0tMSwgbGluZXR5cGU9MiwgY29sb3VyPSJncmV5NzAiKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJ0b3AiLCBsZWdlbmQuZGlyZWN0aW9uPTIpICsKICB4bGFiKCdGb2xkIGNoYW5nZSAobG9nMiknKSArCiAgeWxhYignLWxvZzEwKFAtdmFsdWUpJykKICAKcHJpbnQocCkKZ2dzYXZlKCcuLi9yZXN1bHRzL3Bsb3RzL3JuYV9iaW5kaW5nX2NoYW5nZXNfdm9sY2Fuby5wbmcnKQpgYGAKCgpPZiBjb3Vyc2UsIHRoZSB0aHJlc2hvbGQgZm9yIHRoZSBmb2xkIGNoYW5nZXMgeW91IGFyZSBpbnRlcmVzdGVkIGluIGRlcGVuZHMgZW50aXJlbHkgb24geW91ciBwcmlvciBleHBlY3RhdGlvbnMuIEEgMi1mb2xkIHRocmVzaG9sZCBmb3IgImJpb2xvZ2ljYWxseSIgcmVsZXZhbnQgY2hhbmdlcyB3aWxsIGxpa2VseSBiZSBvdmVybHkgY29uc2VydmF0aXZlIGluIHRoZSBncmVhdCBtYWpvcml0eSBvZiBjYXNlcy4KCgoKCg==
+LS0tCnRpdGxlOiAiSWRlbnRpZnlpbmcgY2hhbmdlcyBpbiBSTkEgYmluZGluZyB1c2luZyBhIGxpbmVhciBtb2RlbCIKb3V0cHV0OgogIHBkZl9kb2N1bWVudDogZGVmYXVsdAogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKaGVhZGVyLWluY2x1ZGVzOgotIFx1c2VwYWNrYWdle3hjb2xvcn0KLSBcdXNlcGFja2FnZXtmcmFtZWR9Ci0tLQoKCkluIHRoaXMgbm90ZWJvb2ssIHdlIHdpbGwgaWRlbnRpZnkgY2hhbmdlcyBpbiBSTkEgYmluZGluZyBmb2xsb3dpbmcgcGFyYWxsZWwgcXVhbnRpZmljYXRpb24gb2YgdGhlICJ0b3RhbCIgYW5kICJSTkEtYm91bmQiIHByb3RlaW4gYWJ1bmRhbmNlIHVzaW5nIHRoZSBPT1BTIHByb3RvY29sLiBXZSBzdGFydCB3aXRoIGEgc2luZ2xlIHByb3RlaW4gYW5kIHVzZSB0aGUgYmFzZSBmdW5jdGlvbiBgbG1gLCB0aGVuIGFwcGx5IHRoaXMgdG8gdGhlIGNvbXBsZXRlIGRhdGFzZXQgdG8gaWRlbnRpZnkgYWxsIHByb3RlaW5zIHdpdGggYSBjaGFuZ2UgaW4gUk5BIGJpbmRpbmcuIEZvbGxvd2luZyB0aGlzLCB3ZSB1c2UgdGhlIGBsaW1tYWAgcGFja2FnZSB0byB0ZXN0IGZvciBSTkEgYmluZGluZyBjaGFuZ2VzIHVzaW5nIGEgbW9kZXJhdGVkIHQtc3RhdGlzdGljLgoKQmVsb3cgd2UgbG9hZCB0aGUgcmVxdWlyZWQgcGFja2FnZXMgYW5kIHNldCBhIHBsb3R0aW5nIHRoZW1lLgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBsb2FkIHBhY2thZ2VzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGJpb2Jyb29tKQpsaWJyYXJ5KE1TbmJhc2UpCmxpYnJhcnkobGltbWEpCgojIHNldCB1cCBzdGFuZGFyZGlzZWQgcGxvdHRpbmcgc2NoZW1lCnRoZW1lX3NldCh0aGVtZV9idyhiYXNlX3NpemUgPSAyMCkgKwogICAgICAgICAgICB0aGVtZShwYW5lbC5ncmlkLm1ham9yPWVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgcGFuZWwuZ3JpZC5taW5vcj1lbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgIGFzcGVjdC5yYXRpbz0xKSkKCmNiUGFsZXR0ZSA8LSBjKCIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsICIjRjBFNDQyIiwKICAgICAgICAgICAgICAgIiMwMDcyQjIiLCAiI0Q1NUUwMCIsICIjQ0M3OUE3IiwgIiM5OTk5OTkiKQpgYGAKCgpXZSBzdGFydCBieSByZWFkaW5nIGluIHRoZSBkYXRhLiBPdXIgaW5wdXQgaGVyZSBpcyB0aGUgcHJvdGVpbi1sZXZlbCBxdWFudGlmaWNhdGlvbiBmb3IgdGhlIE5vY29kYXpvbGUgYXJyZXN0L3JlbGVhc2UgZXhwZXJpbWVudCBjb25kdWN0ZWQgZm9yIHRoZSBPT1BTIE5CVCBwYXBlciAoaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE1ODctMDE4LTAwMDEtMikuIEluIHRoaXMgZXhwZXJpbWVudCwgd2Ugd2FudGVkIHRvIGFzc2VzcyBjaGFuZ2VzIGluIFJOQSBiaW5kaW5nIGluIGFycmVzdGVkL3JlbGVhc2VkIGNlbGxzLiBUbyBkbyB0aGlzLCB3ZSBxdWFudGlmaWVkICJ0b3RhbCIgcHJvdGVpbiBhYnVuZGFuY2UgYW5kIFJOQS1ib3VuZCAoZXh0cmFjdGVkIGJ5IE9PUFMpIHByb3RlaW4gYWJ1bmRhbmNlLiBUaGUgcGVwdGlkZS1sZXZlbCBhYnVuZGFuY2VzIGhhdmUgYmVlbiBhZ2dyZWdhdGVkIHRvIHByb3RlaW4gbGV2ZWwgYWJ1bmRhbmNlIGFuZCBjZW50ZXItbWVkaWFuIG5vcm1hbGlzZWQuIFByb3RlaW5zIHdpdGggbWlzc2luZyB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIE9ubHkgcHJvdGVpbnMgcXVhbnRpZmllZCBpbiBib3RoICJ0b3RhbCIgYW5kICJPT1BTIiBzYW1wbGVzIGFyZSBpbmNsdWRlZC4KClRoZSBpbnB1dCBkYXRhIGhlcmUgaXMgaWRlbnRpY2FsIHRvIHN1cHBsZW1lbnRhcnkgdGFibGUgNSBmcm9tIHRoZSBhYm92ZSBwYXBlci4gCmBgYHtyfQpwcm90ZWluX3F1YW50X3JhdyA8LSByZWFkeGw6OnJlYWRfZXhjZWwoJy4uL3Jhdy9uY2JpXzMwNjA3MDM0X09PUFNfTkJUX3RhYmxlX1M1Lnhsc3gnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQ9Mywgc2tpcD0xLCBuX21heD0xOTE3KSAlPiUKICB0aWJibGU6OmNvbHVtbl90b19yb3duYW1lcygnbWFzdGVyX3Byb3RlaW4nKQoKYGBgCgpXZSB3YW50IHRvIHN0b3JlIHRoaXMgZGF0YSBpbiBhbiBNU25TZXQgc2luY2UgdGhpcyBpcyB0aGUgZGF0YSBzdHJ1Y3R1cmUgb25lIHdvdWxkIG5vcm1hbGx5IHVzZSB0byBzdG9yZSBwcm90ZW9taWNzIGRhdGEgd2l0aGluIFIuCgpBcyBhIHJlbWluZGVyLCB0aGUgYE1TblNldGAgY2xhc3MgbWltaWNzIHRoZSBgRXhwcmVzc2lvblNldGAgY2xhc3MgYW5kIGNvbnRhaW5zIDMgbWF0cmljZXM6CgoxLiBhc3NheSBkYXRhIChvYnRhaW5lZCB2aWE6IGBleHByc2ApCgoyLiBmZWF0dXJlIGRhdGEgKGBmRGF0YWApCgozLiBwaGVub3R5cGUgZGF0YSAoYHBEYXRhYCkKClRoZSBhc3NheSBkYXRhIGlzIHRoZSBxdWFudGlmaWNhdGlvbiBvZiB0aGUgZmVhdHVyZXMgKGNvdWxkIGJlIFBTTXMvcGVwdGlkZXMvcHJvdGVpbnMpIGFuZCBjb250YWlucyBvbmUgY29sdW1uIHBlciBzYW1wbGUKClRoZSBmZWF0dXJlIGRhdGEgZGVzY3JpYmVzIGVhY2ggZmVhdHVyZSwgZS5nIHBlcHRpZGUgc2VxdWVuY2UsIG1hc3RlciBwcm90ZWluIGFjY2Vzc2lvbiwgcmV0ZW50aW9uIHRpbWUgZXRjIGV0YwoKVGhlIHBoZW5vdHlwZSBkYXRhIGRlc2NyaWJlcyB0aGUgc2FtcGxlcwoKCkJlbG93LCB3ZSByZWFkIHRoZSBhYnVuZGFuY2VzIGludG8gdGhlIGFzc2F5IGRhdGEuIFRoZW4gd2UgdGFrZSB0aGUgY29sdW1uIG5hbWVzIG9mIHRoZSBhc3NheSBkYXRhICh0aGUgc2FtcGxlIG5hbWVzKSBhbmQgc2VwYXJhdGUgb3V0IHRoZSBjb21wb25lbnRzIG9mIHRoZXNlIHNhbXBsZSBuYW1lcyB0byBwcm92aWRlIHRoZSBkZXNjcmlwdGlvbnMgZm9yIHRoZSBzYW1wbGVzLiBOb3RlIHRoYXQgd2UgZG8gbm90IGhhdmUgYW55IGZlYXR1cmUgZGF0YSBoZXJlIHNpbmNlIHRoZSBpbnB1dCBkYXRhIGRvZXMgbm90IGRlY3JpYmUgYW55IGFzcGVjdHMgb2YgdGhlIGZlYXR1cmVzIChwcm90ZWlucykuCmBgYHtyfQpwcm90ZWluX3F1YW50IDwtIE1TblNldChleHBycz1hcy5tYXRyaXgocHJvdGVpbl9xdWFudF9yYXcpKQoKcERhdGEocHJvdGVpbl9xdWFudCkgPC0gZGF0YS5mcmFtZShzYW1wbGVfbmFtZT1jb2xuYW1lcyhwcm90ZWluX3F1YW50X3JhdykpICU+JQogIHNlcGFyYXRlKHNhbXBsZV9uYW1lLCBpbnRvPWMoJ3RpbWVwb2ludCcsICdyZXBsaWNhdGUnLCAndHlwZScpLCByZW1vdmU9RkFMU0UpICU+JQogIHRpYmJsZTo6Y29sdW1uX3RvX3Jvd25hbWVzKCJzYW1wbGVfbmFtZSIpCmBgYAoKTGV0J3MgdGFrZSBhIGxvb2sgYXQgb3VyIHByb3RlaW4gcXVhbnRpZmljYXRpb24gZGF0YS4gSWYgd2UgYHByaW50YCB0aGUgb2JqZWN0LCB3ZSBnZXQgYSBzdW1tYXJ5IGluY2x1ZGluZyB0aGUgcHJvY2Vzc2luZyBzdGVwcyBwZXJmb3JtZWQuIAoKSGVyZSB3ZSBoYXZlIDE5MTYgZmVhdHVyZXMgKHByb3RlaW5zKSBxdWFudGlmaWVkIGFjcm9zcyA2IHNhbXBsZXMuIAoKYGBge3J9CnByaW50KHByb3RlaW5fcXVhbnQpCmBgYAoKCkhlcmUncyB0aGUgdG9wIG9mIHRoZSBhc3NheSBkYXRhLgpgYGB7cn0KcHJpbnQoaGVhZChleHBycyhwcm90ZWluX3F1YW50KSwgMikpCmBgYAoKCkFuZCBoZXJlIGlzIHRoZSBwaGVub3R5cGUgZGF0YS4gQXMgd2UgY2FuIHNlZSwgd2UgaGF2ZSAzIHJlcGxpY2F0ZXMgZWFjaCBhbmQgdGhyZWUgdGltZXBvaW50cy4gCmBgYHtyfQpwcmludChwRGF0YShwcm90ZWluX3F1YW50KSkKYGBgCgpGb3Igb3VyIHB1cnBvc2VzLCB3ZSdyZSBvbmx5IGdvaW5nIHRvIGZvY3VzIG9uIHRoZSAwaCBhbmQgNmggdGltZXBvaW50cyBwaGFzZXMgc28gd2UgY2FuIHJlbW92ZSB0aGUgb3RoZXIgZGF0YS4gQmVsb3csIHdlIHN1YnNldCB0byB0aGUgMGggYW5kIDZoIHRpbWVwb2ludHMKYGBge3J9CnByb3RlaW5fcXVhbnQgPC0gcHJvdGVpbl9xdWFudFsscERhdGEocHJvdGVpbl9xdWFudCkkdGltZXBvaW50ICVpbiUgYygnMGgnLCAnNmgnKV0KYGBgCgpUbyBydW4gYGxtYCwgd2Ugd2lsbCBjb252ZXJ0IHRoZSBkYXRhIGZvcm1hdCBpbnRvIGEgInRpZHkiIGxvbmcgZm9ybWF0IGBkYXRhLmZyYW1lYCB1c2luZyBgYmlvYnJvb206OnRpZHkoKWAKYGBge3J9Cgpwcm90ZWluX3F1YW50X2xvbmcgPC0gcHJvdGVpbl9xdWFudCAlPiUgCiAgdGlkeShhZGRQaGVubz1UUlVFKSAgJT4lICMgInRpZHkiIHRoZSBvYmplY3QsIGUuZyBtYWtlIGl0IGludG8gYSB0aWR5IGRhdGEgZm9ybWF0IC0tPiBsb25nCiAgbXV0YXRlKGludGVuc2l0eT12YWx1ZSkgJT4lIGRwbHlyOjpzZWxlY3QoLXZhbHVlKSAjIHJlbmFtZSB0aGUgInZhbHVlIiBjb2x1bW4gLT4gImludGVuc2l0eSIKCmBgYAoKVG9wIG9mIHRoZSBwcm90ZWluIGV4cHJlc3Npb24gYGRhdGEuZnJhbWVgLiBTZWUgaG93IGVhY2ggaW50ZW5zaXR5IHZhbHVlIG5vdyBoYXMgaXQncyBvd24gcm93IHdpdGggdGhlIG90aGVyIGNvbHVtbnMgZGVzY3JpYmluZyB0aGUgYXNzb2NpYXRlZCBhc3BlY3RzIG9mIHRoZSBpbnRlbnNpdHkgdmFsdWUsIGUuZyB0aGUgcHJvdGVpbiBhbmQgZXhwZXJpbWVudGFsIGNvbmRpdGlvbgpgYGB7cn0KcHJpbnQoaGVhZChwcm90ZWluX3F1YW50X2xvbmcpKQpgYGAKCgpXZSB3YW50IHRvIHRlbGwgUiB3aGljaCBpcyB0aGUgb3JkZXIgb2YgdGhlIHZhbHVlcyBpbiB0aGUgY29uZGl0aW9uIGFuZCB0eXBlIGNvbHVtbnMgc28gdGhhdCB0aGUgZm9sZCBjaGFuZ2VzIGFyZSBpbiB0aGUgZXhwZWN0ZWQgZGlyZWN0aW9uLCBlLmcgcG9zaXRpdmUgPSBoaWdoZXIgaW4gNmggdnMgMGguCmBgYHtyfQpwcm90ZWluX3F1YW50X2xvbmckdGltZXBvaW50IDwtIGZhY3Rvcihwcm90ZWluX3F1YW50X2xvbmckdGltZXBvaW50LCBsZXZlbHM9YygiMGgiLCAiNmgiKSkKcHJvdGVpbl9xdWFudF9sb25nJHR5cGUgPC0gZmFjdG9yKHByb3RlaW5fcXVhbnRfbG9uZyR0eXBlLCBsZXZlbHM9YygidG90YWwiLCAiT09QUyIpKQoKYGBgCgoKCk5vdyB3ZSBtb2RlbCB0aGUgcHJvdGVpbiBpbnRlbnNpdHkgYWNjb3JkaW5nIHRvIHRoZSBtb2RlbHMgZGVzY3JpYmVkIGluIGAxX3NpbXBsZV9leGFtcGxlX3ZkLlJtZGAuIEFzIGFuIGV4YW1wbGUsIGxldCdzIHNlZSB0aGUgcmVzdWx0cyBmcm9tIGp1c3QgYXBwbHlpbmcgdGhlIG1vZGVscyB0byBhIHNpbmdsZSBVbmlwcm90SUQuCmBgYHtyLCBvdXQud2lkdGggPSAnNzAlJ30KcHJvdGVpbl9xdWFudF9sb25nICU+JSBmaWx0ZXIocHJvdGVpbiA9PSAnQTBBVlQxJykgJT4lCiAgZ2dwbG90KGFlcyh0aW1lcG9pbnQsIGludGVuc2l0eSwgZ3JvdXA9MSkpICsKICBnZW9tX3BvaW50KHNpemU9MikgKwogIHN0YXRfc3VtbWFyeShnZW9tPSJsaW5lIiwgZnVuLnk9bWVhbikgKwogIHhsYWIoIiIpICsKICBmYWNldF93cmFwKH50eXBlKQoKZml0IDwtIHByb3RlaW5fcXVhbnRfbG9uZyAlPiUgZmlsdGVyKHByb3RlaW4gPT0gJ0EwQVZUMScpICU+JQogIGxtKGZvcm11bGE9aW50ZW5zaXR5fnRpbWVwb2ludCp0eXBlKQoKcHJpbnQoc3VtbWFyeShmaXQpKQoKYGBgCgpXZSBjYW4gc2VlIHRoYXQgdGhlIG1vZGVsIGZpdHMgdGhlIGRhdGEgd2VsbCAoIk11bHRpcGxlIFItc3F1YXJlZDogIDAuOTY3MywJQWRqdXN0ZWQgUi1zcXVhcmVkOiAgMC45NTUgIikuIFdlIGNhbiBzZWUgdGhhdCB0aGUgaW50ZXJhY3Rpb24gdGVybSB0aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4gZm9yIGNoYW5nZXMgaW4gUk5BIGJpbmRpbmcgKCJ0aW1lcG9pbnQ2aDp0eXBlT09QUyIpIHNpZ25pZmljYW50bHkgZGV2aWF0ZXMgZnJvbSB6ZXJvLgoKQmVsb3csIHdlIG1ha2UgYSBmdW5jdGlvbiB0byBydW4gdGhlIGxpbmVhciBtb2RlbCBmb3IgYSBzaW5nbGUgcHJvdGVpbgpgYGB7cn0KQ2hhbmdlX2luX1JOQV9iaW5kaW5nX0xNIDwtIGZ1bmN0aW9uKG9iail7CiAgCiAgZml0IDwtIG9iaiAlPiUgbG0oZm9ybXVsYT1pbnRlbnNpdHkgfiB0aW1lcG9pbnQgKyB0eXBlICsgdGltZXBvaW50KnR5cGUpCiAgCiAgZml0X3ZhbHVlcyA8LSBjKGNvZWYoc3VtbWFyeShmaXQpKVsidGltZXBvaW50Nmg6dHlwZU9PUFMiLF0sCiAgICAgICAgICAgICAgICAgIHN1bW1hcnkoZml0KSRhZGouci5zcXVhcmVkKQogIAogIG5hbWVzKGZpdF92YWx1ZXMpIDwtIGMoImxtX2ZvbGRfY2hhbmdlIiwgImxtX3N0ZF9lcnJvciIsICJsbV90X3ZhbHVlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICJsbV9wX3ZhbHVlIiwgImxtX2Fkal9SX3NxdWFyZWQiKQogIGZpdF92YWx1ZXMgPC0gYXMuZGF0YS5mcmFtZSh0KGZpdF92YWx1ZXMpLCBzdHJpbmdzQXNGYWN0b3JzPUZBTFNFKQogIAogIHJldHVybihmaXRfdmFsdWVzKQp9CgpgYGAKClRlc3RpbmcgdGhlIGFib3ZlIGZ1bmN0aW9uIHdpdGggb3VyIGV4YW1wbGUgcHJvdGVpbgpgYGB7cn0KcHJvdGVpbl9xdWFudF9sb25nICU+JSBmaWx0ZXIocHJvdGVpbiA9PSAnQTBBVlQxJykgJT4lIENoYW5nZV9pbl9STkFfYmluZGluZ19MTSgpCmBgYAoKQmVsb3csIHdlIG1ha2UgYSBmdW5jdGlvbiB0byBydW4gdGhlIGBDaGFuZ2VfaW5fUk5BX2JpbmRpbmdfTE0gKClgIGZ1bmN0aW9uIG9uIGFsbCBwcm90ZWlucyBpbiB0dXJuIHVzaW5nIGRwbHlyLiBXZSB3aWxsIHVzZSB0aGUgc3RhbmRhcmQgQmVuamFtaW5pLUhvY2hiZXJnIG1ldGhvZCB0byBhZGp1c3QgcC12YWx1ZXMgZm9yIHRoZSBtdWx0aXBsZSB0ZXN0cyB3ZSBoYXZlIGNvbmR1Y3RlZC4KYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CnJ1bkxNIDwtIGZ1bmN0aW9uKG9iail7CiAgcmVzdWx0cyA8LSBvYmogJT4lCiAgICBncm91cF9ieShwcm90ZWluKSAlPiUgIyBncm91cCB0aGUgZGF0YSBmcmFtZSBieSB0aGUgdW5pcXVlIHByb3RlaW4gdmFsdWVzCiAgICAjIEFwcGx5IHRoZSBDaGFuZ2VfaW5fUk5BX2JpbmRpbmdfTE0gZnVuY3Rpb25zIHRvIGVhY2ggZ3JvdXA7ICIuIiBoZXJlIGlzIHRoZSB3aG9sZSBkYXRhIGZyYW1lIAogICAgZG8oQ2hhbmdlX2luX1JOQV9iaW5kaW5nX0xNKC4pKQoKICByZXN1bHRzJGxtX0JIIDwtIHAuYWRqdXN0KHJlc3VsdHMkbG1fcF92YWx1ZSwgbWV0aG9kPSJCSCIpIyBGRFIgCiAgCiAgcmV0dXJuKHJlc3VsdHMpCiAgIAp9CgpsbV9yZXN1bHRzIDwtIHByb3RlaW5fcXVhbnRfbG9uZyAgJT4lIHJ1bkxNKCkKCmBgYAoKQmVsb3csIHdlIHBsb3QgdGhlIHAtdmFsdWVzLiBVbmRlciB0aGUgbnVsbCBoeXBvdGhlc2lzIHRoZXkgc2hvdWxkIHNob3cgYW4gYXBwcm94aW1hdGVseSB1bmlmb3JtIGRpc3RyaWJ1dGlvbi4gSWYgdGhlcmUgd2VyZSBhIGxhcmdlIG51bWJlciBvZiBwcm90ZWlucyB3aXRoIGEgc2lnbmlmaWNhbnQgY2hhbmdlIGluIFJOQSBiaW5kaW5nLCB3ZSB3b3VsZCBleHBlY3QgYW4gYWRkaXRpb25hbCAic3Bpa2UiIHdpdGggbG93IHAtdmFsdWVzICg8MC4wNSkuIFdlIHNlZSBhbiBhcHByb3hpbWF0ZWx5IHVuaWZvcm0gZGlzdHJpYnV0aW9uIHdpdGggYSBsYXJnZSAnc3Bpa2UnIG9mIGxvdyBwLXZhbHVlcyBidXQgYWxzbyBhIHNsaWdodCBza2V3IHRvd2FyZHMgbG93IHAtdmFsdWUuIFRoaXMgbWF5IGluZGljYXRlIHRoZSBwcmVzZW5jZSBvZiBjaGFuZ2VzIGluIFJOQSBiaW5kaW5nIHdoaWNoIHdlIGFyZSBpbnN1ZmZpY2llbnRseSBwb3dlcmVkIHRvIGRldGVjdC4KYGBge3IsIG91dC53aWR0aCA9ICc1MCUnfQpsbV9yZXN1bHRzICU+JSBnZ3Bsb3QoYWVzKGxtX3BfdmFsdWUpKSArIGdlb21faGlzdG9ncmFtKGJpbnM9MjApCmBgYCAKCgpXZSBjYW4gdXNlIGEgdm9sY2FubyBwbG90IHRvIHRha2UgYSBsb29rIGF0IHRoZSBlc3RpbWF0ZWQgZm9sZCBjaGFuZ2VzIGFuZCBhc3NvY2lhdGVkIHAtdmFsdWVzCmBgYHtyLCBvdXQud2lkdGggPSAnNTAlJ30KCgpsbV9yZXN1bHRzICU+JQogIG11dGF0ZShzaWc9aWZlbHNlKGxtX0JIPDAuMDEsICJTaWcuIiwgIk5vdCBzaWcuIikpICU+JSAjIGFkZCAic2lnIiBjb2x1bW4KICBnZ3Bsb3QoYWVzKHg9bG1fZm9sZF9jaGFuZ2UsIHk9LWxvZzEwKGxtX3BfdmFsdWUpLCBjb2xvdXI9c2lnKSkgKwogIGdlb21fcG9pbnQoc2l6ZT0wLjI1KSArIAogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzPWMoImJsYWNrIiwgY2JQYWxldHRlWzZdKSwgbmFtZT0iIikgKyAjIG1hbnVhbGx5IGFkanVzdCBjb2xvdXJzCiAgeGxhYigiRm9sZCBjaGFuZ2UgKGxvZzIpIikgKyB5bGFiKCItbG9nMTAocC12YWx1ZSkiKSAjIG1hbnVhbCBheGVzIGxhYmVscwoKYGBgCgpOb3csIGxldCdzIGFwcGx5IGBsaW1tYWAgdG8gcGVyZm9ybWVkIGEgbW9kZXJhdGVkIHZlcnNpb24gb2YgdGhlIGFib3ZlIGxpbmVhciBtb2RlbGluZy4gRm9yIGEgZnVsbCBleHBsYW5hdGlvbiBvZiB0aGUgc3RlcHMgaW4gYSBgbGltbWFgIGFuYWx5c2lzLCBzZWU6IGh0dHBzOi8vYmlvY29uZHVjdG9yLm9yZy9wYWNrYWdlcy9yZWxlYXNlL2Jpb2MvdmlnbmV0dGVzL2xpbW1hL2luc3QvZG9jL3VzZXJzZ3VpZGUucGRmCgpGaXJzdCBvZiBhbGwgd2UgbmVlZCB0byBjcmVhdGUgYSBkZXNpZ24gbWF0cml4LiBXZSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBgcERhdGFgIHNpbmNlIHRoaXMgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzYW1wbGVzCgpgYGB7cn0KdGltZXBvaW50IDwtIGZhY3Rvcihwcm90ZWluX3F1YW50JHRpbWVwb2ludCwgbGV2ZWxzPWMoIjBoIiwgIjZoIikpCnR5cGUgPC0gZmFjdG9yKHByb3RlaW5fcXVhbnQkdHlwZSwgbGV2ZWxzPWMoInRvdGFsIiwgIk9PUFMiKSkKCmRlc2lnbiA8LSBtb2RlbC5tYXRyaXgofnRpbWVwb2ludCp0eXBlKSAKCmxpbW1hX2ZpdF9yZXN1bHRzIDwtIGxtRml0KHByb3RlaW5fcXVhbnQsIGRlc2lnbikKCmxpbW1hX2ZpdF9yZXN1bHRzIDwtIGNvbnRyYXN0cy5maXQobGltbWFfZml0X3Jlc3VsdHMsIGNvZWZmaWNpZW50cz0idGltZXBvaW50Nmg6dHlwZU9PUFMiKQoKbGltbWFfZml0X3Jlc3VsdHMgPC0gZUJheWVzKGxpbW1hX2ZpdF9yZXN1bHRzLCB0cmVuZD1UUlVFLCByb2J1c3Q9VFJVRSkgIyBCYXllc2lhbiBzaHJpbmthZ2UKYGBgCgpWaXN1YWxpc2luZyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvdGVpbiBhYnVuZGFuY2UgYW5kIHZhcmlhYmlsaXR5CmBgYHtyLCBvdXQud2lkdGggPSAnNzAlJ30KcGxvdFNBKGxpbW1hX2ZpdF9yZXN1bHRzKQpgYGAKCkJlbG93LCB3ZSBzdW1tYXJpc2UgdGhlIG51bWJlciBvZiBzaWduZmljYW50IHAtdmFsdWVzIChwb3N0IEJIIEZEUiBjb3JyZWN0aW9uKSB1c2luZyBhIDElIEZEUiB0aHJlc2hvbGQuIApgYGB7cn0Kc3VtbWFyeShkZWNpZGVUZXN0cyhsaW1tYV9maXRfcmVzdWx0cywgcC52YWx1ZT0wLjAxLCBhZGp1c3QubWV0aG9kPSJCSCIpKQpgYGAKCkJlbG93LCB3ZSBleHRyYWN0IHRoZSBsaW1tYSByZXN1bHRzCmBgYHtyLCBvdXQud2lkdGggPSAnNjAlJ30KbGltbWFfcmVzdWx0cyA8LSB0b3BUYWJsZShsaW1tYV9maXRfcmVzdWx0cywgY29lZiA9ICJ0aW1lcG9pbnQ2aDp0eXBlT09QUyIsIG4gPSBJbmYsIGNvbmZpbnQ9VFJVRSkKYGBgCgpBbmQgdGhlbiBtYWtlIHRoZSB2b2xjYW5vIHBsb3QgZm9yIHRoZSBgbGltbWFgIFJOQSBiaW5kaW5nIGNoYW5nZXMKYGBge3IsIG91dC53aWR0aCA9ICc3MCUnfQpsaW1tYV9yZXN1bHRzICU+JQogIG11dGF0ZShzaWc9aWZlbHNlKGFkai5QLlZhbDwwLjAxLCAiU2lnLiIsICJOb3Qgc2lnLiIpKSAlPiUgIyBhZGQgInNpZyIgY29sdW1uCiAgZ2dwbG90KGFlcyh4PWxvZ0ZDLCB5PS1sb2cxMChQLlZhbHVlKSwgY29sb3VyPXNpZykpICsKICBnZW9tX3BvaW50KHNpemU9MC4yNSkgKyAKICBzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcz1jKCJibGFjayIsIGNiUGFsZXR0ZVs2XSksIG5hbWU9IiIpICsgIyBtYW51YWxseSBhZGp1c3QgY29sb3VycwogIHhsYWIoIkZvbGQgY2hhbmdlIChsb2cyKSIpICsgeWxhYigiLWxvZzEwKHAtdmFsdWUpIikgIyBtYW51YWwgYXhlcyBsYWJlbHMKCmBgYAoKCkZpbmFsbHksIHdlIGNhbiBnZXQgYGxpbW1hYCB0byByZXR1cm4gdGhlIHNpZ25maWNhbnQgY2hhbmdlcyB1c2luZyBib3RoIHAtdmFsdWUgYW5kIGxvZy1mb2xkIGNoYW5nZSB0aHJlc2hvbGRzIHVzaW5nIHRoZSBUUkVBVCBtZXRob2QgdG8gZXhwbGljdGx5IHRlc3QgdGhlIG51bGwgaHlwb3RoZXNpcyB0aGF0IHRoZSBmb2xkIGNoYW5nZSBpcyBsZXNzIHRoYW4gb3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuICAoaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMTkxNzY1NTMpLiAKCgpgYGB7cn0KIyBUZXN0IG51bGwgaHlwb3RoZXNpcyB0aGFuIGNoYW5nZSBpcyA8Mi1mb2xkIApsaW1tYV9yZXN1bHRzX3RyZWF0IDwtIHRyZWF0KGxpbW1hX2ZpdF9yZXN1bHRzLGxmYz0xKSAKCiMgc3Vic2V0IHRvIHByb3RlaW5zIHBhc3NpbmcgdGhlIDElIEZEUiB0aHJlc2hvbGQgZm9yIGFic29sdXRlIGZvbGQgY2hhbmdlID4gMgpsaW1tYV9yZXN1bHRzX3RyZWF0X3NpZyA8LSB0b3BUcmVhdChsaW1tYV9yZXN1bHRzX3RyZWF0LCBjb2VmID0gInRpbWVwb2ludDZoOnR5cGVPT1BTIiwgbiA9IEluZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLnZhbHVlPTAuMDEsIGxmYz0xLCBhZGp1c3QubWV0aG9kPSJmZHIiLCBjb25maW50PTAuOTUpCgpgYGAKCkFuZCBiZWxvdyB3ZSByZXByb2R1Y2Ugb3VyIHZvbGNhbm8gcGxvdCBpbmNsdWRpbmcgdGhlIDk1JSBjb25maWRlbmNlIGludGVydmFsIGFuZCBoaWdobGlnaHQgdGhvc2UgcHJvdGVpbnMgd2hpY2ggaGF2ZSA8IDElIEZEUiBhbmQgYW4gYWJzb2x1dGUgZm9sZCBjaGFuZ2Ugc2lnbmlmaWNhbnRseSBncmVhdGVyIHRoYW4gMi4gV2UgY2FuIHNlZSB0aGF0IG1hbnkgb2YgdGhlIHByb3RlaW5zIHdpdGggYSBmb2xkIGNoYW5nZSAoRkMpIHBvaW50IGVzdGltYXRlID4gMiBoYXZlIGEgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgdGhhdCBvdmVybGFwcyB0aGUgZGFzaGVkIGxpbmVzIGZvciA+Mi1mb2xkIGNoYW5nZS4gVFJFQVQgYWxzbyB0YWtlcyB0aGUgbXVsdGlwbGUgdGVzdGluZyBpbnRvIGFjY291bnQgc28gaXQncyBldmVuIG1vcmUgY29uc2VydmF0aXZlIHRoYW4ganVzdCB1c2luZyB0aGUgOTUlIENJIHNob3duIGJlbG93LgoKYGBge3IsIGZpZy5oZWlnaHQ9NiwgZmlkLndpZHRoPTYsIG91dC53aWR0aCA9ICc2MCUnfQoKbGltbWFfcmVzdWx0cyRzaWcgPC0gaWZlbHNlKGxpbW1hX3Jlc3VsdHMkUC5WYWx1ZTw9MC4wMSwgIlNpZy4gY2hhbmdlIChGQyA+IDE7IDwxJSBGRFIpIiwgIj4xJSBGRFIiKSAjIGFkZCAic2lnIiBjb2x1bW4KbGltbWFfcmVzdWx0cyRzaWdbCiAgcm93bmFtZXMobGltbWFfcmVzdWx0cykgJWluJSByb3duYW1lcyhsaW1tYV9yZXN1bHRzX3RyZWF0X3NpZyldIDwtICJTaWcuIGNoYW5nZSAoRkMgPiAyOyA8MSUgRkRSKSIKCmxpbW1hX3Jlc3VsdHMkU0UgPC0gc3FydChsaW1tYV9maXRfcmVzdWx0cyRzMi5wb3N0KSAqIGxpbW1hX2ZpdF9yZXN1bHRzJHN0ZGV2LnVuc2NhbGVkWywxXQoKcCA8LSBsaW1tYV9yZXN1bHRzICU+JQogIGdncGxvdChhZXMobG9nRkMsIC1sb2cxMChQLlZhbHVlKSwgY29sb3VyPXNpZykpICsKICBnZW9tX3BvaW50KHNpemU9MC41KSArCiAgZ2VvbV9lcnJvcmJhcmgoYWVzKHhtaW49Q0kuTCwgeG1heD1DSS5SKSwgYWxwaGE9MC4zLCBzaXplPTAuNSkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzPWMoImdyZXkyMCIsIGNiUGFsZXR0ZVtjKDIsNildKSwgbmFtZT0iIikgKyAjIG1hbnVhbGx5IGFkanVzdCBjb2xvdXJzCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTEsIGxpbmV0eXBlPTIsIGNvbG91cj0iZ3JleTcwIikgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdD0tMSwgbGluZXR5cGU9MiwgY29sb3VyPSJncmV5NzAiKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJ0b3AiLCBsZWdlbmQuZGlyZWN0aW9uPTIpICsKICB4bGFiKCdGb2xkIGNoYW5nZSAobG9nMiknKSArCiAgeWxhYignLWxvZzEwKFAtdmFsdWUpJykKICAKcHJpbnQocCkKZ2dzYXZlKCcuLi9yZXN1bHRzL3Bsb3RzL3JuYV9iaW5kaW5nX2NoYW5nZXNfdm9sY2Fuby5wbmcnKQpnZ3NhdmUoJy4uL3Jlc3VsdHMvcGxvdHMvcm5hX2JpbmRpbmdfY2hhbmdlc192b2xjYW5vLnBkZicpCmBgYAoKCk9mIGNvdXJzZSwgdGhlIHRocmVzaG9sZCBmb3IgdGhlIGZvbGQgY2hhbmdlcyB5b3UgYXJlIGludGVyZXN0ZWQgaW4gZGVwZW5kcyBlbnRpcmVseSBvbiB5b3VyIHByaW9yIGV4cGVjdGF0aW9ucy4gQSAyLWZvbGQgdGhyZXNob2xkIGZvciAiYmlvbG9naWNhbGx5IiByZWxldmFudCBjaGFuZ2VzIHdpbGwgbGlrZWx5IGJlIG92ZXJseSBjb25zZXJ2YXRpdmUgaW4gdGhlIGdyZWF0IG1ham9yaXR5IG9mIGNhc2VzLgoKCgoK
diff --git a/notebooks/Identify_changes_in_RNA_binding.pdf b/notebooks/Identify_changes_in_RNA_binding.pdf
index 23a9041..265edc0 100644
Binary files a/notebooks/Identify_changes_in_RNA_binding.pdf and b/notebooks/Identify_changes_in_RNA_binding.pdf differ
diff --git a/notebooks/OOPS_CL_RNase_control_ratios.Rmd b/notebooks/OOPS_CL_RNase_control_ratios.Rmd
index ea9698a..5165127 100644
--- a/notebooks/OOPS_CL_RNase_control_ratios.Rmd
+++ b/notebooks/OOPS_CL_RNase_control_ratios.Rmd
@@ -78,6 +78,7 @@ ratios_p1 <- combined_cl_rnase %>%
print(ratios_p1)
ggsave('../results/plots/ratios_p1.png')
+ggsave('../results/plots/ratios_p1.pdf')
ratios_p2 <- combined_cl_rnase %>%
mutate(exp=factor(exp, levels=c('RNase:Ctrl', 'CL:NC'))) %>%
@@ -91,6 +92,7 @@ ratios_p2 <- combined_cl_rnase %>%
print(ratios_p2)
ggsave('../results/plots/ratios_p2.png')
+ggsave('../results/plots/ratios_p2.pdf')
```
diff --git a/notebooks/OOPS_CL_RNase_control_ratios.nb.html b/notebooks/OOPS_CL_RNase_control_ratios.nb.html
index 068b399..e7acfa0 100644
--- a/notebooks/OOPS_CL_RNase_control_ratios.nb.html
+++ b/notebooks/OOPS_CL_RNase_control_ratios.nb.html
@@ -1829,6 +1829,12 @@ OOPS CL:NC and RNase +:- ratios
Saving 7.29 x 4.5 in image
+
+ggsave('../results/plots/ratios_p1.pdf')
+
+
+Saving 7.29 x 4.5 in image
+
@@ -1849,6 +1855,12 @@ OOPS CL:NC and RNase +:- ratios
Saving 7.29 x 4.5 in image
+
+ggsave('../results/plots/ratios_p2.pdf')
+
+
+Saving 7.29 x 4.5 in image
+
@@ -1856,7 +1868,7 @@ OOPS CL:NC and RNase +:- ratios
-LS0tCnRpdGxlOiAiT09QUyBDTDpOQyBhbmQgUk5hc2UgKzotIHJhdGlvcyIKb3V0cHV0OgogIHBkZl9kb2N1bWVudDogZGVmYXVsdAogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCmhlYWRlci1pbmNsdWRlczoKLSBcdXNlcGFja2FnZXt4Y29sb3J9Ci0gXHVzZXBhY2thZ2V7ZnJhbWVkfQotLS0KCkhlcmUgd2Ugd2FudCB0byB2aXN1YWxpc2UgdGhlIENMIHZzIE5DIChub24tY3Jvc3NsaW5rZWQpIGFuZCBSTmFzZSB2cyBDdHJsIFNJTEFDIGV4cGVyaW1lbnRzLgoKQmVsb3cgd2UgbG9hZCB0aGUgcmVxdWlyZWQgcGFja2FnZXMgYW5kIHNldCBhIHBsb3R0aW5nIHRoZW1lLgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBsb2FkIHBhY2thZ2VzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdnYmVlc3dhcm0pCgojIHNldCB1cCBzdGFuZGFyZGlzZWQgcGxvdHRpbmcgc2NoZW1lCnRoZW1lX3NldCh0aGVtZV9idyhiYXNlX3NpemUgPSAyMCkgKwogICAgICAgICAgICB0aGVtZShwYW5lbC5ncmlkLm1ham9yPWVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgcGFuZWwuZ3JpZC5taW5vcj1lbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgIGFzcGVjdC5yYXRpbz0xKSkKCmNiUGFsZXR0ZSA8LSBjKCIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsICIjRjBFNDQyIiwKICAgICAgICAgICAgICAgIiMwMDcyQjIiLCAiI0Q1NUUwMCIsICIjQ0M3OUE3IiwgIiM5OTk5OTkiKQpgYGAKCgpXZSBzdGFydCBieSByZWFkaW5nIGluIHRoZSBkYXRhLiBPdXIgaW5wdXQgaGVyZSBpcyB0aGUgcHJvdGVpbi1sZXZlbCBxdWFudGlmaWNhdGlvbiBmb3IgdGhlIENMIHZzIE5DIGFuZCBSTmFzZSArIHZzIC0gZXhwZXJpbWVudHMgY29uZHVjdGVkIGZvciB0aGUgT09QUyBOQlQgcGFwZXIgKGh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNsZXMvczQxNTg3LTAxOC0wMDAxLTIpLiBUaGUgcGVwdGlkZS1sZXZlbCBhYnVuZGFuY2VzIGhhdmUgYmVlbiBhZ2dyZWdhdGVkIHRvIHByb3RlaW4gbGV2ZWwgYWJ1bmRhbmNlIGFuZCBjZW50ZXItbWVkaWFuIG5vcm1hbGlzZWQuIFByb3RlaW5zIHdpdGggbWlzc2luZyB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIE9ubHkgcHJvdGVpbnMgcXVhbnRpZmllZCBpbiBib3RoICJ0b3RhbCIgYW5kICJPT1BTIiBzYW1wbGVzIGFyZSBpbmNsdWRlZC4KClRoZSBpbnB1dCBkYXRhIGhlcmUgaXMgaWRlbnRpY2FsIHRvIHN1cHBsZW1lbnRhcnkgdGFibGUgMSBmcm9tIHRoZSBhYm92ZSBwYXBlci4gQmVsb3cgd2UgcmVhZCBpbiB0aGUgZGF0YSBhbmQgZXh0cmFjdCB0aGUgcmF0aW8gYmV0d2VlbiBDTCB2cyBOQyBvciBSTmFzZSB2cyBDdHJsIGZyb20gdGhlIHJlc3BlY3RpdmUgZGF0YXNoZWV0cy4gV2hlcmUgdGhlIHByb3RlaW4gd2FzIG5vdCBxdWFudGlmaWVkIGluIHRoZSBOQy9DdHJsIHNhbXBsZXMsIHRoZSByYXRpbyBpcyBOQSBhbmQgdGhlIHZhbHVlIGluIHRoZSBDTC9STmFzZSBzYW1wbGUgaXMgdXNlZCBpbnN0ZWFkLiBUaGlzIHJlcHJlc2VudHMgYSAicHNldWRvIHZhbHVlIiBmb3IgdGhlIHJhdGlvIHdoaWNoIGNvdWxkIG5vdCBiZSBxdWFudGlmaWVkLgpgYGB7cn0KZ2x5Y29wcm90ZWlucyA8LSByZWFkLmRlbGltKCcuLi9yYXcvZ2x5Y29wcm90ZWlucy50c3YnKSAlPiUgcHVsbChwcm90ZWluKQoKY2xfbmNfcHJvdGVpbl9xdWFudF9yYXcgPC0gcmVhZHhsOjpyZWFkX2V4Y2VsKCcuLi9yYXcvbmNiaV8zMDYwNzAzNF9PT1BTX05CVF90YWJsZV9TMS54bHN4JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0PTEsIHNraXA9MSwgbl9tYXg9MjY1NSwgbmE9J05BJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGMoInRleHQiLCAibnVtZXJpYyIsICJ0ZXh0IiwgIm51bWVyaWMiLCAibnVtZXJpYyIsICJudW1lcmljIikpICU+JQogIGZpbHRlcihzdGVwPT0zLCAhbWFzdGVyX3Byb3RlaW4gJWluJSBnbHljb3Byb3RlaW5zKSAlPiUKICBmaWx0ZXIoaXMuZmluaXRlKENMKSkgJT4lCiAgbXV0YXRlKHBzZXVkb19DTF9OQ19SYXRpbz1pZmVsc2UoaXMubmEoQ0xfTkNfUmF0aW8pLCBDTCwgQ0xfTkNfUmF0aW8pKSAlPiUKICBzZWxlY3QobWFzdGVyX3Byb3RlaW4sIHJhdGlvPXBzZXVkb19DTF9OQ19SYXRpbykgJT4lCiAgbXV0YXRlKGV4cD0nQ0w6TkMnKQoKClJOYXNlX2N0cmxfcHJvdGVpbl9xdWFudF9yYXcgPC0gcmVhZHhsOjpyZWFkX2V4Y2VsKCcuLi9yYXcvbmNiaV8zMDYwNzAzNF9PT1BTX05CVF90YWJsZV9TMS54bHN4JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0PTMsIHNraXA9MSwgbl9tYXg9NDMwNywgbmE9J05BJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGMoInRleHQiLCAidGV4dCIsICJ0ZXh0IiwgIm51bWVyaWMiLCAibnVtZXJpYyIsICJudW1lcmljIiwgIm51bWVyaWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibnVtZXJpYyIsICJudW1lcmljIiwgIm51bWVyaWMiLCAidGV4dCIpKSAlPiUKICBmaWx0ZXIoIW1hc3Rlcl9wcm90ZWluICVpbiUgZ2x5Y29wcm90ZWlucywgY2VsbF9saW5lPT0nVTJPUycsIFBoYXNlPT0nT3JnJykgJT4lCiAgZmlsdGVyKGlzLmZpbml0ZShSTkFzZSkpICU+JQogIG11dGF0ZShwc2V1ZG9fUk5Bc2VfTkNfUmF0aW89aWZlbHNlKGlzLm5hKFJOQXNlX05DX1JhdGlvKSwgUk5Bc2UsIFJOQXNlX05DX1JhdGlvKSkgJT4lCiAgc2VsZWN0KG1hc3Rlcl9wcm90ZWluLCByYXRpbz1wc2V1ZG9fUk5Bc2VfTkNfUmF0aW8pICU+JQogIG11dGF0ZShleHA9J1JOYXNlOkN0cmwnKQoKYGBgCgpDb21iaW5lIHRoZSB0d28gZXhwZXJpbWVudHMKYGBge3J9CmNvbWJpbmVkX2NsX3JuYXNlIDwtIHJiaW5kKFJOYXNlX2N0cmxfcHJvdGVpbl9xdWFudF9yYXcsIGNsX25jX3Byb3RlaW5fcXVhbnRfcmF3KQpgYGAKClBsb3QKYGBge3J9CgpyYXRpb3NfcDEgPC0gY29tYmluZWRfY2xfcm5hc2UgJT4lIAogIG11dGF0ZShleHA9ZmFjdG9yKGV4cCwgbGV2ZWxzPWMoJ0NMOk5DJywgJ1JOYXNlOkN0cmwnKSkpICU+JQogIGdncGxvdChhZXMocmF0aW8sIGZpbGw9ZXhwKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbnM9NjApICsKICBmYWNldF9ncmlkKGV4cH4uLCBzY2FsZXM9J2ZyZWVfeScpICsKICB4bGFiKCdSYXRpbyAobG9nMiknKSArCiAgeWxhYignUHJvdGVpbnMnKSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTAsIGxpbmV0eXBlPTIsIGNvbG91cj0nZ3JleTUwJykgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jYlBhbGV0dGVbMjozXSwgZ3VpZGU9RkFMU0UpICsKICB0aGVtZShwYW5lbC5zcGFjaW5nID0gdW5pdCgwLjI1LCAibGluZXMiKSkKCnByaW50KHJhdGlvc19wMSkKZ2dzYXZlKCcuLi9yZXN1bHRzL3Bsb3RzL3JhdGlvc19wMS5wbmcnKQoKcmF0aW9zX3AyIDwtIGNvbWJpbmVkX2NsX3JuYXNlICU+JSAKICBtdXRhdGUoZXhwPWZhY3RvcihleHAsIGxldmVscz1jKCdSTmFzZTpDdHJsJywgJ0NMOk5DJykpKSAlPiUKICBnZ3Bsb3QoYWVzKGV4cCwgcmF0aW8sIGNvbG91cj1leHApKSArCiAgZ2VvbV9xdWFzaXJhbmRvbShzaXplPTAuNSwgYmFuZHdpZHRoPTAuMjUpICsKICBjb29yZF9mbGlwKCkgKwogIHhsYWIoJycpICsKICB5bGFiKCdSYXRpbyAobG9nMiknKSArCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0PTAsIGxpbmV0eXBlPTIsIGNvbG91cj0nZ3JleTUwJykgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzPWNiUGFsZXR0ZVtjKDMsMildLCBndWlkZT1GQUxTRSkKCnByaW50KHJhdGlvc19wMikKZ2dzYXZlKCcuLi9yZXN1bHRzL3Bsb3RzL3JhdGlvc19wMi5wbmcnKQoKYGBgCgo=
+LS0tCnRpdGxlOiAiT09QUyBDTDpOQyBhbmQgUk5hc2UgKzotIHJhdGlvcyIKb3V0cHV0OgogIHBkZl9kb2N1bWVudDogZGVmYXVsdAogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCmhlYWRlci1pbmNsdWRlczoKLSBcdXNlcGFja2FnZXt4Y29sb3J9Ci0gXHVzZXBhY2thZ2V7ZnJhbWVkfQotLS0KCkhlcmUgd2Ugd2FudCB0byB2aXN1YWxpc2UgdGhlIENMIHZzIE5DIChub24tY3Jvc3NsaW5rZWQpIGFuZCBSTmFzZSB2cyBDdHJsIFNJTEFDIGV4cGVyaW1lbnRzLgoKQmVsb3cgd2UgbG9hZCB0aGUgcmVxdWlyZWQgcGFja2FnZXMgYW5kIHNldCBhIHBsb3R0aW5nIHRoZW1lLgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBsb2FkIHBhY2thZ2VzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdnYmVlc3dhcm0pCgojIHNldCB1cCBzdGFuZGFyZGlzZWQgcGxvdHRpbmcgc2NoZW1lCnRoZW1lX3NldCh0aGVtZV9idyhiYXNlX3NpemUgPSAyMCkgKwogICAgICAgICAgICB0aGVtZShwYW5lbC5ncmlkLm1ham9yPWVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgcGFuZWwuZ3JpZC5taW5vcj1lbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgIGFzcGVjdC5yYXRpbz0xKSkKCmNiUGFsZXR0ZSA8LSBjKCIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsICIjRjBFNDQyIiwKICAgICAgICAgICAgICAgIiMwMDcyQjIiLCAiI0Q1NUUwMCIsICIjQ0M3OUE3IiwgIiM5OTk5OTkiKQpgYGAKCgpXZSBzdGFydCBieSByZWFkaW5nIGluIHRoZSBkYXRhLiBPdXIgaW5wdXQgaGVyZSBpcyB0aGUgcHJvdGVpbi1sZXZlbCBxdWFudGlmaWNhdGlvbiBmb3IgdGhlIENMIHZzIE5DIGFuZCBSTmFzZSArIHZzIC0gZXhwZXJpbWVudHMgY29uZHVjdGVkIGZvciB0aGUgT09QUyBOQlQgcGFwZXIgKGh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNsZXMvczQxNTg3LTAxOC0wMDAxLTIpLiBUaGUgcGVwdGlkZS1sZXZlbCBhYnVuZGFuY2VzIGhhdmUgYmVlbiBhZ2dyZWdhdGVkIHRvIHByb3RlaW4gbGV2ZWwgYWJ1bmRhbmNlIGFuZCBjZW50ZXItbWVkaWFuIG5vcm1hbGlzZWQuIFByb3RlaW5zIHdpdGggbWlzc2luZyB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIE9ubHkgcHJvdGVpbnMgcXVhbnRpZmllZCBpbiBib3RoICJ0b3RhbCIgYW5kICJPT1BTIiBzYW1wbGVzIGFyZSBpbmNsdWRlZC4KClRoZSBpbnB1dCBkYXRhIGhlcmUgaXMgaWRlbnRpY2FsIHRvIHN1cHBsZW1lbnRhcnkgdGFibGUgMSBmcm9tIHRoZSBhYm92ZSBwYXBlci4gQmVsb3cgd2UgcmVhZCBpbiB0aGUgZGF0YSBhbmQgZXh0cmFjdCB0aGUgcmF0aW8gYmV0d2VlbiBDTCB2cyBOQyBvciBSTmFzZSB2cyBDdHJsIGZyb20gdGhlIHJlc3BlY3RpdmUgZGF0YXNoZWV0cy4gV2hlcmUgdGhlIHByb3RlaW4gd2FzIG5vdCBxdWFudGlmaWVkIGluIHRoZSBOQy9DdHJsIHNhbXBsZXMsIHRoZSByYXRpbyBpcyBOQSBhbmQgdGhlIHZhbHVlIGluIHRoZSBDTC9STmFzZSBzYW1wbGUgaXMgdXNlZCBpbnN0ZWFkLiBUaGlzIHJlcHJlc2VudHMgYSAicHNldWRvIHZhbHVlIiBmb3IgdGhlIHJhdGlvIHdoaWNoIGNvdWxkIG5vdCBiZSBxdWFudGlmaWVkLgpgYGB7cn0KZ2x5Y29wcm90ZWlucyA8LSByZWFkLmRlbGltKCcuLi9yYXcvZ2x5Y29wcm90ZWlucy50c3YnKSAlPiUgcHVsbChwcm90ZWluKQoKY2xfbmNfcHJvdGVpbl9xdWFudF9yYXcgPC0gcmVhZHhsOjpyZWFkX2V4Y2VsKCcuLi9yYXcvbmNiaV8zMDYwNzAzNF9PT1BTX05CVF90YWJsZV9TMS54bHN4JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0PTEsIHNraXA9MSwgbl9tYXg9MjY1NSwgbmE9J05BJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGMoInRleHQiLCAibnVtZXJpYyIsICJ0ZXh0IiwgIm51bWVyaWMiLCAibnVtZXJpYyIsICJudW1lcmljIikpICU+JQogIGZpbHRlcihzdGVwPT0zLCAhbWFzdGVyX3Byb3RlaW4gJWluJSBnbHljb3Byb3RlaW5zKSAlPiUKICBmaWx0ZXIoaXMuZmluaXRlKENMKSkgJT4lCiAgbXV0YXRlKHBzZXVkb19DTF9OQ19SYXRpbz1pZmVsc2UoaXMubmEoQ0xfTkNfUmF0aW8pLCBDTCwgQ0xfTkNfUmF0aW8pKSAlPiUKICBzZWxlY3QobWFzdGVyX3Byb3RlaW4sIHJhdGlvPXBzZXVkb19DTF9OQ19SYXRpbykgJT4lCiAgbXV0YXRlKGV4cD0nQ0w6TkMnKQoKClJOYXNlX2N0cmxfcHJvdGVpbl9xdWFudF9yYXcgPC0gcmVhZHhsOjpyZWFkX2V4Y2VsKCcuLi9yYXcvbmNiaV8zMDYwNzAzNF9PT1BTX05CVF90YWJsZV9TMS54bHN4JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0PTMsIHNraXA9MSwgbl9tYXg9NDMwNywgbmE9J05BJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGMoInRleHQiLCAidGV4dCIsICJ0ZXh0IiwgIm51bWVyaWMiLCAibnVtZXJpYyIsICJudW1lcmljIiwgIm51bWVyaWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibnVtZXJpYyIsICJudW1lcmljIiwgIm51bWVyaWMiLCAidGV4dCIpKSAlPiUKICBmaWx0ZXIoIW1hc3Rlcl9wcm90ZWluICVpbiUgZ2x5Y29wcm90ZWlucywgY2VsbF9saW5lPT0nVTJPUycsIFBoYXNlPT0nT3JnJykgJT4lCiAgZmlsdGVyKGlzLmZpbml0ZShSTkFzZSkpICU+JQogIG11dGF0ZShwc2V1ZG9fUk5Bc2VfTkNfUmF0aW89aWZlbHNlKGlzLm5hKFJOQXNlX05DX1JhdGlvKSwgUk5Bc2UsIFJOQXNlX05DX1JhdGlvKSkgJT4lCiAgc2VsZWN0KG1hc3Rlcl9wcm90ZWluLCByYXRpbz1wc2V1ZG9fUk5Bc2VfTkNfUmF0aW8pICU+JQogIG11dGF0ZShleHA9J1JOYXNlOkN0cmwnKQoKYGBgCgpDb21iaW5lIHRoZSB0d28gZXhwZXJpbWVudHMKYGBge3J9CmNvbWJpbmVkX2NsX3JuYXNlIDwtIHJiaW5kKFJOYXNlX2N0cmxfcHJvdGVpbl9xdWFudF9yYXcsIGNsX25jX3Byb3RlaW5fcXVhbnRfcmF3KQpgYGAKClBsb3QKYGBge3J9CgpyYXRpb3NfcDEgPC0gY29tYmluZWRfY2xfcm5hc2UgJT4lIAogIG11dGF0ZShleHA9ZmFjdG9yKGV4cCwgbGV2ZWxzPWMoJ0NMOk5DJywgJ1JOYXNlOkN0cmwnKSkpICU+JQogIGdncGxvdChhZXMocmF0aW8sIGZpbGw9ZXhwKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbnM9NjApICsKICBmYWNldF9ncmlkKGV4cH4uLCBzY2FsZXM9J2ZyZWVfeScpICsKICB4bGFiKCdSYXRpbyAobG9nMiknKSArCiAgeWxhYignUHJvdGVpbnMnKSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTAsIGxpbmV0eXBlPTIsIGNvbG91cj0nZ3JleTUwJykgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jYlBhbGV0dGVbMjozXSwgZ3VpZGU9RkFMU0UpICsKICB0aGVtZShwYW5lbC5zcGFjaW5nID0gdW5pdCgwLjI1LCAibGluZXMiKSkKCnByaW50KHJhdGlvc19wMSkKZ2dzYXZlKCcuLi9yZXN1bHRzL3Bsb3RzL3JhdGlvc19wMS5wbmcnKQpnZ3NhdmUoJy4uL3Jlc3VsdHMvcGxvdHMvcmF0aW9zX3AxLnBkZicpCgpyYXRpb3NfcDIgPC0gY29tYmluZWRfY2xfcm5hc2UgJT4lIAogIG11dGF0ZShleHA9ZmFjdG9yKGV4cCwgbGV2ZWxzPWMoJ1JOYXNlOkN0cmwnLCAnQ0w6TkMnKSkpICU+JQogIGdncGxvdChhZXMoZXhwLCByYXRpbywgY29sb3VyPWV4cCkpICsKICBnZW9tX3F1YXNpcmFuZG9tKHNpemU9MC41LCBiYW5kd2lkdGg9MC4yNSkgKwogIGNvb3JkX2ZsaXAoKSArCiAgeGxhYignJykgKwogIHlsYWIoJ1JhdGlvIChsb2cyKScpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQ9MCwgbGluZXR5cGU9MiwgY29sb3VyPSdncmV5NTAnKSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXM9Y2JQYWxldHRlW2MoMywyKV0sIGd1aWRlPUZBTFNFKQoKcHJpbnQocmF0aW9zX3AyKQpnZ3NhdmUoJy4uL3Jlc3VsdHMvcGxvdHMvcmF0aW9zX3AyLnBuZycpCmdnc2F2ZSgnLi4vcmVzdWx0cy9wbG90cy9yYXRpb3NfcDIucGRmJykKCmBgYAoK
diff --git a/notebooks/OOPS_CL_RNase_control_ratios.pdf b/notebooks/OOPS_CL_RNase_control_ratios.pdf
index 64a9dca..6d66a75 100644
Binary files a/notebooks/OOPS_CL_RNase_control_ratios.pdf and b/notebooks/OOPS_CL_RNase_control_ratios.pdf differ
diff --git a/notebooks/Visualise_dynamics.Rmd b/notebooks/Visualise_dynamics.Rmd
index 6fb0893..8ac9e3e 100644
--- a/notebooks/Visualise_dynamics.Rmd
+++ b/notebooks/Visualise_dynamics.Rmd
@@ -89,10 +89,11 @@ p <- glycolysis_intensities %>%
geom_vline(xintercept=3.5) +
geom_vline(xintercept=6.5) +
scale_fill_gradient(low=cbPalette[1], high=cbPalette[5], name='Protein abundance\n(centre-median normalised)') +
- theme(axis.text.y=element_text(size=10))
+ theme(axis.text.y=element_text(size=10), legend.title=element_text(size=10), legend.text=element_text(size=10))
print(p)
-ggsave('../results/plots/rna_binding_changes_heatmap.png')
+ggsave('../results/plots/rna_binding_changes_heatmap.png', width=10, height=5)
+ggsave('../results/plots/rna_binding_changes_heatmap.pdf', width=10, height=5)
```
diff --git a/notebooks/Visualise_dynamics.nb.html b/notebooks/Visualise_dynamics.nb.html
index 56dd54e..f6a8c74 100644
--- a/notebooks/Visualise_dynamics.nb.html
+++ b/notebooks/Visualise_dynamics.nb.html
@@ -1753,10 +1753,10 @@ Visualising RNA binding dynamics
Below we load the required packages and set a plotting theme.
-
+
# load packages
library(tidyverse)
-suppressMessages(library(UniProt.ws))
+library(UniProt.ws)
# set up standardised plotting scheme
theme_set(theme_bw(base_size = 15) +
@@ -1837,7 +1837,7 @@ Visualising RNA binding dynamics
Plot the glycolysis proteins
-
+
protein_order <- glycolysis_intensities %>%
group_by(cleaned_protein_name) %>% summarise(max_intensity=max(intensity)) %>%
arrange(max_intensity) %>% pull(cleaned_protein_name)
@@ -1852,23 +1852,23 @@ Visualising RNA binding dynamics
geom_vline(xintercept=3.5) +
geom_vline(xintercept=6.5) +
scale_fill_gradient(low=cbPalette[1], high=cbPalette[5], name='Protein abundance\n(centre-median normalised)') +
- theme(axis.text.y=element_text(size=10))
+ theme(axis.text.y=element_text(size=10), legend.title=element_text(size=10), legend.text=element_text(size=10))
-print(p)
-
-ggsave('../results/plots/rna_binding_changes_heatmap.png')
+print(p)
-
-Saving 7.29 x 4.5 in image
-
-
-
+
+
+
+
+ggsave('../results/plots/rna_binding_changes_heatmap.png', width=10, height=5)
+ggsave('../results/plots/rna_binding_changes_heatmap.pdf', width=10, height=5)
+
-LS0tCnRpdGxlOiAiVmlzdWFsaXNpbmcgUk5BIGJpbmRpbmcgZHluYW1pY3MiCm91dHB1dDoKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKICBodG1sX25vdGVib29rOiBkZWZhdWx0CmhlYWRlci1pbmNsdWRlczoKLSBcdXNlcGFja2FnZXt4Y29sb3J9Ci0gXHVzZXBhY2thZ2V7ZnJhbWVkfQotLS0KCgpIZXJlIHdlIHdpbGwgdmlzdWFsaXNlIHRvdGFsIGFuZCBSTkEtYm91bmQgcHJvdGVpbiBhYnVuZGFuY2VzIGFjcm9zcyBjb25kaXRpb25zLgoKQmVsb3cgd2UgbG9hZCB0aGUgcmVxdWlyZWQgcGFja2FnZXMgYW5kIHNldCBhIHBsb3R0aW5nIHRoZW1lLgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBsb2FkIHBhY2thZ2VzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KFVuaVByb3Qud3MpCgojIHNldCB1cCBzdGFuZGFyZGlzZWQgcGxvdHRpbmcgc2NoZW1lCnRoZW1lX3NldCh0aGVtZV9idyhiYXNlX3NpemUgPSAxNSkgKwogICAgICAgICAgICB0aGVtZShwYW5lbC5ncmlkLm1ham9yPWVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgcGFuZWwuZ3JpZC5taW5vcj1lbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgIGFzcGVjdC5yYXRpbz0xKSkKCmNiUGFsZXR0ZSA8LSBjKCIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsICIjRjBFNDQyIiwKICAgICAgICAgICAgICAgIiMwMDcyQjIiLCAiI0Q1NUUwMCIsICIjQ0M3OUE3IiwgIiM5OTk5OTkiKQpgYGAKCgpXZSBzdGFydCBieSByZWFkaW5nIGluIHRoZSBkYXRhLiBPdXIgaW5wdXQgaGVyZSBpcyB0aGUgcHJvdGVpbi1sZXZlbCBxdWFudGlmaWNhdGlvbiBmb3IgdGhlIE5vY29kYXpvbGUgYXJyZXN0L3JlbGVhc2UgZXhwZXJpbWVudCBjb25kdWN0ZWQgZm9yIHRoZSBPT1BTIE5CVCBwYXBlciAoaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE1ODctMDE4LTAwMDEtMikuIEluIHRoaXMgZXhwZXJpbWVudCwgd2Ugd2FudGVkIHRvIGFzc2VzcyBjaGFuZ2VzIGluIFJOQSBiaW5kaW5nIGluIGFycmVzdGVkL3JlbGVhc2VkIGNlbGxzLiBUbyBkbyB0aGlzLCB3ZSBxdWFudGlmaWVkICJ0b3RhbCIgcHJvdGVpbiBhYnVuZGFuY2UgYW5kIFJOQS1ib3VuZCAoZXh0cmFjdGVkIGJ5IE9PUFMpIHByb3RlaW4gYWJ1bmRhbmNlLiBUaGUgcGVwdGlkZS1sZXZlbCBhYnVuZGFuY2VzIGhhdmUgYmVlbiBhZ2dyZWdhdGVkIHRvIHByb3RlaW4gbGV2ZWwgYWJ1bmRhbmNlIGFuZCBjZW50ZXItbWVkaWFuIG5vcm1hbGlzZWQuIFByb3RlaW5zIHdpdGggbWlzc2luZyB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIE9ubHkgcHJvdGVpbnMgcXVhbnRpZmllZCBpbiBib3RoICJ0b3RhbCIgYW5kICJPT1BTIiBzYW1wbGVzIGFyZSBpbmNsdWRlZC4KClRoZSBpbnB1dCBkYXRhIGhlcmUgaXMgaWRlbnRpY2FsIHRvIHN1cHBsZW1lbnRhcnkgdGFibGUgNSBmcm9tIHRoZSBhYm92ZSBwYXBlci4gCmBgYHtyfQpwcm90ZWluX3F1YW50X3JhdyA8LSByZWFkeGw6OnJlYWRfZXhjZWwoJy4uL3Jhdy9uY2JpXzMwNjA3MDM0X09PUFNfTkJUX3RhYmxlX1M1Lnhsc3gnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQ9Mywgc2tpcD0xLCBuX21heD0xOTE3KQoKYGBgCgpJbiBvcmRlciB0byBwbG90IGEgZnVuY3Rpb25hbCBzdWJzZXQgb2YgcHJvdGVpbnMsIHdlIHdpbGwgdXNlIHRoZSBVbmlQcm90IHBhdGh3YXkgYW5ub3RhdGlvbnMuCgpXYXJuaW5nOiBUaGlzIGNlbGwgd2lsbCB0YWtlIGEgZmV3IG1pbnV0ZXMgdG8gcnVuIHRoZSBxdWVyeSBvbiB0aGUgVW5pcHJvdCBkYXRhYmFzZS4uLgpgYGB7cn0KaHVtYW5VUCA8LSBVbmlQcm90LndzKHRheElkPTk2MDYpICMgSC5zYXBpZW5zCnByb3RlaW5faWRzIDwtIHByb3RlaW5fcXVhbnRfcmF3JG1hc3Rlcl9wcm90ZWluCgpoc2FwaWVucy5hbm5vdCA8LSBBbm5vdGF0aW9uRGJpOjpzZWxlY3QoCiAgaHVtYW5VUCwKICBrZXlzID0gcHJvdGVpbl9pZHMsIAogIGNvbHVtbnMgPSBjKCJQQVRIV0FZIiwgICJQUk9URUlOLU5BTUVTIiksCiAga2V5c3R5bGUgPSAiVU5JUFJPVEtCIikKCmhzYXBpZW5zLnBhdGh3YXkgPC0gIGhzYXBpZW5zLmFubm90ICU+JSBkYXRhLmZyYW1lKCkgJT4lIAogIHNlcGFyYXRlX3Jvd3MoUEFUSFdBWSwgc2VwPSI7ICIpICU+JSBkcGx5cjo6c2VsZWN0KFVOSVBST1RLQiwgUFJPVEVJTi5OQU1FUywgUEFUSFdBWSkKCmBgYAoKSWRlbnRpZnkgdGhlIGdseWNvbHlzaXMgcHJvdGVpbnMKYGBge3J9CmdseWNvbHlzaXNfcHJvdGVpbnMgPC0gaHNhcGllbnMucGF0aHdheSAlPiUgZmlsdGVyKFBBVEhXQVk9PSdnbHljb2x5c2lzJykKZ2x5Y29seXNpc19wcm90ZWlucyRjbGVhbmVkX3Byb3RlaW5fbmFtZSA8LSBzYXBwbHkoc3Ryc3BsaXQoZ2x5Y29seXNpc19wcm90ZWlucyRQUk9URUlOLk5BTUVTLCBzcGxpdD0nXFwoJyksICdbWycsIDEpCmBgYAoKUmVzdHJ1Y3R1cmUgdGhlIGRhdGEgYW5kIHN1YnNldCB0byB0aGUgZ2x5Y29seXNpcyBwcm90ZWlucwpgYGB7cn0KZ2x5Y29seXNpc19pbnRlbnNpdGllcyA8LSBwcm90ZWluX3F1YW50X3JhdyAlPiUKICBnYXRoZXIoa2V5PSdzYW1wbGUnLCB2YWx1ZT0naW50ZW5zaXR5JywgLW1hc3Rlcl9wcm90ZWluKSAlPiUKICBtZXJnZShnbHljb2x5c2lzX3Byb3RlaW5zLCBieS54PSdtYXN0ZXJfcHJvdGVpbicsIGJ5Lnk9J1VOSVBST1RLQicpICU+JQogIHNlcGFyYXRlKHNhbXBsZSwgaW50bz1jKCd0aW1lcG9pbnQnLCAncmVwbGljYXRlJywgJ3R5cGUnKSwgcmVtb3ZlPUZBTFNFKSAlPiUKICBtdXRhdGUodHlwZT1mYWN0b3IodHlwZSwgbGV2ZWxzPWMoJ3RvdGFsJywgJ09PUFMnKSkpICU+JQogIG11dGF0ZSh0aW1lcG9pbnQ9ZmFjdG9yKHRpbWVwb2ludCwgbGV2ZWxzPWMoJzBoJywgJzZoJywgJzIzaCcpKSkKCmdseWNvbHlzaXNfaW50ZW5zaXRpZXMkdHlwZSA8LSByZWNvZGUoZ2x5Y29seXNpc19pbnRlbnNpdGllcyR0eXBlLCAgJ09PUFMnPSdSTkEtYm91bmQnLCAndG90YWwnPSdUb3RhbCcpCmBgYAoKUGxvdCB0aGUgZ2x5Y29seXNpcyBwcm90ZWlucwpgYGB7ciwgZmlnLndpZHRoPTEwfQpwcm90ZWluX29yZGVyIDwtIGdseWNvbHlzaXNfaW50ZW5zaXRpZXMgJT4lCiAgZ3JvdXBfYnkoY2xlYW5lZF9wcm90ZWluX25hbWUpICU+JSBzdW1tYXJpc2UobWF4X2ludGVuc2l0eT1tYXgoaW50ZW5zaXR5KSkgJT4lCiAgYXJyYW5nZShtYXhfaW50ZW5zaXR5KSAlPiUgcHVsbChjbGVhbmVkX3Byb3RlaW5fbmFtZSkKCnAgPC0gZ2x5Y29seXNpc19pbnRlbnNpdGllcyAlPiUKICBtdXRhdGUoY2xlYW5lZF9wcm90ZWluX25hbWU9ZmFjdG9yKGNsZWFuZWRfcHJvdGVpbl9uYW1lLCBsZXZlbHM9cHJvdGVpbl9vcmRlcikpICU+JQogIGdncGxvdChhZXMoaW50ZXJhY3Rpb24ocmVwbGljYXRlLCB0aW1lcG9pbnQpLCBjbGVhbmVkX3Byb3RlaW5fbmFtZSwgZmlsbD1pbnRlbnNpdHkpKSArCiAgZ2VvbV90aWxlKGNvbG91cj0nZ3JleTgwJywgbHdkPTAuMSkgKwogIGZhY2V0X2dyaWQoLn50eXBlKSArCiAgeWxhYignJykgKyB4bGFiKCcnKSArCiAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHM9YygnJywgJzBoJywgJycsICcnLCAnNmgnLCAnJywgJycsICcyM2gnLCAnJykpICsKICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQ9My41KSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTYuNSkgKwogIHNjYWxlX2ZpbGxfZ3JhZGllbnQobG93PWNiUGFsZXR0ZVsxXSwgaGlnaD1jYlBhbGV0dGVbNV0sIG5hbWU9J1Byb3RlaW4gYWJ1bmRhbmNlXG4oY2VudHJlLW1lZGlhbiBub3JtYWxpc2VkKScpICsKICB0aGVtZShheGlzLnRleHQueT1lbGVtZW50X3RleHQoc2l6ZT0xMCkpCgpwcmludChwKQoKZ2dzYXZlKCcuLi9yZXN1bHRzL3Bsb3RzL3JuYV9iaW5kaW5nX2NoYW5nZXNfaGVhdG1hcC5wbmcnKQpgYGAKCg==
+LS0tCnRpdGxlOiAiVmlzdWFsaXNpbmcgUk5BIGJpbmRpbmcgZHluYW1pY3MiCm91dHB1dDoKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKICBodG1sX25vdGVib29rOiBkZWZhdWx0CmhlYWRlci1pbmNsdWRlczoKLSBcdXNlcGFja2FnZXt4Y29sb3J9Ci0gXHVzZXBhY2thZ2V7ZnJhbWVkfQotLS0KCgpIZXJlIHdlIHdpbGwgdmlzdWFsaXNlIHRvdGFsIGFuZCBSTkEtYm91bmQgcHJvdGVpbiBhYnVuZGFuY2VzIGFjcm9zcyBjb25kaXRpb25zLgoKQmVsb3cgd2UgbG9hZCB0aGUgcmVxdWlyZWQgcGFja2FnZXMgYW5kIHNldCBhIHBsb3R0aW5nIHRoZW1lLgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBsb2FkIHBhY2thZ2VzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KFVuaVByb3Qud3MpCgojIHNldCB1cCBzdGFuZGFyZGlzZWQgcGxvdHRpbmcgc2NoZW1lCnRoZW1lX3NldCh0aGVtZV9idyhiYXNlX3NpemUgPSAxNSkgKwogICAgICAgICAgICB0aGVtZShwYW5lbC5ncmlkLm1ham9yPWVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgcGFuZWwuZ3JpZC5taW5vcj1lbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgIGFzcGVjdC5yYXRpbz0xKSkKCmNiUGFsZXR0ZSA8LSBjKCIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsICIjRjBFNDQyIiwKICAgICAgICAgICAgICAgIiMwMDcyQjIiLCAiI0Q1NUUwMCIsICIjQ0M3OUE3IiwgIiM5OTk5OTkiKQpgYGAKCgpXZSBzdGFydCBieSByZWFkaW5nIGluIHRoZSBkYXRhLiBPdXIgaW5wdXQgaGVyZSBpcyB0aGUgcHJvdGVpbi1sZXZlbCBxdWFudGlmaWNhdGlvbiBmb3IgdGhlIE5vY29kYXpvbGUgYXJyZXN0L3JlbGVhc2UgZXhwZXJpbWVudCBjb25kdWN0ZWQgZm9yIHRoZSBPT1BTIE5CVCBwYXBlciAoaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE1ODctMDE4LTAwMDEtMikuIEluIHRoaXMgZXhwZXJpbWVudCwgd2Ugd2FudGVkIHRvIGFzc2VzcyBjaGFuZ2VzIGluIFJOQSBiaW5kaW5nIGluIGFycmVzdGVkL3JlbGVhc2VkIGNlbGxzLiBUbyBkbyB0aGlzLCB3ZSBxdWFudGlmaWVkICJ0b3RhbCIgcHJvdGVpbiBhYnVuZGFuY2UgYW5kIFJOQS1ib3VuZCAoZXh0cmFjdGVkIGJ5IE9PUFMpIHByb3RlaW4gYWJ1bmRhbmNlLiBUaGUgcGVwdGlkZS1sZXZlbCBhYnVuZGFuY2VzIGhhdmUgYmVlbiBhZ2dyZWdhdGVkIHRvIHByb3RlaW4gbGV2ZWwgYWJ1bmRhbmNlIGFuZCBjZW50ZXItbWVkaWFuIG5vcm1hbGlzZWQuIFByb3RlaW5zIHdpdGggbWlzc2luZyB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIE9ubHkgcHJvdGVpbnMgcXVhbnRpZmllZCBpbiBib3RoICJ0b3RhbCIgYW5kICJPT1BTIiBzYW1wbGVzIGFyZSBpbmNsdWRlZC4KClRoZSBpbnB1dCBkYXRhIGhlcmUgaXMgaWRlbnRpY2FsIHRvIHN1cHBsZW1lbnRhcnkgdGFibGUgNSBmcm9tIHRoZSBhYm92ZSBwYXBlci4gCmBgYHtyfQpwcm90ZWluX3F1YW50X3JhdyA8LSByZWFkeGw6OnJlYWRfZXhjZWwoJy4uL3Jhdy9uY2JpXzMwNjA3MDM0X09PUFNfTkJUX3RhYmxlX1M1Lnhsc3gnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQ9Mywgc2tpcD0xLCBuX21heD0xOTE3KQoKYGBgCgpJbiBvcmRlciB0byBwbG90IGEgZnVuY3Rpb25hbCBzdWJzZXQgb2YgcHJvdGVpbnMsIHdlIHdpbGwgdXNlIHRoZSBVbmlQcm90IHBhdGh3YXkgYW5ub3RhdGlvbnMuCgpXYXJuaW5nOiBUaGlzIGNlbGwgd2lsbCB0YWtlIGEgZmV3IG1pbnV0ZXMgdG8gcnVuIHRoZSBxdWVyeSBvbiB0aGUgVW5pcHJvdCBkYXRhYmFzZS4uLgpgYGB7cn0KaHVtYW5VUCA8LSBVbmlQcm90LndzKHRheElkPTk2MDYpICMgSC5zYXBpZW5zCnByb3RlaW5faWRzIDwtIHByb3RlaW5fcXVhbnRfcmF3JG1hc3Rlcl9wcm90ZWluCgpoc2FwaWVucy5hbm5vdCA8LSBBbm5vdGF0aW9uRGJpOjpzZWxlY3QoCiAgaHVtYW5VUCwKICBrZXlzID0gcHJvdGVpbl9pZHMsIAogIGNvbHVtbnMgPSBjKCJQQVRIV0FZIiwgICJQUk9URUlOLU5BTUVTIiksCiAga2V5c3R5bGUgPSAiVU5JUFJPVEtCIikKCmhzYXBpZW5zLnBhdGh3YXkgPC0gIGhzYXBpZW5zLmFubm90ICU+JSBkYXRhLmZyYW1lKCkgJT4lIAogIHNlcGFyYXRlX3Jvd3MoUEFUSFdBWSwgc2VwPSI7ICIpICU+JSBkcGx5cjo6c2VsZWN0KFVOSVBST1RLQiwgUFJPVEVJTi5OQU1FUywgUEFUSFdBWSkKCmBgYAoKSWRlbnRpZnkgdGhlIGdseWNvbHlzaXMgcHJvdGVpbnMKYGBge3J9CmdseWNvbHlzaXNfcHJvdGVpbnMgPC0gaHNhcGllbnMucGF0aHdheSAlPiUgZmlsdGVyKFBBVEhXQVk9PSdnbHljb2x5c2lzJykKZ2x5Y29seXNpc19wcm90ZWlucyRjbGVhbmVkX3Byb3RlaW5fbmFtZSA8LSBzYXBwbHkoc3Ryc3BsaXQoZ2x5Y29seXNpc19wcm90ZWlucyRQUk9URUlOLk5BTUVTLCBzcGxpdD0nXFwoJyksICdbWycsIDEpCmBgYAoKUmVzdHJ1Y3R1cmUgdGhlIGRhdGEgYW5kIHN1YnNldCB0byB0aGUgZ2x5Y29seXNpcyBwcm90ZWlucwpgYGB7cn0KZ2x5Y29seXNpc19pbnRlbnNpdGllcyA8LSBwcm90ZWluX3F1YW50X3JhdyAlPiUKICBnYXRoZXIoa2V5PSdzYW1wbGUnLCB2YWx1ZT0naW50ZW5zaXR5JywgLW1hc3Rlcl9wcm90ZWluKSAlPiUKICBtZXJnZShnbHljb2x5c2lzX3Byb3RlaW5zLCBieS54PSdtYXN0ZXJfcHJvdGVpbicsIGJ5Lnk9J1VOSVBST1RLQicpICU+JQogIHNlcGFyYXRlKHNhbXBsZSwgaW50bz1jKCd0aW1lcG9pbnQnLCAncmVwbGljYXRlJywgJ3R5cGUnKSwgcmVtb3ZlPUZBTFNFKSAlPiUKICBtdXRhdGUodHlwZT1mYWN0b3IodHlwZSwgbGV2ZWxzPWMoJ3RvdGFsJywgJ09PUFMnKSkpICU+JQogIG11dGF0ZSh0aW1lcG9pbnQ9ZmFjdG9yKHRpbWVwb2ludCwgbGV2ZWxzPWMoJzBoJywgJzZoJywgJzIzaCcpKSkKCmdseWNvbHlzaXNfaW50ZW5zaXRpZXMkdHlwZSA8LSByZWNvZGUoZ2x5Y29seXNpc19pbnRlbnNpdGllcyR0eXBlLCAgJ09PUFMnPSdSTkEtYm91bmQnLCAndG90YWwnPSdUb3RhbCcpCmBgYAoKUGxvdCB0aGUgZ2x5Y29seXNpcyBwcm90ZWlucwpgYGB7ciwgZmlnLndpZHRoPTEwfQpwcm90ZWluX29yZGVyIDwtIGdseWNvbHlzaXNfaW50ZW5zaXRpZXMgJT4lCiAgZ3JvdXBfYnkoY2xlYW5lZF9wcm90ZWluX25hbWUpICU+JSBzdW1tYXJpc2UobWF4X2ludGVuc2l0eT1tYXgoaW50ZW5zaXR5KSkgJT4lCiAgYXJyYW5nZShtYXhfaW50ZW5zaXR5KSAlPiUgcHVsbChjbGVhbmVkX3Byb3RlaW5fbmFtZSkKCnAgPC0gZ2x5Y29seXNpc19pbnRlbnNpdGllcyAlPiUKICBtdXRhdGUoY2xlYW5lZF9wcm90ZWluX25hbWU9ZmFjdG9yKGNsZWFuZWRfcHJvdGVpbl9uYW1lLCBsZXZlbHM9cHJvdGVpbl9vcmRlcikpICU+JQogIGdncGxvdChhZXMoaW50ZXJhY3Rpb24ocmVwbGljYXRlLCB0aW1lcG9pbnQpLCBjbGVhbmVkX3Byb3RlaW5fbmFtZSwgZmlsbD1pbnRlbnNpdHkpKSArCiAgZ2VvbV90aWxlKGNvbG91cj0nZ3JleTgwJywgbHdkPTAuMSkgKwogIGZhY2V0X2dyaWQoLn50eXBlKSArCiAgeWxhYignJykgKyB4bGFiKCcnKSArCiAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHM9YygnJywgJzBoJywgJycsICcnLCAnNmgnLCAnJywgJycsICcyM2gnLCAnJykpICsKICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQ9My41KSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0PTYuNSkgKwogIHNjYWxlX2ZpbGxfZ3JhZGllbnQobG93PWNiUGFsZXR0ZVsxXSwgaGlnaD1jYlBhbGV0dGVbNV0sIG5hbWU9J1Byb3RlaW4gYWJ1bmRhbmNlXG4oY2VudHJlLW1lZGlhbiBub3JtYWxpc2VkKScpICsKICB0aGVtZShheGlzLnRleHQueT1lbGVtZW50X3RleHQoc2l6ZT0xMCksIGxlZ2VuZC50aXRsZT1lbGVtZW50X3RleHQoc2l6ZT0xMCksIGxlZ2VuZC50ZXh0PWVsZW1lbnRfdGV4dChzaXplPTEwKSkKCnByaW50KHApCgpnZ3NhdmUoJy4uL3Jlc3VsdHMvcGxvdHMvcm5hX2JpbmRpbmdfY2hhbmdlc19oZWF0bWFwLnBuZycsIHdpZHRoPTEwLCBoZWlnaHQ9NSkKZ2dzYXZlKCcuLi9yZXN1bHRzL3Bsb3RzL3JuYV9iaW5kaW5nX2NoYW5nZXNfaGVhdG1hcC5wZGYnLCB3aWR0aD0xMCwgaGVpZ2h0PTUpCmBgYAoK
diff --git a/notebooks/Visualise_dynamics.pdf b/notebooks/Visualise_dynamics.pdf
index ca0f87b..9b581b0 100644
Binary files a/notebooks/Visualise_dynamics.pdf and b/notebooks/Visualise_dynamics.pdf differ
diff --git a/results/plots/ratios_p1.pdf b/results/plots/ratios_p1.pdf
new file mode 100644
index 0000000..50e6f55
Binary files /dev/null and b/results/plots/ratios_p1.pdf differ
diff --git a/results/plots/ratios_p2.pdf b/results/plots/ratios_p2.pdf
new file mode 100644
index 0000000..62b4163
Binary files /dev/null and b/results/plots/ratios_p2.pdf differ
diff --git a/results/plots/rna_binding_changes_heatmap.pdf b/results/plots/rna_binding_changes_heatmap.pdf
new file mode 100644
index 0000000..880600a
Binary files /dev/null and b/results/plots/rna_binding_changes_heatmap.pdf differ
diff --git a/results/plots/rna_binding_changes_heatmap.png b/results/plots/rna_binding_changes_heatmap.png
index 43aaa69..aaa372d 100644
Binary files a/results/plots/rna_binding_changes_heatmap.png and b/results/plots/rna_binding_changes_heatmap.png differ
diff --git a/results/plots/rna_binding_changes_volcano.pdf b/results/plots/rna_binding_changes_volcano.pdf
new file mode 100644
index 0000000..88f16a9
Binary files /dev/null and b/results/plots/rna_binding_changes_volcano.pdf differ