library(myTAI) options(width = 750) knitr::opts_chunk$set( comment = "#>", error = FALSE, tidy = FALSE)
Today, phenomena such as morphological mutations, diseases or developmental processes are primarily investigated on the molecular level using transcriptomics approaches. Transcriptomes denote the total number of quantifiable transcripts present at a specific stage in a biological process. In disease or developmental (defect) studies, transcriptomes are usually measured over several time points. In treatment studies aiming to quantify differences in the transcriptome due to biotic stimuli, abiotic stimuli, or diseases usually treatment / disease versus non-treatment / non-disease transcriptomes are compared. In either case, comparing changes in transcriptomes over time or between treatments allows us to identify genes and gene regulatory mechanisms that might be involved in governing the biological process of investigation. Although classic transcriptomics studies are based on an established methodology, little is known about the evolution and conservation mechanisms underlying such transcriptomes. Understanding the evolutionary mechanism that change transcriptomes over time, however, might give us a new perspective on how diseases emerge in the first place or how morphological changes are triggered by changes of developmental transcriptomes.
Evolutionary transcriptomics aims to capture and quantify the evolutionary conservation of genes that contribute to the transcriptome during a specific stage of the biological process of interest. The resulting temporal conservation pattern then enables to detect stages of development or other biological processes that are evolutionarily conserved (Drost et al., 2018). This quantification on the highest level is achieved through transcriptome indices (e.g. Transcriptome Age Index or Transcriptome Divergence Index) which aim to quantify the average evolutionary age Barrera-Redondo et al., 2023 or sequence conservation Drost et al., 2015 of genes that contribute to the transcriptome at a particular stage. In general, evolutionary transcriptomics can be used as a method to quantify the evolutionary conservation of transcriptomes at particular developmental stages and to investigate how transcriptomes underlying biological processes are constrained or channeled due to events in evolutionary history (Dollo's law) (Drost et al., 2017).
Please note, since myTAI relies on gene age inference and there has been an extensive debate about the best approaches for gene age inference in the last years,
please follow my updated discussion about the gene age inference literature. With GenEra, we addressed all previously raised issues and we encourage users to run GenEra
when aiming to infer gene ages for further myTAI
analyses.
Users can install myTAI
from CRAN:
# install myTAI 0.9.3 from CRAN install.packages("myTAI", dependencies = TRUE) # install the developer version containing the newest features devtools::install_github("drostlab/myTAI")
myTAI
is using OpenMP
to run cpp code in parallel, thus you might need to install additional software.
Ensure that the dependencies requirements are met:
Mac
brew install llvm libomp
cd /usr/local/lib
ln -s /usr/local/opt/libomp/lib/libomp.dylib ./libomp.dylib
Linux
Check if you have an OpenMP-enabled compiler: Open a terminal and run the command gcc --version
or g++ --version
to check if you have the GNU Compiler Collection (GCC) installed. OpenMP support is typically included in GCC.
If you don't have GCC installed, you can install it using your distribution's package manager. For example, on Ubuntu, you can use sudo apt-get install build-essential to install GCC.
Install the libomp library: Open a terminal and run the command appropriate for your package manager:
On Ubuntu or Debian-based systems: sudo apt-get install libomp-dev
or sudo apt install libomp-dev
On Fedora or CentOS systems: sudo dnf install libomp-devel
On Arch Linux: sudo pacman -S libomp
Windows
On Windows, the most common OpenMP implementation is provided by Microsoft Visual C++ (MSVC) compiler, which includes OpenMP support by default. So, if you are using MSVC as your C++ compiler, you should have OpenMP support without any additional installations.
library(myTAI) # example dataset covering 7 stages of A thaliana embryo development data("PhyloExpressionSetExample") # transform absolute expression levels to log2 expression levels ExprExample <- tf(PhyloExpressionSetExample, log2)
# visualize global Transcriptome Age Index pattern PlotSignature(ExprExample)
# plot expression level distributions for each age (=PS) category # and each developmental stage PlotCategoryExpr(ExprExample, "PS") + ggplot2::labs(y = "log2(expression level)")
# plot mean expression of each age category seperated by old (PS1-3) # versus young (PS4-12) genes PlotMeans(ExprExample, Groups = list(1:3, 4:12))
# plot relative mean expression of each age category seperated by old (PS1-3) # versus young (PS4-12) genes PlotRE(ExprExample, Groups = list(1:3, 4:12))
# plot the significant differences between gene expression distributions # of old (=group1) versus young (=group2) genes PlotGroupDiffs(ExpressionSet = ExprExample, Groups = list(group_1 = 1:3, group_2 = 4:12), legendName = "PS", plot.type = "boxplot")
If you successfully ran these myTAI functions, congrats! Please check out the more detailed tutorials and discussions under the Articles
tab. For the list of functions, click on the Reference
tab.
Hope you enjoy your (non-alcoholic) myTAI
!
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.