如果不会编程,上述xpclr的输入文件还是不好准备的,这里教大家利用plink准换生成.geno 文件;由于xpclr一次只能运行一条染色体,所以这里举例第一条染色体运行:
## 生成pop1亚群 geno文件
#样品名字变成两列方便plink转换生成.geno 文件:
awk '{print $1 "\t" $1}' pop1.txt > pop1.keep.txt
plink --vcf $workdir/00.filter/clean.sorted.vcf.gz \
--keep pop1.keep.txt --chr 1 --out Chr1.pop1 \
--recode 01 transpose -output-missing-genotype 9 \
--allow-extra-chr --set-missing-var-ids @:# --keep-allele-order
cut -d " " -f 5- Chr1.pop1.tped | awk '{print $0" "}' > Chr1.pop1.geno
## 生成pop2亚群 geno文件
awk '{print $1 "\t" $1}' $datadir/pop2.txt > pop2.keep.txt
plink --vcf $workdir/00.filter/clean.sorted.vcf.gz \
--keep pop2.keep.txt --chr 1 --out Chr1.pop2 \
--recode 01 transpose -output-missing-genotype 9 \
--allow-extra-chr --set-missing-var-ids @:# --keep-allele-order
cut -d " " -f 5- Chr1.pop2.tped | awk '{print $0" "}' > Chr1.pop2.geno
## 生成snp位置信息文件
zcat clean.sorted.vcf.gz|awk '$1=="1" {print " "$1":"$2 "\tChr01\t" $2/100000000 "\t" $2 "\t" $4 "\t" $5 }' > Chr01.snp
## 运行xpclr分析
XPCLR -xpclr Chr1.pop1.geno Chr1.pop2.geno Chr01.snp Chr01.out -w1 0.005 200 2000 Chr01 -p0 0.95
## 替换染色体名称
sed 's/^0/Chr01/' Chr01.out.xpclr.txt
得到的结果文件中,每一列分别代表 chr# grid# #ofSNPs_in_window physical_pos genetic_pos XPCLR_score max_s,XPCLR_score 是算出的 XP-CLR 分数。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!