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

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

1.安装

建议直接用conda。

  1. conda create -n cnv cnvnator
  2. conda activate cnv

查看帮助:

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

2.测试

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

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

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

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

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

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

表头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。

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

3.动植物群体检测CNV

正式分析。

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

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

  1. 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

使用CNVnator分析动植物群体拷贝数变异CNV的更多相关文章

  1. DNA拷贝数变异CNV检测——基础概念篇

    DNA拷贝数变异CNV检测——基础概念篇   一.CNV 简介 拷贝数异常(copy number variations, CNVs)是属于基因组结构变异(structural variation), ...

  2. 全基因组测序 从头测序(de novo sequencing) 重测序(re-sequencing)

    全基因组测序 全基因组测序分为从头测序(de novo sequencing)和重测序(re-sequencing). 从头测序(de novo)不需要任何参考基因组信息即可对某个物种的基因组进行测序 ...

  3. 全基因组测序 Whole Genome Sequencing

    全基因组测序 Whole Genome Sequencing 全基因组测序(Whole Genome Sequencing,WGS)是利用高通量测序平台对一种生物的基因组中的全部基因进行测序,测定其 ...

  4. GWAS | 全基因组关联分析 | Linkage disequilibrium (LD)连锁不平衡 | 曼哈顿图 Manhattan_plot | QQ_plot | haplotype phasing

    现在GWAS已经属于比较古老的技术了,主要是碰到严重的瓶颈了,单纯的snp与表现的关联已经不够,需要具体的生物学解释,这些snp是如何具体导致疾病的发生的. 而且,大多数病找到的都不是个别显著的snp ...

  5. CNV

    CNV: 人类主要是二倍体.如果有些区域出现3个.4个拷贝,那就是扩增了,如果只出现1个拷贝,就是缺失.所以CNV分析是依靠特定位置的测序深度来估算的,先在染色体上划窗,然后看每个窗口的平均测序深度, ...

  6. GATK--数据预处理,质控,检测变异

    版权声明:本文源自 解螺旋的矿工, 由 XP 整理发表,共 13781 字. 转载请注明:从零开始完整学习全基因组测序(WGS)数据分析:第4节 构建WGS主流程 | Public Library o ...

  7. SNP/单核苷酸多态性分析

    SNP/单核苷酸多态性分析 SNP(Single Nucleotide Polymorphism),即单核苷酸多态性,是由于单个核苷酸改变而导致的核酸序列多态.一般来说,一个SNP位点只有两种等位基因 ...

  8. 对CCLE数据库可以做的分析--转载

    转载:http://www.bio-info-trainee.com/1327.html 收集了那么多的癌症细胞系的表达数据,拷贝数变异数据,突变数据,总不能放着让它发霉吧! 这些数据可以利用的地方非 ...

  9. Data Mining的十种分析方法——摘自《市场研究网络版》谢邦昌教授

    Data Mining的十种分析方法: 记忆基础推理法(Memory-Based Reasoning:MBR)        记忆基础推理法最主要的概念是用已知的案例(case)来预测未来案例的一些属 ...

随机推荐

  1. Envoy实现.NET架构的网关(二)基于控制平面的动态配置

    什么是控制平面 上一篇我们讲了文件系统的动态配置,这次我们来看看通过Control Panel来配置Envoy.控制平面就是一个提供Envoy配置信息的单独服务,我们可以通过这个服务来修改Envoy的 ...

  2. 你知道怎么使用Google两步验证保护账户安全吗?

    目录 为什么我们需要使用它? 对有些人来说,盗取密码比您想象的更简单 什么是Google两步验证? 多一道安全防线 什么是Google Authenticator ? 使用Google两步验证的好处 ...

  3. 把二叉树打印成多行 牛客网 剑指Offer

    把二叉树打印成多行 牛客网 剑指Offer 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行 # class TreeNode: # def __init__(self, x) ...

  4. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  5. Python——Excel转Json工具

    Python工具Excel转Json 前置条件 1.安装python 下载python 我下载的是2.7: 2.配置环境变量 我的电脑右键--属性--高级系统设置--环境变量: 添加python的安装 ...

  6. docker commit 制作自定义tomcat镜像

    官网下载的tomcat一般存在漏洞,在生产环境中一般是自己下载jdk和tomcat制作成一个新的镜像使用 1.将jdk和tomcat上传 2.生成 c3 容器 3.将jdk和tomcat拷贝到c3容器 ...

  7. 记一次线上环境 ES 主分片为分配故障

    故障前提 ElasticSearch 版本:5.2 集群节点数:5 索引主分片数:5 索引分片副本数:1 线上环境ES存储的数据量很大,当天由于存储故障,导致一时间 5个节点的 ES 集群,同时有两个 ...

  8. prometheus(4)之alertmanager报警插件

    报警处理流程如下: 1. Prometheus Server监控目标主机上暴露的http接口(这里假设接口A),通过Promethes配置的'scrape_interval'定义的时间间隔,定期采集目 ...

  9. ansible模块及语法

    常用模块详解 模块说明及示例: 1.ping模块ping模块 主要用于判断远程客户端是否在线,用于ping本身服务器,返回值是changed.ping示例 ansible clu -m ping 2. ...

  10. nose在python2与python3中的包的自动发现用例的区别

    最近在使用python3,同样装了nose,发现自动发现用例总是有问题,如下面的代码结婚 testcase |------ __init__.py |------ test_bb.py test_bb ...