查看原文
其他

Haploview:单倍型、连锁不平衡分析

2017-08-11 吴东亚 生信大讲堂

Haploview是一个做单倍型、LD分析的软件。


 下载地址:

https://www.broadinstitute.org/haploview/downloads

 要求:

JRE(Java运行环境)5.0 Update 22以上


Windows版本可以下载安装器HapInstall.exe;

Mac/Unix/Linux版本直接下载JAR,然后再命令行直接运行:

java -jar Haploview.jar [options]

Windows推荐直接下载JAR文件,直接双击运行或命令行调用均可以。



HaploView功能:

1.连锁不平衡LD与单倍型分析

2.单倍型人群频率估算

3.SNP与单倍型关联检验

4.关联显著性排列检验

5.从HapMap上下载基因型信息

6.PLINK全基因组关联结果可视化


支持的输入文件格式有Linkage Format、Haps Format、HapMap Format、HapMap PHASE、HapMap download和PLINK Format。


Linkage Format格式文件(.ped)无头文件,列依次是Pedigree Name、Individual ID、Father ID、Mother ID、Sex、Affection Status、Marker Genotypes。


Marker位置信息文件(.info)分成2列,分别是Marker ID和位置。Hapmap Format文件可以在Hapmap网站上下载数据。


今天我们将hapmap文件转换成Linkage Format文件后再进行LD分析(其实可以直接导入hapmap文件,不过小编就是想用用刚学的python做一些简单的文本处理,哈哈哈哈)。



Hapmap文件格式如上,首先按照Linkage Format的要求,提取出Marker的位置信息(.info)。



###刚学python,别笑

###Python script

###hapmap_2_linkage_format_marker_info

input_file=input("INPUT FILE: ")

a=open(input_file,'r').readlines()

b=a[1:]

output=open('test.info','w')

for c in b:

    d=c.split('\t')

    e=[]

    e.append(d[0]+'\t'+d[3]+'\n')

    e=e[0]

    output.write(e)

output.close()



处理hapmap文件,单独提取一个individual作为例子,保存到一个文本中,内容只有一列,但是有很多行(与.Info文件行数相同)。然后简单脚本处理,按照ped文件格式要求输出到新文件(.ped),比如将AGCT换成对应数字1234等,最后ped文件只有一行多列。




###刚学python,别笑

###Python script

input_file=input('INPUT FILE: ')

open_file=open(input_file,'r')

read_file=open_file.readlines()

ID=(read_file[0]).rstrip('\n')+'\t'

file_name=(read_file[0]).rstrip('\n')+'.ped'

out_file=open(file_name,'w')

snp=read_file[1:]

g=[]

for i in snp:

    i=i.rstrip('\n')

    g.append(i)

h=''.join(g)

m=''

for j in h:

    if j=='A':

        j='1'

    elif j=='C':

        j='2'

    elif j=='G':

        j='3'

    elif j=='T':

        j='4'

    else:

        j='0'

    m=m+j+'\t'

ID='Test'+'\t'+ID+'0\t0\t0\t2\t'+m.rstrip('\t')+'\n'

out_file.write(ID)

out_file.close()



选择需要的群体将ped文件合在一起,与info文件命名相同后,导入。选定ped文件后,info会自动选择。默认距离超过500kb的marker之间不做分析,缺失率超过50%的SNP被去除。Loading的过程中其实在进行计算。


计算结果有4栏:LD Plot、Haplotypes、Check Marker、Tagger。


LD:颜色由浅至深(白——红),表示连锁程度由低到高,深红色表示完全连锁,即r2=1。在方块上点击右键,可以看到连锁具体信息,包括R2、D’、LOD、基因型频率等。具体的r2计算值可以file中导出。


Haplotypes:单倍型



Check Marker:对marker质量进行检查,比如缺失率,MAF等,可以自己设置筛选阈值。



Tagger:可以进一步选择标签SNP



如果SNP数量有几十万或更多,直接默认运行程序很可能会java报错超过内存限制(java.lang.OutOfMemoryError或者GC overhead limit exceeded),需要在命令行添加参数运行,比如java -Xmx4096m _Xms2048m -jar Haploview.jar。


对于万级以下个marker,默认运行内存足够。使用Haploview做全基因组SNP的LD分析体验效果很差,并不推荐,但对于一般遗传标记(AFLP、SSR、RAPD等)还是值得一试的。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存