CTexploreR 1.3.0
Cancer-Testis (CT) genes, also called Cancer-Germline (CG), are a group of genes whose expression is normally restricted to the germline but that are found aberrantly activated in many types of cancers. These genes produce cancer specific antigens represent ideal targets for anti-cancer vaccines. Besides their interest in immunotherapy, they can also be used as cancer biomarkers and as target of anti-tumor therapies with limited side effect.
Many CT genes use DNA methylation as a primary mechanism of transcriptionnal regulation. This is another interesting point about CT genes as they represent suitable models to study DNA demethylation in cancer.
Currently the reference database gathering CT genes is the CTdatabase that was published in 2009, based on a literature screening(Almeida et al., 2009). This database is however not up to date. Recently identified CT genes are not referenced (in particular CT genes identified by omics methods that didn’t exist at the time) while some genes referred as CT genes appeared to be in reality expressed in many somatic tissues. Furthermore, the database is not in an easily importable format, some genes are not encoded properly (by synonyms names rather than by their official HGNC symbol names, or by a concatenation of both) resulting in poor interoperability for downstream analyses. More recent studies proposed other lists of CT genes like Wang’s CTatlas (Wang et al., 2016, Jamin et al., 2021, Carter et al., 2023). These lists were established using different criteria to define CT genes and hence differ substantially from each other. Moreover, these lists are usually provided as supplemental data files and are not strictly speaking databases. Finally, none of these studies describe the involvement of DNA methylation in the regulation of individual CT genes.
We therefore created CTexploreR
, a Bioconductor R package, aimed to redefine
rigorously the list of CT genes based on publicly available RNAseq databases
and to summarize their main characteristics. We included methylation analyses
to classify these genes according to whether they are regulated or not by DNA
methylation. The package also offers tools to visualize CT genes expression and
promoter DNA methylation in normal and tumoral tissues. CTexploreR hence
represents an up-to-date reference database for CT genes and can be used as a
starting point for further investigations related to these genes.
To install the package:
if (!require("BiocManager")) {
install.packages("BiocManager")
}
BiocManager::install("CTexploreR")
To install the package from GitHub:
if (!require("BiocManager")) {
install.packages("BiocManager")
}
BiocManager::install("UCLouvain-CBIO/CTexploreR")
The central element of CTexploreR
is the list of
280 CT and CTP genes (see table below) selected based
on their expression in normal and tumoral tissues (selection details in the next
section). The table also summarises their main characteristics.
library(CTexploreR)
## Loading required package: CTdata
head(CT_genes, 10)
CTdata
is the companion Package for CTexploreR
and provides the omics
data that was necessary to select and characterize cancer testis genes as well
as exploring them. The data are served through the ExperimentHub
infrastructure.
Currently available data are summarised in the table below and details can be
found in CTdata
vignette or manuals.
CTdata()
In order to generate the list of CT genes, we followed a specific selection procedure (see figure below).
Testis-specific genes (expressed exclusively in testis) and testis-preferential genes (expressed in a few somatic tissues at a level lower than 10x testis expression) were first selected using the GTEx database (Aguet et al., 2020).
Note that some genes were undetectable in the GTEx database due to multimapping
issues (these were flagged as “lowly expressed” in GTEX_category
column).
A careful inspection of these genes showed that many of them are well-known
Cancer-Testis genes, belonging to gene families (MAGEA, SSX, CT45A, GAGE, …)
from which members have identical or nearly identical sequences. This is likely
the reason why these genes are not detected in the GTEx database, as GTEx
processing pipeline specifies that overlapping intervals between genes are
excluded from all genes for counting.For these genes, as testis-specificity
could not be assessed using GTEx database, RNAseq data from a set of normal
tissues were reprocessed in order to allow multimapping.
Expression of several genes became detectable in some tissues. Genes showing a
testis-specific expression (expression at least 10x higher in testis than in
any somatic tissues when multimapping was allowed) were selected, and flagged
as testis-specific in multimapping_analysis
column.
Additionally, as our selection procedure is based on bulk RNAseq data, we wanted to ensure that the selected genes are not expressed in rare populations of somatic cells. We used the Single Cell Type Atlas classification from the Human Protein Atlas (Uhlén et al., 2015) to exclude the ones that were flagged as specific of any somatic cell type.
To assess activation in cancers, RNAseq data from cancer cell lines from CCLE (Barretina et al., 2012) and from TCGA cancer samples (Cancer Genome Atlas Research Network et al., 2013) were used. This allowed to select among testis-specific and testis-preferential genes those that are activated in cancers.
In the CCLE_category
and TCGA_category
columns, genes are tagged as
“activated” when they are highly expressed in at one percent of cancer cell
line/sample (TPM >= 1). However genes that were found to be expressed in all -or
almost all-cancer cell lines/samples were removed, as this probably reflects a
constitutive expression rather than a true activation. We filtered out genes
that were not completely repressed in at least 20 % of cancer cell lines/samples
(TPM <= 0.5). We also made use of the normal peritumoral samples available in
TCGA data to remove from our selection genes that were already detected in a
significant fraction of these cells.
All selected CT genes were visualised on IGV (Thorvaldsdóttir et al., 2013)
using a RNA-seq alignment from testis, to ensure that expression in testis
really corresponded to the canonical transcript. The aim was initially to
identify precisely the transcription start site of each gene, but unexpectedly
we observed that for some genes, the reads were not properly aligned on exons,
but were instead spread across a wide genomic region spanning the genes. These
genes, flagged as “unclear” in IGV_backbone
column, were removed from the
CT_gene category, as their expression values in GTEX, TCGA and CCLE might
reflect a poorly defined transcription in these regions and are hence likely
unreliable.
Genes flagged as TRUE
in regulated_by_methylation
column correspond to
Genes that are significantly induced by a demethylating agent (RNAseq analysis of cell lines reated with DAC (5-Aza-2′-Deoxycytidine)).
Genes that have a highly methylated promoter in normal somatic tissues (WGBS analysis of a set of normal tissues).
For some genes showing a strong activation in cells treated with 5-Aza-2′-Deoxycytidine, methylation analysis was not possible due to multimapping issues. In this case, genes were still considered as regulated by methylation unless their promoter appeared unmethylated in somatic tissues or methylated in germ cells.
For details about functions, see their respective manual pages. For all
functions, an option values_only
can be set to TRUE
in order to get the values
instead of the visualisation.
All visualisation functions can be used on all GTEx genes, not only
on Cancer-Testis genes, as the data they refer to contains all genes. By default, if no genes are specified in a function, only strict CT genes will
be used. If one wants all 280 CT genes to be used, an option include_CTP
can
be set to TRUE
to also use CT preferential genes.
GTEX_expression()
Allows to visualise gene expression in GTEx tissues. We can for example see the difference of expression between testis-specific and testis-preferential genes. Testis-specific genes have been determined with a stricter specificity to the testis : they are lowly expressed in all somatic tissues and at least 10 times more in the testis. Whereas testis-preferential accepts a little expression outside the testis : they are lowly expressed in at least 75% of somatic tissues, but still 10 times more in the testis.
testis_specific <- dplyr::filter(
CT_genes,
CT_gene_type == "CT_gene")
GTEX_expression(testis_specific$external_gene_name, units = "log_TPM")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
testis_preferential <- dplyr::filter(
CT_genes, CT_gene_type == "CTP_gene")
GTEX_expression(testis_preferential$external_gene_name, units = "log_TPM")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
normal_tissue_expression_multimapping()
Allows to visualise the expression values obtained by counting or not multi-mapped reads in normal tissues. We can apply that to genes that are lowly expressed in GTEx (as seen above) in order to visualise their expression. First heatmap shows expression without multimapping while multimapping was allowed in the second one, where expression can be observed. This allowed their determination as testis-specific genes.
testis_specific_in_multimapping_analysis <-
dplyr::filter(CT_genes, lowly_expressed_in_GTEX)
normal_tissue_expression_multimapping(
testis_specific_in_multimapping_analysis$external_gene_name,
multimapping = FALSE, units = "log_TPM")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
normal_tissue_expression_multimapping(
testis_specific_in_multimapping_analysis$external_gene_name,
multimapping = TRUE, units = "log_TPM")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
testis_expression()
Allows to visualise gene expression in all different testis cell type, somatic or germ, using data from the adult human testis transcriptional cell atlas.
Using CT genes localisation on the X chromosome, we can see that they tend to be expressed in th early stages of spermatogenesis when located on the X. We also visualise clearly that genes mainly expressed in an early stage of spermatogenesis aren’t expressed later and vice-versa.
X_CT <-
dplyr::filter(CT_genes, X_linked)
testis_expression(X_CT$external_gene_name,
cells = "germ_cells")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 12 out of 82 names invalid: PPP4R3C, CENPVL2, CENPVL1, CT47A1, CT45A6,
## CT45A7, CT45A8, CT45A9, MAGEA4-AS1, MAGEA2, GAGE2E, GAGE12C.
## See the manual page for valid types.
## `use_raster` is automatically set to TRUE for a matrix with more than
## 2000 columns You can control `use_raster` argument by explicitly
## setting TRUE/FALSE to it.
##
## Set `ht_opt$message = FALSE` to turn off this message.
notX_CT <-
dplyr::filter(CT_genes, !X_linked)
testis_expression(notX_CT$external_gene_name,
cells = "germ_cells")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 38 out of 198 names invalid: KAZN-AS1, NFIA-AS1, LRRC52-AS1, ZC3H11B,
## THORLNC, LINC02377, SLC7A11-AS1, LINC02241, LINC02228, LINC03004,
## SEC61G-DT, ZNF722, GTF2I-AS1, SPATA31C2, TEX48, LINC02663, LINC02750,
## FAM230C, GOLGA6L7, LINC02864, ZNF723, VCY, VCY1B, RBMY1B, LINC01783,
## DHCR24-DT, LINC03102, C2orf74-AS1, ZNF775-AS1, MIR3150BHG, CHKA-DT,
## UVRAG-DT, CCDC196, POLG-DT, APPBP2-DT, LINC01970, TUBB8B, FAM230I.
## See the manual page for valid types.
## `use_raster` is automatically set to TRUE for a matrix with more than
## 2000 columns You can control `use_raster` argument by explicitly
## setting TRUE/FALSE to it.
##
## Set `ht_opt$message = FALSE` to turn off this message.
oocytes_expression()
Allows to visualise gene expression oocytes at different stage, using scRNA-seq data form “Decoding dynamic epigenetic landscapes in human oocytes using single-cell multi-omics sequencing” (Yan et al. Cell Stem Cell 2021)
We can here again compare the expression of CT genes that are located or not on the X chromosome. Showing a lesser expression of X-linked genes in oocytes.
oocytes_expression(X_CT$external_gene_name)
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 4 out of 82 names invalid: PPP4R3C, XAGE1A, TEX13C, MAGEA4-AS1.
## See the manual page for valid types.
oocytes_expression(notX_CT$external_gene_name)
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 52 out of 198 names invalid: KAZN-AS1, LRRC52-AS1, ZC3H11B, THORLNC,
## LINC02377, LINC02241, LINC02228, LINC03004, SEC61G-DT, ZNF722,
## GTF2I-AS1, LINC02663, LINC02750, FAM230C, CBY2, GARIN2, GOLGA6L7,
## CDRT15, CHCT1, LINC02864, TSPY9, DHCR24-DT, LINC03102, SPMIP3,
## C2orf74-AS1, NECTIN3-AS1, CFAP92, LINC02901, TMEM270, ERVW-1, GARIN1B,
## LLCFC1, ZNF775-AS1, PPP1R3B-DT, DNAJC5B, MIR3150BHG, C10orf55, CHKA-DT,
## UVRAG-DT, RB1-DT, CCDC196, INSYN1-AS1, POLG-DT, TEKT5, KCTD19,
## APPBP2-DT, MARCHF10, TUBB8B, SPMAP2, SAXO5, EFCAB8, FAM230I.
## See the manual page for valid types.
HPA_cell_type_expression()
Allows to visualise gene expression in all different healthy cell type, comparing different somatic cells to germ cells, using data from the human proteome atlas.
Visualising all CT_genes, the specificity to germ cells only is quite clear.
HPA_cell_type_expression(units = "scaled")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 29 out of 146 names invalid: KAZN-AS1, NFIA-AS1, LRRC52-AS1, LINC01249,
## THORLNC, LINC01206, LINC02475, LINC02377, SLC7A11-AS1, LINC01098,
## LINC01511, LINC02241, LINC02228, LINC03004, SEC61G-DT, GTF2I-AS1,
## LINC00200, LINC02663, LINC01518, LINC02750, TMEM132D-AS1, FAM230C,
## LINC01193, LINC01413, FLJ36000, LINC00470, LINC02864, DSCR8,
## MAGEA4-AS1.
## See the manual page for valid types.
No analysis was added to the all_genes
and CT_genes
tables using these
datasets.
embryo_expression()
Allows to visualise gene expression in human early embryos using two different scRNA-seq datasets.
This dataset contains different stages of blastocysts and morula.
embryo_expression(dataset = "Petropoulos", include_CTP = FALSE)
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 62 out of 146 names invalid: KAZN-AS1, LRRC52-AS1, ZC3H11B, THORLNC,
## LINC02475, LINC02377, LINC01511, LINC02241, LINC02228, LINC03004,
## SEC61G-DT, ZNF722, GTF2I-AS1, TEX48, LINC02663, LINC01518, LINC02750,
## MAJIN, TMEM132D-AS1, CBY2, GARIN2, GOLGA6L7, CHCT1, LINC02864, ZNF723,
## PPP4R3C, GAGE12E, GAGE2A, CENPVL2, CENPVL1, XAGE1A, XAGE1B, SSX2,
## SSX2B, CXorf49, CXorf49B, NXF2, CT47A12, CT47A11, CT47A1, TEX13C,
## CT45A6, CT45A7, CT45A8, CT45A9, CT45A10, SPANXB1, CXorf51B, MAGEA9B,
## MAGEA9, MAGEA4-AS1, MAGEA2, CTAG1A, CTAG1B, TSPY4, TSPY3, TSPY9, VCY,
## VCY1B, RBMY1B, RBMY1A1, RBMY1E.
## See the manual page for valid types.
This dataset only contains blastocyst stage.
embryo_expression(dataset = "Zhu", include_CTP = FALSE)
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 36 out of 146 names invalid: KAZN-AS1, LRRC52-AS1, ZC3H11B, THORLNC,
## LINC02475, LINC02377, LINC02241, LINC02228, LINC03004, SEC61G-DT,
## ZNF722, GTF2I-AS1, TEX48, LINC02663, LINC02750, MAJIN, TMEM132D-AS1,
## CBY2, GARIN2, GOLGA6L7, CHCT1, LINC02864, ZNF723, PPP4R3C, CENPVL2,
## CENPVL1, XAGE1A, CXorf49B, CT47A12, CT47A11, TEX13C, CT45A3, CT45A9,
## CXorf51B, MAGEA4-AS1, TSPY9.
## See the manual page for valid types.
fetal_germcells_expression()
Allows to visualise gene expression in fetal germ cells the scRNA-seq dataset from “Single-cell roadmap of human gonadal development” (Garcia-Alonso, Nature 2022).
fetal_germcells_expression(include_CTP = FALSE, ncells_max = 100)
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
## Warning: 16 out of 146 names invalid: NFIA-AS1, SLC7A11-AS1, GTF2I-AS1,
## SPATA31C2, TEX48, LINC02864, CXorf49B, CT47A12, CT47A11, CT47A1,
## CT45A6, CT45A7, CT45A8, CT45A9, TSPY9, RBMY1B.
## See the manual page for valid types.
hESC_expression()
Allows to visualise gene expression in human embryonic stem cells, using scRNAseq data downloaded from Encode database.
hESC_expression(include_CTP = FALSE, units = "log_TPM",
values_only = FALSE)
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
CCLE_expression()
Allows to visualise gene expression in different histological types of CCLE cancer cell lines. We can thus compare genes that are or not activated in tumoral cell lines.
frequently_activated <- dplyr::filter(
CT_genes,
percent_of_positive_CCLE_cell_lines >= 5)
CCLE_expression(
genes = frequently_activated$external_gene_name,
type = c(
"lung", "skin", "bile_duct", "bladder", "colorectal",
"lymphoma", "uterine", "myeloma", "kidney",
"pancreatic", "brain", "gastric", "breast", "bone",
"head_and_neck", "ovarian", "sarcoma", "leukemia",
"esophageal", "neuroblastoma"),
units = "log_TPM")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache
not_frequently_activated <- dplyr::filter(
CT_genes,
percent_of_negative_CCLE_cell_lines >= 95)
CCLE_expression(
genes = not_frequently_activated$external_gene_name,
type = c(
"lung", "skin", "bile_duct", "bladder", "colorectal",
"lymphoma", "uterine", "myeloma", "kidney",
"pancreatic", "brain", "gastric", "breast", "bone",
"head_and_neck", "ovarian", "sarcoma", "leukemia",
"esophageal", "neuroblastoma"),
units = "log_TPM")
## see ?CTdata and browseVignettes('CTdata') for documentation
## loading from cache