-
Notifications
You must be signed in to change notification settings - Fork 0
/
calc_prs_cv_ls.sh
61 lines (43 loc) · 1.81 KB
/
calc_prs_cv_ls.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
source constants_.sh
source parse_args.sh "$@"
source init_args_cv.sh
# prs_prefix="prs.cv.ls_${pop}_${pheno}"
# ds_prefix="ds_${pop}_${pheno}"
prs_prefix="prs.cv.ls__${pop}"
prs_prefix_adapter="prs.cv.ls_${pheno}_${pop}"
ds_prefix="ds__${pop}"
if [[ -z ${override} ]]; then override="false"; fi
mkdir -p ${prs_path}lasso || true
if [[ ! -f ${imp_train_path}${ds_prefix}${train_suffix}.bim ]]; then
echo "${imp_train_path}${ds_prefix}${train_suffix}.bim" does not exists. Skipping...
exit 0
fi
if [[ ${stage} -le 1 ]]; then
Rscript lassosum.R --discovery=${discovery} --target=${target} --imp=${imp} \
--train_suffix=${train_suffix} --test_suffix=${test_suffix} \
--rep=${rep} --analysis_type="cv" --ld=${ld};
fi
if [[ ${stage} -le 2 ]]; then
if [[ ${hp} == "" ]]; then
hp="0.2,0.5,0.9,1"
fi
hp_arr=(${hp//,/ })
for cur_hp in ${hp_arr[@]}; do
for hp2 in {1..20}; do
if [[ ! -f ${prs_path}${prs_prefix_adapter}${test_suffix}.${cur_hp}-${hp2}.profile || ${override} = "true" ]]; then
plink --bfile ${imp_test_path}${ds_prefix}${test_suffix} \
--score ${prs_path}lasso/${prs_prefix}${train_suffix}.${cur_hp}-${hp2}.weights 2 4 6 \
--exclude ${imp_test_path}ds.dupvar \
--memory 20000 \
--threads 5 \
--out ${prs_path}${prs_prefix_adapter}${test_suffix}.${cur_hp}-${hp2} || true
fi
done
done
fi
if [[ ${stage} -le 3 ]]; then
echo "here"
Rscript calc_metrics_cv_ls.R --discovery=${discovery} --target=${target} --imp=${imp} \
--suffix=${test_suffix} --rep=${rep} --sub=${sub} --analysis_type="cv";
fi