基因流,又称为基因迁移或等位基因流动,是指个体或其基因从一个种群传播到另一个种群的过程。这一过程可以通过个体移动、繁殖、配子(如花粉、种子)转移等实现。
基因流导致不同种群间的等位基因频率趋于一致,从而影响种群的遗传变异性和进化动态。
基因流的机制:
- 个体的迁移与繁殖
- 配子传播
- 杂交与回交
- 人类活动引起的基因流
渐渗:是指两个不同种群或物种之间的杂交后代与其中一个亲本
SNP 过滤
位点质控通常包括缺失率、二等位、次等位基因频率以及连锁不平衡过滤。
vcf=genome.vcf
vcftools \
--vcf ${vcf} \
--max-missing 0.9 \
--min-alleles 2 \
--max-alleles 2 \
--maf 0.05 \
--recode \
--recode-INFO-all \
--out filter
如果数据中包括性染色体和细胞器的数据,分析前进行去除
vcftools \
--vcf filter.recode.vcf \
--not-chr chrX \
--not-chr chrY \
--not-chr MT \
--not-chr CP \
--recode \
--recode-INFO-all \
--out filter.autosome
连锁不平衡过滤
群体较大的情况下可以基于 R2 值进行过滤,个体较少时可以基于间距进行 SNP 抽取。
plink \
--vcf filter.recode.vcf \
--indep-pairwise 50 10 0.2 \
--out tmp.ld \
--allow-extra-chr \
--set-missing-var-ids @:#
plink \
--vcf filter.recode.vcf \
--extract tmp.ld.prune.in \
--out filter.LD \
--recode vcf-iid \
--keep-allele-order \
--allow-extra-chr \
--set-missing-var-ids @:#
# 基于 SNP 间距抽取数据
vcftools \
--vcf filter.recode.vcf \
--thin 20000 \
--recode \
--recode-INFO-all \
--out filter.thin
系统进化树构建
群体 SNP 数据中,包括每个物种/群体的多个个体,因此可以通过对所有个体/物种构建系统发育树。
vcf2phylip
iqtree \
-s ...... \
-nt 4 \
-m GTR+ASC \
-bb 1000 \
-st DNA \
-pre iqtree_tmp \
&> iqtree_tmp.log
iqtree \
-s out_tmp.varsites.phy \
-nt 4 \
-m GTR+ASC \
-bb 1000 \
-st DNA \
-pre iqtree_GTR \
&> iqtree_GTR.log
# 或
iqtree \
-s out_tmp.varsites.phy \
-nt 4 \
-m MFP+ASC \
-bb 1000 \
-st DNA \
-pre iqtree_MFP \
&> iqtree_MFP.log