-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path05-plotFoldChangeReporters.R
76 lines (63 loc) · 3.73 KB
/
05-plotFoldChangeReporters.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
library(tidyverse)
library(broom)
library(ggthemes)
library(scales)
library(ggforce)
library(optimalcodonR)
library(cowplot)
theme_set(tidybayes::theme_tidybayes())
# get the predicted stability ---------------------------------------------
optimal_Seq <- 'GACATCTTTGGCTTTGAGAACTTTGAGGTCAACCGCTTTGAGCAGTTCAACATTAACTATGCAAACGAGAAGCTTCAGGAGTATTTCAACAAGCACATTTTCTCACTGGAGCAGCTTGAGTTCAGGAAGGTGCAGCATGAGCTGGAGGAGGCTCAGGAGAGAGCTGACATCGCCGAGTCCCAGGTCAACAAGCTCAGAGCTAAAAGCCGTGAATTTGGAAAGGGTAAAGAGGCTGAGGAGGCTGACTCCTTCGACTATAAGAGCTTCTTCGCCAAGGTTGGGCTGTCCGCCAAGACTCCTGATGACATCAAGAAGGCTTTTGCTGTCATTGACCAGGACAAGAGCGGCTTCATTGAGGAGGATGTGGAGGACTCCCTCTGTGAGGCCAAAGAGCTGTTCATCAAGACAGTCAAGCACTTCGGTGAGGACGCTGATAAGATGCAGCCTGATGAGTTCTTTGGGATTTTCGACCAGTTCTTGCGTATCCCCAAGGAGCAGGGCTTCCTGTCGTTCTGGAGAGGAAACTTGGCCAACGTCATCAGATACTTCCCCACACAGGCCCTCAACTTTGCTTTCAAGGACAAGTACAAGAAGGTCTTCGACATCACAGACAAGCTGGAGAACGAGCTGGCCAATAAGGAGGCTTTCCTCAGACAGATGGAGGAGAAGAACAGGCAGTTGCAGGAGCGGCTTGAGTTGGCAGAGCAGAAGCTCCAGCAG'
nonOptimal_Seq <- 'ACATCTTTGGCTTTGAGAACTTTGAGGTCAACCGCTTTGAGCAGTTCAACATTAACTATGCAAACGAGAAGCTTCAGGAGTATTTCAACAAGCACATTTTCTCACTGGAGCAGCTTGAGTTCAGGAAGGTGCAGCATGAGCTGGAGGAGGCTCAGGAGAGAGCTGACATCGCCGAGTCCCAGGTCAACAAGCTCAGAGCTAAAAGCCGTGAATTTGGAAAGGGTAAAGAGGCTGAGGAGGCTGACTCCTTCGACTATAAGAGCTTCTTCGCCAAGGTTGGGCTGTCCGCCAAGACTCCTGATGACATCAAGAAGGCTTTTGCTGTCATTGACCAGGACAAGAGCGGCTTCATTGAGGAGGATGTGGAGGACTCCCTCTGTGAGGCCAAAGAGCTGTTCATCAAGACAGTCAAGCACTTCGGTGAGGACGCTGATAAGATGCAGCCTGATGAGTTCTTTGGGATTTTCGACCAGTTCTTGCGTATCCCCAAGGAGCAGGGCTTCCTGTCGTTCTGGAGAGGAAACTTGGCCAACGTCATCAGATACTTCCCCACACAGGCCCTCAACTTTGCTTTCAAGGACAAGTACAAGAAGGTCTTCGACATCACAGACAAGCTGGAGAACGAGCTGGCCAATAAGGAGGCTTTCCTCAGACAGATGGAGGAGAAGAACAGGCAGTTGCAGGAGCGGCTTGAGTTGGCAGAGCAGAAGCTCCAGCAGG'
predictor <- optimalcodonR::predict_stability('human')
datos <- tibble(
Optimality = c('Optimal', 'Non-optimal'),
seq = c(optimal_Seq, nonOptimal_Seq)
) %>%
mutate(
predicted_stability = map_dbl(seq, predictor) %>% unscale_decay_to_mouse()
)
testing %>%
# filter(specie == 'human') %>%
mutate(stability = unscale_decay_to_mouse(decay_rate)) %>%
select(stability) %>%
filter(between(stability, 1.7, 20)) %>%
ggplot(aes(x = stability)) +
geom_density(fill = 'grey', color = NA) +
geom_vline(xintercept = datos$predicted_stability[1], color = 'red') +
geom_vline(xintercept = datos$predicted_stability[2], color = 'blue')
ggsave('figures/fold-change-hist.pdf', height = 1.5, width = 4)
datum <- readxl::read_excel("results_data/Human_final_table.xlsx")
datum <-
datum %>%
mutate(
Optimality = map_chr(Optimality, ~if_else(. == 1, "Optimal", "Non-optimal")),
Optimality = factor(Optimality, levels = c("Optimal", "Non-optimal")),
miR = map_chr(miR, ~if_else(. == 1, "Seed", "no Seed")),
UTR = str_detect(ID, "205") %>% map_chr(~if_else(., "weak seed", "strong seed")),
Replicate = map_chr(Replicate, ~if_else(. == 1, "replicate A", "replicate B"))
)
resultados <-
datum %>%
group_by(UTR, Optimality) %>%
nest() %>%
mutate(
fit = map(data, ~lm(log2(value) ~ Replicate + miR, data = .)),
tidy_fit = map(fit, tidy, conf.int = T)
) %>%
unnest(tidy_fit)
resultados %>%
inner_join(datos) %>%
filter(term == 'miRSeed') %>%
ggplot(aes(x = predicted_stability, y = estimate, color = Optimality)) +
geom_point(shape = 16, alpha = .9, size = 1) +
scale_color_manual(values = c('blue', 'red')) +
geom_errorbar(aes(ymin = conf.low, ymax = conf.high), width = .1) +
geom_hline(yintercept = 0, linetype = 3) +
scale_x_continuous(breaks = round(datos$predicted_stability, 2)) +
labs(
y = 'log2 fold change'
) +
facet_wrap(. ~ UTR) +
theme(legend.position = 'none', axis.text.x = element_text(angle = 20))
ggsave('figures/fold-change-optimalVSnon-optimal_majo.pdf', height = 1.5, width = 2)