重测序分析

通过双端测序的数据比对参考基因组。

第一步准备工作(这里只用了拟南芥1号染色体的数据)

bwa index ./sequences.fa(bwa建立索引)

gatk --java-options "-Xmx8G -Djava.io.tmpdir=./tmp" CreateSequenceDictionary -R ath.chr1/sequences.fa -O ath.chr1/sequences.dict(建立gatk所需要的文件。-R 参考基因组所在位置。-Xmx8G -Djava.io.tmpdir=./tmp" ,内存最大8G,存储在tmp临时文件,gatk CreateSequenceDictionary 创建字典文件)

samtools faidx ath.chr1/sequences.fa(建立samtools 提取序列)

第二步准备比对

mkdir mapping

bwa mem -t 4 -R '@RG\tID:s1\tSM:s1\tLB:s1\tPL:ILLUMINA' ath.chr1/sequences.fa data/sample1.1.fq data/sample1.2.fq|samtools view -bS > mapping/s1.bam(mem适合100bp以上,-t 4 4个cpu,-R 输出文件 ID是样品名称,LB是库的样品,测序平台,参考基因组的地址,以及双端测序的测序文件 |前面的输出到后面的输入,sam变成bam文件)

bwa mem -t 4 -R '@RG\tID:s2\tSM:s2\tLB:s2\tPL:ILLUMINA' ath.chr1/sequences.fa data/sample2.1.fq data/sample2.2.fq|samtools view -bS > mapping/s2.bam

samtools sort -@ 4 mapping/s1.bam -o mapping/s1.sorted.bam(按照基因组顺序排序)

samtools sort -@ 4 mapping/s2.bam -o mapping/s2.sorted.bam

gatk --java-options "-Xmx4G -Djava.io.tmpdir=./tmp" MarkDuplicates -I mapping/s1.sorted.bam -O mapping/s1.MarkDup.bam -M mapping/s1.markdup_metrics.txt(对pcr duplicate进行标记)

gatk --java-options "-Xmx4G -Djava.io.tmpdir=./tmp" MarkDuplicates -I mapping/s2.sorted.bam -O mapping/s2.MarkDup.bam -M mapping/s2.markdup_metrics.txt

samtools index mapping/s1.MarkDup.bam(建立index,否则难以比对)

samtools index mapping/s2.MarkDup.bam

第三步snp calling

nohup gatk --java-options "-Xmx4G -Djava.io.tmpdir=./tmp" HaplotypeCaller -R ath.chr1/sequences.fa -I mapping/s1.MarkDup.bam -O SNP/s1.gvcf --emit-ref-confidence GVCF -stand-call-conf 30 >SNP/s1.HaplotypeCaller.log&(HaplotypeCaller对每个样品分别进行变异检测,每个样品生成一个gvcf文件,-stand-call-conf 30 质量高于30才可以)

nohup gatk --java-options "-Xmx4G -Djava.io.tmpdir=./tmp" HaplotypeCaller -R ath.chr1/sequences.fa -I mapping/s2.MarkDup.bam -O SNP/s2.gvcf --emit-ref-confidence GVCF -stand-call-conf 30 >SNP/s2.HaplotypeCaller.log&


gatk --java-options "-Xmx4G -Djava.io.tmpdir=./tmp" GenomicsDBImport -L 1 -V SNP/s1.gvcf -V SNP/s2.gvcf --genomicsdb-workspace-path SNP/vcfdbGenomicsDBImport(将多个样品的gvcf信息合并为一个数据库#-L参数后面跟着染色体编号,如果有多条染色体,-L 可以输入多次,例如 -L 1 -L 2 -L 3表示1,2,3三条染色体)

gatk --java-options "-Xmx4G -Djava.io.tmpdir=./tmp" GenotypeGVCFs -R ath.chr1/sequences.fa  -V gendb://SNP/vcfdb -O SNP/raw.vcf >SNP/raw.GenotypeGvcf.log(转为vcf文件)


gatk --java-options "-Xmx4G -Djava.io.tmpdir=./tmp" VariantFiltration -V SNP/raw.vcf -O SNP/filter.vcf --filter-expression "QD < 2.0 || FS > 60.0" --filter-name "Fail" >SNP/filter.log(按照QD与FS进行过滤)


将InDel与SNP分开为两个文件

grep -v "Fail" SNP/filter.vcf >SNP/final.vcf(保留通过文件)

gatk --java-options "-Xmx8G -Djava.io.tmpdir=./tmp" SelectVariants -select-type INDEL -V SNP/final.vcf -O SNP/final.indel.vcf

gatk --java-options "-Xmx8G -Djava.io.tmpdir=./tmp" SelectVariants -select-type SNP  -V SNP/final.vcf -O SNP/final.snp.vcf


snp注释

snpEff build -c snpEff.config ath.chr1(建库)

snpEff -c snpEff.config -o gatk ath.chr1 SNP/final.snp.vcf > demo_anno_vcf(snp 分析) 

你可能感兴趣的:(重测序分析)