09.2-epimachinery-ceRNA-network ================ Kathleen Durkin 2026-05-07 - [Apul](#apul) - [Peve](#peve) - [Ptuh](#ptuh) For all 3 species, we have putative ceRNA modules, involving lncRNAs which putatively sequester miRNAs from repressing their mRNA targets. As an added layer of complexity, these de-repressed mRNA targets may encode protein machinery relevant to other epigenetic processes! This is what we’ll check for in this script. Load libraries ``` r library(dplyr) ``` ## ## Attaching package: 'dplyr' ## The following objects are masked from 'package:stats': ## ## filter, lag ## The following objects are masked from 'package:base': ## ## intersect, setdiff, setequal, union Load data ``` r Apul_ceRNA <- read.delim("../../D-Apul/output/33.1-Apul-ceRNA-network/pos_lncRNA_mRNA_hits.txt", header=TRUE, sep="\t") Peve_ceRNA <- read.delim("../../E-Peve/output/31.1-Peve-ceRNA-network/pos_lncRNA_mRNA_hits.txt", header=TRUE, sep="\t") Ptuh_ceRNA <- read.delim("../../F-Ptuh/output/31.1-Ptuh-ceRNA-network/pos_lncRNA_mRNA_hits.txt", header=TRUE, sep="\t") # Since any ceRNA network requires the miRNA to also be putatively targeting the # derepressed mRNA, can just use the miRNA-epimachinery targeting results, instead # of the full set of epimachinery transcripts across all species. This is nicer, bc # the miRNA-epimachinery targeting results already include functional categorization # of the epimachinery proteins. epi_targeting <- read.csv("../output/12-miRNA-epimachinery/miRNAtargets_mach.csv") ``` ## Apul bind to identify ceRNA sets involving epimachinery transcripts ``` r Apul_epi <- left_join(Apul_ceRNA, epi_targeting, by = c("mRNA" = "target")) Apul_epi <- Apul_epi %>% filter(!is.na(category)) cat("# distinct epimachinery transcripts involved in the ceRNA network:", length(unique(Apul_epi$mRNA))) ``` ## # distinct epimachinery transcripts involved in the ceRNA network: 8 ``` r cat("\nFunctional categories represented:", unique(Apul_epi$category)) ``` ## ## Functional categories represented: Chromatin signaling Ubiquitin signaling RNA modification ncRNA biogenesis & silencing Summarize ``` r Apul_epi %>% group_by(miRNA, mRNA, gene, type, category) %>% summarise( n_lncRNA_sponges = n_distinct(lncRNA), .groups = "drop" ) %>% dplyr::select(-type, -mRNA) %>% arrange(desc(n_lncRNA_sponges)) ``` ## # A tibble: 8 × 4 ## miRNA gene category n_lncRNA_sponges ## ## 1 apul-mir-novel-29 PPP1R7-201 Chromat… 22 ## 2 apul-mir-100 TRMT1-202 RNA mod… 11 ## 3 apul-mir-100 USP31-201; USP… Ubiquit… 10 ## 4 apul-mir-2022 PSMD14-201 Ubiquit… 3 ## 5 apul-mir-novel-10 UBE4A-201 Ubiquit… 3 ## 6 apul-mir-novel-28 RDRP ncRNA b… 3 ## 7 apul-mir-novel-4 PPP1CB-203 Chromat… 3 ## 8 apul-mir-novel-8a; apul-mir-novel-8b JOSD1-210; JOS… Ubiquit… 1 ## Peve bind to identify ceRNA sets involving epimachinery transcripts ``` r # Need to remove the "gene-" prefix that's currently appended in front of the mRNA names Peve_ceRNA$mRNA <- sub("gene-", "", Peve_ceRNA$mRNA) Peve_epi <- left_join(Peve_ceRNA, epi_targeting, by = c("mRNA" = "target")) ``` ## Warning in left_join(Peve_ceRNA, epi_targeting, by = c(mRNA = "target")): Detected an unexpected many-to-many relationship between `x` and `y`. ## ℹ Row 318 of `x` matches multiple rows in `y`. ## ℹ Row 46 of `y` matches multiple rows in `x`. ## ℹ If a many-to-many relationship is expected, set `relationship = ## "many-to-many"` to silence this warning. ``` r Peve_epi <- Peve_epi %>% filter(!is.na(category)) cat("# distinct epimachinery transcripts involved in the ceRNA network:", length(unique(Peve_epi$mRNA))) ``` ## # distinct epimachinery transcripts involved in the ceRNA network: 8 ``` r cat("\nFunctional categories represented:", unique(Peve_epi$category)) ``` ## ## Functional categories represented: Ubiquitin signaling Histone modification ncRNA biogenesis & silencing Summarize ``` r Peve_epi %>% group_by(miRNA, mRNA, gene, type, category) %>% summarise( n_lncRNA_sponges = n_distinct(lncRNA), .groups = "drop" ) %>% dplyr::select(-type, -mRNA) %>% arrange(desc(n_lncRNA_sponges)) ``` ## # A tibble: 8 × 4 ## miRNA gene category n_lncRNA_sponges ## ## 1 peve-mir-novel-2 UBE2D1-201; UBE2D2-202; UBE2D3-210 Ubiquiti… 3 ## 2 peve-mir-novel-6 UBR2-202 Ubiquiti… 3 ## 3 peve-mir-novel-6 Riox1-201 Histone … 3 ## 4 peve-mir-novel-2 CUL4A-202 Ubiquiti… 1 ## 5 peve-mir-novel-2 SRRT ncRNA bi… 1 ## 6 peve-mir-novel-2 ZFC3H1 ncRNA bi… 1 ## 7 peve-mir-novel-2 MCM3AP-201 ncRNA bi… 1 ## 8 peve-mir-novel-7 INTS4 ncRNA bi… 1 ## Ptuh bind to identify ceRNA sets involving epimachinery transcripts ``` r # Need to remove the "gene-" prefix that's currently appended in front of the mRNA names Ptuh_ceRNA$mRNA <- sub("gene-", "", Ptuh_ceRNA$mRNA) Ptuh_epi <- left_join(Ptuh_ceRNA, epi_targeting, by = c("mRNA" = "target")) Ptuh_epi <- Ptuh_epi %>% filter(!is.na(category)) cat("# distinct epimachinery transcripts involved in the ceRNA network:", length(unique(Ptuh_epi$mRNA))) ``` ## # distinct epimachinery transcripts involved in the ceRNA network: 1 ``` r cat("\nFunctional categories represented:", unique(Ptuh_epi$category)) ``` ## ## Functional categories represented: ncRNA biogenesis & silencing