美文网首页群体遗传学GWAS
全基因组重测序数据分析

全基因组重测序数据分析

作者: PS小易同学 | 来源:发表于2022-10-13 23:29 被阅读0次

    注:本次使用的数据为不同品种李子重测序

    1.准备工作

    首先下载相应的参考基因组及注释文件{本次使用的参考基因组为三月李的,参考基因组从蔷薇科植物基因组数据库下载(GDR)}

    安装好GATK,samtools,fastp,bwa,vcftools,以上软件均通过conda安装

    参考基因组存放位置

    重测序原始数据存放位置

    1.1 使用samtools构建参考基因组索引

    samtools faidx referencegenome.fa #索引文件后缀.fai

    1.2 使用bwa构建参考基因组索引

    bwa index referencegenome.fa #bwa索引文件有.amb,ann,bwt,pac,sa

    1.3 使用gatk构建参考基因组dict文件

    time gatk CreateSequenceDictionary -R referencegenome.fa -O referencegenome.dict

    -R 参考基因组绝对路径 -O 输出文件路径

    2.原始数据质控、比对、排序标记PCR重复

    2.1原始数据质控

    ls *.fq.gz|paste - - |perl -lane 'print qq{fastp -w 4 -i $F[0] -I $F[1] -o $F[0].clean -O $F[1].clean}'|perl -lpe 's/.fq.gz.clean/.clean.fq.gz/g' | while read line;do $line;done

    2.2 比对和排序

    2.2.1 创建将待处理文件名整合为一个文件

    ls *clean.fq.gz >pairend1

    ls *clean.fq.gz >pairend2

    paste pairend1 pairend2 >bwa.config

    将第一列设为样本名并以tab键分隔

    2.2.2 创建脚本文件

    vim bwa.sh 文件内容如下

    #!/bin/bash

    #SBATCH -p amd_512  ##指定使用的队列名称

    #SBATCH -N 1        ##指定使用的节点数是1

    #SBATCH -n 1        ##指定使用的核数为1(串行的话使用1核,如果需要使用并行可以修改核数)

    #SBATCH --mem-per-cpu=8G #后台可能因为cpu不够而将程序杀掉可将cpu设置的相对大点

    sample="DBL FTL HFTL QPFTL ML1 SIYL WSL WSQCL" # 样品名根据自己项目更改

    echo $sample

    INDEX=/public1/home/scg2749/project/Pruns/-----/X101SC22043754-Z01-J002/04.Reference/Prunus_salicina_Sanyueli_FAAS_v1.0.fa  #参考基因组位置(你的参考基因组存放位置,最好是绝对路径)

    cat bwa.config |while read id

    do

    arr=($id)

    fq1=${arr[1]}

    fq2=${arr[2]}

    sample=${arr[0]}

    bwa mem -K 100000000 -Y -t 8 -R "@RG\tID:$sample\tSM:$sample\tLB:WGS\tPL:Illumina" $INDEX $fq1 $fq2| 

    samtools sort -@ 16 -o /public1/home/scg2749/project/Pruns/xieweiwei/X101SC22043754-Z01-J002/02.bam/$sample.bam -

    done

    提交任务 sbatch bwa.sh 查看任务squeue 取消任务 scancel job ID

    2.3 标记PCR重复

    此时使用的是GATK子程序MarkDuplicates

    创建MarkDuplicates.sh内容如下

    #!/bin/bash

    #SBATCH -p amd_512  ##指定使用的队列名称

    #SBATCH -N 4        ##指定使用的节点数是1

    #SBATCH -n 4        ##指定使用的核数为1(串行的话使用1核,如果需要使用并行可以修改核数)

    #SBATCH --mem-per-cpu=16G

    ls *.bam|perl -lane 'print qq{time gatk MarkDuplicates -I /public1/home/scg2749/project/Pruns/----/X101SC22043754-Z01-J002/02.bam/$F[0] -O /public1/home/scg2749/project/Pruns/----/X101SC22043754-Z01-J002/03.sorted.bam/$F[0].markdup.bam -M $F[0].sorted.markdup_metrics.txt}'|perl -lpe 's/.bam.markdup.bam/.markdup.bam/'|perl -lpe 's/.bam.sorted.markdup_metrics.txt/.markdup_metrics.txt/'|while read line;do $line;done

    提交任务 sbatch MarkDuplicates.sh如果不是在服务器上科sh MarkDuplicates.sh提交任务

    2.4 对上步得到的bam文件创建索引

    sbatch  samtools_index.sh

    #!/bin/bash

    #SBATCH -p amd_512  ##指定使用的队列名称

    #SBATCH -N 1        ##指定使用的节点数是1

    #SBATCH -n 1        ##指定使用的核数为1(串行的话使用1核,如果需要使用并行可以修改核数)

    #SBATCH --mem-per-cpu=16G

    ls *.bam|perl -lane 'print qq{time samtools index /public1/home/scg2749/project/Pruns/xieweiwei/X101SC22043754-Z01-J002/03.sorted.bam/$F[0]}'|while read line;do $line;done

    3.使用GATK检测变异位点

    3.1 先将bam文件生成中间文件g.vcf

    此时使用gatk HaplotypeCaller子程序

    vim HaplotypeCaller.sh

    #!/bin/bash

    #SBATCH -p amd_512  ##指定使用的队列名称

    #SBATCH -N 4        ##指定使用的节点数是1

    #SBATCH -n 4        ##指定使用的核数为1(串行的话使用1核,如果需要使用并行可以修改核数)

    #SBATCH --mem-per-cpu=8G

    ls *.bam|perl -lane 'print qq{time gatk HaplotypeCaller -R /public1/home/scg2749/project/Pruns/----/X101SC22043754-Z01-J002/04.Reference/Prunus_salicina_Sanyueli_FAAS_v1.0.fa --emit-ref-confidence GVCF -I /public1/home/scg2749/project/Pruns/----/X101SC22043754-Z01-J002/03.sorted.bam/$F[0] -O /public1/home/scg2749/project/Pruns/----/X101SC22043754-Z01-J002/05.result/$F[0].g.vcf}'|perl -lpe 's/.rmdup.bam.g.vcf/.g.vcf/'|while read line;do $line;done

    sbatch HaplotypeCaller.sh

    参数详解 -R 参考基因组位置 -I bam文件位置 -O输出路径 注意大小写

    3.2使用GenotypeGVCFs对GVCF进行joint calling 通过gvcf检测变异

    vim GenotypeGVCFs.sh

    #!/bin/bash

    #SBATCH -p amd_512  ##指定使用的队列名称

    #SBATCH -N 4        ##指定使用的节点数是1

    #SBATCH -n 4        ##指定使用的核数为1(串行的话使用1核,如果需要使用并行可以修改核数)

    ls *.g.vcf|perl -lane 'print qq{time gatk GenotypeGVCFs -R /public1/home/scg2749/project/Pruns/xieweiwei/X101SC22043754-Z01-J002/04.Reference/Prunus_salicina_Sanyueli_FAAS_v1.0.fa -V /public1/home/scg2749/project/Pruns/xieweiwei/X101SC22043754-Z01-J002/05.result/$F[0] -O /public1/home/scg2749/project/Pruns/xieweiwei/X101SC22043754-Z01-J002/05.result/$F[0].vcf}'|perl -lpe 's/.markdup.bam.g.vcf.vcf/.vcf/'g|while read line;do $line;done

    sbatch GenotypeGVCFs.sh 

    参数详解:-R 参考基因组位置 -V 上一步中生成的g.vcf文件路径 -O输出路径

    为节省储存可使用gzip对vcf文件压缩

    ls *.vcf|perl -lane 'print qq{time bgzip -f /public1/home/scg2749/project/Pruns/----/X101SC22043754-Z01-J002/05.result/$F[0]}'|while read line;do $line;done

    构建tabix索引

    ls *.vcf.gz|while read id;do time tabix -p vcf /public1/home/scg2749/project/Pruns/xieweiwei/X101SC22043754-Z01-J002/05.result/$id;done

    此时就得到不同样本相对于参考基因组的变异情况了,后序还需对变异数据进行质控及注释


    写在最后,

    一天过去了,又划了一天水。最近学校食堂开了新窗口了是瓦罐汤和拌粉,开业第一天去尝了一下,从老板的动作来看属于是第一次开店,但是手艺还不错至少我觉得拌粉挺好吃的,希望老板能长久开下去吧。感觉自己最近失去的挺多的,包括人和事,心情挺糟糕的。打算看看文献看能不能分散注意力,顺带做做文献分享,看看自己行不行,毕竟湿实验也做不出来。

    相关文章

      网友评论

        本文标题:全基因组重测序数据分析

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