args <- list(
    # alu_annotations_range_file = here::here("raw_data","
    #                                                  astro_neuron_bulk",
    #                                                    "16_alignment",
    #                                                    "vep",
    #                                                  "alu_annotations_distinct_range_230117.rds"),
    #          reduced_ensemble_range_file = here::here( "raw_data",
    #                                                    "astro_neuron_bulk",
    #                                                    "16_alignment",
    #                                                    "vep",
    #                                                   "reduced_ensembl_38-93_range_230117_stranded_distinct.rds"),
    #          vep_results_range_file = here::here("raw_data",
    #                      "astro_neuron_bulk",
    #                      "16_alignment",
    #                      "vep",
    #                      "vep_results_all_samples_strand_filtered_range.RDS"),
             # gene_expression_file = here::here("raw_data",
             #             "astro_neuron_bulk",
             #             "16_alignment",
             #             "vep",
             #             "astr_cocult_expressed_genes.xlsx"),
             detect_summary_comparison_sig_file = here::here("results",
                                                             "astrocytes",
                                                             "detect_summary_comparison_sig_edits.RDS"),
             # detect_summary_comparison_all_file = here::here("processed_data",
             #                                                 "astro_neuro_coculture",
             #                                                 "detect_summary_comparison_all_edits.RDS"),
             # detect_summary_comparison_alu_file = here::here("processed_data",
             #                                                 "astro_neuro_coculture",
             #                                                 "detect_summary_comparison_sig_alu_edits.RDS"),
             dif_summary_comparison_sig_file = here::here("results",
                                                             "astrocytes",
                                                          "differential_summary_comparison_sig_edits.RDS"),
             dif_summary_comparison_all_file = here::here("results",
                                                             "astrocytes",
                                                             "differential_summary_comparison_all_edits.RDS"),
             # qc_results_dir = here::here("processed_data",
             #                             "astro_neuro_coculture",
             #                             "astro_neuro_editing_QC"),
             # RNA_location_file = here::here("references",
             #                                "All_RNA_subcellular_localization_data.txt"),
             # panel_app_file = here::here("references",
             #                             "panel_app_PD_complex_park_gene_list.tsv"),
             output_folder = here::here("results",
                                        "astrocytes"),
             figure_output_dir = here::here("figures",
                                            "astrocytes")
)
             



plot_labels = c("Decreased_editing" = "Decreased editing",
                "Increased_editing" = "Increased editing",
                "Lost_edit_sites" = "Lost editing sites",
                "New_edit_sites" = "New editing sites",
                "astro_nt_vs_asyn" = "Astrocyte",
                "neuron_nt_vs_asyn" = "Neuron",
                "cocult_nt_vs_asyn" = "Co-culture",
                "astro_nt" = "Astrocyte basal",
                "astro_asyn" = "Astrocyte αsyn-O",
                "cocult_nt" = "Co-culture basal",
                "cocult_asyn" = "Co-culture αsyn-O",
                "neuron_nt" = "Neuron basal",
                "neuron_asyn" = "Neuron αsyn-O",
                "exon" = "Exon",
                "intron" = "Intron",
                "intergenic" = "Intergenic",
                "not_significant" = "Not significant",
                "significant" = "Significant",
                "Astrocyte_increase" = "Astrocyte increase",
                "Astrocyte_decrease" = "Astrocyte decrease",
                "Neuron_increase" = "Neuron increase",
                "Neuron_decrease" = "Neuron decrease",
                "Coculture_increase" = "Co-culture increase",
                "Coculture_decrease" = "Co-culture decrease",
                "no_treatment" = "Basal",
                "1uM_syn_oligomer" = "αsyn-O",
                "increase" = "Increase",
                "decrease" = "Decrease",
                "increased_sites" = "Increased editing rate",
                "decreased_sites" = "Decreased editing rate",
                "treated_edits" = "αsyn-O",
                "untreated_edits" = "Basal",
                "decrease" = "Decreased",
                "increase" = "Increased",
                "new_sites" = "New editing site",
                "lost_sites" = "Lost editing site",
                "significant" = "Significant",
                "not_significant" = "Not significant",
                "astrocyte" = "Astrocyte",
                "neuron" = "Neuron",
                "coculture" = "Co-culture",
                "Astrocyte" = "Astrocyte",
                "Coculture" = "Co-culture",
                "Neuron" = "Neuron"
                )

plot_labeller = as_labeller(plot_labels)

Aim: This notebook takes editing data output by jacusa, processes it to add annotations from VEP and repeat-based annotations, and then explores results. It looks at editing results per samples, and also the differential editing results, looking at the difference of each cell line, treated and untreated.

1 Methods

1.1 Editing analysis

RNA editing analysis was undertaken with JACUSA2. This utilises a drichilet multinomial distribution to ascertain whether transcripts are edited at a genomic site in two modes:

  • ‘Detect’ mode compares transcripts against a reference genome identifying editing in individual samples
  • ‘Differential’ mode compare two or more samples against each other, looking at a per site level for sites that are differentially edited in one sample compared to another.

Noting that transcripts with increased editing might not be successfully mapped during the alignment step, multi-sample 2 pass mapping with STAR was rerun, allowing a more generous mismatch rate of 16 base pairs per 100. This did not increase the rate of multimapping during alignment.

Replicates for each sample group were input to JACUSA2 detect, to output a list of editing sites for each of the six groups: astrocytes untreated, astrocytes treated, coculture untreated, coculture treated, neuron untreated and neuron treated. JACUSA2 differential was used to ascertain those sites that were differentially edited in treated samples of each cell line, compared to untreated.

All edits were filtered for those that were properly mapped with a pair, and with a z-score greater than 1.96 or less than -1.96. Effects of edits were explored using Variant Effect Predictor (ref). Repeat annotations were derived from Repeat Masker 4.0.5. Differences in editing sites and rates were explored using R 4.2.0.

2 Supplementary code

2.1 Processing Annotation files

The ensembl 38.93 gtf and alu repeat files were pre-processed as per the following script. Note that the alu annotations are unstranded, while the gtf and vep results are stranded.

source(here::here("scripts", "00a_process_reference_files.R"))

2.1.1 Define levels for filtering

When annotating editing sites with genic/mutation information, the annotations map to the editing sites multiple times. Given this, the multi-annotated editing sites were filtered as follows:

  • VEP results are filtered by: ** Whether genes are expressed (as per differential gene expression) ** Then by impact and consequence (highest impact preferenced) ** Then by biotype ** Then by Transcript Support Level (TSL), from lowest (greatest evidence) to highest (least evidence).
  • Repeat annotations were selected in descending order of: Simple_repeat, SINE/Alu, SINE/MIR, LINE/L1, LINE/L2, LTRs, DNAs, Retroposons/SVA, RNAs, Other SINE, Other LINE, Other. If both edits have the same class of repeat annotation, the first is chosen
  • Ensembl annotations: Where there are duplicates exonic annotations are chosen first before introns and intergenic. If they have the same genic type, then gene biotype is used to filter,


Genic location of the edits were derived from VEP results, with exonic including VEP consequences of start or stop lost, missense, synonymous or coding sequence variant, 3 prime and 5 prime variants and non coding transcript exon variants; intronic including intron variants, splice variants, incomplete terminal codon varians and upstream or downstream variants; and intergenic where specifically ascribed. Where VEP did not assign a variant, genic location was derived from the ensembl 38.93 gtf annotation file, with an exonic region ascribed where any transcript exon lay at the genic location, introns where the location lay within a gene but outside any transcript exon, and otherwise intergenic.

The detailed order for filtering is below:

source(here::here("functions_args",
                  "filtering_args.R"))

2.2 Editing pipeline

The RNA editing was derived from the raw transcriptomic files using the following workflow:


bash /scripts/01a_jacusa_workflow_astrocytes.txt

The JACUSA detect results were processed using the following code:

source(here::here("scripts", "01b_process_detect_astro.R"))

The JACUSA differential results were processed using the following code:

source(here::here("scripts", "01c_process_differential_astro.R"))

3 Results

3.1 Detect editing data

# Load file of significant results
comparison_df <- readRDS(args$detect_summary_comparison_sig_file)

# Run the following before and after relevelling factors to check no samples lost in processing
na_consequence_detect <- comparison_df %>% 
  dplyr::filter(is.na(Consequence))

# Refactor levels
comparison_df <- comparison_df %>% 
  mutate(Sample = fct_relevel(Sample, filtering_args$sample_levels),
         gene_type = fct_relevel(gene_type, filtering_args$gtf_genic_type),
         Consequence = fct_relevel(Consequence, filtering_args$vep_consequence),
         BIOTYPE = fct_relevel(BIOTYPE, vep_levels_BIOTYPE),
         Consequence_plots = Consequence) # Create additional column with simplified consequences for plotting


detect_export_df <- comparison_df %>% 
    dplyr::select(locus, sample_name, Edits, z.score)
write_csv(detect_export_df,
            file = str_c(args$output_folder, "/sig_edits_astrocyte_detect.csv"))

# Note, when releveling as collapsing levels, the levels have to be defined as a list (not a vector). These are populated from filtering_args, though, being defined as a list means that they get directly loaded to the environment, not as a subset of filtering_args).

levels(comparison_df$Consequence_plots) <- vep_consequence_plots
levels(comparison_df$BIOTYPE) <- vep_levels_BIOTYPE

3.1.1 Editing site numbers across cultures and genic regions

In the untreated samples, there were 78,547 editing sites in the astrocyte monoculture, 103,340 in the neuron monoculture, and 100,740 in the coculture. With a-syn treatment, there were at least an 11% increase in editing sites in each sample: 15.9% in astrocytes (p value of exonic proportion change measured by chi squared test 2e-16), 26.2% in neurons (p = 2e-16), and 11.1% in cocultures (p = 2e-16). In astrocyte containing samples, 50.3 - 62.4% of editing was seen in exonic regions, while in the neuronal line most editing was seen in intronic regions: 57.8 and 61.4% in untreated and treated samples respectively.

Summary of editing site number (percent) across cultures and genic locations.

summary_numbers <- summary_by_variable(comparison_df,
                    sample_metric = Sample)[[2]] 


genic_summary <- summary_by_variable_for_publication(comparison_df,
                    sample_metric = "Sample",
                    variable = "gene_type")[[2]] %>% 
    left_join(as_tibble(summary_numbers),
              by = "Sample") %>% 
    dplyr::rename(Total = n) 

write_csv(genic_summary,
          file = str_c(args$output_folder, "/editing_site_numbers_genicsite_summary.csv"))


genic_summary %>% 
    as_tibble() %>% 
      DT::datatable(rownames = FALSE,
                     options = list(scrollX = TRUE))

Figure 3.1: Table showing editing site numbers (percent) for the different cultures across genic locations

# Extract values for _nt and _asyn conditions for each group
astro_nt <- summary_numbers["astro_nt"]
astro_asyn <- summary_numbers["astro_asyn"]
cocult_nt <- summary_numbers["cocult_nt"]
cocult_asyn <- summary_numbers["cocult_asyn"]
neuron_nt <- summary_numbers["neuron_nt"]
neuron_asyn <- summary_numbers["neuron_asyn"]

# Calculate percent increase for each group
percent_increase_astro <- round(((astro_asyn - astro_nt) / astro_nt) * 100, 1)
percent_increase_cocult <- round(((cocult_asyn - cocult_nt) / cocult_nt) * 100, 1)
percent_increase_neuron <- round(((neuron_asyn - neuron_nt) / neuron_nt) * 100, 1)

# Print the results
cat("Percent increase in editing sites for astrocyte cultures:", percent_increase_astro, "%\n")
## Percent increase in editing sites for astrocyte cultures: 15.9 %
cat("Percent increase in editing sites for cocultures:", percent_increase_cocult, "%\n")
## Percent increase in editing sites for cocultures: 11.1 %
cat("Percent increase in editing sites for neuron cultures:", percent_increase_neuron, "%\n")
## Percent increase in editing sites for neuron cultures: 26.2 %
detect_genic_plot <- compare_plot(comparison_df %>%
               drop_na(gene_type),
             proportional = "stack",
             comparison = (gene_type),
             plot_label = plot_labels) +
    labs(y = "Number of editing sites",
         fill = "Genic location") +
  theme_plot()


ggsave(detect_genic_plot,
       file = "detect_genic_plot.pdf",
       path = args$figure_output_dir,
       device = "pdf",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

ggsave(detect_genic_plot,
       file = "detect_genic_plot.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

detect_genic_plot +
  labs(title = "Number of editing sites by genic location") +
       theme_aw

3.1.1.1 Check chi square test of independence of categorical variables

print("Astrocytes: significant change in exonic ratio")
## [1] "Astrocytes: significant change in exonic ratio"
chi_square_factor_test(comparison_df,
                       culture_type = "astrocyte",
                       variable_of_interest = gene_type, # The variable does not get ""
                       factor_of_interest = "exon")
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 155.21, df = 1, p-value < 2.2e-16
print("Coculture: significant change in exonic ratio")
## [1] "Coculture: significant change in exonic ratio"
chi_square_factor_test(dataframe = comparison_df,
                            culture_type = "coculture",
                            variable_of_interest = gene_type, # The variable does not get ""
                       factor_of_interest = "exon")
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 389.57, df = 1, p-value < 2.2e-16
print("Neuron: significant change in exonic ratio")
## [1] "Neuron: significant change in exonic ratio"
chi_square_factor_test(dataframe = comparison_df,
                            culture_type = "neuron",
                            variable_of_interest = gene_type, # The variable does not get ""
                       factor_of_interest = "exon")
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 346.65, df = 1, p-value < 2.2e-16


3.1.2 Editing by Consequence

summary_by_variable_for_publication(comparison_df,
                                               sample_metric = "Sample",
                                               variable = "Consequence_plots")[[1]] %>% 
      DT::datatable(rownames = FALSE,
                     options = list(scrollX = TRUE))
compare_plot(comparison_df %>%
               drop_na(Consequence_plots),
                    proportional = "fill",
                    comparison = (Consequence_plots),
             plot_label = plot_labels) +
    labs(title = "Consequence of edits", y = "Proportion of editing sites", fill = "Consequence",
         subtitle = "Excluding NAs") +
  theme_plot() +
       theme_aw


3.1.3 Editing by Biotype

summary_by_variable_for_publication(comparison_df,
                                               sample_metric = "Sample",
                                               variable = "BIOTYPE")[[1]] %>% 
      DT::datatable(rownames = FALSE,
                     options = list(scrollX = TRUE))
compare_plot(comparison_df %>%
               drop_na(BIOTYPE),
                    proportional = "fill",
                    comparison = BIOTYPE,
             plot_label = plot_labels) +
    labs(title = "Biotype of edits", y = "Proportion of editing sites",
         fill = "Transcript biotype") +
  guides(fill = guide_legend(reverse = TRUE)) +
  theme_plot() +
       theme_aw


3.1.4 Editing by repeat regions

summary_by_variable_for_publication(comparison_df,
                                               sample_metric = "Sample",
                                               variable = "repeat_class")[[1]] %>% 
      DT::datatable(rownames = FALSE,
                     options = list(scrollX = TRUE))
# Note: NAs have been removed
repeat_types_plot <- compare_plot(comparison_df %>%
                                           drop_na(repeat_class),
                    proportional = "fill",
                    comparison = fct_rev(repeat_class),
                    plot_label = plot_labels) +
    labs( y = "Proportion of editing sites", fill = "Repeat class") +
    guides(fill = guide_legend(reverse = TRUE)) +
  theme_plot()


ggsave(repeat_types_plot,
       file = "repeat_types_plot.pdf",
       path = args$figure_output_dir,
       device = "pdf",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

ggsave(repeat_types_plot,
       file = "repeat_types_plot.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

repeat_types_plot +
  labs(title = "Proportion of repeat types",
       subtitle = "Excluding NAs") +
    theme_aw


3.1.5 Comparison of editing rates at a given site between samples

comparison_df %>%
  group_by(Sample) %>%
  summarise(min_Edits = min(Edits, na.rm = T),
            median_Edits = median(Edits, na.rm =T),
            IQR_Edits = IQR(Edits, na.rm = T),
            max_Edits = max(Edits, na.rm = T)
           )  %>% 
      DT::datatable(rownames = FALSE,
                     options = list(scrollX = TRUE))



3.2 Differential editing data

3.2.1 Summary of differentially edited sites

annotated_dif_data  <- readRDS(args$dif_summary_comparison_all_file)

# Add columns of interest
annotated_dif_data <- annotated_dif_data %>%
  mutate(treat_untreat_dif = treated_edits - untreated_edits) %>%
  dplyr::relocate(treat_untreat_dif, .after=treat_untreat_ratio) %>%
  mutate(culture = str_replace_all(SampleName, c("astro_nt_vs_asyn" = "Astrocyte",
                                                "cocult_nt_vs_asyn" = "Coculture",
                                                "neuron_nt_vs_asyn" = "Neuron")) %>%
           as.factor,
         binary_editing_change = ifelse(treat_untreat_dif < 0.00, "decrease",
                                      ifelse(treat_untreat_dif > 0.00, "increase",
                                             "Other"
                                             )
                                 ) %>%
           as.factor(),
         four_editing_changes = case_when(
           treat_untreat_ratio == Inf ~ "new_sites",
           treat_untreat_ratio != Inf & treat_untreat_dif > 0 ~ "increased_sites",
           treat_untreat_ratio != 0 & treat_untreat_dif < 0 ~ "decreased_sites",
           treat_untreat_ratio == 0 ~ "lost_sites") %>%
           as.factor(),
         Sample_change = str_c(culture, "_", binary_editing_change) %>%
           as.factor(),
         Consequence_plots = Consequence,  # Add in consequence row with simplified levels for plotting
         sig_edit = as_factor(sig_edit))

# Rationalise levels in factors
levels(annotated_dif_data$Consequence_plots) <- vep_consequence_plots
levels(annotated_dif_data$BIOTYPE) <- vep_levels_BIOTYPE
annotated_dif_data$four_editing_changes <- factor(annotated_dif_data$four_editing_changes, levels = c("new_sites", "increased_sites", "decreased_sites", "lost_sites"))

# Filter for significance
sig_annotated_dif_data <- annotated_dif_data %>%
  dplyr::filter(sig_edit == "significant")

differential_export_df <- sig_annotated_dif_data %>%
    dplyr::select(locus, SampleName, untreated_edits, treated_edits, z.score)
write_csv(differential_export_df,
            file = str_c(args$output_folder, "/sig_edits_astrocyte_differential.csv"))
# Creat summary table
sig_annotated_dif_table <- sig_annotated_dif_data %>%
    dplyr::select(culture, four_editing_changes) %>%
    table() %>% 
    as_tibble() %>% 
     spread(four_editing_changes, n) 

sig_annotated_dif_table %>% 
        DT::datatable(rownames = FALSE,
                  options = list(scrollX = TRUE))
dif_site_summary_plot <- sig_annotated_dif_data %>%
  dplyr::mutate(four_editing_changes = fct_relevel(four_editing_changes, levels = c("new_sites", "increased_sites", "lost_sites", "decreased_sites"))) %>%
  ggplot(aes(x = binary_editing_change, fill = four_editing_changes)) +
  geom_bar(position = "stack") +
  facet_wrap(vars(culture),
             ncol = 3,
             labeller = plot_labeller) +
  scale_fill_manual(values = named_palette,
                    labels = plot_labels) +
  theme_plot() +
  labs(x = "Change in editing per site",
       y = "Number of editing sites",
       fill = element_blank()) +
   scale_x_discrete(labels = element_blank())


ggsave(dif_site_summary_plot,
       file = "differential_site_summary_plot.pdf",
       path = args$figure_output_dir,
       device = "pdf",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)


ggsave(dif_site_summary_plot,
       file = "differential_site_summary_plot.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

dif_site_summary_plot +
  labs(title = "Changes in differentially edited sites")

# Export for cluster profiler
sum_sig_dif_data <- sig_annotated_dif_data %>%
  dplyr::select(locus, Sample_change, culture, Gene, SYMBOL, treat_untreat_dif, treat_untreat_ratio, z.score, gene_type, Consequence, Consequence_plots, BIOTYPE, repeat_class, ARE_binary, ARE_cluster) %>%
  dplyr::mutate(log_ratio = log2(treat_untreat_ratio)) %>%
  dplyr::filter(gene_type != "intergenic") %>%  # select only those sites within genes
  arrange(culture, desc(log_ratio))

write_csv(sum_sig_dif_data,
          str_c(args$output_folder,
                "/summary_results_genes.csv"))


sum_all_dif_data <- annotated_dif_data %>%
  dplyr::select(locus, Sample_change, culture, Gene, SYMBOL, treat_untreat_dif, treat_untreat_ratio, z.score, gene_type, Consequence, Consequence_plots, BIOTYPE, repeat_class, ARE_binary, ARE_cluster) %>%
  dplyr::mutate(log_ratio = log2(treat_untreat_ratio)) %>%
  dplyr::filter(gene_type != "intergenic") %>%
  arrange(culture, desc(log_ratio))

sum_all_dif_data
write_csv(sum_all_dif_data,
          str_c(args$output_folder,
                "/dge_comparisons",
                "/summary_results_all_genes_inc_nonsig.csv"))

all_gene_background <- sum_all_dif_data %>%
  dplyr::select(Gene, SYMBOL) %>%
  distinct(Gene, .keep_all = T)

write_csv(all_gene_background,
          str_c(args$output_folder,
                "/dge_comparisons",
                "/summary_results_all_dif_genelist_background_universe.csv"))


sig_increase_gene_ratio <- sum_sig_dif_data %>%
  dplyr::filter(treat_untreat_dif > 0,
                Consequence_plots == "3 prime UTR variant") %>%
  distinct(SYMBOL, .keep_all = TRUE)

write_csv(sig_increase_gene_ratio,
          str_c(args$output_folder,
                "/dge_comparisons",
                "/significant_3UTR_genes_ratios.csv"))

sig_increase_gene_difference <- sum_sig_dif_data %>%
  dplyr::filter(treat_untreat_dif > 0,
                Consequence_plots == "3 prime UTR variant") %>%
  arrange(culture, desc(treat_untreat_dif)) %>%
  distinct(SYMBOL, .keep_all = TRUE)
sig_increase_gene_difference

write_csv(sig_increase_gene_difference,
          str_c(args$output_folder,
                "/dge_comparisons",
                "/significant_3UTR_genes_difference.csv"))


3.2.2 Differential editing rate at a given site

par_coord_plot_data <- sig_annotated_dif_data %>%
  dplyr::select(locus, culture, four_editing_changes, Sample_change, untreated_edits, treated_edits)  %>%
   pivot_longer(cols = c("untreated_edits", "treated_edits"), # Pivot longer for ggplot
               names_to = "timepoint",
               values_to = "editing_rate") %>%
  dplyr::filter(four_editing_changes %in% c("increased_sites","decreased_sites")) %>%
  dplyr::mutate(four_editing_changes = factor(four_editing_changes, levels = c("increased_sites","decreased_sites")),
                timepoint = factor(timepoint, levels = c("untreated_edits", "treated_edits"))
                )

parallel_line_plot <- par_coord_plot_data %>%
  arrange(four_editing_changes, locus)  %>%
  dplyr::mutate(locus = forcats::fct_reorder(as_factor(locus), four_editing_changes, .fun=first)) %>% #Reorder locus as a factor based on four editing changes so it will plot correctly
  slice(1:nrow(par_coord_plot_data)) %>%
ggplot(aes(x = timepoint, y = editing_rate, group = locus, colour = four_editing_changes)) +
   geom_path(alpha = 0.1, linewidth = 0.1) +
  theme_plot() +
  facet_wrap(~culture,
             labeller = plot_labeller) +
  scale_colour_manual(values = named_palette,
                        labels = plot_labels) +
  scale_x_discrete(labels = plot_labels) +
  labs(x = element_blank(), y = "Editing rate", colour = "Editing rate change") +
  guides(colour = guide_legend(override.aes = list(alpha = 1, linewidth = 1))) # Change legend so can see the colours

ggsave(parallel_line_plot,
       file = "differential_editing_parallel_line_plot_tall.pdf",
       path = args$figure_output_dir,
       device = "pdf",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)


ggsave(parallel_line_plot,
       file = "differential_editing_parallel_line_plot_tall.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

parallel_line_plot +
  labs(title = "Change in editing rate with a-syn treatment") +
       theme_aw


3.2.3 Proportions of differential editing: Site consequence

# For the plot of consequences, row bind the baseline (untreated) VEP Consequences for each cell line, with those that change in differential editing to look at difference.

consequence_plot_data <- comparison_df %>%
  dplyr::filter(treatment == "no_treatment") %>%
  dplyr::select(locus, culture, binary_editing_change = treatment, Consequence_plots) %>%
  dplyr::mutate(culture = str_to_title(culture)) %>% #Make culture column upper case to match the differential data
  bind_rows(
    sig_annotated_dif_data %>%
              dplyr::select(locus, culture, binary_editing_change, Consequence_plots)
  )



consequence_dif_plot <- consequence_plot_data %>%
  drop_na(Consequence_plots) %>%
  ggplot(aes(x=binary_editing_change, fill = fct_rev(Consequence_plots))) +
  geom_bar(position = "fill") +
    scale_fill_paletteer_d("ggthemes::Classic_20",
                           na.value = "grey90") +
    theme_plot() +
    labs(y = "Proportion of editing sites", x = NULL, fill = "Consequence") +
   scale_x_discrete(labels = plot_labels)  +
  guides(fill = guide_legend(reverse = TRUE)) +
  facet_wrap(vars(culture),
             labeller = plot_labeller)





ggsave(consequence_dif_plot,
       file = "differential_consequence_plot.pdf",
       path = args$figure_output_dir,
       device = "pdf",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

ggsave(consequence_dif_plot,
       file = "differential_consequence_plot.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)


consequence_dif_plot +
          labs(title = "Consequences of differential editing changes",
         subtitle = "Baseline verse sites with decreased/increased editing with treatment") +
       theme_aw

Check chi square: proportion of sites in 3UTR in increased verse decreased sites

print("Astrocytes")
## [1] "Astrocytes"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Astrocyte",
                                    variable_of_interest = Consequence_plots,
                                    factor_of_interest = '3 prime UTR variant' )
##                     Consequence_plots
## Sample_change        3 prime UTR variant Other
##   Astrocyte_decrease                 576   878
##   Astrocyte_increase               16675  9823
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 316.12, df = 1, p-value < 2.2e-16
print("Neuron")
## [1] "Neuron"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Neuron",
                                    variable_of_interest = Consequence_plots,
                                    factor_of_interest = '3 prime UTR variant' )
##                  Consequence_plots
## Sample_change     3 prime UTR variant Other
##   Neuron_decrease                2622  6999
##   Neuron_increase                4442 12339
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 1.8708, df = 1, p-value = 0.1714
print("Cocultures")
## [1] "Cocultures"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Coculture",
                                    variable_of_interest = Consequence_plots,
                                    factor_of_interest = '3 prime UTR variant' )
##                     Consequence_plots
## Sample_change        3 prime UTR variant Other
##   Coculture_decrease                 695  1474
##   Coculture_increase               14767 11387
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 480.81, df = 1, p-value < 2.2e-16


3.2.4 Proportions of differential editing: Site biotype

# Biotype with baseline
biotype_plot_data <- comparison_df %>%
  dplyr::filter(treatment == "no_treatment") %>%
  dplyr::select(locus, culture, binary_editing_change = treatment, BIOTYPE) %>%
  dplyr::mutate(culture = str_to_title(culture)) %>% #Make culture column upper case to match the differential data
  bind_rows(
    sig_annotated_dif_data %>%
              dplyr::select(locus, culture, binary_editing_change, BIOTYPE)
  )

biotype_dif_plot <- biotype_plot_data %>%
  drop_na(BIOTYPE) %>%
  ggplot(aes(x=binary_editing_change, fill = fct_rev(BIOTYPE))) +
  geom_bar(position = "fill") +
    scale_fill_paletteer_d("ggthemes::Classic_20",
                           na.value = "grey90") +
    theme_plot() +
    labs(y = "Number of editing sites", x = NULL, fill = "Biotypes") +
   scale_x_discrete(labels = plot_labels)  +
  guides(fill = guide_legend(reverse = TRUE)) +
  facet_wrap(vars(culture),
             labeller = plot_labeller)

biotype_dif_plot +
          labs(title = "Proportion of biotypes of differential editing changes",
         subtitle = "Baseline verse sites with decreased/increased editing with treatment") +
       theme_aw

ggsave(biotype_dif_plot,
       file = "supp_differential_biotype_plot.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)
print("Astrocytes")
## [1] "Astrocytes"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Astrocyte",
                                    variable_of_interest = BIOTYPE,
                                    factor_of_interest = 'Protein coding' )
##                     BIOTYPE
## Sample_change        Protein coding Other
##   Astrocyte_decrease            935   522
##   Astrocyte_increase          19046  7523
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 37.721, df = 1, p-value = 0.0000000008164
print("Coculture")
## [1] "Coculture"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Coculture",
                                    variable_of_interest = BIOTYPE,
                                    factor_of_interest = 'Protein coding' )
##                     BIOTYPE
## Sample_change        Protein coding Other
##   Coculture_decrease           1197   978
##   Coculture_increase          17741  8487
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 143.1, df = 1, p-value < 2.2e-16
print("Neuron")
## [1] "Neuron"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Neuron",
                                    variable_of_interest = BIOTYPE,
                                    factor_of_interest = 'Protein coding' )
##                  BIOTYPE
## Sample_change     Protein coding Other
##   Neuron_decrease           4810  4844
##   Neuron_increase           8422  8410
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 0.10172, df = 1, p-value = 0.7498


3.2.5 Proportions of differential editing: Alu sites

# Biotype with baseline
alu_plot_data <- comparison_df %>%
  dplyr::filter(treatment == "no_treatment") %>%
  dplyr::select(locus, culture, binary_editing_change = treatment, repeat_class) %>%
  dplyr::mutate(culture = str_to_title(culture)) %>% #Make culture column upper case to match the differential data
  bind_rows(
    sig_annotated_dif_data %>%
              dplyr::select(locus, culture, binary_editing_change, repeat_class)
  )

alu_dif_plot <- alu_plot_data %>%
  drop_na(repeat_class) %>%
  ggplot(aes(x=binary_editing_change, fill = (repeat_class))) +
  geom_bar(position = "fill") +
    scale_fill_paletteer_d("ggthemes::Classic_20",
                           na.value = "grey90") +
    theme_plot() +
    labs(y = "Number of editing sites", x = NULL, fill = "Repeat class") +
   scale_x_discrete(labels = plot_labels)  +
  guides(fill = guide_legend(reverse = TRUE)) +
  facet_wrap(vars(culture),
             labeller = plot_labeller)

alu_dif_plot  +
          labs(title = "Proportion of repeat classes of differential editing changes",
         subtitle = "Baseline verse sites with decreased/increased editing with treatment") +
       theme_aw

ggsave(alu_dif_plot,
       file = "supp_differential_repeat_plot.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 240,
       height = 180,
       limitsize = TRUE
)

Testing proportional changes for SINE/Alu

print("Astrocytes")
## [1] "Astrocytes"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Astrocyte",
                                    variable_of_interest = repeat_class,
                                    factor_of_interest = "SINE/Alu" )
##                     repeat_class
## Sample_change        SINE/Alu Other
##   Astrocyte_decrease     1029   112
##   Astrocyte_increase    24944   997
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 97.757, df = 1, p-value < 2.2e-16
print("Coculture")
## [1] "Coculture"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Coculture",
                                    variable_of_interest = repeat_class,
                                    factor_of_interest = "SINE/Alu"  )
##                     repeat_class
## Sample_change        SINE/Alu Other
##   Coculture_decrease     1641   169
##   Coculture_increase    24584  1109
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 95.065, df = 1, p-value < 2.2e-16
print("Neuron")
## [1] "Neuron"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Neuron",
                                    variable_of_interest = repeat_class,
                                    factor_of_interest = "SINE/Alu"  )
##                  repeat_class
## Sample_change     SINE/Alu Other
##   Neuron_decrease     9130   483
##   Neuron_increase    16021   815
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 0.40367, df = 1, p-value = 0.5252

Testing proportional changes for Simple_repeat

print("Astrocytes")
## [1] "Astrocytes"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Astrocyte",
                                    variable_of_interest = repeat_class,
                                    factor_of_interest = "Simple_repeat" )
##                     repeat_class
## Sample_change        Simple_repeat Other
##   Astrocyte_decrease            33  1108
##   Astrocyte_increase            61 25880
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 215.46, df = 1, p-value < 2.2e-16
print("Coculture")
## [1] "Coculture"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Coculture",
                                    variable_of_interest = repeat_class,
                                    factor_of_interest = "Simple_repeat"  )
##                     repeat_class
## Sample_change        Simple_repeat Other
##   Coculture_decrease            45  1765
##   Coculture_increase            89 25604
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 155.3, df = 1, p-value < 2.2e-16
print("Neuron")
## [1] "Neuron"
chi_square_factor_test_differential(dataframe = sig_annotated_dif_data,
                                    culture_type = "Neuron",
                                    variable_of_interest = repeat_class,
                                    factor_of_interest = "Simple_repeat" )
##                  repeat_class
## Sample_change     Simple_repeat Other
##   Neuron_decrease            77  9536
##   Neuron_increase           103 16733
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  .
## X-squared = 2.9673, df = 1, p-value = 0.08497

<br

4 Combine plots

summary_edit_site_cons_plot <- (detect_genic_plot + dif_site_summary_plot) /
  parallel_line_plot /
  (consequence_dif_plot + plot_spacer()) +
  plot_annotation(tag_levels = 'a')

ggsave(summary_edit_site_cons_plot  ,
       file = "summary_edit_site_cons_plot.pdf",
       path = args$figure_output_dir,
       device = "pdf",
       dpi = 300,
       units = "mm",
       width = 380,
       height = 450,
       limitsize = TRUE
)

ggsave(summary_edit_site_cons_plot  ,
       file = "summary_edit_site_cons_plot.png",
       path = args$figure_output_dir,
       device = "png",
       dpi = 300,
       units = "mm",
       width = 380,
       height = 450,
       limitsize = TRUE
)

summary_edit_site_cons_plot +
       theme_aw

5 Session info

Show/hide
## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.2.0 (2022-04-22)
##  os       CentOS Linux 7 (Core)
##  system   x86_64, linux-gnu
##  ui       X11
##  language (EN)
##  collate  en_GB.UTF-8
##  ctype    en_GB.UTF-8
##  tz       Europe/London
##  date     2024-02-09
##  pandoc   2.19 @ /flask/apps/testfolder/eb/software/RStudio-Server/2022.02.3+492-foss-2021b-Java-13-R-4.2.0/bin/quarto/bin/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  ! package                * version        date (UTC) lib source
##  P abind                    1.4-5          2016-07-21 [?] CRAN (R 4.2.0)
##  P AnnotationDbi            1.58.0         2022-04-26 [?] Bioconductor
##  P AnnotationHub            3.4.0          2022-04-26 [?] Bioconductor
##  P ape                      5.6-2          2022-03-02 [?] CRAN (R 4.2.0)
##  P aplot                    0.1.7          2022-09-06 [?] CRAN (R 4.2.0)
##  P assertthat               0.2.1          2019-03-21 [?] CRAN (R 4.2.0)
##  P babelgene                22.9           2022-09-29 [?] CRAN (R 4.2.0)
##  P backports                1.4.1          2021-12-13 [?] CRAN (R 4.2.0)
##  P Biobase                  2.56.0         2022-04-26 [?] Bioconductor
##  P BiocFileCache            2.4.0          2022-04-26 [?] Bioconductor
##  P BiocGenerics           * 0.42.0         2022-04-26 [?] Bioconductor
##  P BiocIO                   1.6.0          2022-04-26 [?] Bioconductor
##  P BiocManager              1.30.22        2023-08-08 [?] CRAN (R 4.2.0)
##  P BiocParallel             1.30.3         2022-06-05 [?] Bioconductor
##  P BiocVersion              3.15.2         2022-03-29 [?] Bioconductor
##  P Biostrings               2.64.1         2022-08-18 [?] Bioconductor
##  P bit                      4.0.4          2020-08-04 [?] CRAN (R 4.2.0)
##  P bit64                    4.0.5          2020-08-30 [?] CRAN (R 4.2.0)
##  P bitops                   1.0-7          2021-04-24 [?] CRAN (R 4.2.0)
##  P blob                     1.2.3          2022-04-10 [?] CRAN (R 4.2.0)
##  P bookdown                 0.29           2022-09-12 [?] CRAN (R 4.2.0)
##  P broom                  * 1.0.1          2022-08-29 [?] CRAN (R 4.2.0)
##  P bslib                    0.3.1          2021-10-06 [?] CRAN (R 4.2.0)
##  P cachem                   1.0.6          2021-08-19 [?] CRAN (R 4.2.0)
##  P car                      3.1-1          2022-10-19 [?] CRAN (R 4.2.0)
##  P carData                  3.0-5          2022-01-06 [?] CRAN (R 4.2.0)
##  P cellranger               1.1.0          2016-07-27 [?] CRAN (R 4.2.0)
##  P cli                      3.4.1          2022-09-23 [?] CRAN (R 4.2.0)
##  P codetools                0.2-18         2020-11-04 [?] CRAN (R 4.2.0)
##  P colorspace               2.1-0          2023-01-23 [?] CRAN (R 4.2.0)
##  P cowplot                * 1.1.1          2020-12-30 [?] CRAN (R 4.2.0)
##  P crayon                   1.5.2          2022-09-29 [?] CRAN (R 4.2.0)
##  P crosstalk                1.2.0          2021-11-04 [?] CRAN (R 4.2.0)
##  P curl                     4.3.2          2021-06-23 [?] CRAN (R 4.2.0)
##  P data.table             * 1.14.4         2022-10-17 [?] CRAN (R 4.2.0)
##  P DBI                      1.1.3          2022-06-18 [?] CRAN (R 4.2.0)
##  P dbplyr                   2.2.1          2022-06-27 [?] CRAN (R 4.2.0)
##  P DelayedArray             0.22.0         2022-04-26 [?] Bioconductor
##  P digest                   0.6.30         2022-10-18 [?] CRAN (R 4.2.0)
##  P dplyr                  * 1.0.10         2022-09-01 [?] CRAN (R 4.2.0)
##  P DT                       0.26           2022-10-19 [?] CRAN (R 4.2.0)
##  P ellipsis                 0.3.2          2021-04-29 [?] CRAN (R 4.2.0)
##  P evaluate                 0.18           2022-11-07 [?] CRAN (R 4.2.0)
##  P EWCE                   * 1.11.3         2023-11-24 [?] Github (NathanSkene/EWCE@3838e2c)
##  P ewceData                 1.8.0          2023-11-24 [?] Github (neurogenomics/ewceData@4b6d0e3)
##  P ExperimentHub            2.4.0          2022-04-26 [?] Bioconductor
##  P fansi                    1.0.3          2022-03-24 [?] CRAN (R 4.2.0)
##  P farver                   2.1.1          2022-07-06 [?] CRAN (R 4.2.0)
##  P fastmap                  1.1.0          2021-01-25 [?] CRAN (R 4.2.0)
##  P filelock                 1.0.2          2018-10-05 [?] CRAN (R 4.2.0)
##  P forcats                * 0.5.2          2022-08-19 [?] CRAN (R 4.2.0)
##  P fs                       1.5.2          2021-12-08 [?] CRAN (R 4.2.0)
##  P gargle                   1.2.0          2021-07-02 [?] CRAN (R 4.2.0)
##  P generics                 0.1.3          2022-07-05 [?] CRAN (R 4.2.0)
##  P GenomeInfoDb           * 1.32.3         2022-08-09 [?] Bioconductor
##  P GenomeInfoDbData         1.2.8          2022-08-08 [?] Bioconductor
##  P GenomicAlignments        1.32.1         2022-07-24 [?] Bioconductor
##  P GenomicRanges          * 1.48.0         2022-04-26 [?] Bioconductor
##  P ggfun                    0.0.7          2022-08-31 [?] CRAN (R 4.2.0)
##  P ggplot2                * 3.4.2          2023-04-03 [?] CRAN (R 4.2.0)
##  P ggplotify                0.1.0          2021-09-02 [?] CRAN (R 4.2.0)
##  P ggpubr                   0.4.0          2020-06-27 [?] CRAN (R 4.2.0)
##  P ggrepel                  0.9.2          2022-11-06 [?] CRAN (R 4.2.0)
##  P ggsignif                 0.6.4          2022-10-13 [?] CRAN (R 4.2.0)
##  P ggtranscript           * 0.99.9         2022-08-12 [?] Github (dzhang32/ggtranscript@b99da0d)
##  P ggtree                   3.4.2          2022-08-14 [?] Bioconductor
##  P glue                     1.6.2          2022-02-24 [?] CRAN (R 4.2.0)
##  P googledrive              2.0.0          2021-07-08 [?] CRAN (R 4.2.0)
##  P googlesheets4            1.0.1          2022-08-13 [?] CRAN (R 4.2.0)
##  P gprofiler2               0.2.2          2023-06-14 [?] CRAN (R 4.2.0)
##  P gridExtra              * 2.3            2017-09-09 [?] CRAN (R 4.2.0)
##  P gridGraphics             0.5-1          2020-12-13 [?] CRAN (R 4.2.0)
##  P gtable                   0.3.1          2022-09-01 [?] CRAN (R 4.2.0)
##  P haven                    2.5.1          2022-08-22 [?] CRAN (R 4.2.0)
##  P here                   * 1.0.1          2020-12-13 [?] CRAN (R 4.2.0)
##  P HGNChelper               0.8.1          2019-10-24 [?] CRAN (R 4.2.0)
##  P highr                    0.9            2021-04-16 [?] CRAN (R 4.2.0)
##  P hms                      1.1.2          2022-08-19 [?] CRAN (R 4.2.0)
##  P homologene               1.4.68.19.3.27 2019-03-28 [?] CRAN (R 4.2.0)
##  P htmltools                0.5.2          2021-08-25 [?] CRAN (R 4.2.0)
##  P htmlwidgets              1.5.4          2021-09-08 [?] CRAN (R 4.2.0)
##  P httpuv                   1.6.5          2022-01-05 [?] CRAN (R 4.2.0)
##  P httr                     1.4.4          2022-08-17 [?] CRAN (R 4.2.0)
##  P interactiveDisplayBase   1.34.0         2022-04-26 [?] Bioconductor
##  P IRanges                * 2.30.1         2022-08-18 [?] Bioconductor
##  P jquerylib                0.1.4          2021-04-26 [?] CRAN (R 4.2.0)
##  P jsonlite                 1.8.3          2022-10-21 [?] CRAN (R 4.2.0)
##  P kableExtra             * 1.4.0          2024-01-24 [?] CRAN (R 4.2.0)
##  P KEGGREST                 1.36.3         2022-07-12 [?] Bioconductor
##  P knitr                  * 1.40           2022-08-24 [?] CRAN (R 4.2.0)
##  P labeling                 0.4.2          2020-10-20 [?] CRAN (R 4.2.0)
##  P later                    1.3.0          2021-08-18 [?] CRAN (R 4.2.0)
##  P lattice                  0.20-45        2021-09-22 [?] CRAN (R 4.2.0)
##  P lazyeval                 0.2.2          2019-03-15 [?] CRAN (R 4.2.0)
##  P lifecycle                1.0.3          2022-10-07 [?] CRAN (R 4.2.0)
##  P limma                    3.52.2         2022-06-19 [?] Bioconductor
##  P lubridate                1.8.0          2021-10-07 [?] CRAN (R 4.2.0)
##  P magrittr                 2.0.3          2022-03-30 [?] CRAN (R 4.2.0)
##  P Matrix                   1.6-5          2024-01-11 [?] CRAN (R 4.2.0)
##  P MatrixGenerics           1.8.1          2022-06-26 [?] Bioconductor
##  P matrixStats              0.62.0         2022-04-19 [?] CRAN (R 4.2.0)
##  P memoise                  2.0.1          2021-11-26 [?] CRAN (R 4.2.0)
##  P mime                     0.12           2021-09-28 [?] CRAN (R 4.2.0)
##  P modelr                   0.1.9          2022-08-19 [?] CRAN (R 4.2.0)
##  P munsell                  0.5.0          2018-06-12 [?] CRAN (R 4.2.0)
##  P nlme                     3.1-159        2022-08-09 [?] CRAN (R 4.2.0)
##  P orthogene                1.2.1          2022-10-02 [?] Bioconductor
##  P paletteer              * 1.4.1          2022-08-15 [?] CRAN (R 4.2.0)
##  P pander                 * 0.6.5          2022-03-18 [?] CRAN (R 4.2.0)
##  P patchwork              * 1.1.2          2022-08-19 [?] CRAN (R 4.2.0)
##  P pillar                   1.8.1          2022-08-19 [?] CRAN (R 4.2.0)
##  P pkgconfig                2.0.3          2019-09-22 [?] CRAN (R 4.2.0)
##  P plotly                   4.10.0         2021-10-09 [?] CRAN (R 4.2.0)
##  P plyr                     1.8.7          2022-03-24 [?] CRAN (R 4.2.0)
##  P plyranges              * 1.16.0         2022-04-26 [?] Bioconductor
##  P png                      0.1-7          2013-12-03 [?] CRAN (R 4.2.0)
##  P prismatic                1.1.1          2022-08-15 [?] CRAN (R 4.2.0)
##  P promises                 1.2.0.1        2021-02-11 [?] CRAN (R 4.2.0)
##  P purrr                  * 0.3.5          2022-10-06 [?] CRAN (R 4.2.0)
##  P R6                       2.5.1          2021-08-19 [?] CRAN (R 4.2.0)
##  P rappdirs                 0.3.3          2021-01-31 [?] CRAN (R 4.2.0)
##  P Rcpp                     1.0.9          2022-07-08 [?] CRAN (R 4.2.0)
##  P RCurl                    1.98-1.8       2022-07-30 [?] CRAN (R 4.2.0)
##  P readr                  * 2.1.2          2022-01-30 [?] CRAN (R 4.2.0)
##  P readxl                   1.4.1          2022-08-17 [?] CRAN (R 4.2.0)
##  P rematch2                 2.1.2          2020-05-01 [?] CRAN (R 4.2.0)
##  P reprex                   2.0.2          2022-08-17 [?] CRAN (R 4.2.0)
##  P reshape2                 1.4.4          2020-04-09 [?] CRAN (R 4.2.0)
##  P restfulr                 0.0.15         2022-06-16 [?] CRAN (R 4.2.0)
##  P rjson                    0.2.21         2022-01-09 [?] CRAN (R 4.2.0)
##  P rlang                    1.1.1          2023-04-28 [?] CRAN (R 4.2.0)
##  P rmarkdown                2.14           2022-04-25 [?] CRAN (R 4.2.0)
##  P RNOmni                 * 1.0.1.2        2023-09-11 [?] CRAN (R 4.2.0)
##  P rprojroot                2.0.3          2022-04-02 [?] CRAN (R 4.2.0)
##  P Rsamtools                2.12.0         2022-04-26 [?] Bioconductor
##  P RSQLite                  2.2.16         2022-08-17 [?] CRAN (R 4.2.0)
##  P rstatix                  0.7.0          2021-02-13 [?] CRAN (R 4.2.0)
##  P rstudioapi               0.13           2020-11-12 [?] CRAN (R 4.2.0)
##  P rtracklayer              1.56.1         2022-06-23 [?] Bioconductor
##  P rvest                    1.0.3          2022-08-19 [?] CRAN (R 4.2.0)
##  P S4Vectors              * 0.34.0         2022-04-26 [?] Bioconductor
##  P sass                     0.4.1          2022-03-23 [?] CRAN (R 4.2.0)
##  P scales                   1.2.1          2022-08-20 [?] CRAN (R 4.2.0)
##  P sciRmdTheme              0.1            2022-06-30 [?] CRAN (R 4.2.0)
##  P sessioninfo            * 1.2.2          2021-12-06 [?] CRAN (R 4.2.0)
##  P shiny                    1.7.2          2022-07-19 [?] CRAN (R 4.2.0)
##  P SingleCellExperiment     1.18.1         2022-10-02 [?] Bioconductor
##  P stringi                  1.7.8          2022-07-11 [?] CRAN (R 4.2.0)
##  P stringr                * 1.4.1          2022-08-20 [?] CRAN (R 4.2.0)
##  P SummarizedExperiment     1.26.1         2022-04-29 [?] Bioconductor
##  P svglite                  2.1.3          2023-12-08 [?] CRAN (R 4.2.0)
##  P systemfonts              1.0.5          2023-10-09 [?] CRAN (R 4.2.0)
##  P tibble                 * 3.1.8          2022-07-22 [?] CRAN (R 4.2.0)
##  P tidycat                * 0.1.2          2021-08-02 [?] CRAN (R 4.2.0)
##  P tidyr                  * 1.2.1          2022-09-08 [?] CRAN (R 4.2.0)
##  P tidyselect               1.2.0          2022-10-10 [?] CRAN (R 4.2.0)
##  P tidytree                 0.4.0          2022-08-13 [?] CRAN (R 4.2.0)
##  P tidyverse              * 1.3.2          2022-07-18 [?] CRAN (R 4.2.0)
##  P treeio                   1.20.2         2022-08-14 [?] Bioconductor
##  P tzdb                     0.3.0          2022-03-28 [?] CRAN (R 4.2.0)
##  P utf8                     1.2.2          2021-07-24 [?] CRAN (R 4.2.0)
##  P vctrs                    0.6.5          2023-12-01 [?] CRAN (R 4.2.0)
##  P viridis                * 0.6.2          2021-10-13 [?] CRAN (R 4.2.0)
##  P viridisLite            * 0.4.1          2022-08-22 [?] CRAN (R 4.2.0)
##  P vroom                    1.5.7          2021-11-30 [?] CRAN (R 4.2.0)
##  P withr                    2.5.0          2022-03-03 [?] CRAN (R 4.2.0)
##  P xfun                     0.41           2023-11-01 [?] CRAN (R 4.2.0)
##  P XML                      3.99-0.10      2022-06-09 [?] CRAN (R 4.2.0)
##  P xml2                     1.3.3          2021-11-30 [?] CRAN (R 4.2.0)
##  P xtable                   1.8-4          2019-04-21 [?] CRAN (R 4.2.0)
##  P XVector                  0.36.0         2022-04-26 [?] Bioconductor
##  P yaml                     2.3.6          2022-10-18 [?] CRAN (R 4.2.0)
##  P yulab.utils              0.0.5          2022-06-30 [?] CRAN (R 4.2.0)
##  P zlibbioc                 1.42.0         2022-04-26 [?] Bioconductor
## 
##  [1] /nemo/lab/gandhis/home/users/wagena/Astrocytes_editing/renv/library/R-4.2/x86_64-pc-linux-gnu
##  [2] /flask/apps/eb/software/R/4.2.0-foss-2021b/lib64/R/library
## 
##  P ── Loaded and on-disk path mismatch.
## 
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────