前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >高通量测序如何寻找T-DNA插入的位置

高通量测序如何寻找T-DNA插入的位置

作者头像
生信技能树
发布于 2018-03-29 08:25:09
发布于 2018-03-29 08:25:09
17.5K00
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

为了解基因组存在T-DNA插入时,即基因组构成为AC而样本基因组为ABC的情况得到的测序结果在序列比对的时候的可能情况,因此需要先要使用模拟数据进行探索。

第一步:构建参考序列和实际序列。这一部分会用到 samtools, embossentrez-direct, 都可以通过conda安装

用efecth下载参考基因组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p refsefetch -db=nuccore -format=fasta -id=AF086833 | seqret --filter -sid AF086833 > refs/AF086833.fa

从参考基因组提取其中部分序列用作参考序列,而下载的参考基因组则被当成实际的基因组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 提取1~5000, 8000~cat refs/AF086833.fa | seqret -filter -sbegin 1 -send 5000 > part1.facat refs/AF086833.fa | seqret -filter -sbegin 8000 > part2.fa# 合并cat part1.fa part2.fa| union -filter > refs/ref.fa

第二步:模拟测序结果。这一步用到 dwgsim,也可以用 conda安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir datadwgsim -e 0.02 -E 0.02 -d 350 -1 100 -2 100 -s 50 -r 0 -R 0 -N 10000 -c 0 refs/AF086833.fa data/data

解释dwgsim的参数, -e-E为测序仪的系统错误率, -d表示文库大小, -1-2表示短读长度(这里就是文库大小350bp,PE100), 而 -s则表示文库大小的波动情况, -r-R表示基因组的突变率, -N表示输出的短读数, -c表示输出数据类型(0为illumina, 1为SOLiD,2为Ion Torrent)。最后会在data文件下生成以data为前缀的几个文件。

第三步:回贴到参考序列。所用工具为 bwasamtools

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 建立索引bwa index refs/ref.fabwa mem refs/ref.fa# 比对mkdir alignbwa mem refs/ref.fa data/data.bwa.read1.fastq.gz data/data.bwa.read2.fastq.gz| samtools sort > align/data.bwa.bamsamtools index align/data.bwa.bam

第四步:使用IGV和samtools探索比对结果. samtools是处理SAM/BAM格式的常用工具,而IGV则是可视化利器。首先用samtools的flagstat统计比对的总体情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ samtools flagstat align/data.bwa.bam20000 + 0 in total (QC-passed reads + QC-failed reads)0 + 0 secondary0 + 0 supplementary0 + 0 duplicates15906 + 0 mapped (79.53% : N/A)20000 + 0 paired in sequencing10000 + 0 read110000 + 0 read215662 + 0 properly paired (78.31% : N/A)15662 + 0 with itself and mate mapped244 + 0 singletons (1.22% : N/A)0 + 0 with mate mapped to a different chr0 + 0 with mate mapped to a different chr (mapQ>=5)

不难大部分序列(~80%)都是正确成对(properly paired),其中properly paired的解释为"0x2 PROPER_PAIR .. each segment properly aligned according to the aligner",也就是两个序列都能在基因组上找到自己的位置,最常见的两类flags就是"83,163"和"99和147",也就是和参考序列反向互补

flags为83和163的结果

那么余下的20%序列是什么情况?我们可以通过管道的方式进行简单的统计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ samtools view -F 0x2 align/data.bwa.bam | cut -f 2 | sort | uniq -c | sort -k1,1nr1925 1411925 7765 13765 6962 12162 18159 11759 18558 13358 73

其中大部分序列是 77141,也就是说两条reads都没有比对到参考基因组上, 也就是SAM格式中的第3,6,7列为"*",第4,5,8,9列表示为"0"

141和77表示完全没有比对

剩下的"69,137","117,185"和"73,133","121,181"表示两条reads中只有一条,即flags为137,185和73,121的reads能比对到参考基因组上。

关于flags的含义,可以使用网页版 https://broadinstitute.github.io/picard/explain-flags.html 查询

其中一条read比对到参考序列

如果统计这些单边比对reads的位置信息,就会发现他们的位置是在4651~5214, 也就缩小搜索区间,因为通过IGV你会发现区间刚好存在一个breakpoint,所有双端联配在这里都出现不同程度的soft-clip。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
samtools view -b -F 0x2 align/data.bwa.bam | samtools view -b -G 141 | samtools view -G 77 | cut -f 4 | sort | head -n2samtools view -b -F 0x2 align/data.bwa.bam | samtools view -b -G 141 | samtools view -G 77 | cut -f 4 | sort | tail -n2

5000bp处就是插入位置

第五步:组装20%的不完美比对序列。这一步使用velvet组装工具,因为用起来比较容易,而且可以用bioconda安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
samtools view -b -F 0x2 align/data.bwa.bam | samtools sort -n | samtools fastq -1 read_1.fq -2 read_2.fq -velveth velvet31 31 -fastq -separate -shortPaired read_1.fq read_2.fqvelvetg velvet31 -exp_cov auto -ins_length 150# -ins_length表示两个reads的间隔平均距离

最后会在velvet31文件夹下生成 contigs.fa,这里面的N50肯定是看不了的,我们只是需要一个比较长一点的序列而已。

第六步:使用BLAST找到可能的位点。建立索引数据库,然后搜索组装的 contigs.fa的可能位置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd refs# 建立索引makeblastdb -dbtype nucl -in ref.fa# 搜索blastn -query ../velvet31/contigs.fa -db ref.fa -outfmt 8

BLASTN结果

以上仅仅使用了模拟数据的方式验证了方案的可行性,实际情况会比较复杂

参考文献

- "Genetic characterization of T-DNA insertions in the genome of the Arabidopsis thaliana sumo1/2 knock-down line

- Illumina Sequencing Technology as a Method of Identifying T-DNA Insertion Loci in ActivationTagged Arabidopsis thaliana Plants

- 【直播】我的基因组(十五):提取未比对的测序数据

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[CodeIgniter4]概述-应用结构
为了可以充分利用 CodeIgniter,你需要了解应用程序的结构,默认情况下,你可以更改内容以满足你的应用程序的需求。
landv
2020/03/05
9720
[CodeIgniter4]-代码模块
CodeIgniter支持代码模块化组合,以便于你构建可重用的代码。模块通常来说是以一个特定主题为中心而构建的,并可被认为是在大型的程序中的一系列微型程序。 我们支持框架中所有标准的文件类型,例如控制器,模型,视图,配置文件,辅助函数,语言文件等。模块可能包含着或多或少的你所需要的以上这些类型中。
landv
2020/03/05
1.3K0
【自学自用】CodeIgniter的学习与记录
下载https://codeigniter.org.cn/user_guide/installation/downloads.html
一朵灼灼华
2022/08/05
5770
[codeigniter4]Upgrading from 3.x to 4.x
CodeIgniter 4 is a rewrite of the framework, and is not backwards compatible. It is more appropriate to think of converting your app, rather than upgrading it. Once you have done that, upgrading from one version of CodeIgniter 4 to the next will be straightforward.
landv
2020/03/04
7230
[CodeIgniter4]-控制器
简而言之,一个控制器就是一个类文件,是以一种能够和 URI 关联在一起的方式来命名的。
landv
2020/03/05
4K0
[CodeIgniter4]概述-自动加载文件
每个应用程序都包含许多位于不同位置的类。该框架提供了用于核心功能的类。您的应用程序将具有许多库,模型和其他实体,以使其正常运行。您可能有项目正在使用的第三方类。跟踪每个文件的位置,然后将该位置硬编码成一系列文件,这requires()是一件非常麻烦的事情,而且容易出错。这就是自动装带器的用武之地。
landv
2020/03/05
1.9K0
搭建CI使用Laravel ORM模块
下载CI框架并解压到工作目录 配置nginx,并重启nginx -s reload server { charset utf-8; client_max_body_size 128M; listen 80; server_name ci-with-orm.com; root /Users/clive/Workspace/ci_with_orm; index index.php index.html
Clive
2019/05/31
1.2K0
CodeIgniter自学之旅-入门与简单应用
由于最近被 StartBBS吸引,但其简单的编辑器用起来不太爽,想换成富文本的,但无php经验,故只能先自学相关内容。
WindCoder
2018/09/20
1.3K0
[codeigniter4]系列开篇
https://codeigniter-chinese.github.io/codeigniter4-user-guide/index.html
landv
2020/03/02
2.8K0
CodeIgniter (CI) 框架学习 -- load_class
文档是前提,没有捷径。 http://codeigniter.org.cn/user_guide/index.html
lpe234
2020/07/27
1.4K0
[CodeIgniter4]-辅助函数
顾名思义,帮助程序可以帮助您完成任务。每个帮助文件只是特定类别中功能的集合。有URL帮助程序,可以帮助创建链接,有Form Helpers可以帮助您创建表单元素,Text Helpers可以执行各种文本格式设置例程,Cookie Helpers可以设置和读取Cookie,File Helpers可以帮助您处理文件,等等。
landv
2020/03/05
1.7K0
[CodeIgniter4]概述-服务
CodeIgniter中的所有类均作为“服务”提供。这仅意味着,要对要调用的类进行硬定义,而不是对要加载的类名称进行硬编码,而是在一个非常简单的配置文件中定义它们。该文件是一种工厂类型,用于创建所需类的新实例。
landv
2020/03/05
2K0
搭建 LNMP + CodeIgniter 开发环境
搭建 LNMP + CodeIgniter 开发环境 搭建 LNMP 环境 首先搭建 LNMP 的服务器环境 安装 Nginx, MySQL 和 PHP 软件包 执行以下命令: yum install -y nginx mariadb-server mariadb php php-fpm php-mysql
仇诺伊
2018/09/12
2.2K0
yii2 扩展和自定义(函数 , 组件 , 模块)
自定义辅助函数 入口文件加载 目录下创建一个helpers目录下创建functions.php 文件 <?php if (! function_exists('hello')) { f
botkenni
2019/09/02
1.1K0
CI一些优秀实践
最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路。用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方。 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值。如果你之前没有使用过这种模式写过程序,你也许会皱起额头,不过你应该给自己尝试这样做的机会。 一
wangxl
2018/03/07
3.7K0
Yii2.0 RESTful API 基础配置教程
这是安装Yii2.0的首选方法。如果你还没有安装 Composer,你可以按照这里的说明进行安装。
hedeqiang
2019/12/17
1.1K0
[CodeIgniter4]-利用配置文件开始工作
每一个项目,都需要一种方法来定义不同的全局配置项,而这通常是借助配置文件来实现的。 而配置文件,一般来说,是通过声明一个将所有的配置项作为公开属性的类,来实现这一配置过程的。 不同于许多其他的框架,在CI4中,不需要访问某个具体的类来修改我们的配置项信息。 取而代之的是,我们仅仅需要创建一个配置类的实例,从而轻而易举的实现配置流程。
landv
2020/03/05
1.2K0
codeigniter 3.X使用red
CI3.X自带redis库并且在两个地方使用了这个功能,前提系统安装phpredis 这个PHP扩展
py3study
2020/01/08
1.5K0
[CodeIgniter4]讲解-加载静态页
本教程旨在向您介绍CodeIgniter框架和MVC体系结构的基本原理。它将向您展示如何以逐步的方式构造基本的CodeIgniter应用程序。
landv
2020/03/04
4.1K0
Yaf---写在前面
Yaf有着和Zend Framework相似的API, 相似的理念, 而同时又保持着对Bingo的兼容, 以此来提高开发效率, 规范开发习惯. 本着对性能的追求, Yaf把框架中不易变的部分抽象出来,采用PHP扩展实现(c语言),以此来保证性能.在作者自己做的简单测试中, Yaf和原生的PHP在同样功能下, 性能损失小于10%, 而和ZendFramework的对比中, Yaf的性能是Zend Framework的50-60倍.
Marco爱吃红烧肉
2021/07/23
2.1K0
相关推荐
[CodeIgniter4]概述-应用结构
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验