# # 讀取資料
# prs_wt = read.delim("C:/Users/yuting/Desktop/pdc4pm_og/TPMI_GWAS_Stats/PRS_Weight/585.32_prs_weights.tsv", stringsAsFactors = F)
#
# all156 = read.delim("C:/Users/yuting/Desktop/pdc4pm_og/TPMI_GWAS_Stats/GWAS_Stats/585.32_all.156.txt", stringsAsFactors = F)
#
#
# # ====================
# # GWAS score
# # ====================
#
# # OR → log(OR)
# all156$ES_GWAS = log(all156$OR)
#
# all156$ID = paste0(all156$X.CHROM, ":",all156$POS)
#
# # 轉成risk allele與risk effect size
# all156$EA_GWAS = all156$A1
#
# idx_es = which(!is.na(all156$ES_GWAS) & all156$ES_GWAS < 0)
#
# if (length(idx_es) > 0) {
# all156$ES_GWAS[idx_es] = -all156$ES_GWAS[idx_es]
# all156$EA_GWAS[idx_es] = all156$OMITTED[idx_es]
# }
#
#
# all156$ID_ALT_REF = paste0(
# all156$X.CHROM, ":",
# all156$POS, ":",
# all156$A1, ":",
# all156$OMITTED
# )
#
# all156$ID_REF_ALT = paste0(
# all156$X.CHROM, ":",
# all156$POS, ":",
# all156$OMITTED, ":",
# all156$A1
# )
#
#
# # 匯出GWAS score檔
# write.table(all156[, c("ID", "EA_GWAS", "ES_GWAS", "ID_ALT_REF", "ID_REF_ALT")], file = "score_ES_GWAS.txt", sep = "\t", quote = F, row.names = F)
#
# # ====================
# # PRS methods
# # ====================
# prs_merged = merge(
# prs_wt,
# all156[, c("rsID", "X.CHROM", "POS", "A1", "OMITTED", "P")],
# by.x = "MarkerID",
# by.y = "rsID",
# all.x = T
# )
#
#
# # Marker為chr1_189313672_G_A格式者,拆解Chr_Pos_OMITTED_Alt
# library(tidyr)
# library(dplyr)
#
# idx = !grepl("^rs", prs_merged$MarkerID, ignore.case = TRUE)
#
# prs_merged[idx, c("X.CHROM", "POS", "OMITTED", "A1")] =
# separate(
# data.frame(MarkerID = prs_merged$MarkerID[idx]),
# col = MarkerID,
# into = c("X.CHROM", "POS", "OMITTED", "A1"),
# sep = "_"
# )
# prs_merged$X.CHROM = sub("^chr", "", prs_merged$X.CHROM)
#
# prs_merged$ID = paste0(prs_merged$X.CHROM, ":", prs_merged$POS)
#
# prs_merged$ID_ALT_REF =
# paste0(
# prs_merged$X.CHROM, ":",
# prs_merged$POS, ":",
# prs_merged$A1, ":",
# prs_merged$OMITTED
# )
#
#
# prs_merged$ID_REF_ALT = paste0(
# prs_merged$X.CHROM, ":",
# prs_merged$POS, ":",
# prs_merged$OMITTED, ":",
# prs_merged$A1
# )
#
#
# # 轉成risk allele與risk effect size
# # 須注意每個TPMI PheWeb的PRS模型,做哪些PRS方法。
# prs_methods = c("LDpred2", "Lassosum2", "PRS.CS", "SBayesR", "MegaPRS")
#
# for (m in prs_methods) {
#
# ea_col = paste0("EA_", m)
# beta = prs_merged[[m]]
#
# prs_merged[[ea_col]] = prs_merged$Effect_Allele
#
# # beta < 0 的變異
# idx = which(
# !is.na(beta) &
# beta < 0
# )
#
# if (length(idx) > 0) {
#
# alt = ifelse(
# prs_merged$A1[idx] != prs_merged$Effect_Allele[idx],
# prs_merged$A1[idx],
# prs_merged$OMITTED[idx]
# )
#
# prs_merged[[ea_col]][idx] = alt
# prs_merged[[m]][idx] = -prs_merged[[m]][idx]
# }
# }
#
# # 數字不顯示科學記號
# options(scipen = 999)
#
# # 匯出各PRS score檔
# for (m in prs_methods) {
#
# out = prs_merged[, c(
# "MarkerID",
# paste0("EA_", m),
# m,
# "ID_ALT_REF",
# "ID_REF_ALT"
# )]
#
# write.table(
# out,
# file = paste0("score_", m, ".txt"),
# sep = "\t",
# quote = FALSE,
# row.names = FALSE
# )
# }