Admixture只能用整数染色体: "Invalid chromosome code. Use integers!"
原始帖
Admixture做群体结构分析是好用,但也有一些不顺手的地方。最大的问题是不支持非整数的染色体号!
相信我们手里绝大部分vcf或plink格式文件,染色体ID基本是文本类型的吧。注意plink处理时加上-allow-extra-chr
,若染色体数超过人类,可使用--chr-set
设置。
scaffold或chr等字符不谈,我们可以手动处理为数字。但异常多倍体呢?比如小麦、油菜等,必须有chrA、ChrB。能否把亚组基因组也直接改为其他数字来代替?
官方好像没找到回答,一些网友认为是可以的。
比如异源四倍体的油菜,将A亚基因组改为数字,C亚基因组改为另一组数字。
sed 's/^chrA0//g;s/^chrA//g' snp.bim |sed 's/^chrC01/11/g;s/^chrC02/12/g;s/^chrC03/13/g;s/^chrC04/14/g;s/^chrC05/15/g;s/^chrC06/16/g;s/^chrC07/17/g;s/^chrC08/18/g;s/^chrC09/19/g' >new.snp.bim
mv new.snp.bim snp.bim
for K in {2..10};do
admixture --cv snp.bed $K | tee log${K}.out;
done
grep -h 'CV' log*.out >CV.log
补充1:vcf转plink格式时染色体自动数字化
使用Plink软件将vcf格式转化为plink格式时,若染色体号类似chr1/Chr1/chr01/Chr01等时,会自动变为1(类似chrA01、chromosome1的则不行),不管有没有加-allow-extra-chr
。
如果染色体号既存在chr1/chr01/Chr1/Chr01,又存在1时(实际数据不会存在这种情况,有时请检查数据正确性),则plink转化的1会与原来的1形成冲突,报错误: .bim file has a split chromosome. Use --make-bed by itself to remedy this.
也就是说chr/Chr后的数字和原有数字不能相同,否则将冲突,无法完成plink格式转化。
补充2:染色体重新编号后,admixture分析结果的准确性
admixture不能对非整数型染色体号分析,对非整数型染色体号重新编数字,以及编不同的数字,会不会对结果产生影响?答案是肯定的。
比如我有一个油菜的基因型文件:
-
第一次分析将chrA01-10改为1-10,chrC01-C09改为11-19
-
第二次分析chrA01-10改为1-10,chrC01改为21,chrC02-C09改为12-19,结果只有少数几行有一点点变化。
-
第三次随便瞎改
sed 's/11/21/g;s/12/22/g;s/13/23/g;s/14/24/g;s/15/25/g'
,行数变化增多,但还是很小,约0.00001位数变化。
-
以上是划分2个亚群的结果,划分3个及以上时,这种差异稍微变大了。
总体而言,还是可以接受的。所以,admixture分析似乎与染色体号无多大关系,重新进行数字编号分析是可以的。
本文来自博客园,作者:生物信息与育种,转载请注明原文链接:https://www.cnblogs.com/miyuanbiotech/p/17215608.html。若要及时了解动态信息,请关注同名微信公众号:生物信息与育种。