Title: | CHRONOS: A time-varying method for microRNA-mediated sub-pathway enrichment analysis |
---|---|
Description: | A package used for efficient unraveling of the inherent dynamic properties of pathways. MicroRNA-mediated subpathway topologies are extracted and evaluated by exploiting the temporal transition and the fold change activity of the linked genes/microRNAs. |
Authors: | Aristidis G. Vrahatis, Konstantina Dimitrakopoulou, Panos Balomenos |
Maintainer: | Panos Balomenos <[email protected]> |
License: | GPL-2 |
Version: | 1.35.0 |
Built: | 2024-12-18 05:41:51 UTC |
Source: | https://github.com/bioc/CHRONOS |
Default run of CHRONOS
CHRONOSrun(mRNAexp, mRNAlabel, miRNAexp, pathType, subType, measures, thresholds, org, export, verbose, miRNAinteractions)
CHRONOSrun(mRNAexp, mRNAlabel, miRNAexp, pathType, subType, measures, thresholds, org, export, verbose, miRNAinteractions)
mRNAexp |
mRNA expressions filename located in CHRONOS/extdata/Input |
mRNAlabel |
mRNA nomenclature
(for supported types see |
miRNAexp |
miRNA expressions filename located in CHRONOS/extdata/Input |
pathType |
Pathway type ('Metabolic', 'Non-Metabolic', 'All' or vector of pathway ids) |
subType |
Subpathway type ('Linear', 'Non-Linear', 'All') |
measures |
Include subpathway structural and functional aspects ('TRUE', 'FALSE') |
thresholds |
Subscore, mirscore and p-value thresholds |
org |
KEGG organism identifier |
export |
Export file type ('.xlsx', '.txt') |
verbose |
Show informative messages (TRUE/FALSE). |
miRNAinteractions |
Edgelist of miRNA-mRNA interactions. |
Imports gene and miRNA expressions from
CHRONOS/extdata/Input/<mRNAexpFile>.txt
and CHRONOS/extdata/Input/<miRNAexpFile>.txt
Downloads all availiable pathways for the specified organism from KEGG.
Creates pathway graphs from downloaded KGML files.
Extracts linear subpathways from metabolic and non metabolic graphs.
Extracts non linear subpathways from metabolic and non metabolic graphs.
Downloads miRecords miRNA-mRNA interactions.
Scores and evaluates (linear and non linear) subpathways to extract significant results.
Organism identifier.
Visualizes most the significant results ('.xlsx' or '.txt').
Display informative messages (TRUE/FALSE).
User-defined miRNA-mRNA interactions can be supplied in the form of
an edgelist with two columns. If no such information is availiable,
a missing or a NULL argument forces the use of default interactions
by using downloadMiRecords
.
.
# Default run load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) res <- CHRONOSrun( mRNAexp=mRNAexpr, mRNAlabel='entrezgene', miRNAexp=miRNAexpr, pathType=c('04915', '04917', '04930', '05031'), org='hsa', subType='Linear', thresholds=c('subScore'=0.4, 'mirScore'=0.4), miRNAinteractions=miRNAinteractions)
# Default run load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) res <- CHRONOSrun( mRNAexp=mRNAexpr, mRNAlabel='entrezgene', miRNAexp=miRNAexpr, pathType=c('04915', '04917', '04930', '05031'), org='hsa', subType='Linear', thresholds=c('subScore'=0.4, 'mirScore'=0.4), miRNAinteractions=miRNAinteractions)
Conform miRNA annotations to the ones currently used by miRecords.
convertMiRNANomenclature(org, miRNAs, update)
convertMiRNANomenclature(org, miRNAs, update)
org |
KEGG organism identifier. |
miRNAs |
Vector of miRNAs identifiers. |
update |
Update annotation mapper with latest annotation changes. |
Determine which miRNAs are incompatible with miRecords annotations and retreive the suitable ones from www.mirbase.org.
.
data <- c('hsa-let-7g-5p', 'hsa-miR-154-5p', 'hsa-miR-376b-3p') convertMiRNANomenclature(org='hsa', miRNAs=data)
data <- c('hsa-let-7g-5p', 'hsa-miR-154-5p', 'hsa-miR-376b-3p') convertMiRNANomenclature(org='hsa', miRNAs=data)
Convert genes identifier nomenclature.
convertNomenclature(ids, org, from, to)
convertNomenclature(ids, org, from, to)
ids |
Vector of gene identifiers |
org |
KEGG organism identifier |
from |
Initial identifier type |
to |
A vector of final identifier types |
EntrezGene ID | 'entrezgene' |
Ensembl Gene ID | 'ensembl_gene_id' |
Ensemble Transcript ID | 'ensembl_transcript_id' |
Ensemble Protein ID | 'ensembl_peptide_id' |
HGNC ID | 'hgnc_id' |
HGNC Symbol | 'hgnc_symbol' |
HGNC Transcript name | 'hgnc_transcript_name' |
Refseq mRNA ID | 'refseq_mrna' |
Refseq Protein ID | 'refseq_peptide' |
UniProt/Swissprot Accession | 'uniprot_swissprot_accession' |
UniProt/Swissprot ID | 'uniprot_swissprot' |
UniGene ID | 'unigene' |
UniProt Genename ID | 'uniprot_genename' |
Vector of converted gene identifiers
# Identifiers to be converted ids <- c('5091', '5105') # Convert to HGNC ID, Ensembl Gene ID and UniProt Genename ID from <- 'entrezgene' to <- c('hgnc_symbol','ensembl_gene_id', 'uniprot_genename') ## Not run: res <- convertNomenclature(ids=ids, org='hsa', from=from, to=to)
# Identifiers to be converted ids <- c('5091', '5105') # Convert to HGNC ID, Ensembl Gene ID and UniProt Genename ID from <- 'entrezgene' to <- c('hgnc_symbol','ensembl_gene_id', 'uniprot_genename') ## Not run: res <- convertNomenclature(ids=ids, org='hsa', from=from, to=to)
Convert KEGG Pathways to Gene-Gene Network Graphs.
createPathwayGraphs(org, pathways, edgeTypes, doubleEdges, choice, groupMode)
createPathwayGraphs(org, pathways, edgeTypes, doubleEdges, choice, groupMode)
org |
KEGG organism identifier. |
pathways |
Vector of KEGG pathway identifiers. |
edgeTypes |
Vector of edge types mappings. |
doubleEdges |
Specify which edgeTypes should be considered bidirectional. |
choice |
Create metabolic graph either by using relations or reactions
from KGML file ('reactions', 'relations') |
groupMode |
'expand' to consider each group member a node, or 'collapse' to consider all components' genes as a node |
KEGG pathways consist of nodes each one containing one or more genes. Thus, two kinds of adjacency matrices are created. The compact adjacency matrix retains the groupings and stores edge types between genes and genes, genes and groups of genes or between group of genes. The expanded adjacency matrix stores edge type information between individual genes.
A list containing a list of compact adjacency matrices, a list of expanded adjacency matrices, and list detailing all nodes, edges and interaction types.
Li, C., Han, J., Yao, Q., Zou, C., Xu, Y., Zhang, C., ... & Li, X. (2013). Subpathway-GM: identification of metabolic subpathways via joint power of interesting genes and metabolites and their topologies within pathways. Nucleic acids research, 41(9), e101-e101.
# Download Insulin Signaling Pathway pathways <- c('04915', '04917', '04930', '05031') paths <- downloadPathways(org='hsa', pathways=pathways) # Create pathway graph graphs <- createPathwayGraphs(org='hsa', pathways=paths)
# Download Insulin Signaling Pathway pathways <- c('04915', '04917', '04930', '05031') paths <- downloadPathways(org='hsa', pathways=pathways) # Create pathway graph graphs <- createPathwayGraphs(org='hsa', pathways=paths)
Retrieve all availiable pathways for an organism.
downloadKEGGPathwayList(org)
downloadKEGGPathwayList(org)
org |
KEGG organism identifier. |
.
Data frame of pathway ids and names.
# Load extracted linear subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Retrieve all availiable hsa pathways ## Not run: pathways <- downloadKEGGPathwayList(org='hsa')
# Load extracted linear subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Retrieve all availiable hsa pathways ## Not run: pathways <- downloadKEGGPathwayList(org='hsa')
Download miRNA-mRNA interactions for an organism.
downloadMiRecords(org, pn, update, databases)
downloadMiRecords(org, pn, update, databases)
org |
KEGG organism identifier. |
pn |
Number of databases that verify miRNA-mRNA interactions. |
update |
Download preprocessed data (update=FALSE) or new data from miRecords (update=TRUE). |
databases |
Specify which miRNA-mRNA interaction databases will be used. |
miRecords is a resource for animal miRNA-target interactions. The Predicted Targets component of miRecords is an integration of predicted miRNA targets produced by 11 established miRNA target prediction tools, namely DIANA-microT, MicroInspector, miRanda, MirTarget2, miTarget, NBmiRTar, PicTar, PITA, RNA22, RNAhybrid, and TargetScan/TargertScanS.
Downloaded data is stored in CHRONOS/extdata/Downloads/miRecords/<org>/miRNATargets.RData
# Load extracted linear subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) ## Not run: downloadMiRecords(org='hsa', pn=5, update=FALSE, databases='All')
# Load extracted linear subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) ## Not run: downloadMiRecords(org='hsa', pn=5, update=FALSE, databases='All')
Download KEGG pathways in KGML format.
downloadPathways(org, pathways)
downloadPathways(org, pathways)
org |
KEGG organism identifier |
|||||||||||||||
pathways |
Download pathways for specified organism:
|
KEGG (Kyoto Encyclopedia of Genes and Genomes) is a database resource
for understanding high-level functions and utilities of the biological ,
system such as the cell, the organism and the ecosystem, from
molecular-level information, especially large-scale molecular datasets
generated by genome sequencing and other high-throughput experimental
technologies.
Files are downloaded in CHRONOS/extdata/Downloads/KEGG/<org> folder.
Downloading is skipped for existing files.
Downloaded data is stored in CHRONOS/extdata/Downloads/KEGG/<org>
# View all availiable hsa pathways ## Not run: pathways <- downloadKEGGPathwayList(org='hsa') # Download pathway KGML files pathways <- c('04915', '04917', '04930', '05031') ## Not run: pathways <- downloadPathways(org='hsa', pathways=pathways)
# View all availiable hsa pathways ## Not run: pathways <- downloadKEGGPathwayList(org='hsa') # Download pathway KGML files pathways <- c('04915', '04917', '04930', '05031') ## Not run: pathways <- downloadPathways(org='hsa', pathways=pathways)
Linear subpathway extraction from pathway graphs
extractLinearSubpathways(graphs, pathways, a, b, filter, export, groupMode, verbose)
extractLinearSubpathways(graphs, pathways, a, b, filter, export, groupMode, verbose)
graphs |
Pathway graphs as returned from
|
pathways |
The subset of pathways from whom subpathways are to be
extracted. |
a |
Minimum subpathway length. |
b |
Maximum subpathway length. |
filter |
Filter the subpaths with user genes (TRUE). |
export |
Exports subpaths in CHRONOS/extdata/Output/Subpaths/Linear/<org>
folder. |
groupMode |
Expand paralogues ('expand') or collapse them to a
single entry ('collapse'). |
verbose |
Display informative messages (TRUE) Requires previous execution of |
Subpath filtering supports the removal of subpaths that have at least
one member not belonging to the set of user supplied genes. These genes
are extracted from the user's mRNA expressions matrix.Thus, the execution
of importExpressions
is a prerequisite.
To extract linear subpathways from a pathway graph, all possible start and end nodes are considered. A start node has only outgoing edges while an end node only has incoming edges. For each such pair, all linear subpathways are found by traversing the corresponding graph. Since the initial pathway graph's nodes contain one or more genes, resulting subpathways consist of bins of one or more genes. These subpaths are expanded to subpathways with one gene per bin in order to obtain usable subpathways.
Returns a list consisting of
A matrix of linear subpathways (subpaths)
A list of processed pathway graphs adjacency matrices (adjMats)
A list of processed pathway genes and interactions between them (lexicon)
# Load pathway graphs from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Extract linear subpathways linSubs <- extractLinearSubpathways(graphs=graphs)
# Load pathway graphs from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Extract linear subpathways linSubs <- extractLinearSubpathways(graphs=graphs)
Non linear subpathway extraction from pathway graphs
extractNonLinearSubpathways(graphs, pathways, a, b, k, filter, groupMode, export, verbose)
extractNonLinearSubpathways(graphs, pathways, a, b, k, filter, groupMode, export, verbose)
graphs |
Pathway graphs as returned from
|
pathways |
The subset of pathways from whom subpathways are to be
extracted. |
a |
Minimum subpathway length. |
b |
Maximum subpathway length. |
k |
Clique size. |
filter |
Filter the subpaths with user genes (TRUE). |
groupMode |
Expand paralogues ('expand') or collapse them to a single
entry ('collapse'). |
export |
Exports subpaths in CHRONOS/extdata/Output/Subpaths/Non-Linear/
<org> folder. |
verbose |
Display informative messages (TRUE) Requires previous execution of |
Returns a list consisting of
A matrix of linear subpathways (subpaths)
A list of processed pathway graphs adjacency matrices(adjMats)
A list of processed pathway genes and interactions between them (lexicon)
To extract non linear subpaths from a pathway graph, all interactions between nodes of belonging to k-cliques are found. The ones that correspond
To extract non linear subpaths from a pathway graph, all interactions between nodes of belonging to k-cliques are found. The ones that correspond to actual interactions between genes make up the non linear subpath.
# Load pathway graphs from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Extract linear subpathways nliSubs <- extractNonLinearSubpathways(graphs=graphs)
# Load pathway graphs from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Extract linear subpathways nliSubs <- extractNonLinearSubpathways(graphs=graphs)
Map various types of gene-gene interactions in KGML files to edge types in corresponding pathway graphs.
getEdgeTypes(type)
getEdgeTypes(type)
type |
A vector of interaction types. |
Edge types
activation | 1 | inhibition | 2 | apathetic | 3 | no interaction | 4 |
Default interaction - edge type mapping
01 | unknown | 3 | 02 | activation | 1 |
03 | inhibition | 2 | 04 | binding/association | 3 |
05 | expression | 1 | 06 | repression | 2 |
07 | phosphorylation | 3 | 08 | dephosphorylation | 3 |
09 | ubiquitination | 3 | 10 | dissociation | 3 |
11 | indirect effect | 3 | 12 | state change | 3 |
13 | compound | 3 | 14 | hidden compound | 3 |
16 | missing interaction | 3 | 16 | activation_phosphorylation | 1 |
17 | activation_dephosphorylation | 1 | 18 | activation_ubiquitination | 1 |
19 | activation_indirect effect | 1 | 20 | activation_binding/association | 1 |
21 | activation_inhibition | 3 | 22 | activation_methylation | 1 |
23 | inhibition_phosphorylation | 2 | 24 | inhibition_dephosphorylation | 2 |
25 | inhibition_ubiquitination | 2 | 26 | inhibition_indirect effect | 2 |
27 | inhibition_binding/association | 2 | 28 | inhibition_expression | 2 |
29 | inhibition_methylation | 2 | 30 | compound_expression | 1 |
31 | compound_activation | 1 | 32 | compound_inhibition | 2 |
33 | compound_activation_indirect effect | 1 | ||
34 | compound_activation_phosphorylation | 1 | ||
35 | phosphorylation_indirect effect | 3 | ||
36 | phosphorylation_binding/association | 3 | ||
37 | phosphorylation_dissociation | 3 | ||
38 | dephosphorylation_indirect effect | 3 | ||
39 | binding/association_missing interaction | 3 | ||
40 | binding/association_indirect effect | 3 | ||
41 | expression_indirect effect | 1 | ||
42 | repression_indirect effect | 2 | ||
43 | ubiquitination_inhibition | 2 | ||
44 | dissociation_missing interaction | 3 | ||
45 | indirect effect_phosphorylation | 3 | ||
46 | activation_phosphorylation_binding/association | 1 | ||
47 | activation_phosphorylation_indirect effect | 1 | ||
If an interaction type has been supplied, the corresponging edge types are returned. If not, the complete mapping is returned.
# Example 1 # Retreive edge types for phosphorylation and dephosphorylation. getEdgeTypes(c(7,8)) # Example 2 # Returns a data frame containing the innteraction - edge type mapper. types <- getEdgeTypes() # Set phosphorylation to inhibition. types[8,2] <- 2
# Example 1 # Retreive edge types for phosphorylation and dephosphorylation. getEdgeTypes(c(7,8)) # Example 2 # Returns a data frame containing the innteraction - edge type mapper. types <- getEdgeTypes() # Set phosphorylation to inhibition. types[8,2] <- 2
Import gene and miRNA expressions from
importExpressions(data, type, sep, org, mRNAnomenclature)
importExpressions(data, type, sep, org, mRNAnomenclature)
data |
Expressions data filename or matrix. |
type |
Expressions data type. (or mRNA expressions, type=<nomenType>.
Availiable gene expression nomenclature can be found in
|
sep |
File delimiter. |
org |
KEGG organism identifier |
mRNAnomenclature |
Nomenclature of user's mRNA expressions |
Import gene expressions data from CHRONOS/extdata/Input/<userFile>.txt or a supplied matrix.
Import miRNA expressions data from CHRONOS/extdata/Input/<userFile>.txt or a supplied matrix.
.
# Example load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) importExpressions(data=mRNAexpr, type='mRNA', mRNAnomenclature='entrezgene', sep='\t', org='hsa') importExpressions(data=miRNAexpr, type='miRNA', sep='\t', org='hsa')
# Example load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) importExpressions(data=mRNAexpr, type='mRNA', mRNAnomenclature='entrezgene', sep='\t', org='hsa') importExpressions(data=miRNAexpr, type='miRNA', sep='\t', org='hsa')
Pathway structural and functional aspects
pathwayMeasures(graphs)
pathwayMeasures(graphs)
graphs |
Pathway graphs as returned from
|
Structural and functional aspects of a pathway are calculated in respect to all organism pathways.
Matrix with pathness, betweeness centrality and degree values for each gene in the pathway graphs at it's columns.
# Load pathway graphs from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Calculate pathway structural and functional aspects measures <- pathwayMeasures(graphs)
# Load pathway graphs from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Calculate pathway structural and functional aspects measures <- pathwayMeasures(graphs)
Evaluate subpathways using an interacting scorng scheme (IS) for each time point.
scoreSubpathways(subpathways, filters, measures, parameters, miRNAinteractions)
scoreSubpathways(subpathways, filters, measures, parameters, miRNAinteractions)
subpathways |
Subpaths as returned from
|
||||||||||||||||
filters |
Named vector of filters used for subpathway evaluation.
|
||||||||||||||||
measures |
Subpathway structural and functional aspects as returned
from |
||||||||||||||||
parameters |
C,K,T parameters of scoring scheme. |
||||||||||||||||
miRNAinteractions |
An edgelist of miRNA-mRNA interactions used to override downloaded interactions from miRecords. |
...
subpathways | High ranking subpathways | |
subScores | miRNA-subpathway scores | |
mRNAScores | mRNA-mRNA scores for each subpathway and for each time point | |
miRNAsOverSubpathway | High ranking miRNAs hitting each subpathway | |
pValues | P-value of each subpathway | |
filters | Filters used for the evaluation |
Jethava, V., Bhattacharyya, C., Dubhashi, D., & Vemuri, G. N. (2011). Netgem: Network embedded temporal generative model for gene expression data. BMC bioinformatics, 12(1), 327.
Kim,Y. et al. (2011). Principal network analysis: identification of subnetworks representing major dynamics using gene expression data. Bioinformatics, 27(3), 391-398
# Load extracted subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Import mRNA expressions mRNAexpr <- importExpressions(data=mRNAexpr, type='mRNA', org='hsa') # Score extracted linear subpathways filters <- c('subScore'=0.4) linSubsScored <- scoreSubpathways(subpathways=linSubs, filters=filters)
# Load extracted subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Import mRNA expressions mRNAexpr <- importExpressions(data=mRNAexpr, type='mRNA', org='hsa') # Score extracted linear subpathways filters <- c('subScore'=0.4) linSubsScored <- scoreSubpathways(subpathways=linSubs, filters=filters)
Create links to KEGG pathway map with highlighted subpathways.
subpathwayKEGGmap(subpathways, type, openInBrowser)
subpathwayKEGGmap(subpathways, type, openInBrowser)
subpathways |
Subpathways as returned by
|
type |
Subpathway type (Linear, Non-Linear) |
openInBrowser |
Open link in default browser. |
Vector of links of KEGG pathway maps.
# Load extracted linear subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Opening selected subpathways in default browser subs <- linSubs$subpaths[1:3, ] subpathwayKEGGmap(subpathways=subs, type='Linear', openInBrowser=FALSE)
# Load extracted linear subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Opening selected subpathways in default browser subs <- linSubs$subpaths[1:3, ] subpathwayKEGGmap(subpathways=subs, type='Linear', openInBrowser=FALSE)
Create a circulat plot of a subpathway and the miRNAs that target it.
subpathwayMiRNAs(summary, subIdx, timePoints)
subpathwayMiRNAs(summary, subIdx, timePoints)
summary |
Output from |
subIdx |
Subpathway index |
timePoints |
Time points to include in visualization, default to all. |
.
# Load scored subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Visualize one or more subpathways. subpathwayMiRNAs(summary=linSubsScored, subIdx=2)
# Load scored subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) # Visualize one or more subpathways. subpathwayMiRNAs(summary=linSubsScored, subIdx=2)
Visualize results in tabular form (txt, xlsx)
visualizeResults(summary, export, expand, colors, from, to)
visualizeResults(summary, export, expand, colors, from, to)
summary |
Evaluation results as returned from
|
export |
'.xlsx' exports a xlsx file and '.txt' a .txt file. |
expand |
TRUE if each subpathway member and miRNA belongs to a single cell, FALSE if all subpathway members belong to one cell and miRNAs to another cell. |
colors |
The color scheme used in subScores heatmap. |
from |
Primary annotation |
to |
Secondary annotation |
A txt or a xlsx file in CHRONOS/extdata/Output/Scores/Linear/<org>
or CHRONOS/extdata/Output/Scores/Non-Linear/<org>
# Load scored subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) visualizeResults(linSubsScored, export='txt')
# Load scored subpathways from toy data load(system.file('extdata', 'Examples//data.RData', package='CHRONOS')) visualizeResults(linSubsScored, export='txt')