美文网首页生物信息学生信GATK
植物重测序---变异检测(samtools+bcftools篇)

植物重测序---变异检测(samtools+bcftools篇)

作者: LiuYueRR | 来源:发表于2019-12-17 17:49 被阅读0次

    植物基因组重测序除了GATK的方法进行变异检测以外,还有samtools+bcftools去进行变异检测。
    在这里我们不去分析哪一种分析方法好,使用samtools+bcftools的最突出的特点:速度快!
    其实,samtools+bcftools去进行变异检测的流程很早就有了。
    但是为什么现在又写一个呢?
    就是因为:samtools以及bcftools软件逐步更新,里面的参数更改的太快了,以致于网络上很多的流程其实已经不能使用了。
    当然,samtools以及bcftools这两个软件在未来一定会继续更新,未来大家再来看这篇教程的时候,也许也可能是失效。
    周而复始,万物更替,大体就是这个道理吧。

    Step1:软件准备

    #数据所需的软件:sra-tools bwa trim_galore samtools bcftools picard
    使用conda解决一切软件
    conda install -y sra-tools bwa samtools bcftools picard
    #santools的版本是Version: 1.10 (using htslib 1.10)
    #bcftools的版本是Version: 1.10 (using htslib 1.10)
    

    Step2:数据准备

    #使用的测试数据来源于NCBI-SRA
    #SRR2040561
    #SRR2052532
    #使用sra-tools下载SRA数据
    prefetch SRR2040561 -O ./
    prefetch SRR2052532 -O ./
    #并且进行格式转化 将sra数据转化为fastq格式
    ls *.sra|while read id
    do
    nohup fastq-dump --gzip --split-3 -O ./ ${id} &
    done
    ##将数据进行质控
    nohup fastqc -t 6 -O ./ ../sra/*fastq.gz &
    #质控后截断得到clean_read
    ls *_1.fastq.gz > 1
    ls *_2.fastq.gz > 2
    paste 1 2 > config
    
    cat config |while read id
    do
    arr=(${id})
    fq1=${arr[0]}
    fq2=${arr[1]}
    trim_galore --phred33 -q 25 -e 0.1 --length 36 --stringency 3 --paired -o ./ $dir/${fq1} $dir/${fq2}
    done 
    

    Step3:BWA比对--->bam文件+index+flagstat

    #首先构建基因组索引
     nohup bwa index -a is Oryza_sativa.fasta &
    #参考基因组构建的索引结果
    358M Nov 22 09:51 Oryza_sativa.fasta.bwt
    90M Nov 22 09:51 Oryza_sativa.fasta.pac
    509 Nov 22 09:51 Oryza_sativa.fasta.ann
    14K Nov 22 09:51 Oryza_sativa.fasta.amb
    179M Nov 22 09:53 Oryza_sativa.fasta.sa
    377 Nov 22 09:53 nohup.out
    
    #使用BWA进行比对
    #bwa+samtools联用
    bwa mem -t 10 -M ./Oryza_sativa.fasta \
    ./SRR2040561_1_val_1.fq.gz \
    ./SRR2040561_2_val_2.fq.gz |samtools sort -@ 4 -m 1G -o SRR2040561.sort.bam -
    bwa mem -t 10 -M ./Oryza_sativa.fasta\
    ./SRR2052532_1_val_1.fq.gz \
    ./SRR2052532_2_val_2.fq.gz |samtools sort -@ 4 -m 1G -o SRR2052532.sort.bam -
    去除PCR重复
    #picard rmduplication
    picard -Xmx4g MarkDuplicates I=SRR2040561.sort.bam \
    O=SRR2040561.sort.rmdup.bam REMOVE_DUPLICATES=true \
    M=SRR2040561.mark_dup_matrix
    picard -Xmx4g MarkDuplicates I=SRR2052532.sort.bam \
    O=SRR2052532.sort.rmdup.bam REMOVE_DUPLICATES=true \
     M=SRR2052532.mark_dup_matrix
    #bam index + flagstat
    # bam+index
    samtools index SRR2040561.sort.bam
    samtools index SRR2052532.sort.bam
    # bam +flagstat
    samtools flagstat SRR2040561.sort.bam > SRR2040561.sort.bam.flagstat
    samtools flagstat SRR2052532.sort.bam > SRR2052532.sort.bam.flagstat
    

    Step4:bcftools--call SNP InDel

    #准备基因组fasta文件还有.fai 索引文件
    samtools faidx Oryza_sativa.fasta 
    # Generate VCF or BCF file
    bcftools mpileup SRR2040561.sort.bam --fasta-ref Oryza_sativa.fasta > SRR2040561.vcf
    bcftools mpileup SRR2052532.sort.bam --fasta-ref Oryza_sativa.fasta > SRR2052532.vcf
    #call snp
    bcftools call SRR2040561.vcf -c  -v -o SRR2040561.vcf
    bcftools call SRR2052532.vcf -c  -v -o SRR2052532.vcf
    #merge vcf
    bcftools merge SRR2040561.vcf.gz SRR2052532.vcf.gz -v -o merged.vcf
    #filter vcf
    bcftools filter  -g3 -G10 -e'%QUAL<10 || (RPB<0.1 && %QUAL<15) || (AC<2 && %QUAL<15) || MQ < 30 || MQSB <=0.1'  merged.bcf > merge.filter.vcf
    

    相关文章

      网友评论

        本文标题:植物重测序---变异检测(samtools+bcftools篇)

        本文链接:https://www.haomeiwen.com/subject/jctknctx.html