软件前沿:泛基因组学映射工具Giraffe

作者:心如止水

要点:

  1. 软件概览
  2. 软件算法核心
  3. 软件安装和使用

hello,大家好,今天为大家带来关于软件前沿 | 泛基因组学映射工具Giraffe的超详细介绍及应用教程。

我们将持续为大家带来生物医疗健康大数据分析的系列文章,欢迎大家关注我们,可以更及时的看到我们的文章哦。

软件概览

近期,美国加州大学圣克鲁斯基因研究所的Benedict Paten研究团队开发了一种泛基因组短读长映射工具——Giraffe,能够高效地将单个测序reads映射到包含数千个人类基因组的泛基因组上,号称能够对SNV、InDels和SV进行更准确的基因分型,且速度可与映射到单一参考基因组的标准方法相媲美。

1.1 背景

目前基于单一参考序列无法很好地捕获群体甚至是个体的基因组多态性。例如,当一个人的基因组因结构变异而与参考基因组不同时,单一的参考基因组可能不包含正确映射相应reads的位置。虽然长读长测序能够很好的解决这个问题,但是短读长测序由于低成本依然是目前基因组学研究的主要手段。随着参考基因组的不断发布以及基因组间的相互比较,人们逐渐认识到单一参考基因组不能代表物种内的多样性,由此,泛基因组(Pan-genome)应运而生。因此,如何高效准确的将短读长映射到泛基因组上成了一个亟待解决的问题。

1.2 研究内容

  1. 来自长序列和大规模测序研究的约167000个结构变异被用来构建泛基因组参考图谱。
  2. 对5202个样本进行短读长测序,使用Giraffe将读数映射到构建泛基因组参考图谱上,并评估映射的准确性、速度和映射偏差,并和传统的线性基因组映射工具做对比。
  3. 映射的结果用于变异检测,并评估变体调用的准确性:
    例如将结构变异结果与表达变化关联分析、进行表达数量性状位点识别(eQTLs)和群体频率评估。

1.3 结论

Giraffe可以更全面地描述遗传变异的特征,对变异进行更全面的表征,进而改进基因组分析。

软件算法核心

图A:挑选了CASP12 基因组区域展示构建的泛基因组图(1000GP graph)。不同条带代表不同的路径(即单体型haplotypes),宽度代表log化的人群频率。 此图主要展示泛基因组图谱的基本结构。

图B:比对时的输入包含三个:read序列、构建泛基因组图、GBWT索引(用来有效地存储和查询泛基因组图中的单体型)。(此处,为了便于读者理解,作者将整个read在graph中的真实节点使用不同颜色区分了出来,这样可以直观展示read在整个参考graph和GBWT上分布情况)

图C:read和GBWT 分别做minimizer index,当reads的minimizer能够在GBWT中的匹配时,则确定该minimizer为一个seed, 如图上黑色实线框圈起来的部分。

图D:对前面查找到的seed进行聚类,聚类是根据最小图距离(t,以核苷酸为单位)进行聚类。(距离在t以内的seed聚为一类)

图E:高得分的cluster中的seed沿着haplotype向两边延伸,形成最大无间隙局部对齐。(此处为ungapped alignment,最终形成黑框所示比对结果)

图F:无法延伸的部分使用gapped alignment 解决

软件安装和使用

giraffe工具目前是作为一个功能模块封装在集成工具vg(variation graph tool)里头。vg工具包含了非常多的功能模块/子命令,能够进行变异图化,格式转换,序列映射,基因分型,和变异调用等。

3.1 软件安装

软件链接: https://github.com/vgteam/vg
文章源码: https://github.com/vgteam/giraffe-sv-paper

  1. 直接下载二进制文件(推荐)
wget https://github.com/vgteam/vg/releases/download/v1.38.0/vg
chmod +x vg  #添加执行权限
  1. 源码安装
    相对比较麻烦一些,需要 GCC 4.9 或更高版本,并支持 C++14 来编译 vg。(检查您的版本gcc --version)支持最高 11.2.0 的 GCC。需要 64 位操作系统,
#下载源码
git clone --recursive https://github.com/vgteam/vg.git
cd vg#对于Ubuntu用户,使用一下命令准备编译环境
make get-deps
#对于其他的linux版本则使用以下命令安装配置环境
sudo apt-get install build-essential git cmake   pkg-config libncurses-dev libbz2-dev  \protobuf-compiler libprotoc-dev libprotobuf-dev libjansson-dev \automake gettext autopoint libtool jq bsdmainutils bc rs parallel \npm curl unzip redland-utils librdf-dev bison flex gawk lzma-dev \liblzma-dev liblz4-dev libffi-dev libcairo-dev libboost-all-dev
. ./source_me.sh && make #开始编译
./bin/vg #测试是否成功

3.2 软件使用

此处,针对泛基因组映射工具giraffe,主要涉及到VG的三个子命令:constructgbwtgiraffe
construct 用于构建泛基因组图谱;
gbwt 用于构建graph Burrows-Wheeler transform (GBWT)索引[2],(GBWT 是一个多字符串 FM 索引,用于索引泛基因组图谱上相似路径的大量集合);
giraffe 用于将read快速映射到泛基因组图谱上。

  1. 构建泛基因组图谱
    示例:
./vg construct --fasta hs38d1.fna.gz --vcf HGSVC.haps.vcf.gz --vcf_phasing HGSVC.haps.vcf.gz --fasta_regions --remove_chr_prefix  --out_name HGSVC_hs38d1
  1. 构建graph Burrows-Wheeler transform (GBWT) index
    示例:
./vg gbwt -p -g output.gg -o output.gbwt -x input.xg –P
  1. 将read快速映射到泛基因组图谱上
    示例:
./vg giraffe -x ${GRAPH}.xg -H ${GRAPH}.${GBWT}.gbwt -g ${GRAPH}.${GBWT}.gg -m ${GRAPH}.${GBWT}.min -d ${GRAPH}.dist -f ${READS}.fq.gz -b ${PARAM_PRESET} ${PAIRED} -t 16 -p 2>log.txt >mapped.gam

以上为我们给大家带来的泛基因组学映射工具Giraffe的基本知识以及详细操作过程。如果对生物医疗健康大数据相关内容感兴趣也可以持续关注我们。

想要探索更多的软件流程或者知识文档,可以到六点了官网[1]看到。

References
[1] 六点了官网: http://www.sixoclock.net
[2] J. Sirén, E. Garrison, A. M. Novak, B. Paten, R. Durbin, Haplotype-aware graph indexes. Bioinformatics 36, 400–407 (2020). pmid: 31406990
[3]Jouni Sirén,Jean Monlong,Xian Chang,Adam M. Novak,Jordan M. Eizenga,Charles Markello,Jonas A. Sibbesen,Glenn Hickey,Pi-Chuan Chang,Andrew Carroll,Namrata Gupta,Stacey Gabriel,Thomas W. Blackwell,Aakrosh Ratan,Kent D. Taylor,Stephen S. Rich,Jerome I. Rotter,David Haussler,Erik Garrison,Benedict Paten,Pangenomics enables genotyping of known structural variants in 5202 diverse genomes, Science, 374, 6574, (2021).

软件前沿:泛基因组学映射工具Giraffe相关推荐

  1. Science发布基因组比对革新技术:泛基因组学映射工具Giraffe

    目前,基因测序普遍使用的DNA测序仪主要基于短读长测序技术,在获得基因组序列片段后,将其映射到参考基因组序列中来确定染色体位置,识别出其与基因组参照的差异.但完全依赖单一参考序列来鉴别具有遗传多样性的 ...

  2. apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard

    apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard 想在苹果电脑 mac 系统下使用 机械键盘,大部分机械键盘不是为mac设计的,所 ...

  3. 端口映射工具之80端口映射软件无公网IP时发布网站应用等应用

    端口映射工具,也可以是端口映射软件,一般是指内网端口映射软件,在内网使用,可以将内网端口与外网端口进行映射中转.不同于端口映射器,端口映射器是一个硬件,从硬件上实施的方案. 端口映射软件,以nat12 ...

  4. JGG | 河北大学杜会龙组综述植物泛基因组学研究

    近年来,测序技术的发展和测序成本的降低促使植物基因组学取得了巨大进展.随着研究的深入,科研人员发现单一参考基因组无法代表一个物种的遗传多样性,从而提出了泛基因组(Pan-genome)的概念.泛基因组 ...

  5. Linux下端口映射工具

    Linux下端口映射工具rinetd Linux下简单好用的工具rinetd,实现端口映射/转发/重定向 软件下载 wget http://www.boutell.com/rinetd/http/ri ...

  6. 端口映射工具 – portmi

    端口映射工具介绍 这是一个命令行执行的端口映射工具.下载的时候注意区分操作系统.目前支持Window和Linux. 接下来是为小白准备的,清楚何为端口映射的同学可以直接点击下方链接进行下载.有些时候访 ...

  7. 端口映射工具PortTunnel

    PortTunnel应该是目前最好的端口转发器.端口映射工具(它解决了内外网访问的问题) 可以在我的资源中下载:https://download.csdn.net/download/qq_395694 ...

  8. ngrok--免费好用的外网映射工具

    写在前面的话 ngrok就不多说了,作为一款免费又好用的映射工具,绝对是你调试程序的有力助手,话不多说,下面我来分享一下自己的心得 ---------------------------------- ...

  9. Proxyer私有内网映射工具【镜像源修复版】

    [转载]原作者地址:https://github.com/khvysofq/proxyer 一.私有内网映射工具[镜像源修复版] 项目地址 github 项目地址 gitee 试用地址 http:// ...

最新文章

  1. runnable和handler联合实现计时循环
  2. String长度有限制吗?是多少?还好我看过
  3. UVa11100 The Trip,2007(贪心)
  4. Putty常用属性设置
  5. 【渝粤教育】电大中专建筑施工组织作业 题库
  6. 接口自动化测试框架搭建(1、环境、框架的思路及目录构成)--python+HTMLTestRunnerCN+request+unittest+mock+db
  7. tensorflow中的tf.get_variable
  8. CNN 解析 --唐宇迪
  9. 海盗王封WPE的方法
  10. Android Studio User Manual
  11. AUTOSAR和OSEK关系及网络管理比较
  12. Mac怎么读写NTFS格式?
  13. html中鼠标悬停图片变大,JavaScript通过mouseover()实现图片变大效果的示例
  14. Android成长之路-音乐播放器的实现
  15. wifi爆破学习记录
  16. Android实用代码大全
  17. NUMECA/FineTurbo计算中自动调用CFview实时数据处理
  18. [英语阅读]边听音乐边运动能提高智商吗
  19. 二级列表ExpandableListView的CheckBox使用
  20. android仿喜马拉雅APP状态栏,ReactNative+TypeScript仿喜马拉雅开发App(示例代码)

热门文章

  1. 博客园登录太麻烦,于是来了。
  2. css3实现背景图片半透明内容不透明的方法
  3. 西门子 S7300 以太网模块连接组态王方法
  4. 基于javaweb的高校课程在线考试管理系统
  5. Play framework如何使用play控制台
  6. 中国科学院大学计算机学科评估,国科大30个学科在第四轮学科评估中获评A类
  7. 52单片机设计时钟(串口控制)
  8. 2020年第四届中国 BIM (数字建造)经理高峰论坛即将在杭举办
  9. Pandas-时期(二)-数据类型:PeriodIndex(其中每个元素的类型为:Period)【创建:①pd.PeriodIndex([], freq=‘‘);②pd.period_range()】
  10. php 操作sqlite