Last updated: 2025-08-28

Checks: 6 1

Knit directory: multigroup_ctwas_analysis/

This reproducible R Markdown analysis was created with workflowr (version 1.7.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


The R Markdown file has unstaged changes. To know which version of the R Markdown file created these results, you’ll want to first commit it to the Git repo. If you’re still working on the analysis, you can ignore this warning. When you’re finished, you can run wflow_publish to commit the R Markdown file and build the HTML.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20231112) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 7b9b09f. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Unstaged changes:
    Modified:   analysis/ctwas_paper_figures.Rmd

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/ctwas_paper_figures.Rmd) and HTML (docs/ctwas_paper_figures.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd 7b9b09f sq-96 2025-08-28 update
html 7b9b09f sq-96 2025-08-28 update
Rmd 4b9798e sq-96 2025-08-28 update
html 4b9798e sq-96 2025-08-28 update
Rmd 81430a0 sq-96 2025-08-28 update
html 81430a0 sq-96 2025-08-28 update
Rmd 9633ed7 sq-96 2025-08-22 update
html 9633ed7 sq-96 2025-08-22 update
Rmd 609e217 sq-96 2025-08-22 update
html 609e217 sq-96 2025-08-22 update
Rmd 6f2a725 sq-96 2025-08-21 update
html 6f2a725 sq-96 2025-08-21 update
Rmd 5896c92 sq-96 2025-08-20 update
html 5896c92 sq-96 2025-08-20 update
Rmd 4343a9a sq-96 2025-08-20 update
html 4343a9a sq-96 2025-08-20 update
Rmd 36913e7 sq-96 2025-08-20 update
html 36913e7 sq-96 2025-08-20 update
Rmd 4cdfb66 sq-96 2025-08-20 update
html 4cdfb66 sq-96 2025-08-20 update
Rmd b3fe907 sq-96 2025-08-18 update
html b3fe907 sq-96 2025-08-18 update
Rmd e41cab7 sq-96 2025-08-18 update
html e41cab7 sq-96 2025-08-18 update
Rmd bbd203f sq-96 2025-08-18 update
html bbd203f sq-96 2025-08-18 update
Rmd e248888 sq-96 2025-08-18 update
html e248888 sq-96 2025-08-18 update
Rmd ee48863 sq-96 2025-08-18 update
html ee48863 sq-96 2025-08-18 update
Rmd 6b7c3e2 sq-96 2025-08-18 update
html 6b7c3e2 sq-96 2025-08-18 update
Rmd f4bc224 sq-96 2025-08-18 update
html f4bc224 sq-96 2025-08-18 update
Rmd fd2ccbd sq-96 2025-08-18 update
html fd2ccbd sq-96 2025-08-18 update
Rmd d041eed sq-96 2025-08-18 update
html d041eed sq-96 2025-08-18 update
Rmd 3de1191 sq-96 2025-08-18 update
html 3de1191 sq-96 2025-08-18 update

Figure 2: cTWAS simulations (Correlated Brain Tissues)

Figure 2a: Enrichment

Version Author Date
4cdfb66 sq-96 2025-08-20
ee48863 sq-96 2025-08-18
6b7c3e2 sq-96 2025-08-18
f4bc224 sq-96 2025-08-18
d041eed sq-96 2025-08-18

Figure 2b: PHE

Version Author Date
4cdfb66 sq-96 2025-08-20
ee48863 sq-96 2025-08-18
f4bc224 sq-96 2025-08-18
fd2ccbd sq-96 2025-08-18

Figure 2c: Inflated single group PHE

Version Author Date
4cdfb66 sq-96 2025-08-20
ee48863 sq-96 2025-08-18
f4bc224 sq-96 2025-08-18

Figure 2d: PIP calibration

Version Author Date
4cdfb66 sq-96 2025-08-20
ee48863 sq-96 2025-08-18

Figure 2e: Power and False discovery rate

Version Author Date
4cdfb66 sq-96 2025-08-20
ee48863 sq-96 2025-08-18

Figure 3: cTWAS estimates genetic architecture of complex traits from GTEx

Figure 3a: Tissues are often correlated: but one tissue is not enough.

Version Author Date
6f2a725 sq-96 2025-08-21
5896c92 sq-96 2025-08-20
4343a9a sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20
ee48863 sq-96 2025-08-18

Figure 3b: Modalities are mostly independent

Version Author Date
81430a0 sq-96 2025-08-28
9633ed7 sq-96 2025-08-22
6f2a725 sq-96 2025-08-21
5896c92 sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20
b3fe907 sq-96 2025-08-18
e41cab7 sq-96 2025-08-18
bbd203f sq-96 2025-08-18

Figure 3b: Shared pattern

Version Author Date
81430a0 sq-96 2025-08-28
5896c92 sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20

Figure 3c: Partition of h2g (Multiple tissues contribute and Contribution of each modality)

Version Author Date
81430a0 sq-96 2025-08-28
5896c92 sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20

Figure 3d: Percent of GWAS loci with Coloc signals

[1] 182
[1] 49

Version Author Date
81430a0 sq-96 2025-08-28
5896c92 sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20

Figure 3e: MECS estimated eQTL heritability contributions

Version Author Date
81430a0 sq-96 2025-08-28
5896c92 sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20

Figure 3e: MECS estimated eQTL heritability contributions

Version Author Date
81430a0 sq-96 2025-08-28
5896c92 sq-96 2025-08-20
4343a9a sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20

Figure 4: Multi-cTWAS improves the discovery of candidate genes

Figure 4a: Incorporating multiple modality and tissues improves discovery power

Version Author Date
81430a0 sq-96 2025-08-28
5896c92 sq-96 2025-08-20
4343a9a sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20

Figure 4b: Validation with Silver Standand Genes

Version Author Date
7b9b09f sq-96 2025-08-28
5896c92 sq-96 2025-08-20
36913e7 sq-96 2025-08-20

Figure 4c: M-cTWAS identified genes with higher POPS scores

Averaged POPS scores across all traits stratified by M-cTWAS PIPs

Version Author Date
7b9b09f sq-96 2025-08-28
5896c92 sq-96 2025-08-20
4343a9a sq-96 2025-08-20
4cdfb66 sq-96 2025-08-20

Figure 4d: Comparison of number of signals per region between M-cTWAS, Coloc and TWAS

cTWAS tends to report single genes per locus, while coloc or TWAS report many. The number of signals of Coloc and TWAS are calcuated in regions with TWAS signals (after bonferroni correction). M-cTWAS signals are culated in regions selected by screen region step.

Version Author Date
7b9b09f sq-96 2025-08-28
9633ed7 sq-96 2025-08-22
609e217 sq-96 2025-08-22
5896c92 sq-96 2025-08-20
36913e7 sq-96 2025-08-20

Figure 4e: Compare with TGFM: compare with genes found in the paper. Show that unique genes by cTWAS are valid

For unique genes identified by M-cTWAS and TGFM, I plotted the distribution of POPS scores and showed that M-cTWAS unique genes have higher POPS score than TGFM unique genes.

Version Author Date
7b9b09f sq-96 2025-08-28
81430a0 sq-96 2025-08-28
609e217 sq-96 2025-08-22
4343a9a sq-96 2025-08-20

Version Author Date
7b9b09f sq-96 2025-08-28

Version Author Date
7b9b09f sq-96 2025-08-28
81430a0 sq-96 2025-08-28
609e217 sq-96 2025-08-22
5896c92 sq-96 2025-08-20

Version Author Date
7b9b09f sq-96 2025-08-28
81430a0 sq-96 2025-08-28

Figure 5: cTWAS discovers candidate genes for complex traits and provides insights on their molecular mechanisms

Version Author Date
7b9b09f sq-96 2025-08-28

Version Author Date
7b9b09f sq-96 2025-08-28
81430a0 sq-96 2025-08-28

Figure 5: Brain epiQTLs explain a large fraction of missing heritability by eQTLs

Figure 5a: Enrichment of epiQTLs vs. eQTLs

Version Author Date
7b9b09f sq-96 2025-08-28
81430a0 sq-96 2025-08-28
609e217 sq-96 2025-08-22

Figure 5b: epiQTLs explain a larger fraction of h2g than eQTLs and different QTLs have limited overlap

Version Author Date
7b9b09f sq-96 2025-08-28
81430a0 sq-96 2025-08-28

Version Author Date
7b9b09f sq-96 2025-08-28
81430a0 sq-96 2025-08-28

Figure 5c: Using epiQTL discovered novel CREs missed by eQTLs

Version Author Date
7b9b09f sq-96 2025-08-28

sessionInfo()
R version 4.2.0 (2022-04-22)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS/LAPACK: /software/openblas-0.3.13-el7-x86_64/lib/libopenblas_haswellp-r0.3.13.so

locale:
 [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C         LC_TIME=C           
 [4] LC_COLLATE=C         LC_MONETARY=C        LC_MESSAGES=C       
 [7] LC_PAPER=C           LC_NAME=C            LC_ADDRESS=C        
[10] LC_TELEPHONE=C       LC_MEASUREMENT=C     LC_IDENTIFICATION=C 

attached base packages:
[1] stats4    grid      stats     graphics  grDevices utils     datasets 
[8] methods   base     

other attached packages:
 [1] RColorBrewer_1.1-3        grex_1.9                 
 [3] patchwork_1.3.0           scales_1.3.0             
 [5] circlize_0.4.15           ComplexHeatmap_2.12.0    
 [7] plotrix_3.8-2             cowplot_1.1.3            
 [9] ggpubr_0.6.0              EnsDb.Hsapiens.v86_2.99.0
[11] ensembldb_2.22.0          AnnotationFilter_1.22.0  
[13] GenomicFeatures_1.50.4    AnnotationDbi_1.60.2     
[15] Biobase_2.58.0            GenomicRanges_1.50.2     
[17] GenomeInfoDb_1.34.9       IRanges_2.32.0           
[19] S4Vectors_0.36.2          BiocGenerics_0.44.0      
[21] pheatmap_1.0.12           dplyr_1.1.4              
[23] egg_0.4.5                 gridExtra_2.3            
[25] ggrepel_0.9.6             ggplot2_3.5.1            
[27] data.table_1.16.0         ctwas_0.5.32             
[29] workflowr_1.7.0          

loaded via a namespace (and not attached):
  [1] backports_1.4.1             BiocFileCache_2.6.1        
  [3] repr_1.1.4                  lazyeval_0.2.2             
  [5] BiocParallel_1.32.6         LDlinkR_1.4.0              
  [7] digest_0.6.37               foreach_1.5.2              
  [9] htmltools_0.5.8.1           fansi_1.0.6                
 [11] magrittr_2.0.3              memoise_2.0.1              
 [13] cluster_2.1.3               doParallel_1.0.17          
 [15] tzdb_0.4.0                  Biostrings_2.66.0          
 [17] readr_2.1.5                 AMR_2.1.1                  
 [19] matrixStats_1.4.1           locuszoomr_0.3.5           
 [21] prettyunits_1.2.0           colorspace_2.1-1           
 [23] skimr_2.1.4                 blob_1.2.4                 
 [25] rappdirs_0.3.3              xfun_0.47                  
 [27] callr_3.7.2                 crayon_1.5.3               
 [29] RCurl_1.98-1.16             jsonlite_1.8.9             
 [31] iterators_1.0.14            zoo_1.8-12                 
 [33] glue_1.7.0                  gtable_0.3.5               
 [35] zlibbioc_1.44.0             XVector_0.38.0             
 [37] GetoptLong_1.0.5            DelayedArray_0.24.0        
 [39] car_3.1-1                   shape_1.4.6                
 [41] abind_1.4-5                 DBI_1.2.3                  
 [43] rstatix_0.7.2               Rcpp_1.0.13                
 [45] viridisLite_0.4.2           progress_1.2.3             
 [47] clue_0.3-61                 bit_4.5.0                  
 [49] htmlwidgets_1.6.4           httr_1.4.7                 
 [51] farver_2.1.2                pkgconfig_2.0.3            
 [53] XML_3.99-0.14               sass_0.4.9                 
 [55] dbplyr_2.5.0                utf8_1.2.4                 
 [57] labeling_0.4.3              tidyselect_1.2.1           
 [59] rlang_1.1.4                 later_1.3.2                
 [61] munsell_0.5.1               pgenlibr_0.3.7             
 [63] tools_4.2.0                 cachem_1.1.0               
 [65] cli_3.6.3                   generics_0.1.3             
 [67] RSQLite_2.3.7               broom_1.0.5                
 [69] evaluate_1.0.0              stringr_1.5.1              
 [71] fastmap_1.2.0               yaml_2.3.10                
 [73] processx_3.7.0              knitr_1.48                 
 [75] bit64_4.5.2                 fs_1.6.4                   
 [77] purrr_1.0.2                 KEGGREST_1.38.0            
 [79] whisker_0.4                 xml2_1.3.3                 
 [81] biomaRt_2.54.1              compiler_4.2.0             
 [83] rstudioapi_0.14             plotly_4.10.4              
 [85] filelock_1.0.3              curl_5.2.3                 
 [87] png_0.1-7                   ggsignif_0.6.3             
 [89] tibble_3.2.1                bslib_0.8.0                
 [91] stringi_1.8.4               highr_0.11                 
 [93] ps_1.7.1                    lattice_0.20-45            
 [95] ProtGenerics_1.30.0         Matrix_1.5-3               
 [97] vctrs_0.6.5                 pillar_1.9.0               
 [99] lifecycle_1.0.4             GlobalOptions_0.1.2        
[101] jquerylib_0.1.4             bitops_1.0-8               
[103] irlba_2.3.5.1               httpuv_1.6.5               
[105] rtracklayer_1.58.0          R6_2.5.1                   
[107] BiocIO_1.8.0                promises_1.3.0             
[109] codetools_0.2-18            SummarizedExperiment_1.28.0
[111] rprojroot_2.0.3             rjson_0.2.23               
[113] withr_3.0.1                 GenomicAlignments_1.34.1   
[115] Rsamtools_2.14.0            GenomeInfoDbData_1.2.9     
[117] parallel_4.2.0              hms_1.1.3                  
[119] tidyr_1.3.1                 gggrid_0.2-0               
[121] rmarkdown_2.28              MatrixGenerics_1.10.0      
[123] carData_3.0-5               Cairo_1.6-0                
[125] logging_0.10-108            git2r_0.30.1               
[127] mixsqp_0.3-54               getPass_0.2-2              
[129] base64enc_0.1-3             restfulr_0.0.15