比对分析
- bwa
bwa mem -t 6 -k 32 -M -R "@RG\tID:saample\tLB:sample\tSM:sample" fa fq_R1.fq.gz fq_R2.fq.gz |samtools view -b -S ->sample.bam
# bwa index进行基因组建index
- 排序,因为后续处理都需要按照基因组顺序进行排序
samtools sort bam > out.bam
- 进行捕获数据的提取和统计
samtools view -@ 6 -L bed -b -o bam input.bam
samtools flagstat bam > flagstat
- 去除重复区域
java -jar picard-1.119/MarkDuplicates.jar I=bam O=rmdup.bam M=.metrics \
VALIDATION_STRINGENCY=SILENT CREATE_INDEX=true REMOVE_DUPLICATES=true TMP_DIR=tmp MAX_FILE_HANDLES=1000
- 统计深度信息
samtools depth -q 20 -Q 20 -l 60 -d 5000 bam > depth
- 建立索引
samtools index bam
# 当基因组单条染色体长度大于512M左右的时候,建立索引有问题,后续gatk检测变异会受到影响,建议进行染色体 N 区合适区域进行拆分
变异检测
- gatk进行单个样品gvcf检测
gatk-4.1.2.0/gatk HaplotypeCaller -R ref --emit-ref-confidence GVCF -I rmdup.bam -O g.vcf
# 使用前将基因组建好索引
gatk CreateSequenceDictionary -R fa
- 合并gvcf
gatk-4.1.2.0/gatk CombineGVCFs -R ref -O merge.g.vcf -V gvcf ...
- call 基因型
gatk GenotypeGVCFs -R ref -V merge.g.vcf -O raw.vcf
- 拆分snp,indel
gatk SplitVcfs --INPUT=raw.vcf --INDEL_OUTPUT=raw.indel.vcf --SNP_OUTPUT=raw.SNP.vcf --STRICT=false
- 进行基础质量过滤
gatk-4.1.2.0/gatk VariantFiltration -V raw.SNP.vcf \
-filter "QD < 2.0" --filter-name "QD2" \
-filter "QUAL < 30.0" \
--filter-name "QUAL30" \
-filter "SOR > 3.0" \
--filter-name "SOR3" \
-filter "FS > 60.0" \
--filter-name "FS60" \
-filter "MQ < 40.0" \
--filter-name "MQ40" \
-filter "MQRankSum < -12.5" \
--filter-name "MQRankSum-12.5" \
-filter "ReadPosRankSum < -8.0" \
--filter-name "ReadPosRankSum-8"
-O raw.SNP.filter.QD2.QUAL30.SOR3.FS60.MQ40.MQRankSum-12.5.ReadPosRankSum-8.vcf
gatk-4.1.2.0/gatk VariantFiltration \
-V raw.indel.vcf \
-filter "QD < 2.0" \
--filter-name "QD2" \
-filter "QUAL < 30.0" \
--filter-name "QUAL30" \
-filter "FS > 200.0" \
--filter-name "FS200" \
-filter "ReadPosRankSum < -20.0" \
--filter-name "ReadPosRankSum-20" \
-O raw.indel.QD2.QUAL30.FS200.ReadPosRankSum-20.vcf
- 进行标记群体质量过滤
vcftools --minDP 4 --maxDP 100 --minGQ 10 --minQ 30 --min-meanDP 3 \
--out aw.SNP.filter.QD2.QUAL30.SOR3.FS60.MQ40.MQRankSum-12.5.ReadPosRankSum-8.minDP4.maxDP100.minGQ10.minQ30.min-meanDP3.miss0.2.maf0.01.vcf \
--vcf raw.SNP.filter.QD2.QUAL30.SOR3.FS60.MQ40.MQRankSum-12.5.ReadPosRankSum-8.vcf \
--recode --recode-INFO-all --max-missing 0.8 --maf 0.01
## 建议有条件的测序 10X,个体深度>=7,miss 0.1;maf 0.05,不足的话,4X
群体结构分析
- 数据格式转化
vcftools --vcf vcf --plink --out
plink --noweb --ped ped --map map --make-bed --out pro
## 注意plink识别的染色体编号是纯数字,咱们这个是contig的,需要将染色体转换下,后面的数据才能正常运行
## vcftools 在样品数量高于 1008 左右的时候会有问题,可以1000 样品一组生成 ped 和 map,然后直接 将 ped cat合并在一起即可,理论上,map 是一致的
- PCA分析
gcta64 --bfile pro --make-grm --thread-num 4 --out pro
gcta64 --grm pro --pca 10 --thread-num 4 --out pro
# 根据结果R绘制散点图
- TREE 分析
# 将VCF|PED文件转换为fa格式
treebest nj -b 1000 fa > nj.tree
ggtree 或者其他在线软件,离线软件画图
- STRUCTURE分析
admixture --cv 1 > 1.log
## 1-10按照上面循环下
# R画图
软件文献
- [1] Li, H. and R. Durbin, Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics, 2009. 25(14): p. 1754-60.
- [2] Li, H., et al., The Sequence Alignment/Map format and SAMtools.Bioinformatics, 2009. 25(16): p. 2078-9.
- [3] Danecek, P., et al., The variant call format and VCFtools. Bioinformatics, 2011. 27(15): p. 2156-8.
- [4] Purcell, S., et al., PLINK: a tool set for whole-genome association and population-based linkage analyses. Am J Hum Genet, 2007. 81(3): p. 559-75.
- [5] Yang, J., et al., GCTA: A Tool for Genome-wide Complex Trait Analysis. The American Journal of Human Genetics, 2011. 88(1): p. 76-82.
- [6] Alexander, D.H., J. Novembre, and K. Lange, Fast model-based estimation of ancestry in unrelated individuals. Genome Res, 2009. 19(9): p. 1655-64.
- [7] Vilella, A.J., et al., EnsemblCompara GeneTrees: Complete, duplication-aware phylogenetic trees in vertebrates. Genome Res, 2009. 19(2): p. 327-35.