7  Multi-omics enrichment integration

This chapter covers the integration layer between molecular measurements and enrichment backends. It separates feature-level aggregation, identifier harmonization, directional conflict handling, pathway-level late fusion, and contribution tracing so that the provenance of a combined result remains inspectable.

7.1 Multi-omics Early Integration

With the rapid development of sequencing technologies, it is very common to perform functional analysis on multi-omics data (e.g., Transcriptomics + Proteomics). A naive approach is to perform enrichment analysis on each omics separately and then intersect the enriched pathways. However, this late-integration strategy completely ignores the fact that different omics might provide weak but consistent signals for the same pathway, which would be filtered out by strict thresholds in single-omics analysis.

To solve this, enrichit introduces an Early Integration pipeline. The core philosophy is simple: Integrate first, enrich later. Decouple the integration layer from the enrichment layer.

7.1.1 1. Statistical Aggregation (aggregate_omics)

Instead of finding the intersection of pathways, we aggregate the evidence at the feature level. aggregate_omics() takes multi-source statistics (e.g., p-values or signed scores) and merges them into a unified evidence score. For p-values, it supports classic methods like fisher or stouffer, and internally converts them to a monotonically increasing score suitable for ranking. It also supports Brown’s method for correlation-aware p-value aggregation and weighted_mean for signed statistics with explicit layer weights.

library(enrichit)

# Create mock p-values for RNA and Protein data across 1000 genes
set.seed(123)
omics_gene_ids <- paste0("Gene", 1:1000)

rna_pvals <- runif(1000, 0, 1)
names(rna_pvals) <- omics_gene_ids

prot_pvals <- runif(1000, 0, 1)
names(prot_pvals) <- omics_gene_ids

# Inject consistent but weak signals into the first 20 genes (pathway of interest)
rna_pvals[1:20] <- runif(20, 0.01, 0.08)
prot_pvals[1:20] <- runif(20, 0.01, 0.08)

# Aggregate p-values from RNA and Protein data using Fisher's method
agg_fisher_res <- aggregate_omics(
    x = list(RNA = rna_pvals, PROT = prot_pvals),
    method = "fisher",
    input = "pvalue",
    feature_type = "gene"
)

# Look at the top aggregated scores
head(sort(agg_fisher_res$score, decreasing = TRUE))
 Gene911  Gene254    Gene9  Gene478   Gene74   Gene20 
2.712320 2.551594 2.446322 2.394249 2.366397 2.273862 

7.1.2 1a. Correlation-aware Aggregation with Brown’s Method

Fisher’s method is simple and powerful, but it silently assumes that the evidences are independent. Real multi-omics layers are often correlated: RNA and protein do not live on separate planets. If you pretend they are independent, you are inviting double counting.

Brown’s method fixes this by adjusting the degrees of freedom of Fisher’s statistic using an empirical or user-supplied covariance structure. In enrichit, this is exposed directly through aggregate_omics(method = "brown").

set.seed(123)
omics_pmat <- cbind(RNA = rna_pvals[1:80], PROT = prot_pvals[1:80])
rownames(omics_pmat) <- omics_gene_ids[1:80]

cov_mat <- matrix(
  c(4, 1.2,
    1.2, 4),
  nrow = 2
)

agg_brown_res <- aggregate_omics(
  x = omics_pmat,
  method = "brown",
  input = "pvalue",
  cov_matrix = cov_mat
)

head(sort(agg_brown_res$score, decreasing = TRUE))
   Gene9   Gene74   Gene20    Gene8    Gene5    Gene2 
2.102805 2.038788 1.964581 1.935310 1.897638 1.887833 

7.1.3 2. ID Harmonization (harmonize_ids)

Proteomics data often use UniProt IDs or protein groups, while your pathway annotations are usually gene-based. Directly feeding protein-level data to gene set enrichment will cause a huge ID mismatch.

harmonize_ids() acts as a dedicated ID mapping layer. It maps the protein-level aggregated results to the gene-level, and handles many-to-one mappings gracefully using folding strategies like min_p or max_abs.

# Suppose our proteomics data used UniProt IDs (e.g., Q9Y6N7)
# and we need to map them back to standard Gene Symbols
id_mapping_df <- data.frame(
    source_id = c("P12345", "P12346", "Q9Y6N7"),
    target_id = c("Gene1", "Gene1", "Gene2") # P12345 and P12346 both map to Gene1
)

# For demonstration, we create a mock protein-level aggregated result
protein_agg_res <- aggregate_omics(
    x = list(PROT = prot_pvals[1:3]),
    method = "fisher",
    input = "pvalue",
    feature_type = "protein"
)
names(protein_agg_res$score) <- c("P12345", "P12346", "Q9Y6N7")
protein_agg_res$feature_id <- c("P12345", "P12346", "Q9Y6N7")

# Map and collapse protein-level features to gene-level
harmonized_res <- harmonize_ids(
    x = protein_agg_res, # Assuming this is an aggregated result from proteomics
    mapping = id_mapping_df,
    from = "protein",
    to = "gene",
    collapse = "min_p" # If multiple proteins map to one gene, take the most significant one
)
harmonized_res
$input_type
[1] "pvalue"

$feature_type
[1] "gene"

$feature_id
[1] "Gene1" "Gene2"

$score
   Gene1    Gene2 
1.390788 1.097789 

$pvalue
     Gene1      Gene2 
0.04066417 0.07983821 

attr(,"class")
[1] "omics_aggregated"

7.1.4 3. Handling Directional Conflicts (conflict_policy)

When integrating signed statistics across omics (e.g., transcriptomics and proteomics), you often encounter conflicting directions—a gene might be significantly up-regulated in RNA but down-regulated in Protein.

Instead of naively averaging them out to zero, aggregate_omics() introduces a conflict_policy parameter when input = "signed_score". You can choose "strict" to completely drop conflicting features, or "penalty" to halve their aggregated scores. This actively filters out biological noise and reduces false positives before enrichment.

# Example with conflicting directions between RNA and PROT
rna_signed <- -log10(rna_pvals) * rep(c(1, -1), length.out = length(rna_pvals))
prot_signed <- -log10(prot_pvals) * rep(c(1, 1, -1, -1), length.out = length(prot_pvals))
names(rna_signed) <- omics_gene_ids
names(prot_signed) <- omics_gene_ids

agg_strict <- aggregate_omics(
    x = list(RNA = rna_signed, PROT = prot_signed),
    input = "signed_score",
    method = "mean",
    conflict_policy = "strict" # Drops conflicting genes automatically
)
agg_strict
$input_type
[1] "signed_score"

$feature_type
[1] "gene"

$feature_id
  [1] "Gene1"    "Gene4"    "Gene5"    "Gene8"    "Gene9"    "Gene12"  
  [7] "Gene13"   "Gene16"   "Gene17"   "Gene20"   "Gene21"   "Gene24"  
 [13] "Gene25"   "Gene28"   "Gene29"   "Gene32"   "Gene33"   "Gene36"  
 [19] "Gene37"   "Gene40"   "Gene41"   "Gene44"   "Gene45"   "Gene48"  
 [25] "Gene49"   "Gene52"   "Gene53"   "Gene56"   "Gene57"   "Gene60"  
 [31] "Gene61"   "Gene64"   "Gene65"   "Gene68"   "Gene69"   "Gene72"  
 [37] "Gene73"   "Gene76"   "Gene77"   "Gene80"   "Gene81"   "Gene84"  
 [43] "Gene85"   "Gene88"   "Gene89"   "Gene92"   "Gene93"   "Gene96"  
 [49] "Gene97"   "Gene100"  "Gene101"  "Gene104"  "Gene105"  "Gene108" 
 [55] "Gene109"  "Gene112"  "Gene113"  "Gene116"  "Gene117"  "Gene120" 
 [61] "Gene121"  "Gene124"  "Gene125"  "Gene128"  "Gene129"  "Gene132" 
 [67] "Gene133"  "Gene136"  "Gene137"  "Gene140"  "Gene141"  "Gene144" 
 [73] "Gene145"  "Gene148"  "Gene149"  "Gene152"  "Gene153"  "Gene156" 
 [79] "Gene157"  "Gene160"  "Gene161"  "Gene164"  "Gene165"  "Gene168" 
 [85] "Gene169"  "Gene172"  "Gene173"  "Gene176"  "Gene177"  "Gene180" 
 [91] "Gene181"  "Gene184"  "Gene185"  "Gene188"  "Gene189"  "Gene192" 
 [97] "Gene193"  "Gene196"  "Gene197"  "Gene200"  "Gene201"  "Gene204" 
[103] "Gene205"  "Gene208"  "Gene209"  "Gene212"  "Gene213"  "Gene216" 
[109] "Gene217"  "Gene220"  "Gene221"  "Gene224"  "Gene225"  "Gene228" 
[115] "Gene229"  "Gene232"  "Gene233"  "Gene236"  "Gene237"  "Gene240" 
[121] "Gene241"  "Gene244"  "Gene245"  "Gene248"  "Gene249"  "Gene252" 
[127] "Gene253"  "Gene256"  "Gene257"  "Gene260"  "Gene261"  "Gene264" 
[133] "Gene265"  "Gene268"  "Gene269"  "Gene272"  "Gene273"  "Gene276" 
[139] "Gene277"  "Gene280"  "Gene281"  "Gene284"  "Gene285"  "Gene288" 
[145] "Gene289"  "Gene292"  "Gene293"  "Gene296"  "Gene297"  "Gene300" 
[151] "Gene301"  "Gene304"  "Gene305"  "Gene308"  "Gene309"  "Gene312" 
[157] "Gene313"  "Gene316"  "Gene317"  "Gene320"  "Gene321"  "Gene324" 
[163] "Gene325"  "Gene328"  "Gene329"  "Gene332"  "Gene333"  "Gene336" 
[169] "Gene337"  "Gene340"  "Gene341"  "Gene344"  "Gene345"  "Gene348" 
[175] "Gene349"  "Gene352"  "Gene353"  "Gene356"  "Gene357"  "Gene360" 
[181] "Gene361"  "Gene364"  "Gene365"  "Gene368"  "Gene369"  "Gene372" 
[187] "Gene373"  "Gene376"  "Gene377"  "Gene380"  "Gene381"  "Gene384" 
[193] "Gene385"  "Gene388"  "Gene389"  "Gene392"  "Gene393"  "Gene396" 
[199] "Gene397"  "Gene400"  "Gene401"  "Gene404"  "Gene405"  "Gene408" 
[205] "Gene409"  "Gene412"  "Gene413"  "Gene416"  "Gene417"  "Gene420" 
[211] "Gene421"  "Gene424"  "Gene425"  "Gene428"  "Gene429"  "Gene432" 
[217] "Gene433"  "Gene436"  "Gene437"  "Gene440"  "Gene441"  "Gene444" 
[223] "Gene445"  "Gene448"  "Gene449"  "Gene452"  "Gene453"  "Gene456" 
[229] "Gene457"  "Gene460"  "Gene461"  "Gene464"  "Gene465"  "Gene468" 
[235] "Gene469"  "Gene472"  "Gene473"  "Gene476"  "Gene477"  "Gene480" 
[241] "Gene481"  "Gene484"  "Gene485"  "Gene488"  "Gene489"  "Gene492" 
[247] "Gene493"  "Gene496"  "Gene497"  "Gene500"  "Gene501"  "Gene504" 
[253] "Gene505"  "Gene508"  "Gene509"  "Gene512"  "Gene513"  "Gene516" 
[259] "Gene517"  "Gene520"  "Gene521"  "Gene524"  "Gene525"  "Gene528" 
[265] "Gene529"  "Gene532"  "Gene533"  "Gene536"  "Gene537"  "Gene540" 
[271] "Gene541"  "Gene544"  "Gene545"  "Gene548"  "Gene549"  "Gene552" 
[277] "Gene553"  "Gene556"  "Gene557"  "Gene560"  "Gene561"  "Gene564" 
[283] "Gene565"  "Gene568"  "Gene569"  "Gene572"  "Gene573"  "Gene576" 
[289] "Gene577"  "Gene580"  "Gene581"  "Gene584"  "Gene585"  "Gene588" 
[295] "Gene589"  "Gene592"  "Gene593"  "Gene596"  "Gene597"  "Gene600" 
[301] "Gene601"  "Gene604"  "Gene605"  "Gene608"  "Gene609"  "Gene612" 
[307] "Gene613"  "Gene616"  "Gene617"  "Gene620"  "Gene621"  "Gene624" 
[313] "Gene625"  "Gene628"  "Gene629"  "Gene632"  "Gene633"  "Gene636" 
[319] "Gene637"  "Gene640"  "Gene641"  "Gene644"  "Gene645"  "Gene648" 
[325] "Gene649"  "Gene652"  "Gene653"  "Gene656"  "Gene657"  "Gene660" 
[331] "Gene661"  "Gene664"  "Gene665"  "Gene668"  "Gene669"  "Gene672" 
[337] "Gene673"  "Gene676"  "Gene677"  "Gene680"  "Gene681"  "Gene684" 
[343] "Gene685"  "Gene688"  "Gene689"  "Gene692"  "Gene693"  "Gene696" 
[349] "Gene697"  "Gene700"  "Gene701"  "Gene704"  "Gene705"  "Gene708" 
[355] "Gene709"  "Gene712"  "Gene713"  "Gene716"  "Gene717"  "Gene720" 
[361] "Gene721"  "Gene724"  "Gene725"  "Gene728"  "Gene729"  "Gene732" 
[367] "Gene733"  "Gene736"  "Gene737"  "Gene740"  "Gene741"  "Gene744" 
[373] "Gene745"  "Gene748"  "Gene749"  "Gene752"  "Gene753"  "Gene756" 
[379] "Gene757"  "Gene760"  "Gene761"  "Gene764"  "Gene765"  "Gene768" 
[385] "Gene769"  "Gene772"  "Gene773"  "Gene776"  "Gene777"  "Gene780" 
[391] "Gene781"  "Gene784"  "Gene785"  "Gene788"  "Gene789"  "Gene792" 
[397] "Gene793"  "Gene796"  "Gene797"  "Gene800"  "Gene801"  "Gene804" 
[403] "Gene805"  "Gene808"  "Gene809"  "Gene812"  "Gene813"  "Gene816" 
[409] "Gene817"  "Gene820"  "Gene821"  "Gene824"  "Gene825"  "Gene828" 
[415] "Gene829"  "Gene832"  "Gene833"  "Gene836"  "Gene837"  "Gene840" 
[421] "Gene841"  "Gene844"  "Gene845"  "Gene848"  "Gene849"  "Gene852" 
[427] "Gene853"  "Gene856"  "Gene857"  "Gene860"  "Gene861"  "Gene864" 
[433] "Gene865"  "Gene868"  "Gene869"  "Gene872"  "Gene873"  "Gene876" 
[439] "Gene877"  "Gene880"  "Gene881"  "Gene884"  "Gene885"  "Gene888" 
[445] "Gene889"  "Gene892"  "Gene893"  "Gene896"  "Gene897"  "Gene900" 
[451] "Gene901"  "Gene904"  "Gene905"  "Gene908"  "Gene909"  "Gene912" 
[457] "Gene913"  "Gene916"  "Gene917"  "Gene920"  "Gene921"  "Gene924" 
[463] "Gene925"  "Gene928"  "Gene929"  "Gene932"  "Gene933"  "Gene936" 
[469] "Gene937"  "Gene940"  "Gene941"  "Gene944"  "Gene945"  "Gene948" 
[475] "Gene949"  "Gene952"  "Gene953"  "Gene956"  "Gene957"  "Gene960" 
[481] "Gene961"  "Gene964"  "Gene965"  "Gene968"  "Gene969"  "Gene972" 
[487] "Gene973"  "Gene976"  "Gene977"  "Gene980"  "Gene981"  "Gene984" 
[493] "Gene985"  "Gene988"  "Gene989"  "Gene992"  "Gene993"  "Gene996" 
[499] "Gene997"  "Gene1000"

$score
      Gene1       Gene4       Gene5       Gene8       Gene9      Gene12 
 1.38601093 -1.48055429  1.55057901 -1.57728481  1.69561425 -1.41958769 
     Gene13      Gene16      Gene17      Gene20      Gene21      Gene24 
 1.28734945 -1.42091397  1.23963943 -1.59801090  0.19346498 -0.20308187 
     Gene25      Gene28      Gene29      Gene32      Gene33      Gene36 
 0.13707152 -0.28381594  0.55471367 -0.15483172  0.25492306 -0.29099074 
     Gene37      Gene40      Gene41      Gene44      Gene45      Gene48 
 0.47308504 -0.49209840  0.46223653 -0.35804881  0.71612633 -1.10705275 
     Gene49      Gene52      Gene53      Gene56      Gene57      Gene60 
 0.31844691 -0.21851256  0.07358986 -0.62170662  0.53768309 -0.28590560 
     Gene61      Gene64      Gene65      Gene68      Gene69      Gene72 
 0.15762503 -0.49677445  0.59924639 -0.47856342  0.05568018 -0.13616648 
     Gene73      Gene76      Gene77      Gene80      Gene81      Gene84 
 0.10255746 -0.42937097  0.49340094 -0.70169385  0.50981755 -0.24341626 
     Gene85      Gene88      Gene89      Gene92      Gene93      Gene96 
 0.55365003 -0.79085684  0.07277038 -0.64368036  0.70104112 -0.42370194 
     Gene97     Gene100     Gene101     Gene104     Gene105     Gene108 
 0.05495944 -0.49515568  0.15913438 -0.07426192  0.18914752 -0.12176958 
    Gene109     Gene112     Gene113     Gene116     Gene117     Gene120 
 0.20421580 -0.30197451  0.76791781 -0.72943719  0.31754276 -0.31914372 
    Gene121     Gene124     Gene125     Gene128     Gene129     Gene132 
 0.44137419 -0.58088697  0.64564677 -0.64307098  0.88848023 -0.06814228 
    Gene133     Gene136     Gene137     Gene140     Gene141     Gene144 
 0.16252143 -0.15204404  0.25191228 -0.47136351  0.29312313 -0.37804951 
    Gene145     Gene148     Gene149     Gene152     Gene153     Gene156 
 0.36874225 -0.65850758  0.54668163 -0.26283611  0.26821821 -0.41921173 
    Gene157     Gene160     Gene161     Gene164     Gene165     Gene168 
 0.71218614 -0.66967341  0.36201511 -0.52168947  0.68740591 -0.59879386 
    Gene169     Gene172     Gene173     Gene176     Gene177     Gene180 
 0.60496504 -0.56578114  0.12585873 -0.23510965  0.28590815 -0.21628033 
    Gene181     Gene184     Gene185     Gene188     Gene189     Gene192 
 1.34079876 -0.31955611  0.16151859 -0.17574012  0.09938029 -0.37424411 
    Gene193     Gene196     Gene197     Gene200     Gene201     Gene204 
 0.17681861 -0.52035083  0.22274637 -0.32813073  0.34415685 -0.21599387 
    Gene205     Gene208     Gene209     Gene212     Gene213     Gene216 
 0.35394433 -0.67125883  0.43642167 -0.29871261  0.62867460 -0.12196279 
    Gene217     Gene220     Gene221     Gene224     Gene225     Gene228 
 0.43566388 -0.03033864  0.50513660 -0.10800855  0.64867018 -0.44869238 
    Gene229     Gene232     Gene233     Gene236     Gene237     Gene240 
 0.11104482 -0.46238586  0.37689079 -0.88319597  0.82991534 -0.30103090 
    Gene241     Gene244     Gene245     Gene248     Gene249     Gene252 
 0.68366009 -0.27743349  0.30110353 -0.69447277  0.36700210 -0.47293915 
    Gene253     Gene256     Gene257     Gene260     Gene261     Gene264 
 0.23638648 -0.08373381  0.92887914 -0.14990686  0.31890209 -0.42829458 
    Gene265     Gene268     Gene269     Gene272     Gene273     Gene276 
 0.21998780 -0.24368656  1.37724019 -1.17006544  0.74277409 -0.19482637 
    Gene277     Gene280     Gene281     Gene284     Gene285     Gene288 
 0.07226883 -0.29718667  0.40722586 -0.38463385  0.74337345 -0.45315811 
    Gene289     Gene292     Gene293     Gene296     Gene297     Gene300 
 0.86167017 -0.63783336  0.91783233 -0.30303952  0.06049955 -0.17119761 
    Gene301     Gene304     Gene305     Gene308     Gene309     Gene312 
 0.84286309 -0.10724537  0.16902047 -1.47511249  0.25448947 -0.38470082 
    Gene313     Gene316     Gene317     Gene320     Gene321     Gene324 
 0.10963486 -0.53176904  0.09318458 -0.76842903  0.08113423 -0.29981729 
    Gene325     Gene328     Gene329     Gene332     Gene333     Gene336 
 0.49730375 -0.88330235  1.19114042 -0.51878664  0.18378154 -0.53807228 
    Gene337     Gene340     Gene341     Gene344     Gene345     Gene348 
 0.15108973 -0.14078405  0.45094192 -0.62569743  0.24850109 -0.29888578 
    Gene349     Gene352     Gene353     Gene356     Gene357     Gene360 
 0.45512205 -1.16468065  0.58480437 -0.16446979  0.44050667 -0.19452138 
    Gene361     Gene364     Gene365     Gene368     Gene369     Gene372 
 0.51501180 -0.43560023  0.53572770 -0.99141913  0.60914279 -0.60018086 
    Gene373     Gene376     Gene377     Gene380     Gene381     Gene384 
 0.22710223 -0.05015822  0.26903821 -0.11280510  0.28339973 -0.61713929 
    Gene385     Gene388     Gene389     Gene392     Gene393     Gene396 
 0.16168725 -0.30506447  1.11913646 -0.34845441  0.25004927 -0.35821439 
    Gene397     Gene400     Gene401     Gene404     Gene405     Gene408 
 0.37313440 -0.31435591  0.31914831 -0.27144499  0.50764863 -0.55334631 
    Gene409     Gene412     Gene413     Gene416     Gene417     Gene420 
 0.76701645 -0.05768441  0.43957911 -0.42660699  0.12574488 -1.01311633 
    Gene421     Gene424     Gene425     Gene428     Gene429     Gene432 
 0.16466916 -0.26127293  0.19238408 -0.20895357  0.41416127 -0.38568046 
    Gene433     Gene436     Gene437     Gene440     Gene441     Gene444 
 0.29004705 -0.31558768  0.57797609 -0.53990158  0.68783766 -0.54180242 
    Gene445     Gene448     Gene449     Gene452     Gene453     Gene456 
 0.09665229 -0.59326935  0.37324742 -0.29469799  0.38269407 -0.07424863 
    Gene457     Gene460     Gene461     Gene464     Gene465     Gene468 
 0.36268914 -0.91451478  0.01466070 -0.75158335  0.90921987 -0.51084229 
    Gene469     Gene472     Gene473     Gene476     Gene477     Gene480 
 0.43466580 -0.63418733  0.25200454 -0.24579209  0.26526546 -0.11687527 
    Gene481     Gene484     Gene485     Gene488     Gene489     Gene492 
 0.39273657 -0.12601469  0.01700629 -0.27304404  0.30128220 -1.54517992 
    Gene493     Gene496     Gene497     Gene500     Gene501     Gene504 
 0.16949569 -0.04675646  0.30026993 -0.23151847  0.23963218 -0.86708482 
    Gene505     Gene508     Gene509     Gene512     Gene513     Gene516 
 0.29743826 -0.33024655  0.19748202 -0.55132381  0.06944188 -0.57094414 
    Gene517     Gene520     Gene521     Gene524     Gene525     Gene528 
 1.01217198 -0.40339895  0.33641800 -0.89563311  0.21046796 -0.98569938 
    Gene529     Gene532     Gene533     Gene536     Gene537     Gene540 
 0.09799569 -0.16040998  0.19791836 -0.36668545  0.44246139 -0.44173225 
    Gene541     Gene544     Gene545     Gene548     Gene549     Gene552 
 0.70909797 -0.40755970  0.14649127 -0.21959663  0.15514124 -0.87075427 
    Gene553     Gene556     Gene557     Gene560     Gene561     Gene564 
 0.27351756 -0.36414187  0.17127405 -0.89791829  0.71133120 -0.67620743 
    Gene565     Gene568     Gene569     Gene572     Gene573     Gene576 
 0.24350512 -0.06859665  0.64509277 -0.80347280  0.16741679 -0.13826862 
    Gene577     Gene580     Gene581     Gene584     Gene585     Gene588 
 0.95603105 -0.30625253  0.12051142 -0.70765729  0.07437365 -0.29200590 
    Gene589     Gene592     Gene593     Gene596     Gene597     Gene600 
 0.18709819 -0.63416553  0.09999652 -0.58805275  0.26097380 -1.01353541 
    Gene601     Gene604     Gene605     Gene608     Gene609     Gene612 
 0.40960191 -0.29138991  0.42717687 -0.48875426  0.34783890 -0.57565736 
    Gene613     Gene616     Gene617     Gene620     Gene621     Gene624 
 0.99286707 -0.25609225  0.13258873 -0.99750623  1.13038499 -0.27022486 
    Gene625     Gene628     Gene629     Gene632     Gene633     Gene636 
 0.85221065 -0.39938013  0.32807449 -0.18535889  0.35641976 -0.35361883 
    Gene637     Gene640     Gene641     Gene644     Gene645     Gene648 
 0.38455100 -0.23875522  0.59338245 -0.21974706  0.68746430 -0.56341916 
    Gene649     Gene652     Gene653     Gene656     Gene657     Gene660 
 0.46306209 -0.08946643  0.38539930 -0.17479188  0.47915060 -0.28040709 
    Gene661     Gene664     Gene665     Gene668     Gene669     Gene672 
 0.07066621 -0.16975955  0.36676127 -0.60599822  0.28086653 -0.26781722 
    Gene673     Gene676     Gene677     Gene680     Gene681     Gene684 
 1.23119872 -0.20696206  0.18763779 -0.44694881  0.39228956 -0.26760158 
    Gene685     Gene688     Gene689     Gene692     Gene693     Gene696 
 0.25570746 -0.49596854  0.22448186 -0.63839186  0.42655323 -0.15426510 
    Gene697     Gene700     Gene701     Gene704     Gene705     Gene708 
 0.40307105 -0.58762276  0.11003389 -0.04652932  0.27424104 -0.32495402 
    Gene709     Gene712     Gene713     Gene716     Gene717     Gene720 
 0.36760652 -0.73955381  0.66077367 -0.21971751  1.20923694 -0.96321136 
    Gene721     Gene724     Gene725     Gene728     Gene729     Gene732 
 0.23244708 -0.28136633  0.65028235 -0.19803317  0.23098401 -0.20399635 
    Gene733     Gene736     Gene737     Gene740     Gene741     Gene744 
 0.84578228 -0.36075894  0.30945595 -1.49669603  0.44927601 -1.24712181 
    Gene745     Gene748     Gene749     Gene752     Gene753     Gene756 
 0.68013323 -0.63413888  0.09451083 -0.34364999  0.45059633 -0.30552458 
    Gene757     Gene760     Gene761     Gene764     Gene765     Gene768 
 0.17741324 -0.35987112  0.22729498 -0.31069195  0.30733186 -0.42301776 
    Gene769     Gene772     Gene773     Gene776     Gene777     Gene780 
 0.15843198 -0.14214001  0.49758962 -0.46999161  0.56630355 -0.20916204 
    Gene781     Gene784     Gene785     Gene788     Gene789     Gene792 
 0.69015378 -0.19822262  0.48480947 -1.08020516  0.35856505 -0.85981869 
    Gene793     Gene796     Gene797     Gene800     Gene801     Gene804 
 0.44201323 -0.43417426  0.58739533 -0.43924066  0.56810071 -0.75098395 
    Gene805     Gene808     Gene809     Gene812     Gene813     Gene816 
 0.39478173 -0.27769956  0.09532909 -0.19085023  0.26954941 -0.59401465 
    Gene817     Gene820     Gene821     Gene824     Gene825     Gene828 
 0.36944310 -1.29345508  0.08206796 -0.03231110  0.19817125 -0.66307836 
    Gene829     Gene832     Gene833     Gene836     Gene837     Gene840 
 0.30517087 -0.20640976  0.18394753 -0.37157270  0.16646248 -0.56031821 
    Gene841     Gene844     Gene845     Gene848     Gene849     Gene852 
 0.24294147 -0.51551383  0.28665444 -1.33320317  0.37666011 -0.10385543 
    Gene853     Gene856     Gene857     Gene860     Gene861     Gene864 
 0.16949598 -0.29867657  0.01280617 -0.03931377  0.30630581 -0.19571591 
    Gene865     Gene868     Gene869     Gene872     Gene873     Gene876 
 0.25455245 -0.49727187  0.29964097 -0.42894422  0.36347137 -0.10023195 
    Gene877     Gene880     Gene881     Gene884     Gene885     Gene888 
 1.13327981 -0.32912721  0.51925404 -0.71896955  0.73288778 -0.46653369 
    Gene889     Gene892     Gene893     Gene896     Gene897     Gene900 
 0.53801377 -0.06255424  0.38485298 -0.18649630  1.05170795 -0.18453257 
    Gene901     Gene904     Gene905     Gene908     Gene909     Gene912 
 0.19362561 -0.14673826  0.21262110 -0.09105916  0.14024242 -0.76508566 
    Gene913     Gene916     Gene917     Gene920     Gene921     Gene924 
 0.14665534 -0.55136439  0.66908501 -0.66568605  0.09916270 -0.18451579 
    Gene925     Gene928     Gene929     Gene932     Gene933     Gene936 
 0.20312011 -0.69253100  0.56567222 -0.52476294  0.80219976 -0.79636973 
    Gene937     Gene940     Gene941     Gene944     Gene945     Gene948 
 0.30388624 -0.87381857  0.14653685 -0.27714135  1.10297231 -0.32469323 
    Gene949     Gene952     Gene953     Gene956     Gene957     Gene960 
 0.22923282 -0.46221172  0.34647533 -0.17033091  0.30896371 -0.58984647 
    Gene961     Gene964     Gene965     Gene968     Gene969     Gene972 
 0.14931058 -0.76310573  0.23107567 -1.14253715  0.07365896 -0.69675814 
    Gene973     Gene976     Gene977     Gene980     Gene981     Gene984 
 0.20834152 -0.19007568  0.43104469 -0.55156122  0.23197804 -0.44524654 
    Gene985     Gene988     Gene989     Gene992     Gene993     Gene996 
 0.10760669 -0.58008567  0.46190328 -0.71567826  0.15455090 -0.06503208 
    Gene997    Gene1000 
 0.35718469 -0.65572816 

$original_matrix
                  RNA          PROT
Gene1     1.674131900  1.0978899630
Gene4    -1.337144008 -1.6239645727
Gene5     1.351660373  1.7494976432
Gene8    -1.857067378 -1.2975022499
Gene9     1.983897144  1.4073313497
Gene12   -1.541902758 -1.2972726211
Gene13    1.284815747  1.2898831520
Gene16   -1.631094249 -1.2107336878
Gene17    1.202473893  1.2768049587
Gene20   -1.989382725 -1.2066390704
Gene21    0.050834852  0.3360950980
Gene24   -0.002495762 -0.4036679754
Gene25    0.183290975  0.0908520625
Gene28   -0.226109731 -0.3415221468
Gene29    0.538862178  0.5705651619
Gene32   -0.044649502 -0.2650139372
Gene33    0.160707225  0.3491388943
Gene36   -0.320757517 -0.2612239721
Gene37    0.120067583  0.8261024977
Gene40   -0.635213095 -0.3489837095
Gene41    0.845271724  0.0792013431
Gene44   -0.433155568 -0.2829420486
Gene45    0.816887534  0.6153651338
Gene48   -0.331649080 -1.8824564111
Gene49    0.575163035  0.0617307826
Gene52   -0.354381189 -0.0826439248
Gene53    0.097494073  0.0496856526
Gene56   -0.685013933 -0.5583992983
Gene57    0.894382021  0.1809841678
Gene60   -0.426591348 -0.1452198591
Gene61    0.177103131  0.1381469249
Gene64   -0.561641780 -0.4319071253
Gene65    0.089034249  1.1094585227
Gene68   -0.090235693 -0.8668911399
Gene69    0.099992298  0.0113680601
Gene72   -0.201196701 -0.0711362610
Gene73    0.148630094  0.0564848211
Gene76   -0.657342695 -0.2013992352
Gene77    0.420426129  0.5663757476
Gene80   -0.954147488 -0.4492402110
Gene81    0.613288001  0.4063470936
Gene84   -0.103365865 -0.3834666566
Gene85    0.987733872  0.1195661833
Gene88   -0.049123683 -1.5325899986
Gene89    0.052336417  0.0932043450
Gene92   -0.185019036 -1.1023416754
Gene93    0.464052433  0.9380298070
Gene96   -0.726556276 -0.1208475951
Gene97    0.106629833  0.0032890409
Gene100  -0.291149726 -0.6991616261
Gene101   0.221856741  0.0964120278
Gene104  -0.020235976 -0.1282878642
Gene105   0.316140639  0.0621544004
Gene108  -0.215571740 -0.0279674253
Gene109   0.386486108  0.0219454977
Gene112  -0.521103364 -0.0828456502
Gene113   1.216664149  0.3191714678
Gene116  -0.846812510 -0.6120618680
Gene117   0.260202533  0.3748829928
Gene120  -0.393070435 -0.2452170109
Gene121   0.188496391  0.6942519962
Gene124  -0.658036273 -0.5037376647
Gene125   0.432398644  0.8588948911
Gene128  -1.040748670 -0.2453932961
Gene129   0.847996463  0.9289639954
Gene132  -0.049930236 -0.0863543271
Gene133   0.171985521  0.1530573371
Gene136  -0.180562381 -0.1235256933
Gene137   0.085230978  0.4185935815
Gene140  -0.357108779 -0.5856182442
Gene141   0.506260130  0.0799861392
Gene144  -0.735537490 -0.0205615218
Gene145   0.074311897  0.6631726065
Gene148  -1.115254663 -0.2017605037
Gene149   0.609552993  0.4838102634
Gene152  -0.303183113 -0.2224891057
Gene153   0.411270111  0.1251663110
Gene156  -0.408941590 -0.4294818740
Gene157   0.242653087  1.1817191887
Gene160  -0.661562096 -0.6777847202
Gene161   0.299037199  0.4249930294
Gene164  -0.426300131 -0.6170788186
Gene165   0.449227125  0.9255846905
Gene168  -0.655405487 -0.5421822395
Gene169   0.384317002  0.8256130804
Gene172  -0.735587178 -0.3959750932
Gene173   0.063665184  0.1880522851
Gene176  -0.208998965 -0.2612203356
Gene177   0.429179224  0.1426370691
Gene180  -0.235263534 -0.1972971320
Gene181   0.075840800  2.6057567149
Gene184  -0.576724946 -0.0623872705
Gene185   0.225962706  0.0970744704
Gene188  -0.248266484 -0.1032137637
Gene189   0.039439698  0.1593208728
Gene192  -0.492842317 -0.2556459048
Gene193   0.006281290  0.3473559270
Gene196  -0.331117908 -0.7095837517
Gene197   0.390584261  0.0549084768
Gene200  -0.241946150 -0.4143153080
Gene201   0.622100230  0.0662134622
Gene204  -0.288167703 -0.1438200271
Gene205   0.395154987  0.3127336812
Gene208  -0.540246835 -0.8022708257
Gene209   0.767905834  0.1049375159
Gene212  -0.596939686 -0.0004855307
Gene213   0.665034265  0.5923149339
Gene216  -0.154373009 -0.0895525691
Gene217   0.453594755  0.4177329983
Gene220  -0.036751907 -0.0239253738
Gene221   0.548937997  0.4613352018
Gene224  -0.163438491 -0.0525786056
Gene225   1.277004786  0.0203355680
Gene228  -0.251615605 -0.6457691593
Gene229   0.155981844  0.0661077927
Gene232  -0.368128734 -0.5566429957
Gene233   0.265936321  0.4878452656
Gene236  -0.401043297 -1.3653486357
Gene237   0.703895067  0.9559356070
Gene240  -0.095058149 -0.5070036506
Gene241   0.262150720  1.1051694583
Gene244  -0.198558310 -0.3563086757
Gene245   0.506026752  0.0961803056
Gene248  -0.013516513 -1.3754290340
Gene249   0.014394648  0.7196095562
Gene252  -0.654062083 -0.2918162202
Gene253   0.226911874  0.2458610892
Gene256  -0.104969009 -0.0624986160
Gene257   0.774533546  1.0832247369
Gene260  -0.061426838 -0.2383868916
Gene261   0.033526004  0.6042781780
Gene264  -0.022200066 -0.8343890850
Gene265   0.286976012  0.1529995960
Gene268  -0.459264416 -0.0281087035
Gene269   1.698442645  1.0560377329
Gene272  -2.200605412 -0.1395254655
Gene273   1.142323076  0.3432251025
Gene276  -0.133603773 -0.2560489689
Gene277   0.012389305  0.1321483537
Gene280  -0.187877027 -0.4064963034
Gene281   0.119991072  0.6944606445
Gene284  -0.647845800 -0.1214219028
Gene285   1.236882409  0.2498644957
Gene288  -0.646109853 -0.2602063769
Gene289   1.262575882  0.4607644667
Gene292  -0.996877460 -0.2787892659
Gene293   1.143246362  0.6924182886
Gene296  -0.087987493 -0.5180915491
Gene297   0.007826436  0.1131726596
Gene300  -0.097544758 -0.2448504558
Gene301   0.105365387  1.5803607859
Gene304  -0.137039807 -0.0774509331
Gene305   0.200568566  0.1374723657
Gene308  -2.085364952 -0.8648600334
Gene309   0.344421350  0.1645575885
Gene312  -0.332859158 -0.4365424831
Gene313   0.146740562  0.0725291563
Gene316  -0.095385997 -0.9681520874
Gene317   0.077945005  0.1084241496
Gene320  -0.067077247 -1.4697808196
Gene321   0.068662480  0.0936059735
Gene324  -0.152432238 -0.4472023446
Gene325   0.983774664  0.0108328268
Gene328  -1.457488223 -0.3091164787
Gene329   0.470580832  1.9117000036
Gene332  -0.543200877 -0.4943724000
Gene333   0.132062878  0.2355002051
Gene336  -0.307535086 -0.7686094751
Gene337   0.156534394  0.1456450669
Gene340  -0.009726248 -0.2718418594
Gene341   0.382228962  0.5196548683
Gene344  -0.647675923 -0.6037189388
Gene345   0.312995930  0.1840062555
Gene348  -0.410811231 -0.1869603244
Gene349   0.639700430  0.2705436739
Gene352  -0.014362720 -2.3149985766
Gene353   0.288132220  0.8814765129
Gene356  -0.006143274 -0.3227963034
Gene357   0.174722231  0.7062911176
Gene360  -0.078180750 -0.3108620166
Gene361   0.842189643  0.1878339520
Gene364  -0.511280739 -0.3599197205
Gene365   0.439733952  0.6317214382
Gene368  -1.750414941 -0.2324233289
Gene369   0.390824224  0.8274613506
Gene372  -0.464948036 -0.7354136921
Gene373   0.062239796  0.3919646731
Gene376  -0.015993553 -0.0843228958
Gene377   0.110927249  0.4271491680
Gene380  -0.012627631 -0.2129825672
Gene381   0.232918309  0.3338811511
Gene384  -0.113964162 -1.1203144172
Gene385   0.269478393  0.0538961004
Gene388  -0.549414648 -0.0607142851
Gene389   1.022448258  1.2158246698
Gene392  -0.528265160 -0.1686436696
Gene393   0.139073533  0.3610250038
Gene396  -0.620522922 -0.0959058527
Gene397   0.567760693  0.1785081048
Gene400  -0.003822690 -0.6248891267
Gene401   0.006099170  0.6321974559
Gene404  -0.239349996 -0.3035399791
Gene405   0.402909673  0.6123875859
Gene408  -1.083531597 -0.0231610174
Gene409   0.469400038  1.0646328578
Gene412  -0.080101919 -0.0352669100
Gene413   0.667214077  0.2119441472
Gene416  -0.716646029 -0.1365679482
Gene417   0.021992475  0.2294972938
Gene420  -1.552957197 -0.4732754544
Gene421   0.261648029  0.0676902982
Gene424  -0.492228600 -0.0303172624
Gene425   0.050066581  0.3347015879
Gene428  -0.410939251 -0.0069678921
Gene429   0.794592365  0.0337301735
Gene432  -0.248994585 -0.5223663315
Gene433   0.482082093  0.0980120038
Gene436  -0.212771992 -0.4184033620
Gene437   0.965858927  0.1900932482
Gene440  -0.792727212 -0.2870759433
Gene441   0.548224505  0.8274508236
Gene444  -0.781147132 -0.3024577007
Gene445   0.062247591  0.1310569933
Gene448  -0.832434247 -0.3541044569
Gene449   0.446047876  0.3004469567
Gene452  -0.456177969 -0.1332180088
Gene453   0.618829482  0.1465586625
Gene456  -0.050571976 -0.0979252834
Gene457   0.090536286  0.6348419859
Gene460  -0.903986989 -0.9250425799
Gene461   0.011117535  0.0182038569
Gene464  -0.781732188 -0.7214345043
Gene465   0.232891235  1.5855484949
Gene468  -0.160391350 -0.8612932394
Gene469   0.548440132  0.3208914709
Gene472  -0.085112295 -1.1832623552
Gene473   0.369136746  0.1348723304
Gene476  -0.352101468 -0.1394827038
Gene477   0.202631216  0.3278996961
Gene480  -0.151889589 -0.0818609439
Gene481   0.667225368  0.1182477785
Gene484  -0.162574020 -0.0894553525
Gene485   0.030266834  0.0037457436
Gene488  -0.168626937 -0.3774611327
Gene489   0.367594749  0.2349696510
Gene492  -1.151878788 -1.9384810560
Gene493   0.337445019  0.0015463595
Gene496  -0.003075237 -0.0904376894
Gene497   0.596709581  0.0038302866
Gene500  -0.104065359 -0.3589715883
Gene501   0.451480281  0.0277840767
Gene504  -1.097057088 -0.6371125551
Gene505   0.437166960  0.1577095668
Gene508  -0.297613660 -0.3628794306
Gene509   0.024552059  0.3704119764
Gene512  -1.083381937 -0.0192656925
Gene513   0.065447596  0.0734361659
Gene516  -0.765119929 -0.3767683552
Gene517   0.342216184  1.6821277783
Gene520  -0.088798967 -0.7179989316
Gene521   0.521227913  0.1516080860
Gene524  -1.427477310 -0.3637889187
Gene525   0.284995911  0.1359400048
Gene528  -1.593005352 -0.3783934018
Gene529   0.004769339  0.1912220439
Gene532  -0.162659343 -0.1581606218
Gene533   0.349656535  0.0461801753
Gene536  -0.131336941 -0.6020339528
Gene537   0.457523775  0.4273989999
Gene540  -0.561385886 -0.3220786123
Gene541   0.096395564  1.3218003754
Gene544  -0.557747515 -0.2573718924
Gene545   0.123141528  0.1698410085
Gene548  -0.068356680 -0.3708365875
Gene549   0.095696653  0.2145858189
Gene552  -0.688376017 -1.0531325174
Gene553   0.244595761  0.3024393618
Gene556  -0.231392488 -0.4968912576
Gene557   0.176698517  0.1658495877
Gene560  -1.791545719 -0.0042908674
Gene561   1.321390721  0.1012716755
Gene564  -0.696629793 -0.6557850722
Gene565   0.186911958  0.3000982873
Gene568  -0.090280965 -0.0469123333
Gene569   0.261994081  1.0281914528
Gene572  -0.042848740 -1.5640968501
Gene573   0.231020688  0.1038128832
Gene576  -0.149330548 -0.1272066866
Gene577   0.383728912  1.5283331801
Gene580  -0.309747684 -0.3027573836
Gene581   0.056172214  0.1848506277
Gene584  -0.434274996 -0.9810395782
Gene585   0.058513457  0.0902338360
Gene588  -0.176066185 -0.4079456062
Gene589   0.009934963  0.3642614074
Gene592  -1.216223407 -0.0521076622
Gene593   0.013658805  0.1863342377
Gene596  -0.055140388 -1.1209651214
Gene597   0.293819548  0.2281280487
Gene600  -1.495235248 -0.5318355725
Gene601   0.624830945  0.1943728745
Gene604  -0.496897943 -0.0858818841
Gene605   0.759491146  0.0948625920
Gene608  -0.084749322 -0.8927591899
Gene609   0.480174855  0.2155029547
Gene612  -1.014871198 -0.1364435258
Gene613   1.657701401  0.3280327376
Gene616  -0.106891521 -0.4052929696
Gene617   0.049685724  0.2154917314
Gene620  -1.355098135 -0.6399143236
Gene621   0.044119488  2.2166504924
Gene624  -0.423870184 -0.1165795402
Gene625   1.375634884  0.3287864101
Gene628  -0.070342288 -0.7284179738
Gene629   0.440809759  0.2153392241
Gene632  -0.073228296 -0.2974894763
Gene633   0.339208907  0.3736306049
Gene636  -0.657610529 -0.0496271263
Gene637   0.020473820  0.7486281851
Gene640  -0.379055367 -0.0984550689
Gene641   0.226331654  0.9604332550
Gene644  -0.414323200 -0.0251709211
Gene645   1.044206049  0.3307225578
Gene648  -1.068651697 -0.0581866166
Gene649   0.522130072  0.4039941082
Gene652  -0.037603607 -0.1413292557
Gene653   0.322620741  0.4481778645
Gene656  -0.066792500 -0.2827912536
Gene657   0.041366127  0.9169350832
Gene660  -0.455256504 -0.1055576852
Gene661   0.072857561  0.0684748532
Gene664  -0.147101434 -0.1924176560
Gene665   0.628435556  0.1050869937
Gene668  -0.803636356 -0.4083600882
Gene669   0.189057225  0.3726758263
Gene672  -0.282900740 -0.2527337023
Gene673   1.064100468  1.3982969819
Gene676  -0.231156176 -0.1827679388
Gene677   0.093290942  0.2819846350
Gene680  -0.348583273 -0.5453143382
Gene681   0.134453213  0.6501259025
Gene684  -0.052288869 -0.4829142910
Gene685   0.021069102  0.4903458200
Gene688  -0.767770918 -0.2241661535
Gene689   0.319418341  0.1295453758
Gene692  -0.197362733 -1.0794209795
Gene693   0.267959518  0.5851469365
Gene696  -0.234308655 -0.0742215428
Gene697   0.782447911  0.0236941981
Gene700  -0.448840972 -0.7264045549
Gene701   0.073177450  0.1468903330
Gene704  -0.064291484 -0.0287671622
Gene705   0.475489689  0.0729923843
Gene708  -0.424299052 -0.2256089897
Gene709   0.730783656  0.0044293835
Gene712  -0.283293709 -1.1958139147
Gene713   0.180705304  1.1408420273
Gene716  -0.415152661 -0.0242823639
Gene717   2.165356239  0.2531176392
Gene720  -0.967031365 -0.9593913490
Gene721   0.378129031  0.0867651246
Gene724  -0.059484101 -0.5032485506
Gene725   0.216190746  1.0843739457
Gene728  -0.212695666 -0.1833706820
Gene729   0.100604062  0.3613639530
Gene732  -0.058050326 -0.3499423736
Gene733   0.188862850  1.5027017148
Gene736  -0.500570287 -0.2209475952
Gene737   0.094605540  0.5243063621
Gene740  -2.923859155 -0.0695328950
Gene741   0.003413638  0.8951383829
Gene744  -0.223768600 -2.2704750115
Gene745   0.493050830  0.8672156319
Gene748  -1.161575360 -0.1067024057
Gene749   0.158002262  0.0310193990
Gene752  -0.603092084 -0.0842079034
Gene753   0.797415026  0.1037776396
Gene756  -0.309948368 -0.3011007996
Gene757   0.306016100  0.0488103804
Gene760  -0.690915569 -0.0288266670
Gene761   0.289221843  0.1653681156
Gene764  -0.316720639 -0.3046632594
Gene765   0.244618624  0.3700450941
Gene768  -0.384804453 -0.4612310645
Gene769   0.165572758  0.1512911957
Gene772  -0.089849025 -0.1944309981
Gene773   0.170123978  0.8250552645
Gene776  -0.600709641 -0.3392735839
Gene777   0.479454908  0.6531521859
Gene780  -0.092259794 -0.3260642940
Gene781   0.587033712  0.7932738460
Gene784  -0.184156201 -0.2122890444
Gene785   0.090593976  0.8790249718
Gene788  -1.726576980 -0.4338333304
Gene789   0.548009974  0.1691201344
Gene792  -0.265574950 -1.4540624259
Gene793   0.658718750  0.2253077193
Gene796  -0.389733160 -0.4786153628
Gene797   0.984172804  0.1906178567
Gene800  -0.586289877 -0.2921914378
Gene801   0.327272563  0.8089288493
Gene804  -1.327960540 -0.1740073679
Gene805   0.580380747  0.2091827106
Gene808  -0.320733831 -0.2346652788
Gene809   0.125638293  0.0650198819
Gene812  -0.157949435 -0.2237510201
Gene813   0.439780548  0.0993182807
Gene816  -0.856349404 -0.3316798953
Gene817   0.530164335  0.2087218563
Gene820  -0.250514435 -2.3363957330
Gene821   0.161956599  0.0021793144
Gene824  -0.003911306 -0.0607108869
Gene825   0.128891427  0.2674510828
Gene828  -1.271346500 -0.0548102199
Gene829   0.469089213  0.1412525214
Gene832  -0.112433624 -0.3003858909
Gene833   0.334442262  0.0334527907
Gene836  -0.242548002 -0.5005974018
Gene837   0.152542746  0.1803822080
Gene840  -1.012157481 -0.1084789444
Gene841   0.016634764  0.4692481813
Gene844  -0.921076219 -0.1099514495
Gene845   0.259432809  0.3138760661
Gene848  -2.037159883 -0.6292464499
Gene849   0.626655876  0.1266643504
Gene852  -0.138824829 -0.0688860304
Gene853   0.003599877  0.3353920766
Gene856  -0.360466028 -0.2368871085
Gene857   0.022813766  0.0027985679
Gene860  -0.051087739 -0.0275398087
Gene861   0.372171318  0.2404403006
Gene864  -0.329179957 -0.0622518602
Gene865   0.209063444  0.3000414541
Gene868  -0.942127559 -0.0524161737
Gene869   0.294407496  0.3048744533
Gene872  -0.770141481 -0.0877469524
Gene873   0.118053394  0.6088893488
Gene876  -0.171626943 -0.0288369498
Gene877   1.884688117  0.3818715104
Gene880  -0.199385890 -0.4588685397
Gene881   0.969421913  0.0690861640
Gene884  -0.827999566 -0.6099395391
Gene885   0.127644497  1.3381310536
Gene888  -0.526187499 -0.4068798782
Gene889   0.585985379  0.4900421604
Gene892  -0.121104887 -0.0040035995
Gene893   0.174182255  0.5955236990
Gene896  -0.119662792 -0.2533298123
Gene897   1.697485819  0.4059300751
Gene900  -0.098049936 -0.2710152010
Gene901   0.034469426  0.3527817948
Gene904  -0.233912353 -0.0595641690
Gene905   0.175013174  0.2502290223
Gene908  -0.044138044 -0.1379802733
Gene909   0.085934906  0.1945499249
Gene912  -1.282341013 -0.2478303103
Gene913   0.062201272  0.2311094005
Gene916  -0.017970508 -1.0847582808
Gene917   0.228270161  1.1098998619
Gene920  -0.495456789 -0.8359153141
Gene921   0.092381079  0.1059443304
Gene924  -0.067223468 -0.3018081189
Gene925   0.156177817  0.2500623984
Gene928  -0.255956061 -1.1291059337
Gene929   0.862507843  0.2688365971
Gene932  -0.690165755 -0.3593601272
Gene933   0.113158055  1.4912414571
Gene936  -0.799454825 -0.7932846387
Gene937   0.279035497  0.3287369803
Gene940  -1.625459813 -0.1221773231
Gene941   0.010599269  0.2824744400
Gene944  -0.379286353 -0.1749963531
Gene945   1.031863596  1.1740810222
Gene948  -0.466209589 -0.1831768645
Gene949   0.381682564  0.0767830718
Gene952  -0.807225900 -0.1171975489
Gene953   0.019278811  0.6736718554
Gene956  -0.016547221 -0.3241145937
Gene957   0.190152524  0.4277749034
Gene960  -0.370687125 -0.8090058186
Gene961   0.294001160  0.0046199962
Gene964  -0.853940430 -0.6722710299
Gene965   0.041939789  0.4202115481
Gene968  -0.932454461 -1.3526198310
Gene969   0.118028881  0.0292890304
Gene972  -1.336991590 -0.0565246888
Gene973   0.086268424  0.3304146222
Gene976  -0.191639407 -0.1885119472
Gene977   0.023137225  0.8389521547
Gene980  -0.377738586 -0.7253838631
Gene981   0.339251364  0.1247047158
Gene984  -0.202655789 -0.6878372980
Gene985   0.044705949  0.1705074308
Gene988  -0.814585693 -0.3455856418
Gene989   0.718257364  0.2055492013
Gene992  -0.650178728 -0.7811777843
Gene993   0.242491100  0.0666106908
Gene996  -0.081118756 -0.0489454128
Gene997   0.192387983  0.5219813951
Gene1000 -0.963275023 -0.3481812906

attr(,"class")
[1] "omics_aggregated"

7.1.5 4. Distribution to Enrichment Backends

Once the multi-omics data is aggregated and harmonized, you obtain a unified object containing a ranking score.

For GSEA or NSEA, you can directly extract the sorted score vector and feed it to the engine:

omics_pathways <- list(TargetPathway = omics_gene_ids[1:20])

geneList <- sort(agg_fisher_res$score, decreasing = TRUE)

gsea_res <- gsea(
    geneList = geneList,
    gene_sets = omics_pathways,
    scoreType = "pos"   # Fisher/Brown aggregated scores are all positive
)
head(as.data.frame(gsea_res)[, c("ID", "setSize", "enrichmentScore", "NES", "pvalue")])
             ID setSize enrichmentScore      NES pvalue
1 TargetPathway      20       0.9806122 2.215595  1e-10

For ORA, which requires discrete gene lists, enrichit provides an adapter function select_features_for_ora(). It takes the aggregated object and a cutoff, and returns the selected gene list and background universe, perfectly bridging the gap between continuous multi-omics scores and traditional hypergeometric tests.

# Define a mock pathway containing the 20 genes we injected signal into
selected_ora_inputs <- select_features_for_ora(
    x = agg_fisher_res, 
    cutoff = 0.05, 
    by = "pvalue"
)

# Only genes with significant aggregated evidence will be selected
early_ora_res <- ora(
    gene = selected_ora_inputs$gene,
    universe = selected_ora_inputs$universe,
    gene_sets = omics_pathways
)
head(as.data.frame(early_ora_res)[, c("ID", "SetSize", "Count", "pvalue")])
             ID SetSize Count       pvalue
1 TargetPathway      20    20 1.707415e-25

By decoupling ID mapping, statistical integration, and pathway enrichment, enrichit provides a clean, robust, and highly extensible pipeline for multi-omics functional analysis.

These workflow helpers are also available from clusterProfiler, which means the aggregated result can be sent directly to high-level functions such as enrichGO(), gseGO(), or nseGO() without changing the underlying multi-omics logic.

7.1.6 5. Late Fusion at the Pathway Level

Early fusion is elegant when your features align cleanly. But sometimes that assumption collapses immediately: transcriptomics might have a background of 20,000 genes, proteomics might only detect 4,000 proteins, and region-based omics may not even live in gene space before annotation. In these cases, forcing everything into one feature matrix is a great way to manufacture missing values and mapping noise.

This is where Late Fusion comes in. Each omics is enriched independently using its own background and preferred backend; then aggregate_enrichment() merges the pathway-level p-values across results. The mathematics is the same family as feature-level aggregation, but the biology is much cleaner because each layer is allowed to speak in its native space first.

late_fusion_pathways <- list(
  SharedPath = omics_gene_ids[1:8],
  RNAPath = omics_gene_ids[9:16],
  ProtPath = omics_gene_ids[17:24]
)

rna_sig <- c(omics_gene_ids[1:6], omics_gene_ids[9:13])
prot_sig <- c(omics_gene_ids[c(1:4, 7:8)], omics_gene_ids[17:21])

rna_ora_res <- ora(
  gene = rna_sig,
  universe = omics_gene_ids,
  gene_sets = late_fusion_pathways
)

prot_ora_res <- ora(
  gene = prot_sig,
  universe = omics_gene_ids[c(1:60)],
  gene_sets = late_fusion_pathways
)

late_fusion_res <- aggregate_enrichment(
  res_list = list(RNA = rna_ora_res, PROT = prot_ora_res),
  method = "brown"
)

as.data.frame(late_fusion_res)[, c("ID", "pvalue", "p.adjust", "Count")]
                   ID     pvalue   p.adjust Count
SharedPath SharedPath 0.01646848 0.03719786     8
RNAPath       RNAPath 0.02479857 0.03719786     5
ProtPath     ProtPath 0.04647113 0.04647113     5

7.1.7 6. Contribution Tracing

After running a multi-omics integration, you may want to know whether a significant pathway was driven by the transcriptome, the proteome, or their combination. enrichit provides tools to trace the contribution back to the original omics data.

First, you can classify the pattern of each pathway by comparing the merged results with single-omics results:

# Run ORA for individual omics
rna_ora_res <- ora(
    gene = omics_gene_ids[rna_pvals < 0.05],
    universe = omics_gene_ids,
    gene_sets = omics_pathways
)
prot_ora_res <- ora(
    gene = omics_gene_ids[prot_pvals < 0.05],
    universe = omics_gene_ids,
    gene_sets = omics_pathways
)

# Classify contribution patterns
classified_ora_res <- classify_omics_pattern(
    merged_res = early_ora_res,
    single_res = list(RNA = rna_ora_res, PROT = prot_ora_res),
    p_cutoff = 0.05,
    by = "pvalue"   # enrichit::ora() reports pvalue, not p.adjust
)

head(as.data.frame(classified_ora_res)[, c("ID", "pvalue", "Omics_Pattern")])
             ID       pvalue Omics_Pattern
1 TargetPathway 1.707415e-25        Shared

The Omics_Pattern column will label the pathway as Shared, RNA-Specific, PROT-Specific, or Enhanced (1+1>2).

Then, you can extract the gene-level contribution for a specific pathway to see the original statistics of the core enrichment genes:

# Get original multi-omics statistics for genes in the pathway
contribution_df <- get_omics_contribution(
    res = classified_ora_res, 
    agg = agg_fisher_res, 
    pathway_id = "TargetPathway"
)

head(contribution_df, 3)
  Feature        RNA       PROT Aggregated_Score Aggregated_Pvalue
1   Gene1 0.02117718 0.07981969         1.903800       0.012479586
2   Gene2 0.02011611 0.04066417         2.178296       0.006632908
3   Gene3 0.02044263 0.07983821         1.916972       0.012106753

This data frame is extremely useful for downstream visualization, such as drawing multi-omics heatmaps for the core enriched genes.

7.2 Next steps

References