Last updated: 2025-05-14
Checks: 7 0
Knit directory: prs/
This reproducible R Markdown analysis was created with workflowr (version 1.7.1). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
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(20250417) 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 0591bd8. 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:
Ignored files:
Ignored: .DS_Store
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: analysis/.DS_Store
Ignored: data/.DS_Store
Untracked files:
Untracked: analysis/continuous_artery/
Untracked: analysis/continuous_wb/
Untracked: analysis/metadata.txt
Untracked: analysis/metadata_artery.txt
Untracked: analysis/metadata_artery_quantile.txt
Untracked: analysis/metadata_quantile.txt
Untracked: analysis/normalized_counts.rda
Untracked: analysis/quantile_artery/
Untracked: analysis/quantile_wb/
Untracked: analysis/vst norm counts.rda
Untracked: data/Artery_Aorta.v8.covariates.txt
Untracked: data/GTEx_v8.bk
Untracked: data/GTEx_v8.rds
Untracked: data/T2D_hmPOS_GRCh38.txt
Untracked: data/Whole_Blood.v8.covariates.txt
Untracked: data/blood_cell/
Untracked: data/gene_reads_2017-06-05_v8_artery_aorta.gct
Untracked: data/gene_reads_2017-06-05_v8_whole_blood.gct
Untracked: data/gene_tpm_2017-06-05_v8_whole_blood.gct.gz
Untracked: data/immune/
Untracked: data/protein-coding_gene.txt
Unstaged changes:
Deleted: analysis/QC.Rmd
Deleted: analysis/normalized_counts.txt
Modified: analysis/prs_blood_cell.txt
Modified: prs.Rproj
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/validation.Rmd) and HTML
(docs/validation.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 | 0591bd8 | ElisaChen | 2025-05-14 | workflowr::wflow_publish(c("analysis/differential_expression.Rmd", |
| html | 8aa2b83 | ElisaChen | 2025-05-14 | Build site. |
| Rmd | b2c577c | ElisaChen | 2025-05-14 | workflowr::wflow_publish("analysis/validation.Rmd") |
# load prs & pcs
metadata_file <- "analysis/metadata_artery.txt"
metadata <- read.csv(metadata_file, header = T, sep = "\t", stringsAsFactors = T)
metadata$sex <- as.factor(metadata$sex)
traits <- metadata[, 7:43]
pc <- metadata[, 1:5]
# Calculate the correlation between each trait and each PC
correlation_matrix <- cor(traits, pc)
range(correlation_matrix)
[1] -0.2613287 0.2585593
correlation_matrix <- t(correlation_matrix)
# Create the heatmap using corrplot
corrplot(correlation_matrix, method = "color",
col = colorRampPalette(c("blue", "white", "red"))(200), # color palette
addCoef.col = "black", # Add correlation coefficients to the plot
number.cex = 0.4, # Adjust the font size of the numbers
tl.col = "black", # text label color
tl.srt = 90, # rotate text labels
tl.cex = 0.5,
title = "Correlation between Traits and expression PCs",
mar = c(0, 0, 1, 0)
)

| Version | Author | Date |
|---|---|---|
| 8aa2b83 | ElisaChen | 2025-05-14 |
# Load the gene expression data
gene_expr_file <- "data/gene_reads_2017-06-05_v8_artery_aorta.gct"
raw_count_df <- fread(gene_expr_file, header = TRUE, sep = "\t", drop = "id")
# load protein_coding list
protein_coding <- fread("data/protein-coding_gene.txt", sep = "\t")
protein_coding <- protein_coding[, c("symbol", "ensembl_gene_id")]
# keep only protein-coding genes
raw_count_df <- raw_count_df[raw_count_df$Description %in% protein_coding$symbol, ]
id <- raw_count_df$Name
raw_count <- raw_count_df[, -c(1:2)]
# modify GTEx sample names matching names used in PRS data
colnames(raw_count) <- sub("^(GTEX-[^-.]+).*", "\\1", colnames(raw_count))
matching_samples <- intersect(rownames(metadata), colnames(raw_count))
final_count <- raw_count[ , ..matching_samples]
# prefilter: keep only rows that have a count of at least 10
keep_genes <- rowSums(final_count >= 10) > 0
final_count <- final_count[keep_genes, ]
id <- id[keep_genes]
dim(final_count)
# Loop through each trait and run DESeq2
for (trait in colnames(traits)) {
# Standardize PRS for the current trait
prs_trait <- traits[,trait]
prs_trait <- scale(prs_trait) # Standardize PRS to mean = 0, sd = 1
# Add the standardized PRS to the metadata for continuous trait
metadata[,trait] <- prs_trait
# Create the DESeqDataSet for the current trait
dds <- DESeqDataSetFromMatrix(
countData = as.matrix(final_count), # Raw counts
colData = metadata[, c(1:6, which(colnames(metadata) == trait))],
design = as.formula(paste("~ PC1 + PC2 + PC3 + PC4 + PC5 + sex +", trait))
)
rownames(dds) <- id
# Run DESeq2 analysis
dds <- DESeq(dds, parallel = TRUE, BPPARAM = MulticoreParam(4))
# Get the results for the current trait
res <- results(dds)
# Save the results to a file
write.csv(res, paste0("validation_", trait, "_results_artery_validation.csv"))
# print a summary of the results
print(paste("Results for trait:", trait))
print(summary(res))
# plot the MA-plot for the current trait
png(paste0("ma_plot_", trait, "_artery_validation.png"), width = 800, height = 600)
plotMA(res, main = paste("Continuous (Artery validation): MA Plot for", trait))
dev.off()
# volcano plot
res_tableOE <- as.data.frame(res)
res_tableOE$gene_name <- raw_count_df$Description[keep_genes]
res_tableOE <- mutate(res_tableOE, threshold_OE = padj < 0.1)
res_tableOE <- res_tableOE %>% arrange(padj) %>% mutate(genelabels = "")
res_tableOE$genelabels[1:10] <- res_tableOE$gene_name[1:10]
volcano_plot <- ggplot(res_tableOE, aes(x = log2FoldChange, y = -log10(padj))) +
geom_point(aes(colour = threshold_OE)) +
geom_text_repel(aes(label = genelabels)) +
ggtitle(label = paste("Continuous: Volcano Plot for", trait),
subtitle = "Artery Aorta validation") +
xlab("log2 fold change") +
ylab("-log10 adjusted p-value") +
theme(legend.position = "none",
plot.title = element_text(size = rel(1.5), hjust = 0.5),
axis.title = element_text(size = rel(1.25)))
# Save the volcano plot
png(paste0("volcano_plot_", trait, "_artery_validation.png"), width = 800,
height = 600)
print(volcano_plot)
dev.off()
}
metadata_file <- "analysis/metadata_artery_quantile.txt"
metadata <- read.csv(metadata_file, header = T, sep = "\t", stringsAsFactors = T)
metadata$sex <- as.factor(metadata$sex)
traits <- metadata[, 7:43]
# Loop through each trait and run DESeq2
for (trait in colnames(traits)) {
# Create the DESeqDataSet for the current trait
dds <- DESeqDataSetFromMatrix(
countData = as.matrix(final_count), # Raw counts
colData = metadata[, c(1:6, which(colnames(metadata) == trait))],
design = as.formula(paste("~ PC1 + PC2 + PC3 + PC4 + PC5 + sex +", trait))
)
rownames(dds) <- id
# Run DESeq2 analysis
dds <- DESeq(dds, parallel = TRUE, BPPARAM = MulticoreParam(4))
# Get the results for the current trait
res <- results(dds)
# Save the results to a file
write.csv(res, paste0("validation_", trait, "_quantile_results_artery_validation.csv"))
# print a summary of the results
print(paste("Results for trait:", trait))
print(summary(res))
# plot the MA-plot for the current trait
png(paste0("ma_plot_quantile_", trait, "_artery_validation.png"), width = 800, height = 600)
plotMA(res, main = paste("Quantile (Artery Validation): MA Plot for", trait))
dev.off()
# volcano plot
res_tableOE <- as.data.frame(res)
res_tableOE$gene_name <- raw_count_df$Description[keep_genes]
res_tableOE <- mutate(res_tableOE, threshold_OE = padj < 0.1 &
abs(log2FoldChange) >= 0.5)
res_tableOE <- res_tableOE %>% arrange(padj) %>% mutate(genelabels = "")
res_tableOE$genelabels[1:10] <- res_tableOE$gene_name[1:10]
volcano_plot <- ggplot(res_tableOE, aes(x = log2FoldChange, y = -log10(padj))) +
geom_point(aes(colour = threshold_OE)) +
geom_text_repel(aes(label = genelabels)) +
ggtitle(paste("Quantile:Volcano Plot for", trait),
subtitle = "Artery Aorta validation") +
xlab("log2 fold change") +
ylab("-log10 adjusted p-value") +
theme(legend.position = "none",
plot.title = element_text(size = rel(1.5), hjust = 0.5),
axis.title = element_text(size = rel(1.25)))
# Save the volcano plot
png(paste0("volcano_plot_quantile_", trait, "_artery_validation.png"), width = 800, height = 600)
print(volcano_plot)
dev.off()
}
BgRatio: Number of all genes in specific GO term / Number of universal genes
GeneRatio: Number of genes enriched in specific term / Number of input genes
FoldEnrichment: GeneRatio / BgRatio
# continous
dir_path <- "analysis/continuous_artery"
files <- list.files(dir_path, pattern = "differential_expression_.*_results_artery_validation.csv", full.names = TRUE)
for (file in files) {
trait <- gsub("differential_expression_(.*)_results_artery_validation.csv", "\\1", basename(file))
trait
res_tableOE <- read.csv(file, header = T, row.names = 1)
deGenes <- res_tableOE[res_tableOE$padj < 0.1 &
abs(res_tableOE$log2FoldChange) >= 0.5, ]
deGenes$gene_id <- gsub("\\.\\d+$", "", rownames(deGenes))
gse <- enrichGO(gene = deGenes$gene_id, ont = "BP",
OrgDb ="org.Hs.eg.db", keyType = "ENSEMBL")
write.csv(as.data.frame(gse), file = paste0("GO_enrichment_", trait, "_results_artery_validation.csv"))
gse <- as.data.frame(gse)
gse$GeneRatio_num <- as.numeric(sapply(strsplit(gse$GeneRatio, "/"),
function(x) x[1])) /
as.numeric(sapply(strsplit(gse$GeneRatio, "/"), function(x) x[2]))
gse$BgRatio_num <- as.numeric(sapply(strsplit(gse$BgRatio, "/"), function(x) x[1])) /
as.numeric(sapply(strsplit(gse$BgRatio, "/"), function(x) x[2]))
gse <- cbind(gse, FoldEnrich = gse$GeneRatio_num/gse$BgRatio_num)
if (nrow(gse) >= 20) {
enrich_plot <- plotEnrich(gse[1:20,], plot_type = "dot", scale_ratio = 0.5) +
labs(title = paste("Continuous: Enrichment plot for", trait),
subtitle = "Artery Aorta validation") +
theme(plot.title = element_text(size = 10))
}else{
enrich_plot <- plotEnrich(gse, plot_type = "dot", scale_ratio = 0.5) +
labs(title = paste("Continuous: Enrichment plot for", trait),
subtitle = "Artery Aorta validation") +
theme(plot.title = element_text(size = 10))
}
ggsave(paste0("enrichment_plot_", trait, "_artery_validation.png"), plot = enrich_plot, width = 8, height = 6)
}
# quantile
dir_path <- "analysis/quantile_artery"
files <- list.files(dir_path, pattern = "differential_expression_.*_quantile_results_artery_validation.csv",
full.names = TRUE)
for (file in files) {
trait <- gsub("differential_expression_(.*)_quantile_results_artery_validation.csv", "\\1", basename(file))
trait
res_tableOE <- read.csv(file, header = T, row.names = 1)
deGenes <- res_tableOE[res_tableOE$padj < 0.1 &
abs(res_tableOE$log2FoldChange) >= 0.5, ]
deGenes$gene_id <- gsub("\\.\\d+$", "", rownames(deGenes))
gse <- enrichGO(gene = deGenes$gene_id, ont = "BP",
OrgDb ="org.Hs.eg.db", keyType = "ENSEMBL")
write.csv(as.data.frame(gse), file = paste0("GO_enrichment_quantile_", trait, "_results_artery_validation.csv"))
gse <- as.data.frame(gse)
gse$GeneRatio_num <- as.numeric(sapply(strsplit(gse$GeneRatio, "/"),
function(x) x[1])) /
as.numeric(sapply(strsplit(gse$GeneRatio, "/"), function(x) x[2]))
gse$BgRatio_num <- as.numeric(sapply(strsplit(gse$BgRatio, "/"), function(x) x[1])) /
as.numeric(sapply(strsplit(gse$BgRatio, "/"), function(x) x[2]))
gse <- cbind(gse, FoldEnrich = gse$GeneRatio_num/gse$BgRatio_num)
if (nrow(gse) >= 20) {
enrich_plot <- plotEnrich(gse[1:20,], plot_type = "dot", scale_ratio = 0.5) +
labs(title = paste("Quantile: Enrichment plot for", trait),
subtitle = "Artery Aorta validation") +
theme(plot.title = element_text(size = 10))
}else{
enrich_plot <- plotEnrich(gse, plot_type = "dot", scale_ratio = 0.5) +
labs(title = paste("Quantile: Enrichment plot for", trait),
subtitle = "Artery Aorta validation") +
theme(plot.title = element_text(size = 10))
}
ggsave(paste0("enrichment_plot_quantile_", trait, "_artery_validation.png"), plot = enrich_plot, width = 8, height = 6)
}
continuous_dir <- "analysis/continuous_artery"
quantile_dir <- "analysis/quantile_artery"
# Get the list of differential expression results and GO enrichment results
de_files_continuous <- list.files(continuous_dir, pattern = "differential_expression_.*_results_artery_validation.csv",
full.names = TRUE)
go_files_continuous <- list.files(continuous_dir, pattern = "GO_enrichment_.*_results_artery_validation.csv",
full.names = TRUE)
de_files_quantile <- list.files(quantile_dir, pattern = "differential_expression_.*_quantile_results_artery_validation.csv",
full.names = TRUE)
go_files_quantile <- list.files(quantile_dir, pattern = "GO_enrichment_quantile_.*_results_artery_validation.csv",
full.names = TRUE)
# Initialize a data frame to store the results
results_df_continuous <- data.frame(trait = character(),
num_significant_de = integer(),
upregulated = integer(),
downregulated = integer(),
num_enriched_go = integer(),
stringsAsFactors = FALSE)
results_df_quantile <- data.frame(trait = character(),
num_significant_de = integer(),
upregulated = integer(),
downregulated = integer(),
num_enriched_go = integer(),
stringsAsFactors = FALSE)
# Function to extract significant DE genes and GO enriched pathways
extract_results <- function(de_file, go_file, analysis_type) {
# Load the differential expression results
res <- read.csv(de_file, header = T, row.names = 1)
# Filter for significant DE genes (padj < 0.1)
significant_de <- res[!is.na(res$padj) & res$padj < 0.1, ]
# Count number of upregulated and downregulated genes
upregulated <- sum(significant_de$log2FoldChange > 0)
downregulated <- sum(significant_de$log2FoldChange < 0)
# Load the GO enrichment results
go_res <- read.csv(go_file, header = T, row.names = 1)
# Count the number of enriched GO pathways (adjusted p-value < 0.05)
enriched_go <- sum(go_res$p.adjust < 0.05)
if (analysis_type == "continuous"){
# Extract trait name from the file name
trait_name <- gsub("differential_expression_|_results.csv", "", basename(de_file))
# Create a row for this trait and add it to the results data frame
results_df_continuous <<- rbind(results_df_continuous,
data.frame(trait = trait_name,
num_significant_de = nrow(significant_de),
upregulated = upregulated,
downregulated = downregulated,
num_enriched_go = enriched_go))
}else if (analysis_type == "quantile") {
# Extract trait name from the file name
trait_name <- gsub("differential_expression_|_quantile_results.csv", "", basename(de_file))
# Create a row for this trait and add it to the results data frame
results_df_quantile <<- rbind(
results_df_quantile,
data.frame(
trait = trait_name,
num_significant_de = nrow(significant_de),
upregulated = upregulated,
downregulated = downregulated,
num_enriched_go = enriched_go
)
)
}
}
# Loop through the continuous files and extract results
for (i in seq_along(de_files_continuous)) {
extract_results(de_files_continuous[i], go_files_continuous[i], "continuous")
}
# Loop through the quantile files and extract results
for (i in seq_along(de_files_quantile)) {
extract_results(de_files_quantile[i], go_files_quantile[i], "quantile")
}
colnames(results_df_continuous) <- c("Trait",
"Significant differential expressed genes",
"Up", "Down", "Significant GO enriched pathways")
colnames(results_df_quantile) <- c("Trait",
"Significant differential expressed genes",
"Up", "Down", "Significant GO enriched pathways")
knitr::kable(results_df_continuous, caption = "Continuous")
| Trait | Significant differential expressed genes | Up | Down | Significant GO enriched pathways |
|---|---|---|---|---|
| Basophil.count_results_artery_validation.csv | 284 | 254 | 30 | 141 |
| Basophil.percentage.of.white.cells_results_artery_validation.csv | 349 | 273 | 76 | 109 |
| Celiac_GCST90014442_results_artery_validation.csv | 418 | 346 | 72 | 171 |
| Celiac_GCST90468120_results_artery_validation.csv | 103 | 16 | 87 | 111 |
| Eosinophil.count_results_artery_validation.csv | 251 | 186 | 65 | 121 |
| Eosinophil.percentage.of.white.cells_results_artery_validation.csv | 139 | 12 | 127 | 69 |
| Hematocrit_results_artery_validation.csv | 184 | 38 | 146 | 78 |
| Hemoglobin.concentration_results_artery_validation.csv | 217 | 77 | 140 | 88 |
| High.light.scatter.reticulocyte.count_results_artery_validation.csv | 67 | 56 | 11 | 2 |
| High.light.scatter.reticulocyte.percentage.of.red.cells_results_artery_validation.csv | 93 | 80 | 13 | 22 |
| IBD_GCST90013901_results_artery_validation.csv | 373 | 107 | 266 | 149 |
| IBD_GCST90013951_results_artery_validation.csv | 479 | 135 | 344 | 151 |
| Immature.fraction.of.reticulocytes_results_artery_validation.csv | 269 | 159 | 110 | 101 |
| LUPUS_GCST003156_results_artery_validation.csv | 132 | 44 | 88 | 7 |
| LUPUS_GCST011096_results_artery_validation.csv | 131 | 52 | 79 | 32 |
| Lymphocyte.count_results_artery_validation.csv | 197 | 89 | 108 | 55 |
| Lymphocyte.percentage.of.white.cells_results_artery_validation.csv | 200 | 17 | 183 | 116 |
| Mean.corpuscular.hemoglobin_results_artery_validation.csv | 293 | 103 | 190 | 77 |
| Mean.corpuscular.hemoglobin.concentration_results_artery_validation.csv | 1057 | 172 | 885 | 144 |
| Mean.corpuscular.volume_results_artery_validation.csv | 205 | 140 | 65 | 77 |
| Mean.platelet.volume_results_artery_validation.csv | 155 | 126 | 29 | 63 |
| Mean.reticulocyte.volume_results_artery_validation.csv | 115 | 77 | 38 | 76 |
| Mean.sphered.corpuscular.volume_results_artery_validation.csv | 73 | 29 | 44 | 38 |
| Monocyte.count_results_artery_validation.csv | 206 | 185 | 21 | 130 |
| Monocyte.percentage.of.white.cells_results_artery_validation.csv | 77 | 53 | 24 | 19 |
| Neutrophil.count_results_artery_validation.csv | 436 | 307 | 129 | 183 |
| Neutrophil.percentage.of.white.cells_results_artery_validation.csv | 466 | 313 | 153 | 220 |
| Platelet.count_results_artery_validation.csv | 139 | 68 | 71 | 137 |
| Platelet.crit_results_artery_validation.csv | 310 | 169 | 141 | 229 |
| Platelet.distribution.width_results_artery_validation.csv | 251 | 180 | 71 | 73 |
| Red.blood.cell.count_results_artery_validation.csv | 162 | 25 | 137 | 65 |
| Red.cell.distribution.width_results_artery_validation.csv | 242 | 93 | 149 | 74 |
| Reticulocyte.count_results_artery_validation.csv | 33 | 18 | 15 | 42 |
| Reticulocyte.fraction.of.red.cells_results_artery_validation.csv | 47 | 33 | 14 | 52 |
| T1D_GCST90000529_results_artery_validation.csv | 123 | 100 | 23 | 74 |
| T1D_GCST90014023_results_artery_validation.csv | 447 | 282 | 165 | 140 |
| White.blood.cell.count_results_artery_validation.csv | 481 | 412 | 69 | 183 |
knitr::kable(results_df_quantile, caption = "Quantile (Stratify trait into top 25% and remaining)")
| Trait | Significant differential expressed genes | Up | Down | Significant GO enriched pathways |
|---|---|---|---|---|
| Basophil.count_quantile_results_artery_validation.csv | 325 | 292 | 33 | 135 |
| Basophil.percentage.of.white.cells_quantile_results_artery_validation.csv | 218 | 186 | 32 | 125 |
| Celiac_GCST90014442_quantile_results_artery_validation.csv | 392 | 332 | 60 | 135 |
| Celiac_GCST90468120_quantile_results_artery_validation.csv | 72 | 26 | 46 | 103 |
| Eosinophil.count_quantile_results_artery_validation.csv | 249 | 209 | 40 | 133 |
| Eosinophil.percentage.of.white.cells_quantile_results_artery_validation.csv | 32 | 6 | 26 | 64 |
| Hematocrit_quantile_results_artery_validation.csv | 127 | 63 | 64 | 159 |
| Hemoglobin.concentration_quantile_results_artery_validation.csv | 122 | 84 | 38 | 153 |
| High.light.scatter.reticulocyte.count_quantile_results_artery_validation.csv | 60 | 17 | 43 | 134 |
| High.light.scatter.reticulocyte.percentage.of.red.cells_quantile_results_artery_validation.csv | 134 | 105 | 29 | 55 |
| IBD_GCST90013901_quantile_results_artery_validation.csv | 159 | 115 | 44 | 139 |
| IBD_GCST90013951_quantile_results_artery_validation.csv | 226 | 108 | 118 | 139 |
| Immature.fraction.of.reticulocytes_quantile_results_artery_validation.csv | 140 | 101 | 39 | 111 |
| LUPUS_GCST003156_quantile_results_artery_validation.csv | 143 | 57 | 86 | 78 |
| LUPUS_GCST011096_quantile_results_artery_validation.csv | 163 | 68 | 95 | 114 |
| Lymphocyte.count_quantile_results_artery_validation.csv | 278 | 100 | 178 | 89 |
| Lymphocyte.percentage.of.white.cells_quantile_results_artery_validation.csv | 127 | 22 | 105 | 123 |
| Mean.corpuscular.hemoglobin_quantile_results_artery_validation.csv | 319 | 143 | 176 | 119 |
| Mean.corpuscular.hemoglobin.concentration_quantile_results_artery_validation.csv | 793 | 133 | 660 | 471 |
| Mean.corpuscular.volume_quantile_results_artery_validation.csv | 269 | 166 | 103 | 144 |
| Mean.platelet.volume_quantile_results_artery_validation.csv | 193 | 164 | 29 | 19 |
| Mean.reticulocyte.volume_quantile_results_artery_validation.csv | 167 | 49 | 118 | 48 |
| Mean.sphered.corpuscular.volume_quantile_results_artery_validation.csv | 188 | 21 | 167 | 86 |
| Monocyte.count_quantile_results_artery_validation.csv | 575 | 359 | 216 | 108 |
| Monocyte.percentage.of.white.cells_quantile_results_artery_validation.csv | 169 | 109 | 60 | 145 |
| Neutrophil.count_quantile_results_artery_validation.csv | 339 | 247 | 92 | 363 |
| Neutrophil.percentage.of.white.cells_quantile_results_artery_validation.csv | 551 | 373 | 178 | 268 |
| Platelet.count_quantile_results_artery_validation.csv | 152 | 129 | 23 | 124 |
| Platelet.crit_quantile_results_artery_validation.csv | 310 | 275 | 35 | 153 |
| Platelet.distribution.width_quantile_results_artery_validation.csv | 354 | 309 | 45 | 181 |
| Red.blood.cell.count_quantile_results_artery_validation.csv | 118 | 26 | 92 | 29 |
| Red.cell.distribution.width_quantile_results_artery_validation.csv | 172 | 75 | 97 | 150 |
| Reticulocyte.count_quantile_results_artery_validation.csv | 61 | 26 | 35 | 99 |
| Reticulocyte.fraction.of.red.cells_quantile_results_artery_validation.csv | 39 | 15 | 24 | 73 |
| T1D_GCST90000529_quantile_results_artery_validation.csv | 131 | 95 | 36 | 45 |
| T1D_GCST90014023_quantile_results_artery_validation.csv | 379 | 266 | 113 | 170 |
| White.blood.cell.count_quantile_results_artery_validation.csv | 284 | 231 | 53 | 260 |





































sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur ... 10.16
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats4 stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] clusterProfiler_4.6.2 enrichplot_1.18.4
[3] org.Hs.eg.db_3.16.0 AnnotationDbi_1.60.2
[5] genekitr_1.2.8 ggrepel_0.9.6
[7] BiocParallel_1.32.6 DESeq2_1.38.3
[9] SummarizedExperiment_1.28.0 Biobase_2.58.0
[11] MatrixGenerics_1.10.0 matrixStats_1.2.0
[13] GenomicRanges_1.50.2 GenomeInfoDb_1.34.9
[15] IRanges_2.32.0 S4Vectors_0.36.2
[17] BiocGenerics_0.44.0 corrplot_0.95
[19] ggplot2_3.5.1 dplyr_1.1.4
[21] data.table_1.16.4 workflowr_1.7.1
loaded via a namespace (and not attached):
[1] shadowtext_0.1.4 fastmatch_1.1-6 plyr_1.8.9
[4] igraph_1.5.1 lazyeval_0.2.2 splines_4.2.2
[7] usethis_3.1.0 urltools_1.7.3 digest_0.6.37
[10] yulab.utils_0.2.0 htmltools_0.5.8.1 GOSemSim_2.24.0
[13] viridis_0.6.5 GO.db_3.16.0 magrittr_2.0.3
[16] memoise_2.0.1 remotes_2.5.0 openxlsx_4.2.5.2
[19] Biostrings_2.66.0 annotate_1.76.0 graphlayouts_1.0.1
[22] prettyunits_1.2.0 colorspace_2.1-1 blob_1.2.4
[25] xfun_0.50 callr_3.7.6 crayon_1.5.3
[28] RCurl_1.98-1.16 jsonlite_1.8.9 scatterpie_0.2.4
[31] ape_5.7-1 glue_1.8.0 polyclip_1.10-7
[34] gtable_0.3.6 zlibbioc_1.44.0 XVector_0.38.0
[37] DelayedArray_0.24.0 pkgbuild_1.4.6 scales_1.3.0
[40] DOSE_3.24.2 DBI_1.2.3 miniUI_0.1.1.1
[43] Rcpp_1.0.14 viridisLite_0.4.2 xtable_1.8-4
[46] progress_1.2.3 gridGraphics_0.5-1 tidytree_0.4.6
[49] bit_4.5.0.1 europepmc_0.4.3 profvis_0.4.0
[52] htmlwidgets_1.6.4 httr_1.4.7 fgsea_1.24.0
[55] RColorBrewer_1.1-3 ellipsis_0.3.2 urlchecker_1.0.1
[58] pkgconfig_2.0.3 XML_3.99-0.18 farver_2.1.2
[61] sass_0.4.9 locfit_1.5-9.8 ggplotify_0.1.2
[64] tidyselect_1.2.1 rlang_1.1.5 reshape2_1.4.4
[67] later_1.4.1 munsell_0.5.1 tools_4.2.2
[70] cachem_1.1.0 downloader_0.4 cli_3.6.3
[73] generics_0.1.3 RSQLite_2.3.9 gson_0.1.0
[76] devtools_2.4.5 evaluate_1.0.3 stringr_1.5.1
[79] fastmap_1.2.0 yaml_2.3.10 ggtree_3.6.2
[82] processx_3.8.5 knitr_1.49 bit64_4.6.0-1
[85] fs_1.6.5 tidygraph_1.3.0 zip_2.3.2
[88] purrr_1.0.2 KEGGREST_1.38.0 ggraph_2.1.0
[91] nlme_3.1-160 mime_0.12 whisker_0.4.1
[94] aplot_0.2.4 ggvenn_0.1.10 xml2_1.3.6
[97] compiler_4.2.2 rstudioapi_0.17.1 png_0.1-8
[100] treeio_1.22.0 tibble_3.2.1 tweenr_2.0.3
[103] geneplotter_1.76.0 bslib_0.9.0 stringi_1.8.4
[106] ps_1.8.1 lattice_0.22-6 Matrix_1.5-1
[109] vctrs_0.6.5 pillar_1.10.1 lifecycle_1.0.4
[112] triebeard_0.4.1 jquerylib_0.1.4 cowplot_1.1.3
[115] bitops_1.0-9 httpuv_1.6.15 patchwork_1.3.0
[118] qvalue_2.30.0 R6_2.5.1 promises_1.3.2
[121] gridExtra_2.3 sessioninfo_1.2.2 codetools_0.2-20
[124] pkgload_1.4.0 MASS_7.3-58.1 rprojroot_2.0.4
[127] withr_3.0.2 GenomeInfoDbData_1.2.9 parallel_4.2.2
[130] hms_1.1.3 grid_4.2.2 ggfun_0.1.8
[133] tidyr_1.3.1 HDO.db_0.99.1 rmarkdown_2.29
[136] git2r_0.33.0 getPass_0.2-4 ggforce_0.4.1
[139] shiny_1.10.0 geneset_0.2.7