跟着Nature Genetics学数据分析:nucmer+lastz+svum流程全基因组比对鉴定CNV

简介: 跟着Nature Genetics学数据分析:nucmer+lastz+svum流程全基因组比对鉴定CNV

论文

Super-pangenome analyses highlight genomic diversity and structural variation across wild and cultivated tomato species

https://www.nature.com/articles/s41588-023-01340-y

西红柿NG_superPan正文.pdf

数据分析的代码

https://github.com/HongboDoll/TomatoSuperPanGenome

论文里提供了绝大部分的数据处理代码,很好的学习材料,今天的推文我们学习一下其中利用minimap2 和 syri两个软件最全基因组水平比对然后鉴定结构变异的代码

还有 nucmer+lastz+svum流程全基因组比对鉴定CNV的代码

首先是minimap2基因组水平比对的代码

minimap2 -t 20 -ax asm5 --eqx ref.fasta query.fasta | samtools view -b > query.bam

minimap2 -t 20 -ax asm10 --eqx ref.fasta query.fasta | samtools view -b > query.bam

这里asm5是同一个种不同物种个体之间的基因组比对用到的参数,asm10是跨种比对用到的参数

利用bam文件检测变异的代码

syri -c query.bam -r ref.fa -q query.fa -k -F B --prefix query --nc 12

输出文件里会有syri.vcf结尾的vcf文件,但是vcf文件中有的变异信息记录的不是很完整,比如INV和TRANS

INV是Inversion
TRANS是Translocation

这两种变异类型在vcf文件中ref和alt列记录的是

N

N

这个论文里提供了代码处理另外的输出文件invOut.txt获得新的vcf文件,需要重点学习一下这部分代码,搞定了再来记录

论文中还鉴定CNV这个是拷贝数变异,这个是用numer比对

用拟南芥的数据试试

nucmer -t 8 ../ref.fa ../only.chr.genome/Sha.fa --prefix sha_ref

seqkit split -i ../ref.fa
seqkit split -i ../only.chr.genome/Sha.fa


lastz ../ref.fa.split/ref.part_chr1.fa ../only.chr.genome/Sha.fa.split/Sha.part_chr1.fa --chain --format=general:name1,strand1,start1,end1,name2,strand2,start2,end2 --ambiguous=iupac > chr1.sha_ref.sam_lastz.txt

lastz这个工具是只能一条序列和另外一条序列比 (这个比对时间相对还是比较长的)

https://github.com/lastz/lastz

~/biotools/software.package/svmu-master/svmu sha_ref.delta ../ref.fa ../only.chr.genome/Sha.fa h chr1.sha_ref.sam_lastz.txt sha_ref_svmu

这一步生成4个文件

sv.sha_ref_svmu.txt
cords.sha_ref_svmu.txt
cm.sha_ref_svmu.txt
small.sha_ref_svmu.txt
cnv_all.sha_ref_svmu.txt

我这里cnv开头的文件是空的

lastz比对fasta文件里如果有多条序列也可以比,写法如下。NG文章里提供的代码应该是有问题的(当然不确定,很大可能是我自己理解有问题)

~/lastz-distrib/bin/lastz ../ref.fa[multiple] ../only.chr.genome/Sha.fa[multiple] --chain --format=general:name1,strand1,start1,end1,name2,strand2,start2,end2 --ambiguous=iupac > sha_ref.sam_lastz.txt

拟南芥的一对基因组比就用了将近400分钟6个多小时

real    378m26.295s
user    376m9.733s
sys    2m9.278s

不知道有没有参数可以改或者设置多线程之类的

 ~/biotools/software.package/svmu-master/svmu sha_ref.delta ../ref.fa ../only.chr.genome/Sha.fa h sha_ref.sam_lastz.txt full_genome_sha_ref_svmu

论文中提供的代码接下来用到了 filter_delta_based_svmu_cm.py这个脚本,我暂时没有找到这个脚本

把svum软件的输出结果保存成vcf格式,先用grep和awk对数据进行一个过滤

grep "CNV" sv.full_genome_sha_ref_svmu.txt | awk '$(NF-2)>50' | awk '$NF!=0&&$(NF-1)!=0&&$NF!="inf"&&$(NF-1)!="inf"' | awk '$NF/$(NF-1)>=2||$(NF-1)/$NF>=2' > sv.full_genome_sha_ref_svmu_CNV.xls

这里awk的 命令暂时搞不太懂是什么意思

转vcf用到的代码

cat sv.full_genome_sha_ref_svmu_CNV.xls | while read n
do
        chr=`echo $n | awk '{print $1}'`
        pos=`echo $n | awk '{print $2}'`
        ref_pos=`echo $n | awk '{if($2<=$3){print $1":"$2"-"$3}else{print $1":"$3"-"$2}}'`
        alt_pos=`echo $n | awk '{if($6<=$7){print $5":"$6"-"$7}else{print $5":"$7"-"$6}}'`
        ref_seq=`samtools faidx ../ref.fa $ref_pos | grep -v '>' | sed ':a;N;s/\n//g;ta'`
        alt_seq=`samtools faidx ../only.chr.genome/Sha.fa $alt_pos | grep -v '>' | sed ':a;N;s/\n//g;ta'`
        echo -e "${chr}\t${pos}\t.\t${ref_seq}\t${alt_seq}\t30\tPASS\t.\tGT\t1/1" >> sv.full_genome_sha_ref_svmu_CNV.vcf
done
bash cnv2vcf.sh

这个vcf文件是没有表头的那些内容的,需要再单独添加

svum 这个软件的github主页

https://github.com/mahulchak/svmu

下载下来解压,然后直接make就可以

对应的论文

https://www.nature.com/articles/s41467-019-12884-1

Structural variants exhibit widespread allelic heterogeneity and shape variation in complex traits

示例数据和代码可以给推文点赞,然后点击在看,最后留言获取

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!
相关文章
|
6月前
|
数据采集 人工智能 数据可视化
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
Streamline Analyst 🪄是一个开源的基于GPT-4这样的大语言模型的应用,目标简化数据分析中从数据清洗到模型测试的全部流程。分类预测、聚类、回归、数据集可视化、数据预处理、编码、特征选择、目标属性判断、可视化、最佳模型选择等等任务都不在话下。用户需要做的只有选择数据文件、选择分析模式,剩下的工作就可以让AI来接管了。所有处理后的数据和训练的模型都可下载。
498 2
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
数据科学项目实战:完整的Python数据分析流程案例解析
【4月更文挑战第12天】本文以Python为例,展示了数据分析的完整流程:从CSV文件加载数据,执行预处理(处理缺失值和异常值),进行数据探索(可视化和统计分析),选择并训练线性回归模型,评估模型性能,以及结果解释与可视化。每个步骤都包含相关代码示例,强调了数据科学项目中理论与实践的结合。
596 2
|
4月前
|
数据采集 机器学习/深度学习 SQL
如何构建高效的数据分析流程:从技术视角出发
【7月更文挑战第22天】构建高效的数据分析流程是一个持续迭代的过程,需要技术团队与业务团队的紧密合作。通过不断优化流程,企业可以更加高效地利用数据资源,为业务决策提供有力支持。
|
4月前
|
数据采集 机器学习/深度学习 数据可视化
完整的Python数据分析流程案例解析-数据科学项目实战
【7月更文挑战第5天】这是一个Python数据分析项目的概览,涵盖了从CSV数据加载到模型评估的步骤:获取数据、预处理(处理缺失值和异常值、转换数据)、数据探索(可视化和统计分析)、模型选择(线性回归)、训练与评估、优化,以及结果的可视化和解释。此流程展示了理论与实践的结合在解决实际问题中的应用。
107 1
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
人工智能 Cloud Native 大数据
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
442 0
|
6月前
|
数据采集 数据可视化 数据挖掘
利用Python和Pandas库优化数据分析流程
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要依据。Python作为一种强大且易于上手的编程语言,配合Pandas这一功能丰富的数据处理库,极大地简化了数据分析的流程。本文将探讨如何利用Python和Pandas库进行高效的数据清洗、转换、聚合以及可视化,从而优化数据分析的流程,提高数据分析的效率和准确性。
|
6月前
|
数据采集 数据可视化 数据挖掘
知识分享-商业数据分析业务全流程
知识分享-商业数据分析业务全流程
103 1
|
6月前
|
算法 安全 数据挖掘
Python典型数据分析流程——纯理论(深入理解的看)
Python典型数据分析流程——纯理论(深入理解的看)
120 0
|
数据采集 SQL 数据可视化
79 网站点击流数据分析案例(整体技术流程及架构)
79 网站点击流数据分析案例(整体技术流程及架构)
112 0