• 使用CNVnator分析动植物群体拷贝数变异CNV



    知名的拷贝数变异分析工具几乎都是为人类变异检测开发,对于动植物重测序分析有些尴尬。不过好在植物群体研究不必那么精细,用同样的工具也可做分析。

    地址:https://github.com/abyzovlab/CNVnator

    1.安装

    建议直接用conda。

    conda create -n cnv cnvnator
    conda activate cnv
    

    查看帮助:

    $ cnvnator 
    Not enough parameters.
    
    CNVnator v0.4.1
    
    Usage:
    cnvnator -root out.root  [-genome name] [-chrom 1 2 ...] -tree  file1.bam ... [-lite]
    cnvnator -root out.root  [-genome name] [-chrom 1 2 ...] -merge file1.root ...
    cnvnator -root file.root  [-genome name] [-chrom 1 2 ...] -vcf [file.vcf.gz | file.vcf] [-rmchr] [-addchr]
    cnvnator -root file.root  [-genome name] [-chrom 1 2 ...] -idvar [file.vcf.gz | file.vcf] [-rmchr] [-addchr]
    cnvnator -root file.root  [-genome name] [-chrom 1 2 ...] -mask strict.mask.file.fa.gz [-rmchr] [-addchr]
    cnvnator -root file.root [-genome name] [-chrom 1 2 ...] [-d dir | -fasta file.fa.gz] -his bin_size
    cnvnator -root file.root [-genome name] [-chrom 1 2 ...] -baf bin_size [-hap] [-useid] [-nomask]
    cnvnator -root file.root [-chrom 1 2 ...] -stat      bin_size
    cnvnator -root file.root                  -eval      bin_size
    cnvnator -root file.root [-chrom 1 2 ...] -partition bin_size [-ngc]
    cnvnator -root file.root [-chrom 1 2 ...] -call      bin_size [-ngc]
    cnvnator -root file.root -genotype bin_size [-ngc]
    cnvnator -root file.root -view     bin_size [-ngc]
    cnvnator -pe   file1.bam ... -qual val(20) -over val(0.8) [-f file]
    cnvnator-root file.root [-chrom 1 2 ...] -cptrees newfile.root
    cnvnator-root file.root -ls
    
    Valid genomes (-genome option) are: NCBI36, hg18, GRCh37, hg19, mm9, hg38, GRCh38
    

    2.测试

    首先准备好数据,再利用一个小数据集,比如这里用一条染色体来测试一下流程。

    准备基因组数据。需要将基因组按染色体/scaffold拆分成单条序列,放在一个目录下。

    mkdir genome;cd genome
    faSplit byname genome.fa genome
    # faSplit可用conda安装,或者自己写脚本拆分
    

    image.png

    测试脚本,先用一条染色体试试:

    #从bam文件中提取比对上的reads信息
    cnvnator -root file.root -tree sample-1.rmdup.bam -chrom 1
    #生成read depth分布图
    cnvnator -root file.root -his 1000 -d genome/  -chrom 1
    #计算统计结果
    cnvnator -root file.root -stat 1000 -chrom 1
    #RD信号分割
    cnvnator -root file.root -partition 1000 -chrom 1
    #拷贝数变异检测
    cnvnator -root file.root -call 1000 -chrom 1 > cnv.call.txt
    #转化为vcf,如果是conda安装,没有这个脚本,需要从GitHub上下载
    /biosoft/CNVnator/cnvnator2VCF.pl cnv.call.txt genome >test.vcf
    

    拷贝数cnv.all.txt结果:、
    image.png

    表头CNV_type coordinates CNV_size normalized_RD e-val1 e-val2 e-val3 e-val4 q0

    • CNV_type有deletion和duplication两种类型;
    • CNV_size 位于染色体区域;
    • normalized_RD 矫正后的read depth;
    • e-val1 t检验后的evalue值,通常该值越小,代表分析的结果越准确;
    • q0 比对的质量值为0的reads占比,通常该值越大,代表分析的结果越不准确。

    vcf结果:
    没有自动加上样品名,需要自己修改。加上--prefix参数也只是改变CNV ID。
    image.png

    更多结果解读,请查看官方文档或网上其他教程。

    3.动植物群体检测CNV

    正式分析。

    ls -l /project/gvcf/*.rmdup.bam |awk -F' ' '{print $8}' >sample.info
    cat sample.info |while read id;do
        sample=`basename $id |sed 's/.rmdup.bam//'`
        echo $sample
        cnvnator -root file.root -tree $id
        cnvnator -root file.root -his 1000 -d genome/
        cnvnator -root file.root -stat 1000
        cnvnator -root file.root -partition 1000
        cnvnator -root file.root -call 1000  > cnv.call.txt
        /biosoft/CNVnator/cnvnator2VCF.pl cnv.call.txt genome >${sample}.cnv.vcf
        sed  -i "22s/cnv/${sample}/" ${sample}.cnv.vcf
        bgzip ${sample}.cnv.vcf
        tabix -p vcf ${sample}.cnv.vcf.gz
    done
    

    得到各个样本的拷贝数vcf文件,将它们合并成一个。

    vcf-merge sample-1.cnv.vcf.gz sample-2.cnv.vcf.gz  ...>merge.vcf
    

    或对不同类型群体进行合并。

    https://blog.csdn.net/yangl7/article/details/114656482
    https://www.jianshu.com/p/98542359df20
    https://blog.csdn.net/weixin_43569478/article/details/108079613

  • 相关阅读:
    chrome的javascript 中的一个奇怪现象,引申到javascript的interger存储机制,ECMA standerd script的int engine分析
    php中的header("Location:URL") 与 javascript中 window.localtion 的区别
    test
    str_replace() 中的参数 类型、反反斜杠
    从PHP代码分析PHP 的GC(垃圾回收) 机制
    分离
    fiddler 监听某一站点
    PHP中对象的clone和引用的区别(Object Cloning and Passing by Reference in PHP)
    IOS使用MessageUI Framework 发送邮件
    IOS使用MessageUI Framework 发送短信息
  • 原文地址:https://www.cnblogs.com/jessepeng/p/15057378.html
Copyright © 2020-2023  润新知