其他分享
首页 > 其他分享> > 使用PAINTOR做fine-mapping的步骤

使用PAINTOR做fine-mapping的步骤

作者:互联网

首先,感谢陈文燕群主跟另外一位博主(又是一只小菜鸟)的帖子。链接放出来:

(1) https://mp.weixin.qq.com/s?__biz=Mzg2MDA2MDQzMQ==&mid=2247484123&idx=1&sn=550fdf6fba5efe58fad6e1a0b23a2948&chksm=ce2d6cbbf95ae5ada324e924db32d2d836c3fcc8838bcad69df055bda376758e9613731fc830&scene=21#wechat_redirect

(2) https://www.jianshu.com/p/49ca57083c84

 

我这个随笔只是记录自己跑PAINTOR的过程,方便以后自己忘记其中步骤可以翻阅,所以仅供参考。有错漏的地方麻烦告知我,因为我也是小白,怕自己搞错。

开始

第一步:包括如何安装PAINTOR、检测是否安装成功及下载注释文件

    此步骤详细看上面两个链接帖子。

 

第二步:  准备输入文件(包括三类)

    具体哪三类还是详细看上面帖子

 

第三步:开始制作输入文件

 

    (一) Locus File(生成locus、locus.snp文件):

         1.      将assoc结果文件中的P值转换为Z值(用R语言)

 

1 t=read.table("filename.assoc",header=T)
2 c=qnorm(1-t$P/2)          
3 t$d=ifelse(t$OR >= 1, c, -c)   【OR >= 1 ,zscore = c ; OR < 1, zscore = -c】
4 write.table(t,"filename.assocz",col.names=T,row.names=F,quote=F,sep=" ")

 

         2.      根据assoc中显著性位点的信息,提取位点前后25000距离内的位点。生成LOCUS FILE中的locus、locus.snp文件

1 awk '{if($1=="13" && $3> 2009**** && $3< 2014****) print $0}' filename.assocz > Locus1_50  【我们top1 SNP 是13:201****, 所以取位点前后25000距离内的所有位点,记录到Locus1_50】
2 sed '1i CHR SNP BP A1 F_A F_U A2 CHISQ P OR z-score' Locus1_50 > Locus1_50.txt   【给Locus1_50文档的第一行加上抬头CHR/SNP/BP…】
3 awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11}' Locus1_50.txt > Locus
4 awk '{print $1,$3,$2,$9,$11}' Locus > Locus2  【生成locus文件】
5 awk '{print $3}' Locus2 > Locus2.snp    【生成locus.snp文件】

  1.    3. 用R语言进行制作(是否需要把每条染色体的位点分别分开?不是分开染色体,而是分析结果文件中显著性靠前的位点)

 

   (二) LD Matrix File (生成Locus.ld文件):

      1. Plink提取信息LD矩阵信息

 

1 plink --bfile filename --a1-allele filename.bim 5 2 --extract Locus2.snp --r bin4 --out Locus2.snp_LD 

 

     解析:

               (1)--a1-allele <filename> [A1 allele col. number] [variant ID col.]  【根据上面个1)指令,这里的作用是在final_1-22_low.bim文件中提取第五列的minor allele,也就是A1和第二列SNPname】

                (2)--extract Locus2.snp   【结合上面(1)--a1-allele指令,这里的作用是提取Locus2.snp文档中所有snp在bim文件中的第5列“A1”和第2列“SNPname”】--bim文件如下图 

                             

 

 

 

               (3)--r bin4  【--r calculates and reports raw inter-variant allele count correlations;(if you specify 'bin' and/or one of the matrix shape modifiers), all pairs in table format (with 'inter-chr'), or a limited window in table format (this is the default);'bin' causes the output matrix to be written in double-precision binary format, while 'bin4' specifies single-precision binary. The matrix is square if no shape is explicitly specified.】

               (4)疑问:如果bim文件中的snpname、A1或者A2缺失,又会是怎样?

      2. 用R语言制作成连锁矩阵文件locus.ld

 

1 t=readBin("Locus2.snp_LD.ld.bin",what="numeric",n=20000000,size=4)
2 a=sqrt(length(t))
3 t2=matrix(t,a,a)
4 write.table(t2,"Locus2.ld",col.names=F,row.names=F,quote=F,sep=" ")

       解析:

                 (1)文件Locus2.snp_LD.ld.bin就是【1.使用Plink提取信息LD矩阵信息】步骤所生成的文件。

                 (2)readBin(con,what,n)   【这个是读取二进制文件的R函数,con指的是要读取二进制文件的连接对象。what是像字符、整数等的模式,n是从二进制文件读取的字节数。size是什么??】

                 (3)a=sqrt(length(t))  t2=matrix(t,a,a)   【查查看是什么鬼】

 

(三) Annotation Matrix File(生成.annotation文件):

       1、使用Python和PAINTOR软件的python脚本制作注释文件

1 python  AnnotateLocus.py \
2 --input anno_path \
3 --locus Locus2 \
4 --out Locus2.annotations \
5 --chr CHR \
6 --pos BP

 

解析:

              (1)由于AnnotateLocus.py脚本对应的是python2。解决办法:用python2跑,或者用python3,然后在脚本print后面的内容加入“()”。

              (2)记住:所有指令后面带的文件路径要准确【也就是说要指定文件所在路径】。

              (3)anno_path是在Functional_Annotations文档中的Annotation_Paths选取部分注释文件组成的。【好像是没特殊指定】--是不是不用制作,直接使用Annotation_Paths也可?因为后面跑PAINTOR的时候也是需要指定此文件中的一个注释文件。回头试试

              (4)--chr和--pos 后面是写出你引用locus文件中的chr和pos表头。

 

 

 

 

(四) 运行PAINTOR程序

PAINTOR  -input input.file   -Zhead z-score   -LDname ld   -in /lan/   -out /lan/  -enumerate 3  -annotations E127_15_coreMarks_mnemonics.bed.6_EnhG.NHEK-Epidermal_Keratinocytes,CTCF.bed

 

解析:

       (1)PAINTOR 必须给出具体路径:如“/**/**/**/**/PAINTOR_V3.0/PAINTOR”

       (2) -input input.file 后面这个input.file是需要自己制作(新建)的一个文件,里面为所有你的locus的名称,排成一排。

       (3)-Zhead z-score 后面的z-score是指你的Locusfile中Z值列的抬头名称。

       (4) -LDname ld 后面的ld是指你的LD文件的后缀。

       (5) -in 后面是Locusfile\LDmatrix\Annotation文件的路径。

       (6) -out 后面是结果文件输出路径。

       (7)- enumerate 后面数字是指causal snp的最大数量,可以从小往大尝试,指导结果近似。(需要进一步理解及尝试)

       (8) -annotations 后面是注释文件的列名,也就是anno_path 文件中的注释文件(即在anno_path文件中选取,直接名字即可,无需任何路径)。如有多个请用逗号分隔,不推荐超过5个。

 

       

 

 

 (五)解读结果文件

     具体还是详细看顶文链接的帖子

 

标签:文件,--,Locus2,PAINTOR,mapping,locus,snp,fine
来源: https://www.cnblogs.com/Aaron-lan/p/14898296.html