@@ -34,7 +34,7 @@ par <- add_argument(par, "--col-chr", help="CHR number column", default="CHR", n
3434par <- add_argument(par , " --col-snp-id" , help = " SNP ID (RSID) column" , default = " SNP" , nargs = 1 )
3535par <- add_argument(par , " --col-A1" , help = " Effective allele column" , default = " A1" , nargs = 1 )
3636par <- add_argument(par , " --col-A2" , help = " Noneffective allele column" , default = " A2" , nargs = 1 )
37- par <- add_argument(par , " --col-bp" , help = " SNP position column" , default = " BP" , nargs = 1 )
37+ par <- add_argument(par , " --col-bp" , help = " SNP position column. Will be ignored if --merge-by-rsid flag is used " , default = " BP" , nargs = 1 )
3838par <- add_argument(par , " --col-stat" , help = " Effect estimate column" , default = " BETA" , nargs = 1 )
3939par <- add_argument(par , " --col-stat-se" , help = " Effect estimate standard error column" , default = " SE" , nargs = 1 )
4040par <- add_argument(par , " --col-pvalue" , help = " P-value column" , default = " P" , nargs = 1 )
@@ -52,7 +52,7 @@ par <- add_argument(par, "--hyper-p-max", help="Maximum (<1) of hyperparameter p
5252par <- add_argument(par , " --ldpred-mode" , help = ' Ether "auto" or "inf" (infinitesimal)' , default = " inf" )
5353par <- add_argument(par , " --cores" , help = " Number of CPU cores to use, otherwise use the available number of cores minus 1" , default = nb_cores())
5454par <- add_argument(par , ' --set-seed' , help = " Set a seed for reproducibility" , nargs = 1 )
55- par <- add_argument(par , " --merge-by-rsid" , help = " Merge using rsid (the default is to merge by chr:bp:a1:a2 codes)" , nargs = 0 )
55+ par <- add_argument(par , " --merge-by-rsid" , help = " Merge using rsid (the default is to merge by chr:bp:a1:a2 codes). " , flag = TRUE )
5656
5757parsed <- parse_args(par )
5858
@@ -86,7 +86,14 @@ colStat <- parsed$col_stat
8686colStatSE <- parsed $ col_stat_se
8787colPValue <- parsed $ col_pvalue
8888colN <- parsed $ col_n
89- mergeByRsid <- ! is.na(parsed $ merge_by_rsid )
89+ mergeByRsid <- parsed $ merge_by_rsid
90+
91+ # unset colBP in case of merging by rsid
92+ if (mergeByRsid ) {
93+ cat(paste(' The --merge-by-rsid flag is used; --col-bp' , colBP , ' will be ignored\n ' ))
94+ colBP <- NULL
95+ }
96+
9097# Polygenic score
9198nameScore <- parsed $ name_score
9299# If the PGS is assigned a name, the diagnostic plot (auto mode only)
@@ -113,8 +120,13 @@ setSeed <- parsed$set_seed
113120
114121# These vectors are used to convert headers in the sumstat files to those
115122# used by bigsnpr
116- colSumstatsOld <- c( colChr , colSNPID , colBP , colA1 , colA2 , colStat , colStatSE )
117- colSumstatToGeno <- c(" chr" , " rsid" , " pos" , " a1" , " a0" , " beta" , " beta_se" )
123+ if (mergeByRsid ) {
124+ colSumstatsOld <- c(colChr , colSNPID , colA1 , colA2 , colStat , colStatSE )
125+ colSumstatToGeno <- c(" chr" , " rsid" , " a1" , " a0" , " beta" , " beta_se" )
126+ } else {
127+ colSumstatsOld <- c(colChr , colSNPID , colBP , colA1 , colA2 , colStat , colStatSE )
128+ colSumstatToGeno <- c(" chr" , " rsid" , " pos" , " a1" , " a0" , " beta" , " beta_se" )
129+ }
118130
119131# If the user has requested to merge scores to an existing output file
120132if (fileOutputMerge ) {
0 commit comments