1 Introduction

It is understood that the mammary gland in cattle undergoes extensive morphological and physiological transformations to facilitate the production of milk. These changes are regulated at the genetic and epigenetic level, with specific patterns of expression driving maturation of the gland. This study aims to uncover the temporal expression patterns of mRNA in bovine mammary glands by performing timewise differential expression of sequencing data, then clustering based on temporal expression pattern.

2 Galaxy

All paired end reads were loaded into galaxy as single end. After preliminary QC was performed, alignment to the bosTau9 reference genome was performed. After alignment, statistics were again drawn in order to ensure quality of reads. Mapping to genome to generate counts was performed by Feature counts. Read mapping took in to account the strandedness of the reads, All stranded reads were read in as forward stranded. In reference to the metadata, the column ‘batch’ delimitates which samples were stranded and unstranded (1,0 respectively).

3 mRNA

3.1 Setup

3.1.1 Libraries

library(DESeq2)
library(dplyr)
library(AnnotationDbi)
library(org.Bt.eg.db)
library(sva)
library(readxl)
library(tidyr)
library(knitr)
library(kableExtra)
library(ggplot2)
library(plotly)
library(ggrepel)
library(readr)

3.1.2 Data

The raw count files can be downloaded directly from Github. The data was loaded using the read.delim function from the base package, setting the Ensembl ids as rownames. The first column, which was redundant (gene-ids), was removed.

file_path <- 'https://raw.githubusercontent.com/blamp23/Cattle-lac-proj/main/Raw_data/Raw_Cattle_Counts.tabular'
df <- read.delim(file_path, header = TRUE, row.names = 1)
df <- df[-1]

3.1.3 Metadata

Sample metadata was compiled to reflect the stages of pregnancy as well as the batches associated with strandedness. The metadata table includes the animal identifier, stage of pregnancy, and batch for each sample.

Before finalizing the raw counts, it is necessary to adjust the dataframe’s column names to simplify data manipulation. The desired format combines the condition with the sample identifier (e.g., XX_123), which mirrors the row names in the metadata dataframe. The format mimics the row names of the metadata dataframe. Additionally, it is important to note that the samples from Early Lactation 610 and Late Pregnancy 610 were switched prior to sequencing and must be corrected before proceeding with the analysis.

Sample Data
condition animal batch
V_468 V 468 1
V_502 V 502 1
V_504 V 504 1
V_507 V 507 1
V_509 V 509 1
V_598 V 598 1
V_610 V 610 1
MP_468 MP 468 0
MP_502 MP 502 1
MP_504 MP 504 0
MP_507 MP 507 1
MP_509 MP 509 0
MP_598 MP 598 0
MP_610 MP 610 0
LP_468 LP 468 0
LP_502 LP 502 1
LP_504 LP 504 0
LP_509 LP 509 0
LP_507 LP 507 1
LP_598 LP 598 0
LP_610 LP 610 0
EL_468 EL 468 0
EL_502 EL 502 1
EL_504 EL 504 0
EL_507 EL 507 1
EL_509 EL 509 0
EL_598 EL 598 0
EL_610 EL 610 0
PL_468 PL 468 1
PL_502 PL 502 1
PL_504 PL 504 1
PL_507 PL 507 1
PL_509 PL 509 1
PL_598 PL 598 1
PL_610 PL 610 1

3.2 Filtering/loading

3.2.1 Filtering

To determine which genes should be included in the study, each gene is evaluated within each lactation stage based on its expression count across the 7 samples in that stage. A gene is considered for inclusion in a specific lactation stage if its count exceeds a threshold of 3 in at least 4 of the 7 samples at that time point.

A gene will be included in the final study if it meets the above criteria in at least 1 out of the 5 time points (i.e., lactation stages). This means that a gene must have high counts in at least one of the lactation stages to be included in the study.

# Step 1: Splitting Data by Condition
conditions <- unique(samples$condition)
split_data <- lapply(conditions, function(cond) {
  df[, samples$condition == cond]
})

# Step 2: Define Filtering Function
count_high_expressions <- function(data) {
  apply(data, 1, function(gene) {
    sum(gene >= 3) >= 4  # Returns TRUE if at least 4 out of 7 samples have counts ≥ 3
  })
}
high_exp_counts <- lapply(split_data, count_high_expressions)

# Step 3: Aggregate Results for inclusion
gene_inclusion_filter <- rowSums(do.call(cbind, high_exp_counts)) >= 1 # If 1/5 timepoints meet crit, gene is included

# Step 4: Filter Genes
df <- df[gene_inclusion_filter, ]

3.3 Normalization

3.3.1 ComBatSeq

Strandedness as a batch effect was seen to have distorted our data when using principal component analysis as a diagnostic tool. In order to correct the batch effect, the ComBat_seq function from the sva package was used. This function adjusts for batch effects using the batch variable from our metadata and considers the experimental design (like time course variables) to prevent overfitting.

count_matrix <- as.matrix(df)

cdf <- ComBat_seq(count_matrix,
                  batch = samples$batch,
                  group = samples$condition)
## Found 2 batches
## Using full model in ComBat-seq.
## Adjusting for 4 covariate(s) or covariate level(s)
## Estimating dispersions
## Fitting the GLM model
## Shrinkage off - using GLM estimates for parameters
## Adjusting the data

3.3.2 DESeq2

A standard DESeq function was applied using the counts corrected by ComBat_seq and the experimental design from the ‘samples’ metadata frame.

dds <- DESeqDataSetFromMatrix(
  countData = cdf,
  colData = samples,
  design = ~ condition
)

dds <- DESeq(dds)

3.3.3 PCA

3.3.3.1 ComBat Corrected + DESeq Norm PCA

3.3.3.2 DESeq Norm PCA

3.4 Timecourse Analysis

Mean of Normalized Counts
V MP LP EL PL
ENSBTAG00000000005 222.8397152 208.9822665 216.3579474 395.1031964 295.86744
ENSBTAG00000000008 0.0910119 0.2631827 0.2745275 0.7202736 0.00000
ENSBTAG00000000009 94.5829692 106.9566598 68.6357260 64.1902184 94.56270
ENSBTAG00000000010 290.5563095 266.2848146 303.4057908 666.3469239 628.63636
ENSBTAG00000000011 36.7905454 21.0850876 23.4233891 18.0733364 19.97571
ENSBTAG00000000012 158.7158759 115.4934772 129.0799472 81.0886870 94.71675

3.4.1 Pairwise Comparison

To perform differential expression analysis, comparative structures need to be formed between timepoints. The loop below iterates through each successive comparison and generates ‘res’ objects from DESeq2, which contain statistics like log fold change and adjusted p-values for each comparison. After the False Discovery Rate adjusted p-value (padj) is generated, the mean of the normalized counts is evaluated between each comparison. If gene expression increases from time n to n+1, an ‘I’ will be assigned to the gene. If gene expression decreases from n to n+1, a ‘D’ will be assigned to the gene.

The adjusted p-value generated from DESeq2 is then used to evaluate whether there is significance. If the padj value is greater than 0.05, the gene will be deemed to have an insignificant change in expression between timepoints and will be assigned an ‘S’

contrasts <- list(
  c("condition", "PL", "V"),
  #
  c("condition", "EL", "V"),
  c("condition", "PL", "MP"),
  #
  c("condition", "LP", "V"),
  c("condition", "EL", "MP"),
  c("condition", "PL", "LP"),
  #
  c("condition", "MP", "V"),
  c("condition", "LP", "MP"),
  c("condition", "EL", "LP"),
  c("condition", "PL", "EL")
)

contrast_results <- list()

# DE for pairs in contrasts
for (i in seq_along(contrasts)) {
  contrast = contrasts[[i]]
  res <- results(dds,
                 contrast=contrast)
  
  # Determine if the mean expression increases or decreases
  condition1_mean <- averages_df[[contrast[3]]]  # Mean for the first condition
  condition2_mean <- averages_df[[contrast[2]]]  # Mean for the second condition
  expressionDirection <- ifelse(condition1_mean < condition2_mean, "I", "D")
  
  # Hypothesis test, FTR null assign 'S', Rej null assign I/D
  res$expressionChange <- ifelse(res$padj > 0.05, "S", expressionDirection)
  
  contrast_results[[paste(contrast[3], "to", contrast[2])]] <- res
}

3.4.2 Motif Structuring

The variables (I,S,D) that corespond to expression are currently being stored in the list of DESeq objects. In order to create an index of gene expression, genes are added to a dataframe that completley describes their patterns of expression over the time course. This tabe can be manipulated in order to generate a singular index of pattern structure depending on the needs of the research.

The complete time course analysis can be organized into a piecewise hierarchical structure with 4 tiers,

  • Primary: V-PL
  • Secondary: V-EL MP-PL
  • Tertiary: V-LP MP-EL LP-PL
  • Quaternary: V-MP MP-LP LP-EL EL-PL

A complete model vector will be structured as
Primary-Secondary-Tertiary-Quaternary
X-XX-XXX-XXXX

combined_results <- data.frame(gene=rownames(contrast_results[[1]]))
# Loop through each contrast result to combine them
for (i in seq_along(contrast_results)) {
  contrast_name <- names(contrast_results)[i]  # Get the name of the current contrast
  # Create a temporary dataframe with genes and their expression changes for the current contrast
  temp_df <- data.frame(gene=rownames(contrast_results[[i]]), 
                        expressionChange=contrast_results[[i]]$expressionChange)
  colnames(temp_df)[2] <- contrast_name  # Rename the second column to the current contrast name
  # Merge the temporary dataframe with the combined_results dataframe
  combined_results <- merge(combined_results, temp_df, by="gene", all=TRUE)
}

# Concatenate expression patterns to make model vector
combined_results$modelVector <- apply(combined_results[, -1], 1, 
                                      function(x) paste(x, collapse = ""))

# for Quaternary tree structure ###############################################################
combined_results$primary <- combined_results[,2]
combined_results$secondary <- paste0(combined_results[,3], combined_results[,4])
combined_results$tertiary <- paste0(combined_results[,5], combined_results[,6], combined_results[,7])
combined_results$quaternary <- paste0(combined_results[,8], combined_results[,9], combined_results[,10], combined_results[,11])
Incidence of Increasing, Decreasing and Steady Genes
Incedence of Increasing, Decreasing and Steady Genes
transition D I S
EL to PL 838 488 16018
LP to EL 2082 2714 12548
LP to PL 3033 3463 10848
MP to EL 1889 2411 13044
MP to LP 8 6 17330
MP to PL 3030 3509 10805
V to EL 3862 3266 10216
V to LP 2747 2028 12569
V to MP 2656 1892 12796
V to PL 2920 2457 11967
Head of pattern dataframe
First 5 Rows of Pattern Dataframe
gene V to PL V to EL MP to PL V to LP MP to EL LP to PL V to MP MP to LP LP to EL EL to PL
ENSBTAG00000000005 S I S S I S S S I S
ENSBTAG00000000008 S S S S S S S S S S
ENSBTAG00000000009 S S S S S S S S S S
ENSBTAG00000000010 I I I S I I S S I S
ENSBTAG00000000011 S S S S S S S S S S
ENSBTAG00000000012 D D S S S S S S D S
gene modelVector primary secondary tertiary quaternary
ENSBTAG00000000005 SISSISSSIS S IS SIS SSIS
ENSBTAG00000000008 SSSSSSSSSS S SS SSS SSSS
ENSBTAG00000000009 SSSSSSSSSS S SS SSS SSSS
ENSBTAG00000000010 IIISIISSIS I II SII SSIS
ENSBTAG00000000011 SSSSSSSSSS S SS SSS SSSS
ENSBTAG00000000012 DDSSSSSSDS D DS SSS SSDS

3.4.3 Pattern Generation

Reducing the number of comparisons within a pattern structure can significantly decrease the total number of patterns identified. Additionally, depending on the objectives of the experiment, different patterns can be constructed that reveal more biologically relevant structures. Below, the ‘vector’ variable was constructed to create a pattern that depicts the total timecourse change in expression (virgin to peak lactation) followed by the Quaternary structure that depicts the sequential changes (1->2 2->3 3->4 4->5). This pattern is useful because one can check to see if there was a significant change of expression throughout the time course (v to l) while also monitoring the pairwise sequential changes.

motif_index <- list()
x <- combined_results
vector <- paste0(x$`V to PL`,
                 x$quaternary)

# Loop through each unique modelVector
for(model in unique(vector)) {
  # Subset the genes that match the current modelVector
  genes <- combined_results$gene[vector == model]
  # Store
  motif_index[[model]] <- genes
}

Throughout this entire process, Ensembl IDs have been used as gene identifiers. To make the mRNA easier to identify, mapping to symbols can be done using AnnotationDbi and the org.Bt.eg.db package for bovine gene symbols.

mapped_motif_index <- list()
for(model in names(motif_index)) {
  ensembl_ids <- motif_index[[model]]
  gene_symbols <- tryCatch({
    mapIds(org.Bt.eg.db,
           keys = ensembl_ids,
           column = "SYMBOL",
           keytype = "ENSEMBL",
           multivals = 'first')
  }, error = function(e) {
    message("Error with model ", model, ": ", e$message)
    return(NA)  # Return NA or any other placeholder that indicates an error
  })
  mapped_motif_index[[model]] <- gene_symbols
}

mmi_mrna <- mapped_motif_index # mapped motif index mrna

4 miRNA

4.1 Setup

4.1.1 Raw Counts

Count data from Galaxy can be imported to your R session directly from github

# 
file_path <- 'https://raw.githubusercontent.com/blamp23/Cattle-lac-proj/main/Raw_data/Filtered_Raw_Counts_fix.csv'
df <- read.csv(file_path)

4.1.2 Metadata

The experimental design in the miRNA samples is a bit ‘easier’ to develop because there are no batch issues between strandedness. It is for this reason ComBatSeq will not need to be run. From a coding & logistical standpoint, the count table developed has already been formatted in a way where sample id and timepoint can directly be pulled from the column names of the dataframe.

samples <- data.frame(
  row.names = c(colnames(df)),
  condition = c((substr(colnames(df), 5, nchar(colnames(df)))))
)
## 
## <style>
## table caption {
##   font-size: 16pt;
##   font-weight: bold;
## }
## </style>
Sample Data
condition
468 V V
490 V V
504 V V
507 V V
509 V V
531 V V
581 V V
595 V V
598 V V
610 V V
615 V V
468 MP MP
502 MP MP
504 MP MP
507 MP MP
509 MP MP
595 MP MP
598 MP MP
610 MP MP
468 LP LP
502 LP LP
504 LP LP
507 LP LP
509 LP LP
595 LP LP
598 LP LP
610 LP LP
468 EL EL
502 EL EL
504 EL EL
507 EL EL
509 EL EL
595 EL EL
598 EL EL
610 EL EL
468 PL PL
479 PL PL
490 PL PL
502 PL PL
504 PL PL
509 PL PL
507 PL PL
531 PL PL
581 PL PL
590 PL PL
595 PL PL
610 PL PL
615 PL PL

4.2 DESeq2

General commands of DESeq2 generation for dds and a normalized count table were run in a similar fashion as was done in mRNA.

df <- as.matrix(df)
dds <- DESeqDataSetFromMatrix(
  countData = df,
  colData = samples,
  design = ~ condition
)

dds <- DESeq(dds)

normalized_counts <- counts(dds, normalized = TRUE)

4.3 PCA

4.4 Timecourse

4.4.1 Mean Counts

# Normalized Count table and dds object from DESeq are needed to run code
col_names <- c(rep("V", 11),
               rep("MP", 8),
               rep("LP", 8),
               rep("EL", 8),
               rep("PL", 13))
names(normalized_counts) <- col_names


# Time-point Averages of Normalized Counts ######################################
normalized_counts_df <- as.data.frame(normalized_counts)


# Prepare an empty data frame for storing averages, with correct dimensions and column names
averages_df <- data.frame(matrix(ncol = length(unique(col_names)),
                                 nrow = nrow(normalized_counts_df)))
names(averages_df) <- unique(col_names)
rownames(averages_df) <- rownames(normalized_counts_df)

# Loop through each time-point to calculate and store row means
for (timepoint in unique(col_names)) {
  # Identify columns belonging to the current time-point
  cols <- which(col_names == timepoint)
  # Calculate and store
  averages_df[[timepoint]] <- rowMeans(normalized_counts_df[, cols], na.rm = TRUE)
}
Mean of Normalized Counts
V MP LP EL PL
bta.let.7a.5p 1997414.5641 1668136.0098 1960049.6716 1300440.2823 2176869.5549
bta.let.7a.3p 671.5617 255.3875 494.1430 322.5810 208.2733
bta.let.7a.5p.1 1998686.5496 1671423.8782 1963007.7650 1303161.9017 2180046.4306
bta.let.7a.5p.2 1995373.5839 1666503.6297 1958226.5896 1299040.8489 2174136.3242
bta.let.7a.3p.1 666.8361 251.4582 490.1695 320.1862 207.0597
bta.let.7b 313548.8013 530406.6025 893827.5224 406621.2068 935932.1697

4.4.2 Pairwise Comparison

Pairwise comparisons are run in the same fashion as in mRNA. The only caviat being a line that filters for miRNAs that do not show a significant change in expression due to a low number of counts. If the mean number of counts in timepoint n and n+1 are both under 100, the miRNA is labled as ‘S’ for pattern structuring.

# pairwise comparisons, hypothesis testing, and assignment of expression pattern ###################################
contrasts <- list(
  c("condition", "PL", "V"),
  #
  c("condition", "EL", "V"),
  c("condition", "PL", "MP"),
  #
  c("condition", "LP", "V"),
  c("condition", "EL", "MP"),
  c("condition", "PL", "LP"),
  #
  c("condition", "MP", "V"),
  c("condition", "LP", "MP"),
  c("condition", "EL", "LP"),
  c("condition", "PL", "EL")
)

contrast_results <- list()

for (i in seq_along(contrasts)) {
  contrast = contrasts[[i]]
  res <- results(dds,
                 contrast=contrast,
                 independentFiltering = FALSE)
  
  # Determine if the mean expression increases or decreases
  condition1_mean <- averages_df[[contrast[3]]]  # Mean for the first condition
  condition2_mean <- averages_df[[contrast[2]]]  # Mean for the second condition
  
  # Determine direction of expression based on means
  expressionDirection <- ifelse(condition1_mean < condition2_mean, "I", "D")
  
  # Check if either condition mean is below the threshold
  lowExpression <- condition1_mean < 100 & condition2_mean < 100
  
  # Hypothesis test: if p-value > 0.05 or low expression, assign 'S', else assign I/D
  res$expressionChange <- ifelse(res$padj > 0.05 | lowExpression, "S", expressionDirection)
  
  # Save results in a list with a unique name for each contrast
  contrast_results[[paste(contrast[3], "to", contrast[2])]] <- res
}

4.4.3 Expression Motif

Parallel to mRNA, the combined results dataframe is generated from the list of deseq results of the pairwise comparisons.

# Generation of expression motif ###############################################

# Initialize a dataframe with gene names
combined_results <- data.frame(gene=rownames(contrast_results[[1]]))

# Loop through each contrast result to combine them
for (i in seq_along(contrast_results)) {
  contrast_name <- names(contrast_results)[i]  # Get the name of the current contrast
  # Create a temporary dataframe with genes and their expression changes for the current contrast
  temp_df <- data.frame(gene=rownames(contrast_results[[i]]),
                        expressionChange=contrast_results[[i]]$expressionChange)
  colnames(temp_df)[2] <- contrast_name  # Rename the second column to the current contrast name
  # Merge the temporary dataframe with the combined_results dataframe
  combined_results <- merge(combined_results, temp_df, by="gene", all=TRUE)
}

# Concatenate expression patterns to make model vector
combined_results$modelVector <- apply(combined_results[, -1], 1,
                                      function(x) paste(x, collapse = ""))
# for Quaternary tree structure ###############################################################
combined_results$primary <- combined_results[,2]
combined_results$secondary <- paste0(combined_results[,3], combined_results[,4])
combined_results$tertiary <- paste0(combined_results[,5], combined_results[,6], combined_results[,7])
combined_results$quaternary <- paste0(combined_results[,8], combined_results[,9], combined_results[,10], combined_results[,11])
Incedence of Increasing, Decreasing and Steady miRNA
Incedence of Increasing, Decreasing and Steady Genes
transition D I S
EL to PL 66 60 737
LP to EL 37 31 795
LP to PL 100 85 678
MP to EL 27 10 826
MP to LP 0 0 863
MP to PL 86 83 694
V to EL 109 87 667
V to LP 89 84 690
V to MP 82 71 710
V to PL 113 83 667
Head of of Pattern Dataframe
First 5 Rows of Pattern Dataframe
gene V to PL V to EL MP to PL V to LP MP to EL LP to PL V to MP MP to LP LP to EL EL to PL
bta.let.7a.3p D S S S S S S S S S
bta.let.7a.3p.1 D S S S S S S S S S
bta.let.7a.5p S S S S S S S S S I
bta.let.7a.5p.1 S S S S S S S S S I
bta.let.7a.5p.2 S S S S S S S S S I
bta.let.7b I S S I S S S S S I
gene modelVector primary secondary tertiary quaternary
bta.let.7a.3p DSSSSSSSSS D SS SSS SSSS
bta.let.7a.3p.1 DSSSSSSSSS D SS SSS SSSS
bta.let.7a.5p SSSSSSSSSI S SS SSS SSSI
bta.let.7a.5p.1 SSSSSSSSSI S SS SSS SSSI
bta.let.7a.5p.2 SSSSSSSSSI S SS SSS SSSI
bta.let.7b ISSISSSSSI I SS ISS SSSI

4.4.4 Pattern Generation

Manipulating the ‘vector’ variable, it is possible to generate any motif index of your choosing as already performed in the mRNA samples. Here the same structure was generated, detailing the expression of the whole timecourse, followed by the pairwise expression patterns. Due to the suppressive mechanism of action that miRNA presents, it can be hypothesized that mRNA targets will present with an opposite pattern of expression when compared to miRNA.

# Genes indexed by model vector ################################################
motif_index <- list()
x <- combined_results
vector <- paste0(x$`V to PL`,
                 x$quaternary)

# Loop through each unique modelVector
for(model in unique(vector)) {
  # Subset the genes that match the current modelVector
  genes <- combined_results$gene[vector == model]
  # Store
  motif_index[[model]] <- genes
}
mi_miRNA <- motif_index
Click to view motif index of miRNA
mi_miRNA
## $DSSSS
##  [1] "bta.let.7a.3p"    "bta.let.7a.3p.1"  "bta.let.7g"       "bta.miR.106b"    
##  [5] "bta.miR.1271"     "bta.miR.146b"     "bta.miR.2284k"    "bta.miR.2285au"  
##  [9] "bta.miR.2317"     "bta.miR.2369"     "bta.miR.2378"     "bta.miR.2400"    
## [13] "bta.miR.2420"     "bta.miR.2484"     "bta.miR.30e.5p"   "bta.miR.32"      
## [17] "bta.miR.328"      "bta.miR.362.5p"   "bta.miR.365.3p"   "bta.miR.365.3p.1"
## [21] "bta.miR.452"      "bta.miR.532"      "bta.miR.6524"     "bta.miR.664b"    
## [25] "bta.miR.767"      "bta.miR.95"       "bta.miR.96"      
## 
## $SSSSI
##  [1] "bta.let.7a.5p"   "bta.let.7a.5p.1" "bta.let.7a.5p.2" "bta.let.7d"     
##  [5] "bta.miR.130a"    "bta.miR.181a"    "bta.miR.181a.1"  "bta.miR.224"    
##  [9] "bta.miR.27b"     "bta.miR.30d"     "bta.miR.505"     "bta.miR.8549"   
## 
## $ISSSI
##  [1] "bta.let.7b"      "bta.let.7c"      "bta.let.7i"      "bta.miR.140"    
##  [5] "bta.miR.151.3p"  "bta.miR.155"     "bta.miR.181b"    "bta.miR.181b.1" 
##  [9] "bta.miR.193b"    "bta.miR.214"     "bta.miR.221"     "bta.miR.2389"   
## [13] "bta.miR.3432a"   "bta.miR.3432a.1" "bta.miR.3432b"   "bta.miR.378"    
## [17] "bta.miR.378.1"   "bta.miR.652"    
## 
## $ISSSS
##  [1] "bta.let.7e"      "bta.miR.11980"   "bta.miR.11987"   "bta.miR.1260b"  
##  [5] "bta.miR.132"     "bta.miR.134"     "bta.miR.139"     "bta.miR.142.5p" 
##  [9] "bta.miR.1468"    "bta.miR.150"     "bta.miR.16a"     "bta.miR.193a.5p"
## [13] "bta.miR.24.3p"   "bta.miR.24.3p.1" "bta.miR.2419.5p" "bta.miR.2904"   
## [17] "bta.miR.2904.1"  "bta.miR.2904.2"  "bta.miR.320a"    "bta.miR.320a.1" 
## [21] "bta.miR.379"     "bta.miR.424.3p"  "bta.miR.484"     "bta.miR.485"    
## [25] "bta.miR.486"     "bta.miR.7859"    "bta.miR.99b"    
## 
## $SSSSS
##   [1] "bta.let.7f"          "bta.let.7f.1"        "bta.miR.100"        
##   [4] "bta.miR.10020"       "bta.miR.10162.5p"    "bta.miR.10164.3p"   
##   [7] "bta.miR.10166.5p"    "bta.miR.10169.3p"    "bta.miR.10170.5p"   
##  [10] "bta.miR.10171.3p"    "bta.miR.10172.5p"    "bta.miR.10173.5p"   
##  [13] "bta.miR.10174.3p"    "bta.miR.10174.5p"    "bta.miR.10175.5p"   
##  [16] "bta.miR.10176.5p"    "bta.miR.10177.5p"    "bta.miR.10178.5p"   
##  [19] "bta.miR.10179.5p"    "bta.miR.10180.3p"    "bta.miR.10181.5p"   
##  [22] "bta.miR.10182.3p"    "bta.miR.10182.5p"    "bta.miR.10183.5p"   
##  [25] "bta.miR.10185.5p"    "bta.miR.10225a"      "bta.miR.1185"       
##  [28] "bta.miR.1197"        "bta.miR.11971"       "bta.miR.11973"      
##  [31] "bta.miR.11978"       "bta.miR.11981"       "bta.miR.11982"      
##  [34] "bta.miR.11983"       "bta.miR.11984"       "bta.miR.11986c"     
##  [37] "bta.miR.11988"       "bta.miR.11990"       "bta.miR.11991"      
##  [40] "bta.miR.11992"       "bta.miR.11993"       "bta.miR.11994"      
##  [43] "bta.miR.11995"       "bta.miR.11997"       "bta.miR.11998"      
##  [46] "bta.miR.12001"       "bta.miR.12002b"      "bta.miR.12003"      
##  [49] "bta.miR.12004"       "bta.miR.12005"       "bta.miR.12005.1"    
##  [52] "bta.miR.12006"       "bta.miR.12010"       "bta.miR.12014"      
##  [55] "bta.miR.12017"       "bta.miR.12019"       "bta.miR.12025"      
##  [58] "bta.miR.12026"       "bta.miR.12027"       "bta.miR.12032"      
##  [61] "bta.miR.12033"       "bta.miR.12036"       "bta.miR.12039"      
##  [64] "bta.miR.12046"       "bta.miR.12048"       "bta.miR.12051"      
##  [67] "bta.miR.12054"       "bta.miR.12056"       "bta.miR.12057"      
##  [70] "bta.miR.12059"       "bta.miR.12060"       "bta.miR.12061"      
##  [73] "bta.miR.12064"       "bta.miR.122"         "bta.miR.1224"       
##  [76] "bta.miR.1247.3p"     "bta.miR.1248"        "bta.miR.1248.1"     
##  [79] "bta.miR.1249"        "bta.miR.1256"        "bta.miR.125a"       
##  [82] "bta.miR.126.5p"      "bta.miR.127"         "bta.miR.1277"       
##  [85] "bta.miR.128"         "bta.miR.128.1"       "bta.miR.1281"       
##  [88] "bta.miR.1287"        "bta.miR.129"         "bta.miR.129.1"      
##  [91] "bta.miR.129.5p"      "bta.miR.129.5p.1"    "bta.miR.1291"       
##  [94] "bta.miR.1296"        "bta.miR.1298"        "bta.miR.1301"       
##  [97] "bta.miR.1306"        "bta.miR.1343.5p"     "bta.miR.138"        
## [100] "bta.miR.138.1"       "bta.miR.1388.3p"     "bta.miR.1388.5p"    
## [103] "bta.miR.141"         "bta.miR.1434.3p"     "bta.miR.144"        
## [106] "bta.miR.148a"        "bta.miR.149.3p"      "bta.miR.149.5p"     
## [109] "bta.miR.152"         "bta.miR.154b"        "bta.miR.154c"       
## [112] "bta.miR.1584.3p"     "bta.miR.1584.5p"     "bta.miR.15a"        
## [115] "bta.miR.1721"        "bta.miR.1777a"       "bta.miR.1777b"      
## [118] "bta.miR.1814c"       "bta.miR.1835"        "bta.miR.1839"       
## [121] "bta.miR.184"         "bta.miR.1842"        "bta.miR.1843"       
## [124] "bta.miR.185"         "bta.miR.187"         "bta.miR.188"        
## [127] "bta.miR.18b"         "bta.miR.190b"        "bta.miR.191"        
## [130] "bta.miR.191b"        "bta.miR.192"         "bta.miR.193a"       
## [133] "bta.miR.1949"        "bta.miR.194b"        "bta.miR.194b.1"     
## [136] "bta.miR.194b.3p"     "bta.miR.197"         "bta.miR.199b"       
## [139] "bta.miR.202"         "bta.miR.205"         "bta.miR.206"        
## [142] "bta.miR.21.3p"       "bta.miR.215"         "bta.miR.218"        
## [145] "bta.miR.218.1"       "bta.miR.219"         "bta.miR.219.3p"     
## [148] "bta.miR.2284a"       "bta.miR.2284aa"      "bta.miR.2284aa.1"   
## [151] "bta.miR.2284aa.2"    "bta.miR.2284aa.3"    "bta.miR.2284ab"     
## [154] "bta.miR.2284ac"      "bta.miR.2284b"       "bta.miR.2284d"      
## [157] "bta.miR.2284g"       "bta.miR.2284h.5p"    "bta.miR.2284j"      
## [160] "bta.miR.2284l"       "bta.miR.2284m"       "bta.miR.2284r"      
## [163] "bta.miR.2284w"       "bta.miR.2284z"       "bta.miR.2284z.1"    
## [166] "bta.miR.2284z.2"     "bta.miR.2284z.3"     "bta.miR.2284z.4"    
## [169] "bta.miR.2284z.5"     "bta.miR.2284z.6"     "bta.miR.2285a"      
## [172] "bta.miR.2285aa"      "bta.miR.2285ab"      "bta.miR.2285ac"     
## [175] "bta.miR.2285ad"      "bta.miR.2285ag.3p"   "bta.miR.2285ah.5p"  
## [178] "bta.miR.2285ai.5p"   "bta.miR.2285ak.5p"   "bta.miR.2285al.5p"  
## [181] "bta.miR.2285am.5p"   "bta.miR.2285an"      "bta.miR.2285ap"     
## [184] "bta.miR.2285ar"      "bta.miR.2285as"      "bta.miR.2285as.1"   
## [187] "bta.miR.2285as.2"    "bta.miR.2285at"      "bta.miR.2285at.1"   
## [190] "bta.miR.2285at.2"    "bta.miR.2285at.3"    "bta.miR.2285aw"     
## [193] "bta.miR.2285ax"      "bta.miR.2285ax.1"    "bta.miR.2285ax.2"   
## [196] "bta.miR.2285ay"      "bta.miR.2285az"      "bta.miR.2285b"      
## [199] "bta.miR.2285b.1"     "bta.miR.2285ba"      "bta.miR.2285ba.1"   
## [202] "bta.miR.2285bb"      "bta.miR.2285bc"      "bta.miR.2285bd"     
## [205] "bta.miR.2285be"      "bta.miR.2285bg"      "bta.miR.2285bh"     
## [208] "bta.miR.2285bi"      "bta.miR.2285bi.1"    "bta.miR.2285bj"     
## [211] "bta.miR.2285bj.1"    "bta.miR.2285bk"      "bta.miR.2285bl"     
## [214] "bta.miR.2285bm"      "bta.miR.2285bo"      "bta.miR.2285bp"     
## [217] "bta.miR.2285bq"      "bta.miR.2285br"      "bta.miR.2285bs"     
## [220] "bta.miR.2285bt"      "bta.miR.2285bu"      "bta.miR.2285bu.1"   
## [223] "bta.miR.2285by"      "bta.miR.2285bz"      "bta.miR.2285c"      
## [226] "bta.miR.2285cc"      "bta.miR.2285cj"      "bta.miR.2285ck"     
## [229] "bta.miR.2285cl"      "bta.miR.2285cm"      "bta.miR.2285co"     
## [232] "bta.miR.2285cp"      "bta.miR.2285cr"      "bta.miR.2285cr.1"   
## [235] "bta.miR.2285cs"      "bta.miR.2285ct"      "bta.miR.2285cw"     
## [238] "bta.miR.2285cw.1"    "bta.miR.2285cy"      "bta.miR.2285cz"     
## [241] "bta.miR.2285d"       "bta.miR.2285da"      "bta.miR.2285db"     
## [244] "bta.miR.2285dc"      "bta.miR.2285dd"      "bta.miR.2285de"     
## [247] "bta.miR.2285dh"      "bta.miR.2285dl.3p"   "bta.miR.2285dl.3p.1"
## [250] "bta.miR.2285e"       "bta.miR.2285e.1"     "bta.miR.2285g"      
## [253] "bta.miR.2285g.1"     "bta.miR.2285g.2"     "bta.miR.2285h"      
## [256] "bta.miR.2285i"       "bta.miR.2285j"       "bta.miR.2285j.1"    
## [259] "bta.miR.2285l"       "bta.miR.2285m"       "bta.miR.2285m.1"    
## [262] "bta.miR.2285m.2"     "bta.miR.2285m.3"     "bta.miR.2285m.4"    
## [265] "bta.miR.2285n"       "bta.miR.2285n.1"     "bta.miR.2285n.2"    
## [268] "bta.miR.2285n.3"     "bta.miR.2285n.4"     "bta.miR.2285n.5"    
## [271] "bta.miR.2285n.6"     "bta.miR.2285p"       "bta.miR.2285q"      
## [274] "bta.miR.2285r"       "bta.miR.2285v"       "bta.miR.2285x"      
## [277] "bta.miR.2286"        "bta.miR.2287"        "bta.miR.2288"       
## [280] "bta.miR.2290"        "bta.miR.2291"        "bta.miR.2292"       
## [283] "bta.miR.2295"        "bta.miR.2299.3p"     "bta.miR.2299.5p"    
## [286] "bta.miR.2300b.3p"    "bta.miR.2303"        "bta.miR.2304"       
## [289] "bta.miR.2305"        "bta.miR.2307"        "bta.miR.2308"       
## [292] "bta.miR.2309"        "bta.miR.2310"        "bta.miR.2313.5p"    
## [295] "bta.miR.2316"        "bta.miR.2318"        "bta.miR.2320.3p"    
## [298] "bta.miR.2321"        "bta.miR.2324"        "bta.miR.2325a"      
## [301] "bta.miR.2325c"       "bta.miR.2328.3p"     "bta.miR.2328.5p"    
## [304] "bta.miR.2330.5p"     "bta.miR.2331.5p"     "bta.miR.2335"       
## [307] "bta.miR.2336"        "bta.miR.2338"        "bta.miR.2339"       
## [310] "bta.miR.2341"        "bta.miR.2342"        "bta.miR.2343"       
## [313] "bta.miR.2344"        "bta.miR.2346"        "bta.miR.2347"       
## [316] "bta.miR.2348"        "bta.miR.2349"        "bta.miR.2352"       
## [319] "bta.miR.2353"        "bta.miR.2354"        "bta.miR.2355.3p"    
## [322] "bta.miR.2356"        "bta.miR.2357"        "bta.miR.2359"       
## [325] "bta.miR.2360"        "bta.miR.2361"        "bta.miR.2364"       
## [328] "bta.miR.2366"        "bta.miR.2367.3p"     "bta.miR.2367.5p"    
## [331] "bta.miR.2370.5p"     "bta.miR.2371"        "bta.miR.2372"       
## [334] "bta.miR.2373.3p"     "bta.miR.2373.5p"     "bta.miR.2374"       
## [337] "bta.miR.2375"        "bta.miR.2376"        "bta.miR.2379"       
## [340] "bta.miR.2381"        "bta.miR.2382.5p"     "bta.miR.2384"       
## [343] "bta.miR.2387"        "bta.miR.2388.3p"     "bta.miR.2390"       
## [346] "bta.miR.2392"        "bta.miR.2397.3p"     "bta.miR.2397.5p"    
## [349] "bta.miR.2399.5p"     "bta.miR.23b.3p"      "bta.miR.23b.5p"     
## [352] "bta.miR.24"          "bta.miR.2404"        "bta.miR.2404.1"     
## [355] "bta.miR.2406"        "bta.miR.2407"        "bta.miR.2410"       
## [358] "bta.miR.2411.5p"     "bta.miR.2412"        "bta.miR.2413"       
## [361] "bta.miR.2415.5p"     "bta.miR.2416"        "bta.miR.2417"       
## [364] "bta.miR.2418"        "bta.miR.2419.3p"     "bta.miR.2421"       
## [367] "bta.miR.2422"        "bta.miR.2426"        "bta.miR.2427"       
## [370] "bta.miR.2428"        "bta.miR.2430"        "bta.miR.2431.5p"    
## [373] "bta.miR.2433"        "bta.miR.2434"        "bta.miR.2436.3p"    
## [376] "bta.miR.2436.5p"     "bta.miR.2438"        "bta.miR.2439.5p"    
## [379] "bta.miR.2440"        "bta.miR.2441"        "bta.miR.2442"       
## [382] "bta.miR.2443"        "bta.miR.2447"        "bta.miR.2448.3p"    
## [385] "bta.miR.2450b"       "bta.miR.2454.5p"     "bta.miR.2455"       
## [388] "bta.miR.2456"        "bta.miR.2457"        "bta.miR.2459"       
## [391] "bta.miR.2460"        "bta.miR.2462"        "bta.miR.2463"       
## [394] "bta.miR.2464.3p"     "bta.miR.2464.5p"     "bta.miR.2465"       
## [397] "bta.miR.2466.3p"     "bta.miR.2466.5p"     "bta.miR.2467.3p"    
## [400] "bta.miR.2468"        "bta.miR.2473"        "bta.miR.2474"       
## [403] "bta.miR.2475"        "bta.miR.2481"        "bta.miR.2483.3p"    
## [406] "bta.miR.2483.5p"     "bta.miR.2486.5p"     "bta.miR.27a.5p"     
## [409] "bta.miR.2881"        "bta.miR.2882"        "bta.miR.2889"       
## [412] "bta.miR.2890"        "bta.miR.2892"        "bta.miR.2893"       
## [415] "bta.miR.2898"        "bta.miR.2900"        "bta.miR.2902"       
## [418] "bta.miR.296.5p"      "bta.miR.299"         "bta.miR.299.2"      
## [421] "bta.miR.29a"         "bta.miR.29c"         "bta.miR.29d.5p"     
## [424] "bta.miR.301b"        "bta.miR.3065"        "bta.miR.3141"       
## [427] "bta.miR.320b"        "bta.miR.323"         "bta.miR.323b.3p"    
## [430] "bta.miR.324"         "bta.miR.326"         "bta.miR.329a"       
## [433] "bta.miR.329b"        "bta.miR.330"         "bta.miR.331.3p"     
## [436] "bta.miR.338"         "bta.miR.33a"         "bta.miR.33b"        
## [439] "bta.miR.342"         "bta.miR.3431"        "bta.miR.345.5p"     
## [442] "bta.miR.34b"         "bta.miR.34c"         "bta.miR.3533"       
## [445] "bta.miR.365.5p"      "bta.miR.3660"        "bta.miR.370"        
## [448] "bta.miR.374c"        "bta.miR.376a"        "bta.miR.376b"       
## [451] "bta.miR.376c"        "bta.miR.377"         "bta.miR.378b"       
## [454] "bta.miR.378c"        "bta.miR.378d"        "bta.miR.380.3p"     
## [457] "bta.miR.380.5p"      "bta.miR.382"         "bta.miR.383"        
## [460] "bta.miR.3956"        "bta.miR.3957"        "bta.miR.409a"       
## [463] "bta.miR.411b"        "bta.miR.411c.3p"     "bta.miR.412"        
## [466] "bta.miR.421"         "bta.miR.431"         "bta.miR.432"        
## [469] "bta.miR.433"         "bta.miR.4444"        "bta.miR.4449"       
## [472] "bta.miR.449a"        "bta.miR.449b"        "bta.miR.449d"       
## [475] "bta.miR.4523"        "bta.miR.454"         "bta.miR.455.3p"     
## [478] "bta.miR.4657"        "bta.miR.483"         "bta.miR.487a"       
## [481] "bta.miR.487b"        "bta.miR.490"         "bta.miR.491"        
## [484] "bta.miR.493"         "bta.miR.496"         "bta.miR.499"        
## [487] "bta.miR.502a"        "bta.miR.502a.1"      "bta.miR.502b"       
## [490] "bta.miR.503.3p"      "bta.miR.503.5p"      "bta.miR.507.3p"     
## [493] "bta.miR.507b"        "bta.miR.539"         "bta.miR.541"        
## [496] "bta.miR.542.5p"      "bta.miR.543"         "bta.miR.545.5p"     
## [499] "bta.miR.582"         "bta.miR.584"         "bta.miR.584.1"      
## [502] "bta.miR.584.2"       "bta.miR.584.3"       "bta.miR.584.4"      
## [505] "bta.miR.584.5"       "bta.miR.584.6"       "bta.miR.584.7"      
## [508] "bta.miR.6120.3p"     "bta.miR.6121.3p"     "bta.miR.6121.5p"    
## [511] "bta.miR.6122.3p"     "bta.miR.6122.5p"     "bta.miR.6123"       
## [514] "bta.miR.628"         "bta.miR.6516"        "bta.miR.6517"       
## [517] "bta.miR.6518"        "bta.miR.6519"        "bta.miR.6520"       
## [520] "bta.miR.6522"        "bta.miR.6523a"       "bta.miR.6525"       
## [523] "bta.miR.6527"        "bta.miR.6528"        "bta.miR.6529a"      
## [526] "bta.miR.6530"        "bta.miR.6531"        "bta.miR.6532"       
## [529] "bta.miR.6533"        "bta.miR.6534"        "bta.miR.6535"       
## [532] "bta.miR.6536"        "bta.miR.6536.1"      "bta.miR.654"        
## [535] "bta.miR.656"         "bta.miR.658"         "bta.miR.660"        
## [538] "bta.miR.664a"        "bta.miR.665"         "bta.miR.668.3p"     
## [541] "bta.miR.669"         "bta.miR.671"         "bta.miR.6715"       
## [544] "bta.miR.6775"        "bta.miR.7"           "bta.miR.7.1"        
## [547] "bta.miR.7.2"         "bta.miR.708"         "bta.miR.7180"       
## [550] "bta.miR.758"         "bta.miR.760.5p"      "bta.miR.763"        
## [553] "bta.miR.7857.3p"     "bta.miR.7857.5p"     "bta.miR.7857.5p.1"  
## [556] "bta.miR.7858"        "bta.miR.7860"        "bta.miR.7861"       
## [559] "bta.miR.7862"        "bta.miR.7863"        "bta.miR.7865"       
## [562] "bta.miR.874"         "bta.miR.875"         "bta.miR.9.3p"       
## [565] "bta.miR.9.3p.1"      "bta.miR.9.5p"        "bta.miR.9.5p.1"     
## [568] "bta.miR.940"         "bta.miR.98"          "bta.miR.9851"       
## 
## $IISSS
##  [1] "bta.miR.1"        "bta.miR.1.1"      "bta.miR.10167.3p" "bta.miR.10a"     
##  [5] "bta.miR.10b"      "bta.miR.151.5p"   "bta.miR.199c"     "bta.miR.212"     
##  [9] "bta.miR.28"       "bta.miR.2888"     "bta.miR.2888.1"   "bta.miR.411a"    
## [13] "bta.miR.615"     
## 
## $DDSSS
##  [1] "bta.miR.101"       "bta.miR.101.1"     "bta.miR.11986b"   
##  [4] "bta.miR.12030"     "bta.miR.1247.5p"   "bta.miR.147"      
##  [7] "bta.miR.148b"      "bta.miR.190a"      "bta.miR.200a"     
## [10] "bta.miR.204"       "bta.miR.210"       "bta.miR.2284v"    
## [13] "bta.miR.2284x"     "bta.miR.2285aj.5p" "bta.miR.2332"     
## [16] "bta.miR.2411.3p"   "bta.miR.2424"      "bta.miR.2454.3p"  
## [19] "bta.miR.26b"       "bta.miR.29d.3p"    "bta.miR.301a"     
## [22] "bta.miR.31"        "bta.miR.339a"      "bta.miR.339b"     
## [25] "bta.miR.340"       "bta.miR.345.3p"    "bta.miR.34a"      
## [28] "bta.miR.361"       "bta.miR.504"       "bta.miR.6119.5p"  
## [31] "bta.miR.677"       "bta.miR.885"       "bta.miR.99a.3p"   
## 
## $IISIS
## [1] "bta.miR.10172.3p" "bta.miR.126.3p"   "bta.miR.143"      "bta.miR.195"     
## [5] "bta.miR.369.5p"   "bta.miR.451"      "bta.miR.497"     
## 
## $SDSSI
## [1] "bta.miR.103"    "bta.miR.103.1"  "bta.miR.11977"  "bta.miR.11989" 
## [5] "bta.miR.222"    "bta.miR.2285av" "bta.miR.2285cf" "bta.miR.331.5p"
## [9] "bta.miR.425.3p"
## 
## $DSSDS
## [1] "bta.miR.106a"  "bta.miR.1246"  "bta.miR.17.3p" "bta.miR.181c" 
## [5] "bta.miR.182"   "bta.miR.200b"  "bta.miR.20a"  
## 
## $SDSIS
## [1] "bta.miR.107"   "bta.miR.29b"   "bta.miR.29b.1"
## 
## $SDSSS
##  [1] "bta.miR.11972"   "bta.miR.11975"   "bta.miR.11976"   "bta.miR.11976.1"
##  [5] "bta.miR.11985"   "bta.miR.12023"   "bta.miR.12034"   "bta.miR.2340"   
##  [9] "bta.miR.23a"     "bta.miR.27a.3p"  "bta.miR.2885"    "bta.miR.2886"   
## [13] "bta.miR.2887"    "bta.miR.2887.1"  "bta.miR.2899"    "bta.miR.3154"   
## [17] "bta.miR.92b"    
## 
## $SSSDS
##  [1] "bta.miR.125b"    "bta.miR.125b.1"  "bta.miR.1343.3p" "bta.miR.15b"    
##  [5] "bta.miR.17.5p"   "bta.miR.183"     "bta.miR.200c"    "bta.miR.2285cd" 
##  [9] "bta.miR.296.3p"  "bta.miR.423.3p"  "bta.miR.92a"     "bta.miR.92a.1"  
## 
## $DDSSI
##  [1] "bta.miR.1307"    "bta.miR.196b"    "bta.miR.2284y"   "bta.miR.2284y.1"
##  [5] "bta.miR.2284y.2" "bta.miR.2284y.3" "bta.miR.2284y.4" "bta.miR.2284y.5"
##  [9] "bta.miR.2284y.6" "bta.miR.26a"     "bta.miR.26a.1"  
## 
## $DSSSD
##  [1] "bta.miR.130b"    "bta.miR.135a"    "bta.miR.135a.1"  "bta.miR.136"    
##  [5] "bta.miR.1434.5p" "bta.miR.18a"     "bta.miR.19a"     "bta.miR.2477"   
##  [9] "bta.miR.30c"     "bta.miR.3601"    "bta.miR.374a"    "bta.miR.455.5p" 
## [13] "bta.miR.6119.3p" "bta.miR.769"    
## 
## $SSSIS
## [1] "bta.miR.133a"   "bta.miR.133a.1" "bta.miR.223"    "bta.miR.494"   
## 
## $SSSID
## [1] "bta.miR.135b"    "bta.miR.2285o"   "bta.miR.2285o.1" "bta.miR.2285o.2"
## [5] "bta.miR.2285o.3" "bta.miR.2285o.4"
## 
## $IISSD
## [1] "bta.miR.142.3p" "bta.miR.146a"   "bta.miR.22.3p"  "bta.miR.2478"  
## [5] "bta.miR.424.5p" "bta.miR.425.5p" "bta.miR.4286"   "bta.miR.4286.1"
## 
## $ISSIS
## [1] "bta.miR.145"   "bta.miR.21.5p" "bta.miR.22.5p"
## 
## $SISSS
## [1] "bta.miR.16b"       "bta.miR.193a.3p"   "bta.miR.199a.3p"  
## [4] "bta.miR.199a.3p.1" "bta.miR.199a.5p"   "bta.miR.199a.5p.1"
## [7] "bta.miR.2285u"     "bta.miR.410"       "bta.miR.495"      
## 
## $DDSDI
## [1] "bta.miR.181d" "bta.miR.25"   "bta.miR.744" 
## 
## $SISSD
##  [1] "bta.miR.186"     "bta.miR.2285bn"  "bta.miR.2285ce"  "bta.miR.2285f"  
##  [5] "bta.miR.2285f.1" "bta.miR.2285k"   "bta.miR.2285k.1" "bta.miR.2285k.2"
##  [9] "bta.miR.2285k.3" "bta.miR.2285k.4" "bta.miR.335"     "bta.miR.450a"   
## [13] "bta.miR.450a.1"  "bta.miR.450b"    "bta.miR.500"    
## 
## $SSSSD
## [1] "bta.miR.194"    "bta.miR.194.1"  "bta.miR.369.3p"
## 
## $ISSII
## [1] "bta.miR.196a"   "bta.miR.196a.1" "bta.miR.375"   
## 
## $DDSDD
## [1] "bta.miR.19b"   "bta.miR.19b.1"
## 
## $DISDS
## [1] "bta.miR.20b"
## 
## $DISDD
## [1] "bta.miR.211"    "bta.miR.2285t"  "bta.miR.30a.5p" "bta.miR.30f"   
## [5] "bta.miR.363"   
## 
## $DISSD
## [1] "bta.miR.2285bf"   "bta.miR.2285bf.1" "bta.miR.2285bf.2" "bta.miR.30b.5p"  
## [5] "bta.miR.362.3p"   "bta.miR.374b"    
## 
## $SSSDI
## [1] "bta.miR.30b.3p"
## 
## $DDSSD
## [1] "bta.miR.3613a" "bta.miR.429"   "bta.miR.592"  
## 
## $SISID
## [1] "bta.miR.376d" "bta.miR.381"  "bta.miR.655" 
## 
## $IISID
## [1] "bta.miR.376e"
## 
## $SISIS
## [1] "bta.miR.411c.5p"
## 
## $ISSDI
## [1] "bta.miR.423.5p"
## 
## $IISDS
## [1] "bta.miR.574"
## 
## $SDSDI
## [1] "bta.miR.760.3p"
## 
## $ISSDS
## [1] "bta.miR.877"
## 
## $DSSDI
## [1] "bta.miR.93"
## 
## $SISDS
## [1] "bta.miR.99a.5p"

5 miRNA Target Mapping Use Case

5.1 Pattern of Interest

The patterning structure generated wich depicts a wide view of expression change confounded with the smaller ‘jumps’ can be deciphered to understand what patterns are interesting/occur at the highest frequencies. For this use case, the pattern S-DSSI was interesting because it indicates mirs that decrease during pregnancy and increase after partruition. Considering the way mirna affects mrna, it can also be deduced that the mRNA pattern S-ISSD could potentially be directly impacted by the mirs in this dataset.

mi_miRNA$SDSSI
## [1] "bta.miR.103"    "bta.miR.103.1"  "bta.miR.11977"  "bta.miR.11989" 
## [5] "bta.miR.222"    "bta.miR.2285av" "bta.miR.2285cf" "bta.miR.331.5p"
## [9] "bta.miR.425.3p"
mi_miRNA$SISSD
##  [1] "bta.miR.186"     "bta.miR.2285bn"  "bta.miR.2285ce"  "bta.miR.2285f"  
##  [5] "bta.miR.2285f.1" "bta.miR.2285k"   "bta.miR.2285k.1" "bta.miR.2285k.2"
##  [9] "bta.miR.2285k.3" "bta.miR.2285k.4" "bta.miR.335"     "bta.miR.450a"   
## [13] "bta.miR.450a.1"  "bta.miR.450b"    "bta.miR.500"

5.2 miRwalk

We can use miRwalk to identify target genes for the selected miRNA. The following code assumes that the miRwalk results for the miRNAs of interest have been downloaded locally. This code integrates analyses of miRNA and mRNA. Assuming the mapped motif index for mRNA has a well-defined structural pattern, the loop will extract the targets from the gene symbol column and then filter the mapped motif index to reveal the patterns exhibited by the miRNA targets.

5.2.1 mir SDSSI

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/btamir SDSSI mining.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}
Click to expand results and summary
summary(results)
##       Length Class  Mode     
## SSSIS  222   -none- character
## SSSSS 1733   -none- character
## ISSIS  306   -none- character
## DSSDS  282   -none- character
## SSSDS  158   -none- character
## SDSSS  272   -none- character
## SSSSI   12   -none- character
## IISIS   56   -none- character
## SISSS  112   -none- character
## DDSSS  190   -none- character
## DISSD   10   -none- character
## SISSD   70   -none- character
## IISSD   12   -none- character
## ISSSS  192   -none- character
## DSSSS  223   -none- character
## IISSS   89   -none- character
## DISDS   11   -none- character
## SSSDI    6   -none- character
## SDSIS  102   -none- character
## DDSDS   58   -none- character
## SDSSI   46   -none- character
## SDSDS    5   -none- character
## IDSIS   12   -none- character
## SISID    1   -none- character
## SISDS   48   -none- character
## SSSSD   17   -none- character
## DDSIS    5   -none- character
## DSSSD   15   -none- character
## DDSDI    6   -none- character
## DISDD   13   -none- character
## IDSSI    5   -none- character
## SSDIS    1   -none- character
## DDSSD    1   -none- character
## SSSID    9   -none- character
## SISIS    5   -none- character
## ISSII    4   -none- character
## ISSSI   15   -none- character
## IISDS    2   -none- character
## DSSDD    4   -none- character
## DSSIS    1   -none- character
## DSSID    2   -none- character
## DSSDI    1   -none- character
## IISID    6   -none- character
## SDSDI    5   -none- character
## IDSSS    3   -none- character
## SISDD   12   -none- character
## DDSSI    2   -none- character
## IDSII    3   -none- character
## DDDIS    1   -none- character
## DISSS    2   -none- character
## SSIDS    1   -none- character

The pattern opposite of the miRNA pattern selected is S-ISSD. Pulling from the targest that were filtered through our mapped motif index, we can see what genes are present.

print(results$SISSD)
##  [1] "MRPL57"    "TOLLIP"    "DUSP23"    "ZHX3"      "HIP1R"     "EME2"     
##  [7] "ZNF697"    "ZNF575"    "KBTBD11"   "INAFM2"    "KSR1"      "PPP1R12B" 
## [13] "BICDL1"    "RAB43"     "SNED1"     "SHANK3"    "SH3BP2"    "REX1BD"   
## [19] "TBX2"      "TSC22D4"   "SRSF4"     "WDR86"     "DMWD"      "NEURL1B"  
## [25] "TOM1L2"    "SKI"       "ZDHHC8"    "PAM16"     "FAM53B"    "BRD1"     
## [31] "CTBP1"     "PPP1R37"   "LOC783012" "DGKQ"      "CPLANE2"   "ITPRIPL2" 
## [37] "TTYH3"     "SOX12"     "HES4"      "FBRSL1"    "SH3PXD2B"  "MAZ"      
## [43] "ELL"       "CBARP"     "MED19"     "HES6"      "LMOD1"     "AXIN1"    
## [49] "SMIM10L1"  "REXO1"     "FRAT2"     "ZBTB42"    "ZNF598"    "NRARP"    
## [55] "DIDO1"     "FBF1"      "MRPS26"    "ESS2"      "NELFA"     "ZNF771"   
## [61] "FUT4"      "FRAT1"     "SHROOM2"   "NUBP2"     "TMEM160"   "POLR1D"   
## [67] "PDCD1"     "GNB1L"     "MEGF6"     "KLF16"

5.2.2 mir SISSD

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/btamir SISSD mining.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}
Click to expand results and summary

The pattern opposite of the miRNA pattern selected is S-ISSD. Pulling from the targest that were filtered through our mapped motif index, we can see what genes are present.

print(results$SDSSI)
##  [1] "IFITM3"     "CDC42SE2"   "C9H6orf120" "GTF2A1"     "TP53INP1"  
##  [6] "ANGEL2"     "NRXN1"      "MBLAC2"     "C7H5orf15"  "BLOC1S6"   
## [11] "CERS5"      "SYPL1"      "MAPK8"      "PAK2"       "HMGB1"

5.2.3 bta-miR-542-5p

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/btamir542_5p mirwalk.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}

for (key in names(results)) {
  if (substr(key, 3, 3) == "D") {
    print(paste("Key:", key))
    print(results[[key]])
  }
}
## [1] "Key: SSDIS"
## [1] "NRGN"
## [1] "Key: DDDIS"
## [1] "VTCN1"
Click to expand results and summary
print(results$SSDIS)
## [1] "NRGN"

5.2.4 V-MP 2284/2285

5.2.4.1 Decrease 2284

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/vmp2284.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}


# V-MP Increase in expression
for (key in names(results)) {
  if (substr(key, 2, 2) == "I") {
    print(paste("Key:", key))
    print(results[[key]])
  }
}
## [1] "Key: IISIS"
## [1] "CD3E"   "GIMAP8"
## [1] "Key: SISSS"
## [1] "RNF220"  "EAF1"    "ZC3H18"  "NECTIN2" "DAPP1"   "CEBPD"  
## [1] "Key: SISSD"
## [1] "BRD1" "GPC1" "HES4"
## [1] "Key: IISSS"
## [1] "SHISA5"  "MCOLN2"  "TMEM51"  "RAPGEF1" "GPR146"  "SLC1A2"  "FOSL2"  
## [1] "Key: DISDS"
## [1] "DENND1B"
## [1] "Key: SISDS"
## [1] "FBN3"   "ZNF710" "MLLT1" 
## [1] "Key: SISDD"
## [1] "RASL10B"

5.2.4.2 Decrease 2285

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/vmp2285dec.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}


# V-MP Increase in expression
for (key in names(results)) {
  if (substr(key, 2, 2) == "I") {
    print(paste("Key:", key))
    print(results[[key]])
  }
}
## [1] "Key: IISIS"
## [1] "BHLHE22"
## [1] "Key: SISSS"
## [1] "GNA13" "SYNJ2" "DAPP1" "CEBPD"
## [1] "Key: SISSD"
## [1] "HES4"
## [1] "Key: IISSS"
## [1] "UBE2G2" "RASAL1" "SLC1A2" "FOSL2" 
## [1] "Key: SISDS"
## [1] "MCAT"   "ZNF710"
## [1] "Key: SISIS"
## [1] "RAB38"
## [1] "Key: IISDS"
## [1] "CLDN8"

5.2.4.3 Increase 2285

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/vmp2285inc.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}


# V-MP Increase in expression
for (key in names(results)) {
  if (substr(key, 2, 2) == "D") {
    print(paste("Key:", key))
    print(results[[key]])
  }
}
## [1] "Key: SDSSS"
##  [1] "PI15"     "SGMS2"    "RBM41"    "GOLGB1"   "SEPTIN11" "TMEM254" 
##  [7] "ESCO1"    "PPP1R12A" "CAVIN4"   "TBCEL"    "HMMR"     "IDNK"    
## [13] "MAMLD1"   "TMTC4"    "MARF1"    "UBE2G1"   "MAST4"   
## [1] "Key: DDSSS"
##  [1] "BTBD11"    "C1H3orf52" "MAP2"      "GPD2"      "SAXO2"     "SECISBP2L"
##  [7] "BARD1"     "HMGXB4"    "LYPD1"     "SLC13A3"   "NRIP3"     "IFNLR1"   
## [13] "RALGPS2"   "PPFIBP2"   "MAGI3"     "CREB5"     "PEX5L"    
## [1] "Key: SDSIS"
## [1] "CD109" "KCNQ5"
## [1] "Key: DDSDS"
## [1] "PPIL4"  "TPX2"   "ITCH"   "ZNF548"
## [1] "Key: SDSSI"
## [1] "HBEGF"
## [1] "Key: SDSDS"
## [1] "HELLS"
## [1] "Key: IDSIS"
## [1] "RASEF"  "STEAP4" "ADD3"  
## [1] "Key: DDSDI"
## [1] "PERP"    "SLC38A1"
## [1] "Key: IDSII"
## [1] "SH3BGRL2"

5.2.5 EL-PL 2284/2285

5.2.5.1 Decrease 2285

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/decelpl2285.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}


# V-MP Increase in expression
for (key in names(results)) {
  if (substr(key, 5, 5) == "I") {
    print(paste("Key:", key))
    print(results[[key]])
  }
}
## [1] "Key: SSSSI"
## [1] "PRPS1" "TMED2"
## [1] "Key: SDSSI"
## [1] "HBEGF"
## [1] "Key: DDSDI"
## [1] "PERP"    "SLC38A1"
## [1] "Key: IDSII"
## [1] "SH3BGRL2"

5.2.5.2 Increase 2285

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/elpl2285avcf.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}


# V-MP Increase in expression
for (key in names(results)) {
  if (substr(key, 5, 5) == "D") {
    print(paste("Key:", key))
    print(results[[key]])
  }
}
## [1] "Key: SISSD"
## [1] "HES4"
## [1] "Key: SSSSD"
## [1] "SLC12A7"

5.2.5.3 Increase 2284

# Specify the file path
file_path <- "C:/Users/12142/Bioinformatics/mirwalk csv/btamir2284y.csv"
# Import the CSV 
mirwalk_csv <- read.csv(file_path, header = TRUE)

miRNA_genes <- mirwalk_csv$genesymbol

results <- list()

# Iterate over each category in mmi_mrna
for (category in names(mmi_mrna)) {
  # Find common genes between miRNA_genes and the current category
  common_genes <- intersect(miRNA_genes, mmi_mrna[[category]])
  
  # If there are common genes, store them in the results list
  if (length(common_genes) > 0) {
    results[[category]] <- common_genes
  }
}


# V-MP Increase in expression
for (key in names(results)) {
  if (substr(key, 5, 5) == "D") {
    print(paste("Key:", key))
    print(results[[key]])
  }
}
## [1] "Key: SISSD"
## [1] "GPC1" "HES4"
## [1] "Key: SSSSD"
## [1] "SLC12A7"

5.2.6 miR patterns

print(mi_miRNA)
## $DSSSS
##  [1] "bta.let.7a.3p"    "bta.let.7a.3p.1"  "bta.let.7g"       "bta.miR.106b"    
##  [5] "bta.miR.1271"     "bta.miR.146b"     "bta.miR.2284k"    "bta.miR.2285au"  
##  [9] "bta.miR.2317"     "bta.miR.2369"     "bta.miR.2378"     "bta.miR.2400"    
## [13] "bta.miR.2420"     "bta.miR.2484"     "bta.miR.30e.5p"   "bta.miR.32"      
## [17] "bta.miR.328"      "bta.miR.362.5p"   "bta.miR.365.3p"   "bta.miR.365.3p.1"
## [21] "bta.miR.452"      "bta.miR.532"      "bta.miR.6524"     "bta.miR.664b"    
## [25] "bta.miR.767"      "bta.miR.95"       "bta.miR.96"      
## 
## $SSSSI
##  [1] "bta.let.7a.5p"   "bta.let.7a.5p.1" "bta.let.7a.5p.2" "bta.let.7d"     
##  [5] "bta.miR.130a"    "bta.miR.181a"    "bta.miR.181a.1"  "bta.miR.224"    
##  [9] "bta.miR.27b"     "bta.miR.30d"     "bta.miR.505"     "bta.miR.8549"   
## 
## $ISSSI
##  [1] "bta.let.7b"      "bta.let.7c"      "bta.let.7i"      "bta.miR.140"    
##  [5] "bta.miR.151.3p"  "bta.miR.155"     "bta.miR.181b"    "bta.miR.181b.1" 
##  [9] "bta.miR.193b"    "bta.miR.214"     "bta.miR.221"     "bta.miR.2389"   
## [13] "bta.miR.3432a"   "bta.miR.3432a.1" "bta.miR.3432b"   "bta.miR.378"    
## [17] "bta.miR.378.1"   "bta.miR.652"    
## 
## $ISSSS
##  [1] "bta.let.7e"      "bta.miR.11980"   "bta.miR.11987"   "bta.miR.1260b"  
##  [5] "bta.miR.132"     "bta.miR.134"     "bta.miR.139"     "bta.miR.142.5p" 
##  [9] "bta.miR.1468"    "bta.miR.150"     "bta.miR.16a"     "bta.miR.193a.5p"
## [13] "bta.miR.24.3p"   "bta.miR.24.3p.1" "bta.miR.2419.5p" "bta.miR.2904"   
## [17] "bta.miR.2904.1"  "bta.miR.2904.2"  "bta.miR.320a"    "bta.miR.320a.1" 
## [21] "bta.miR.379"     "bta.miR.424.3p"  "bta.miR.484"     "bta.miR.485"    
## [25] "bta.miR.486"     "bta.miR.7859"    "bta.miR.99b"    
## 
## $SSSSS
##   [1] "bta.let.7f"          "bta.let.7f.1"        "bta.miR.100"        
##   [4] "bta.miR.10020"       "bta.miR.10162.5p"    "bta.miR.10164.3p"   
##   [7] "bta.miR.10166.5p"    "bta.miR.10169.3p"    "bta.miR.10170.5p"   
##  [10] "bta.miR.10171.3p"    "bta.miR.10172.5p"    "bta.miR.10173.5p"   
##  [13] "bta.miR.10174.3p"    "bta.miR.10174.5p"    "bta.miR.10175.5p"   
##  [16] "bta.miR.10176.5p"    "bta.miR.10177.5p"    "bta.miR.10178.5p"   
##  [19] "bta.miR.10179.5p"    "bta.miR.10180.3p"    "bta.miR.10181.5p"   
##  [22] "bta.miR.10182.3p"    "bta.miR.10182.5p"    "bta.miR.10183.5p"   
##  [25] "bta.miR.10185.5p"    "bta.miR.10225a"      "bta.miR.1185"       
##  [28] "bta.miR.1197"        "bta.miR.11971"       "bta.miR.11973"      
##  [31] "bta.miR.11978"       "bta.miR.11981"       "bta.miR.11982"      
##  [34] "bta.miR.11983"       "bta.miR.11984"       "bta.miR.11986c"     
##  [37] "bta.miR.11988"       "bta.miR.11990"       "bta.miR.11991"      
##  [40] "bta.miR.11992"       "bta.miR.11993"       "bta.miR.11994"      
##  [43] "bta.miR.11995"       "bta.miR.11997"       "bta.miR.11998"      
##  [46] "bta.miR.12001"       "bta.miR.12002b"      "bta.miR.12003"      
##  [49] "bta.miR.12004"       "bta.miR.12005"       "bta.miR.12005.1"    
##  [52] "bta.miR.12006"       "bta.miR.12010"       "bta.miR.12014"      
##  [55] "bta.miR.12017"       "bta.miR.12019"       "bta.miR.12025"      
##  [58] "bta.miR.12026"       "bta.miR.12027"       "bta.miR.12032"      
##  [61] "bta.miR.12033"       "bta.miR.12036"       "bta.miR.12039"      
##  [64] "bta.miR.12046"       "bta.miR.12048"       "bta.miR.12051"      
##  [67] "bta.miR.12054"       "bta.miR.12056"       "bta.miR.12057"      
##  [70] "bta.miR.12059"       "bta.miR.12060"       "bta.miR.12061"      
##  [73] "bta.miR.12064"       "bta.miR.122"         "bta.miR.1224"       
##  [76] "bta.miR.1247.3p"     "bta.miR.1248"        "bta.miR.1248.1"     
##  [79] "bta.miR.1249"        "bta.miR.1256"        "bta.miR.125a"       
##  [82] "bta.miR.126.5p"      "bta.miR.127"         "bta.miR.1277"       
##  [85] "bta.miR.128"         "bta.miR.128.1"       "bta.miR.1281"       
##  [88] "bta.miR.1287"        "bta.miR.129"         "bta.miR.129.1"      
##  [91] "bta.miR.129.5p"      "bta.miR.129.5p.1"    "bta.miR.1291"       
##  [94] "bta.miR.1296"        "bta.miR.1298"        "bta.miR.1301"       
##  [97] "bta.miR.1306"        "bta.miR.1343.5p"     "bta.miR.138"        
## [100] "bta.miR.138.1"       "bta.miR.1388.3p"     "bta.miR.1388.5p"    
## [103] "bta.miR.141"         "bta.miR.1434.3p"     "bta.miR.144"        
## [106] "bta.miR.148a"        "bta.miR.149.3p"      "bta.miR.149.5p"     
## [109] "bta.miR.152"         "bta.miR.154b"        "bta.miR.154c"       
## [112] "bta.miR.1584.3p"     "bta.miR.1584.5p"     "bta.miR.15a"        
## [115] "bta.miR.1721"        "bta.miR.1777a"       "bta.miR.1777b"      
## [118] "bta.miR.1814c"       "bta.miR.1835"        "bta.miR.1839"       
## [121] "bta.miR.184"         "bta.miR.1842"        "bta.miR.1843"       
## [124] "bta.miR.185"         "bta.miR.187"         "bta.miR.188"        
## [127] "bta.miR.18b"         "bta.miR.190b"        "bta.miR.191"        
## [130] "bta.miR.191b"        "bta.miR.192"         "bta.miR.193a"       
## [133] "bta.miR.1949"        "bta.miR.194b"        "bta.miR.194b.1"     
## [136] "bta.miR.194b.3p"     "bta.miR.197"         "bta.miR.199b"       
## [139] "bta.miR.202"         "bta.miR.205"         "bta.miR.206"        
## [142] "bta.miR.21.3p"       "bta.miR.215"         "bta.miR.218"        
## [145] "bta.miR.218.1"       "bta.miR.219"         "bta.miR.219.3p"     
## [148] "bta.miR.2284a"       "bta.miR.2284aa"      "bta.miR.2284aa.1"   
## [151] "bta.miR.2284aa.2"    "bta.miR.2284aa.3"    "bta.miR.2284ab"     
## [154] "bta.miR.2284ac"      "bta.miR.2284b"       "bta.miR.2284d"      
## [157] "bta.miR.2284g"       "bta.miR.2284h.5p"    "bta.miR.2284j"      
## [160] "bta.miR.2284l"       "bta.miR.2284m"       "bta.miR.2284r"      
## [163] "bta.miR.2284w"       "bta.miR.2284z"       "bta.miR.2284z.1"    
## [166] "bta.miR.2284z.2"     "bta.miR.2284z.3"     "bta.miR.2284z.4"    
## [169] "bta.miR.2284z.5"     "bta.miR.2284z.6"     "bta.miR.2285a"      
## [172] "bta.miR.2285aa"      "bta.miR.2285ab"      "bta.miR.2285ac"     
## [175] "bta.miR.2285ad"      "bta.miR.2285ag.3p"   "bta.miR.2285ah.5p"  
## [178] "bta.miR.2285ai.5p"   "bta.miR.2285ak.5p"   "bta.miR.2285al.5p"  
## [181] "bta.miR.2285am.5p"   "bta.miR.2285an"      "bta.miR.2285ap"     
## [184] "bta.miR.2285ar"      "bta.miR.2285as"      "bta.miR.2285as.1"   
## [187] "bta.miR.2285as.2"    "bta.miR.2285at"      "bta.miR.2285at.1"   
## [190] "bta.miR.2285at.2"    "bta.miR.2285at.3"    "bta.miR.2285aw"     
## [193] "bta.miR.2285ax"      "bta.miR.2285ax.1"    "bta.miR.2285ax.2"   
## [196] "bta.miR.2285ay"      "bta.miR.2285az"      "bta.miR.2285b"      
## [199] "bta.miR.2285b.1"     "bta.miR.2285ba"      "bta.miR.2285ba.1"   
## [202] "bta.miR.2285bb"      "bta.miR.2285bc"      "bta.miR.2285bd"     
## [205] "bta.miR.2285be"      "bta.miR.2285bg"      "bta.miR.2285bh"     
## [208] "bta.miR.2285bi"      "bta.miR.2285bi.1"    "bta.miR.2285bj"     
## [211] "bta.miR.2285bj.1"    "bta.miR.2285bk"      "bta.miR.2285bl"     
## [214] "bta.miR.2285bm"      "bta.miR.2285bo"      "bta.miR.2285bp"     
## [217] "bta.miR.2285bq"      "bta.miR.2285br"      "bta.miR.2285bs"     
## [220] "bta.miR.2285bt"      "bta.miR.2285bu"      "bta.miR.2285bu.1"   
## [223] "bta.miR.2285by"      "bta.miR.2285bz"      "bta.miR.2285c"      
## [226] "bta.miR.2285cc"      "bta.miR.2285cj"      "bta.miR.2285ck"     
## [229] "bta.miR.2285cl"      "bta.miR.2285cm"      "bta.miR.2285co"     
## [232] "bta.miR.2285cp"      "bta.miR.2285cr"      "bta.miR.2285cr.1"   
## [235] "bta.miR.2285cs"      "bta.miR.2285ct"      "bta.miR.2285cw"     
## [238] "bta.miR.2285cw.1"    "bta.miR.2285cy"      "bta.miR.2285cz"     
## [241] "bta.miR.2285d"       "bta.miR.2285da"      "bta.miR.2285db"     
## [244] "bta.miR.2285dc"      "bta.miR.2285dd"      "bta.miR.2285de"     
## [247] "bta.miR.2285dh"      "bta.miR.2285dl.3p"   "bta.miR.2285dl.3p.1"
## [250] "bta.miR.2285e"       "bta.miR.2285e.1"     "bta.miR.2285g"      
## [253] "bta.miR.2285g.1"     "bta.miR.2285g.2"     "bta.miR.2285h"      
## [256] "bta.miR.2285i"       "bta.miR.2285j"       "bta.miR.2285j.1"    
## [259] "bta.miR.2285l"       "bta.miR.2285m"       "bta.miR.2285m.1"    
## [262] "bta.miR.2285m.2"     "bta.miR.2285m.3"     "bta.miR.2285m.4"    
## [265] "bta.miR.2285n"       "bta.miR.2285n.1"     "bta.miR.2285n.2"    
## [268] "bta.miR.2285n.3"     "bta.miR.2285n.4"     "bta.miR.2285n.5"    
## [271] "bta.miR.2285n.6"     "bta.miR.2285p"       "bta.miR.2285q"      
## [274] "bta.miR.2285r"       "bta.miR.2285v"       "bta.miR.2285x"      
## [277] "bta.miR.2286"        "bta.miR.2287"        "bta.miR.2288"       
## [280] "bta.miR.2290"        "bta.miR.2291"        "bta.miR.2292"       
## [283] "bta.miR.2295"        "bta.miR.2299.3p"     "bta.miR.2299.5p"    
## [286] "bta.miR.2300b.3p"    "bta.miR.2303"        "bta.miR.2304"       
## [289] "bta.miR.2305"        "bta.miR.2307"        "bta.miR.2308"       
## [292] "bta.miR.2309"        "bta.miR.2310"        "bta.miR.2313.5p"    
## [295] "bta.miR.2316"        "bta.miR.2318"        "bta.miR.2320.3p"    
## [298] "bta.miR.2321"        "bta.miR.2324"        "bta.miR.2325a"      
## [301] "bta.miR.2325c"       "bta.miR.2328.3p"     "bta.miR.2328.5p"    
## [304] "bta.miR.2330.5p"     "bta.miR.2331.5p"     "bta.miR.2335"       
## [307] "bta.miR.2336"        "bta.miR.2338"        "bta.miR.2339"       
## [310] "bta.miR.2341"        "bta.miR.2342"        "bta.miR.2343"       
## [313] "bta.miR.2344"        "bta.miR.2346"        "bta.miR.2347"       
## [316] "bta.miR.2348"        "bta.miR.2349"        "bta.miR.2352"       
## [319] "bta.miR.2353"        "bta.miR.2354"        "bta.miR.2355.3p"    
## [322] "bta.miR.2356"        "bta.miR.2357"        "bta.miR.2359"       
## [325] "bta.miR.2360"        "bta.miR.2361"        "bta.miR.2364"       
## [328] "bta.miR.2366"        "bta.miR.2367.3p"     "bta.miR.2367.5p"    
## [331] "bta.miR.2370.5p"     "bta.miR.2371"        "bta.miR.2372"       
## [334] "bta.miR.2373.3p"     "bta.miR.2373.5p"     "bta.miR.2374"       
## [337] "bta.miR.2375"        "bta.miR.2376"        "bta.miR.2379"       
## [340] "bta.miR.2381"        "bta.miR.2382.5p"     "bta.miR.2384"       
## [343] "bta.miR.2387"        "bta.miR.2388.3p"     "bta.miR.2390"       
## [346] "bta.miR.2392"        "bta.miR.2397.3p"     "bta.miR.2397.5p"    
## [349] "bta.miR.2399.5p"     "bta.miR.23b.3p"      "bta.miR.23b.5p"     
## [352] "bta.miR.24"          "bta.miR.2404"        "bta.miR.2404.1"     
## [355] "bta.miR.2406"        "bta.miR.2407"        "bta.miR.2410"       
## [358] "bta.miR.2411.5p"     "bta.miR.2412"        "bta.miR.2413"       
## [361] "bta.miR.2415.5p"     "bta.miR.2416"        "bta.miR.2417"       
## [364] "bta.miR.2418"        "bta.miR.2419.3p"     "bta.miR.2421"       
## [367] "bta.miR.2422"        "bta.miR.2426"        "bta.miR.2427"       
## [370] "bta.miR.2428"        "bta.miR.2430"        "bta.miR.2431.5p"    
## [373] "bta.miR.2433"        "bta.miR.2434"        "bta.miR.2436.3p"    
## [376] "bta.miR.2436.5p"     "bta.miR.2438"        "bta.miR.2439.5p"    
## [379] "bta.miR.2440"        "bta.miR.2441"        "bta.miR.2442"       
## [382] "bta.miR.2443"        "bta.miR.2447"        "bta.miR.2448.3p"    
## [385] "bta.miR.2450b"       "bta.miR.2454.5p"     "bta.miR.2455"       
## [388] "bta.miR.2456"        "bta.miR.2457"        "bta.miR.2459"       
## [391] "bta.miR.2460"        "bta.miR.2462"        "bta.miR.2463"       
## [394] "bta.miR.2464.3p"     "bta.miR.2464.5p"     "bta.miR.2465"       
## [397] "bta.miR.2466.3p"     "bta.miR.2466.5p"     "bta.miR.2467.3p"    
## [400] "bta.miR.2468"        "bta.miR.2473"        "bta.miR.2474"       
## [403] "bta.miR.2475"        "bta.miR.2481"        "bta.miR.2483.3p"    
## [406] "bta.miR.2483.5p"     "bta.miR.2486.5p"     "bta.miR.27a.5p"     
## [409] "bta.miR.2881"        "bta.miR.2882"        "bta.miR.2889"       
## [412] "bta.miR.2890"        "bta.miR.2892"        "bta.miR.2893"       
## [415] "bta.miR.2898"        "bta.miR.2900"        "bta.miR.2902"       
## [418] "bta.miR.296.5p"      "bta.miR.299"         "bta.miR.299.2"      
## [421] "bta.miR.29a"         "bta.miR.29c"         "bta.miR.29d.5p"     
## [424] "bta.miR.301b"        "bta.miR.3065"        "bta.miR.3141"       
## [427] "bta.miR.320b"        "bta.miR.323"         "bta.miR.323b.3p"    
## [430] "bta.miR.324"         "bta.miR.326"         "bta.miR.329a"       
## [433] "bta.miR.329b"        "bta.miR.330"         "bta.miR.331.3p"     
## [436] "bta.miR.338"         "bta.miR.33a"         "bta.miR.33b"        
## [439] "bta.miR.342"         "bta.miR.3431"        "bta.miR.345.5p"     
## [442] "bta.miR.34b"         "bta.miR.34c"         "bta.miR.3533"       
## [445] "bta.miR.365.5p"      "bta.miR.3660"        "bta.miR.370"        
## [448] "bta.miR.374c"        "bta.miR.376a"        "bta.miR.376b"       
## [451] "bta.miR.376c"        "bta.miR.377"         "bta.miR.378b"       
## [454] "bta.miR.378c"        "bta.miR.378d"        "bta.miR.380.3p"     
## [457] "bta.miR.380.5p"      "bta.miR.382"         "bta.miR.383"        
## [460] "bta.miR.3956"        "bta.miR.3957"        "bta.miR.409a"       
## [463] "bta.miR.411b"        "bta.miR.411c.3p"     "bta.miR.412"        
## [466] "bta.miR.421"         "bta.miR.431"         "bta.miR.432"        
## [469] "bta.miR.433"         "bta.miR.4444"        "bta.miR.4449"       
## [472] "bta.miR.449a"        "bta.miR.449b"        "bta.miR.449d"       
## [475] "bta.miR.4523"        "bta.miR.454"         "bta.miR.455.3p"     
## [478] "bta.miR.4657"        "bta.miR.483"         "bta.miR.487a"       
## [481] "bta.miR.487b"        "bta.miR.490"         "bta.miR.491"        
## [484] "bta.miR.493"         "bta.miR.496"         "bta.miR.499"        
## [487] "bta.miR.502a"        "bta.miR.502a.1"      "bta.miR.502b"       
## [490] "bta.miR.503.3p"      "bta.miR.503.5p"      "bta.miR.507.3p"     
## [493] "bta.miR.507b"        "bta.miR.539"         "bta.miR.541"        
## [496] "bta.miR.542.5p"      "bta.miR.543"         "bta.miR.545.5p"     
## [499] "bta.miR.582"         "bta.miR.584"         "bta.miR.584.1"      
## [502] "bta.miR.584.2"       "bta.miR.584.3"       "bta.miR.584.4"      
## [505] "bta.miR.584.5"       "bta.miR.584.6"       "bta.miR.584.7"      
## [508] "bta.miR.6120.3p"     "bta.miR.6121.3p"     "bta.miR.6121.5p"    
## [511] "bta.miR.6122.3p"     "bta.miR.6122.5p"     "bta.miR.6123"       
## [514] "bta.miR.628"         "bta.miR.6516"        "bta.miR.6517"       
## [517] "bta.miR.6518"        "bta.miR.6519"        "bta.miR.6520"       
## [520] "bta.miR.6522"        "bta.miR.6523a"       "bta.miR.6525"       
## [523] "bta.miR.6527"        "bta.miR.6528"        "bta.miR.6529a"      
## [526] "bta.miR.6530"        "bta.miR.6531"        "bta.miR.6532"       
## [529] "bta.miR.6533"        "bta.miR.6534"        "bta.miR.6535"       
## [532] "bta.miR.6536"        "bta.miR.6536.1"      "bta.miR.654"        
## [535] "bta.miR.656"         "bta.miR.658"         "bta.miR.660"        
## [538] "bta.miR.664a"        "bta.miR.665"         "bta.miR.668.3p"     
## [541] "bta.miR.669"         "bta.miR.671"         "bta.miR.6715"       
## [544] "bta.miR.6775"        "bta.miR.7"           "bta.miR.7.1"        
## [547] "bta.miR.7.2"         "bta.miR.708"         "bta.miR.7180"       
## [550] "bta.miR.758"         "bta.miR.760.5p"      "bta.miR.763"        
## [553] "bta.miR.7857.3p"     "bta.miR.7857.5p"     "bta.miR.7857.5p.1"  
## [556] "bta.miR.7858"        "bta.miR.7860"        "bta.miR.7861"       
## [559] "bta.miR.7862"        "bta.miR.7863"        "bta.miR.7865"       
## [562] "bta.miR.874"         "bta.miR.875"         "bta.miR.9.3p"       
## [565] "bta.miR.9.3p.1"      "bta.miR.9.5p"        "bta.miR.9.5p.1"     
## [568] "bta.miR.940"         "bta.miR.98"          "bta.miR.9851"       
## 
## $IISSS
##  [1] "bta.miR.1"        "bta.miR.1.1"      "bta.miR.10167.3p" "bta.miR.10a"     
##  [5] "bta.miR.10b"      "bta.miR.151.5p"   "bta.miR.199c"     "bta.miR.212"     
##  [9] "bta.miR.28"       "bta.miR.2888"     "bta.miR.2888.1"   "bta.miR.411a"    
## [13] "bta.miR.615"     
## 
## $DDSSS
##  [1] "bta.miR.101"       "bta.miR.101.1"     "bta.miR.11986b"   
##  [4] "bta.miR.12030"     "bta.miR.1247.5p"   "bta.miR.147"      
##  [7] "bta.miR.148b"      "bta.miR.190a"      "bta.miR.200a"     
## [10] "bta.miR.204"       "bta.miR.210"       "bta.miR.2284v"    
## [13] "bta.miR.2284x"     "bta.miR.2285aj.5p" "bta.miR.2332"     
## [16] "bta.miR.2411.3p"   "bta.miR.2424"      "bta.miR.2454.3p"  
## [19] "bta.miR.26b"       "bta.miR.29d.3p"    "bta.miR.301a"     
## [22] "bta.miR.31"        "bta.miR.339a"      "bta.miR.339b"     
## [25] "bta.miR.340"       "bta.miR.345.3p"    "bta.miR.34a"      
## [28] "bta.miR.361"       "bta.miR.504"       "bta.miR.6119.5p"  
## [31] "bta.miR.677"       "bta.miR.885"       "bta.miR.99a.3p"   
## 
## $IISIS
## [1] "bta.miR.10172.3p" "bta.miR.126.3p"   "bta.miR.143"      "bta.miR.195"     
## [5] "bta.miR.369.5p"   "bta.miR.451"      "bta.miR.497"     
## 
## $SDSSI
## [1] "bta.miR.103"    "bta.miR.103.1"  "bta.miR.11977"  "bta.miR.11989" 
## [5] "bta.miR.222"    "bta.miR.2285av" "bta.miR.2285cf" "bta.miR.331.5p"
## [9] "bta.miR.425.3p"
## 
## $DSSDS
## [1] "bta.miR.106a"  "bta.miR.1246"  "bta.miR.17.3p" "bta.miR.181c" 
## [5] "bta.miR.182"   "bta.miR.200b"  "bta.miR.20a"  
## 
## $SDSIS
## [1] "bta.miR.107"   "bta.miR.29b"   "bta.miR.29b.1"
## 
## $SDSSS
##  [1] "bta.miR.11972"   "bta.miR.11975"   "bta.miR.11976"   "bta.miR.11976.1"
##  [5] "bta.miR.11985"   "bta.miR.12023"   "bta.miR.12034"   "bta.miR.2340"   
##  [9] "bta.miR.23a"     "bta.miR.27a.3p"  "bta.miR.2885"    "bta.miR.2886"   
## [13] "bta.miR.2887"    "bta.miR.2887.1"  "bta.miR.2899"    "bta.miR.3154"   
## [17] "bta.miR.92b"    
## 
## $SSSDS
##  [1] "bta.miR.125b"    "bta.miR.125b.1"  "bta.miR.1343.3p" "bta.miR.15b"    
##  [5] "bta.miR.17.5p"   "bta.miR.183"     "bta.miR.200c"    "bta.miR.2285cd" 
##  [9] "bta.miR.296.3p"  "bta.miR.423.3p"  "bta.miR.92a"     "bta.miR.92a.1"  
## 
## $DDSSI
##  [1] "bta.miR.1307"    "bta.miR.196b"    "bta.miR.2284y"   "bta.miR.2284y.1"
##  [5] "bta.miR.2284y.2" "bta.miR.2284y.3" "bta.miR.2284y.4" "bta.miR.2284y.5"
##  [9] "bta.miR.2284y.6" "bta.miR.26a"     "bta.miR.26a.1"  
## 
## $DSSSD
##  [1] "bta.miR.130b"    "bta.miR.135a"    "bta.miR.135a.1"  "bta.miR.136"    
##  [5] "bta.miR.1434.5p" "bta.miR.18a"     "bta.miR.19a"     "bta.miR.2477"   
##  [9] "bta.miR.30c"     "bta.miR.3601"    "bta.miR.374a"    "bta.miR.455.5p" 
## [13] "bta.miR.6119.3p" "bta.miR.769"    
## 
## $SSSIS
## [1] "bta.miR.133a"   "bta.miR.133a.1" "bta.miR.223"    "bta.miR.494"   
## 
## $SSSID
## [1] "bta.miR.135b"    "bta.miR.2285o"   "bta.miR.2285o.1" "bta.miR.2285o.2"
## [5] "bta.miR.2285o.3" "bta.miR.2285o.4"
## 
## $IISSD
## [1] "bta.miR.142.3p" "bta.miR.146a"   "bta.miR.22.3p"  "bta.miR.2478"  
## [5] "bta.miR.424.5p" "bta.miR.425.5p" "bta.miR.4286"   "bta.miR.4286.1"
## 
## $ISSIS
## [1] "bta.miR.145"   "bta.miR.21.5p" "bta.miR.22.5p"
## 
## $SISSS
## [1] "bta.miR.16b"       "bta.miR.193a.3p"   "bta.miR.199a.3p"  
## [4] "bta.miR.199a.3p.1" "bta.miR.199a.5p"   "bta.miR.199a.5p.1"
## [7] "bta.miR.2285u"     "bta.miR.410"       "bta.miR.495"      
## 
## $DDSDI
## [1] "bta.miR.181d" "bta.miR.25"   "bta.miR.744" 
## 
## $SISSD
##  [1] "bta.miR.186"     "bta.miR.2285bn"  "bta.miR.2285ce"  "bta.miR.2285f"  
##  [5] "bta.miR.2285f.1" "bta.miR.2285k"   "bta.miR.2285k.1" "bta.miR.2285k.2"
##  [9] "bta.miR.2285k.3" "bta.miR.2285k.4" "bta.miR.335"     "bta.miR.450a"   
## [13] "bta.miR.450a.1"  "bta.miR.450b"    "bta.miR.500"    
## 
## $SSSSD
## [1] "bta.miR.194"    "bta.miR.194.1"  "bta.miR.369.3p"
## 
## $ISSII
## [1] "bta.miR.196a"   "bta.miR.196a.1" "bta.miR.375"   
## 
## $DDSDD
## [1] "bta.miR.19b"   "bta.miR.19b.1"
## 
## $DISDS
## [1] "bta.miR.20b"
## 
## $DISDD
## [1] "bta.miR.211"    "bta.miR.2285t"  "bta.miR.30a.5p" "bta.miR.30f"   
## [5] "bta.miR.363"   
## 
## $DISSD
## [1] "bta.miR.2285bf"   "bta.miR.2285bf.1" "bta.miR.2285bf.2" "bta.miR.30b.5p"  
## [5] "bta.miR.362.3p"   "bta.miR.374b"    
## 
## $SSSDI
## [1] "bta.miR.30b.3p"
## 
## $DDSSD
## [1] "bta.miR.3613a" "bta.miR.429"   "bta.miR.592"  
## 
## $SISID
## [1] "bta.miR.376d" "bta.miR.381"  "bta.miR.655" 
## 
## $IISID
## [1] "bta.miR.376e"
## 
## $SISIS
## [1] "bta.miR.411c.5p"
## 
## $ISSDI
## [1] "bta.miR.423.5p"
## 
## $IISDS
## [1] "bta.miR.574"
## 
## $SDSDI
## [1] "bta.miR.760.3p"
## 
## $ISSDS
## [1] "bta.miR.877"
## 
## $DSSDI
## [1] "bta.miR.93"
## 
## $SISDS
## [1] "bta.miR.99a.5p"

5.3 Interesting notes 3’UTR CDS 5’UTR

3’ UTR Binding: - miRNAs binding to the 3’ UTR lead to mRNA degradation and translational repression.
- binding in the 3’ UTR recruits RISC complex which leads to deadenylation, decapping -> degradation
- These sites are generally considered the most effective in down-regulating gene expression by reducing mRNA levels
- 3’ UTR binding is also the most well studied mechanism of regulation by miRNA

5’ UTR Binding:
- miRNA binding in the 5’ UTR is less understood but may influence translation initiation
- Binding near the 5’ cap can interfere with the assembly of the translation initiation complex, inhibiting initiation.
- The secondary structure near the 5’ cap in miRNA-regulated mRNAs is more stable, suggesting a mechanism for miRNA-mediated regulation at this region.
- Less common and seems to be less potent compared to 3’ UTR binding sites in terms of inducing mRNA degradation

CDS Binding:
- miRNAs binding within the CDS can inhibit translation, often without affecting mRNA stability.
- The binding of miRNAs to the CDS can stall ribosomes during translation elongation, reducing protein synthesis.
- less effective at reducing mRNA levels compared to 3’ UTR binding, CDS binding can significantly inhibit translation after miRNA transfection

6 Session Info

Click to view
sessionInfo()
## R version 4.3.2 (2023-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 11 x64 (build 22631)
## 
## Matrix products: default
## 
## 
## locale:
## [1] LC_COLLATE=English_United States.utf8 
## [2] LC_CTYPE=English_United States.utf8   
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.utf8    
## 
## time zone: America/Chicago
## tzcode source: internal
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] readr_2.1.5                 ggrepel_0.9.5              
##  [3] plotly_4.10.4               ggplot2_3.5.0              
##  [5] kableExtra_1.4.0            knitr_1.46                 
##  [7] tidyr_1.3.1                 readxl_1.4.3               
##  [9] sva_3.48.0                  BiocParallel_1.34.2        
## [11] genefilter_1.82.1           mgcv_1.9-0                 
## [13] nlme_3.1-163                org.Bt.eg.db_3.17.0        
## [15] AnnotationDbi_1.62.2        dplyr_1.1.4                
## [17] DESeq2_1.40.2               SummarizedExperiment_1.30.2
## [19] Biobase_2.60.0              MatrixGenerics_1.12.3      
## [21] matrixStats_1.2.0           GenomicRanges_1.52.1       
## [23] GenomeInfoDb_1.36.4         IRanges_2.34.1             
## [25] S4Vectors_0.38.2            BiocGenerics_0.46.0        
## 
## loaded via a namespace (and not attached):
##  [1] DBI_1.2.2               bitops_1.0-7            rlang_1.1.3            
##  [4] magrittr_2.0.3          compiler_4.3.2          RSQLite_2.3.5          
##  [7] png_0.1-8               systemfonts_1.0.6       vctrs_0.6.5            
## [10] stringr_1.5.1           pkgconfig_2.0.3         crayon_1.5.2           
## [13] fastmap_1.1.1           XVector_0.40.0          labeling_0.4.3         
## [16] utf8_1.2.4              rmarkdown_2.26          tzdb_0.4.0             
## [19] purrr_1.0.2             bit_4.0.5               xfun_0.43              
## [22] zlibbioc_1.46.0         cachem_1.0.8            jsonlite_1.8.8         
## [25] blob_1.2.4              highr_0.10              DelayedArray_0.26.7    
## [28] parallel_4.3.2          R6_2.5.1                bslib_0.7.0            
## [31] stringi_1.8.3           limma_3.56.2            jquerylib_0.1.4        
## [34] cellranger_1.1.0        Rcpp_1.0.12             Matrix_1.6-1.1         
## [37] splines_4.3.2           tidyselect_1.2.1        rstudioapi_0.16.0      
## [40] abind_1.4-5             yaml_2.3.8              codetools_0.2-19       
## [43] lattice_0.21-9          tibble_3.2.1            withr_3.0.0            
## [46] KEGGREST_1.40.1         evaluate_0.23           survival_3.5-7         
## [49] xml2_1.3.6              Biostrings_2.68.1       pillar_1.9.0           
## [52] generics_0.1.3          RCurl_1.98-1.14         hms_1.1.3              
## [55] munsell_0.5.1           scales_1.3.0            xtable_1.8-4           
## [58] glue_1.7.0              lazyeval_0.2.2          tools_4.3.2            
## [61] data.table_1.15.4       annotate_1.78.0         locfit_1.5-9.9         
## [64] XML_3.99-0.16.1         grid_4.3.2              edgeR_3.42.4           
## [67] colorspace_2.1-0        GenomeInfoDbData_1.2.10 cli_3.6.2              
## [70] fansi_1.0.6             S4Arrays_1.0.6          viridisLite_0.4.2      
## [73] svglite_2.1.3           gtable_0.3.4            sass_0.4.9             
## [76] digest_0.6.35           farver_2.1.1            htmlwidgets_1.6.4      
## [79] memoise_2.0.1           htmltools_0.5.8.1       lifecycle_1.0.4        
## [82] httr_1.4.7              MASS_7.3-60             bit64_4.0.5