基于SSR数据的群体结构分析和DeltaK值可视化

1.ssr做群体结构数据准备
1.1数据转换。
在这里插入图片描述
1.2原始数据是不符合structure的格式要求的,分享给大家我的python脚本做数据格式转换。

$cat dat2structure.py
#!/usr/bin/env python3

import sys

dat = sys.argv[1]

with open(dat,'r') as f:
	num=1
	for LN in f:
		if num ==1:
			print(LN.strip())
			num-=1
		else:
			spl = LN.strip().split()
			cnt = len(spl)
			#print(' '.join(spl[0:2]))
			print(' '.join(spl[0:3]),' '.join([spl[i] for i in range(3,cnt,2)]))
			print(' '.join(spl[0:3]),' '.join([spl[i] for i in range(4,cnt,2)]))

1.3转化后的数据格式,由于SSR数据是共显性标记,每两行为一个样本的SSR标记值:
在这里插入图片描述

2.structure 命令行计算群体结构
mainparams主要参数及说明。
在这里插入图片描述在这里插入图片描述

extraparams使用默认即可。

for K in {1..10};do (nohup /biodata/02.software/structure/structure -i structure.new.txt -m mainparams -e /biodata/02.software/structure/extraparams -K ${K} -o kk_run1_k${K} &);done # 运行>=2次做后续DeltaK 折线图

3.利用structureHarvester做K值评估
我选择下载structureHarvester.py本地版命令行进行统计,也可在线分析,不用自己再另行绘图。

python /home/hang/software/structureHarvester-master/structureHarvester.py --dir=test/Results/ --out=./LK --evanno

4.统计绘制DeltaK折线图,找最佳K值。

Rscript /home/mmm/script/GWAS/structure_DeltaK.R evanno.txt notgu
下面是我的绘图代码

library(ggplot2)
args = commandArgs(T)
ipt = args[1] # evanno.txt
out = args[2]

dat = read.table(ipt)


func = 'DeltaK = mean(|L"(K)|) / sd(L(K))'
ggplot(dat,aes(x=V1,y=V7)) + geom_point(color='blue',size=rel(2)) + geom_line(color='blue') + 
  scale_x_continuous(breaks = 1:10,labels = c('',2:9,'')) +
  xlab('K') + ylab('Delta K') + 
  geom_hline(yintercept = 0,color="gray") +
  annotate("text", x=5, y=max(dat$V7,na.rm = T)*1.1, parse=F, label=func) +
  theme_classic()
ggsave(paste0(out,'_DeltaK.png'),width = 8,height = 6,dpi = 300)
ggsave(paste0(out,'_DeltaK.pdf'),width = 8,height = 6)

在这里插入图片描述
5.CLUMPP
使用CLUMPP对structure分析的重复运算结果进行重复抽样分析。得到最佳K值的Q-matrix结果。
在当前目录创建好 paramfile 配置文件(如下:红框内是你需要对应自己数据修改的参数)
在这里插入图片描述
生成popfile文件参考命令:

ls *_k8_f|while read i;do grep -A 206 "Inferred clusters" $i|grep -v "Inferred clusters"|awk '{print $1":",$6,$7,$8,$9,$10,$11,$12,$13,1}END{print ""}' >> notgu.popfile;done

运行下列命令即可得到最终K值 Q矩阵:
nohup /biodata/02.software/CLUMPP_Linux64.1.1.2/CLUMPP &
6.群体结构图可视化
可选择将CLUMPP的结果传递给distruct,进行structure图形的绘制。
这里我使用R自行绘制。(由于我的数据是真实项目数据,这里做了部分信息涂抹处理)
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值