1. 程式人生 > 其它 >LDSC: Could not open Corces_ATAC_1000Gv3_ldscores/Corces_ATAC.1.1.l2.ldscore[./gz/bz2]

LDSC: Could not open Corces_ATAC_1000Gv3_ldscores/Corces_ATAC.1.1.l2.ldscore[./gz/bz2]

執行以下指令碼時出現的報錯IOError: Could not open Corces_ATAC_1000Gv3_ldscores/Corces_ATAC.1.1.l2.ldscore[./gz/bz2]

ldsc.py \
    --h2-cts UKBB_BMI.sumstats.gz \
    --ref-ld-chr 1000G_EUR_Phase3_baseline/baseline. \
    --out BMI_Corces_ATAC \
    --ref-ld-chr-cts /ldsc/data/Corces_ATAC.ldcts \
    --w-ld-chr weights_hm3_no_hla/weights.

解決方案,指定 Corces_ATAC_1000Gv3_ldscores 資料夾的絕對路徑,比如這裡 Corces_ATAC_1000Gv3_ldscores 資料夾儲存在/ldsc/data,那麼可以修改成如下所示:

cd /ldsc/data
ldsc.py \
    --h2-cts UKBB_BMI.sumstats.gz \
    --ref-ld-chr 1000G_EUR_Phase3_baseline/baseline. \
    --out BMI_Corces_ATAC \
    --ref-ld-chr-cts /ldsc/data/Corces_ATAC.ldcts \
    --w-ld-chr weights_hm3_no_hla/weights.

可以理解為這是ldsc的一個bug。ldsc內部需要呼叫Corces_ATAC_1000Gv3_ldscores/Corces_ATAC.1.1.l2.ldscore資料,但是在官方提供的腳本里沒有這麼一個引數指定Corces_ATAC_1000Gv3_ldscores/Corces_ATAC.1.1.l2.ldscore資料,導致執行的時候找不到這個資料。
因此,只需要在執行前加上cd /ldsc/data這麼一個引數就行了。