上篇文章有bug,替换掉这个代码就行了
#用上篇文章的代码,拿到一致性都是相同的,仔细一看没改填充后的文件
for sample in $sp; do
bcftools gtcheck -g sites_gt.vcf.gz $filled_vcf -s "$sample" |grep "$sample" | awk '{print $2,$4}' | tail -1 | awk '{result = ($2 - $1) / $2; print result}' >> gt_${i}.txt
done
填充小剧场
和师兄交流一下,他说没用过bcftools做过填充一致性,
舔脸问:你咋做的,亲爱的师兄
师兄说:自己写代码
我:哦莫,我就不想写。。。
师兄瞥了我一眼
我:写!现在就开写,我是您忠实的拥趸者!
旁边人:好大一只舔狗。
我:啥舔狗,有我甜吗?
#填充一致性
#先把填充后的剥干净,就是脱光
bcftools annotate -x INFO,FORMAT/DS filled_data_1.vcf.gz | sed 's:|:/:g'| grep -v '^#' | cut -f 10- > filled_new_file.txt
#在把用来验证的真实的数据,也脱光
bcftools annotate -x INFO,FORMAT/DS st.vcf.gz | sed 's:|:/:g'| grep -v '^#' | cut -f 10- > st_new_file.txt
#脱光后你看我我看你,同型号就是1,不同的就是0,把1相加就是所有同型号的
awk 'FNR==NR {a[FNR]=$0; next} {split(a[FNR], arr1); split($0, arr2); for(i=1; i<=NF; i++) { if (arr1[i] == arr2[i]) printf "1 "; else printf "0 " } print ""}' st_new_file.txt filled_new_file.txt | awk '{ count += gsub(/1/, ""); } END { print count }'
#然后统计一下你的所有样本位点数之和,用上面的结果比一下。
嘤嘤嘤嘤嘤,加群吧,以后解决问题方便点!
微信七天就过期了,所以选择呆鹅