BWA比对及Samtools提取目标序列

2023-05-16

今天想看一下自己的序列里面会不会有某细菌基因组存在,主要使用BWA和Samtools:

bwa主要用于将低差异度的短序列与参考基因组进行比对。主要包含三种比对算法:backtrack、SW和MEM,第一种只支持短序列比对(<100bp),后两种支持长序列比对(70bp~1M),并支持分割比对(split alignment)。MEM算法是最新的也是官方推荐的。

BWA-MEM 是一种新的比对算法,用于将测序 reads 或者组装后 contigs 比对至大型参考基因组,例如人参考基因组。它会自动选择局部比对和 end-to-end 比对模式,支持PE reads 比对和嵌合体比对。该算法对测序错误有良好的稳定性,适用的reads 长度范围较广,从70bp至几Mb。

bwa的工作原理

所有的比对工具均基于相同的原则:

1. 从参考基因组建立一个索引

2. 将FASTA和FASTQ文件中的序列同索引进行比对

一.ncbi上下载了wol细菌的100条序列,作为ref。

二.BWA比对

1.先是构建索引:

./bwa index /share/home/myname/wol/wol100.fas -p wol
-p索引文件前缀名
-a bwtsw :参考基因组大于2G的时候添加该参数

生成的索引文件:wol100.fas.amb、wol100.fas.ann、wol100.fas.bwt  wol100.fas.pac、wol100.fas.sa

2.bwa比对及samtools转为bam文件,并根据比对情况进行提取

bwa比对生成的为sam(sequence Alignment mapping)文件,将SAM转换为二进制对应的BAM格式。二进制格式对于计算机程序来说更容易使用。要将SAM转换为BAM,使用samtools view命令。

在医院服务器上用转录组的数据成功运行,学校服务器上报错,见后面。

bwa mem wol100.fas sample_R1.fq.gz sample_R2.fq.gz | /path/to/samtools view -S -bF 4 - > sample.bam

三.samtools根据比对情况提取

#提取比对到参考序列上的比对结果
samtools view -bF 4 test.bam > test.F.bam
 
#提取paired reads中两条reads都比对到参考序列上的比对结果;
#提取paired reads中两条reads都比对到参考序列上的比对结果,只需要把两个4+8的值12作为过滤参数即可
samtools view -bF 12 test.bam > test.F12.bam
 
#提取没有比对到参考序列上的比对结果
samtools view -bf 4 test.bam > test.f.bam

四.Flag参数

flag是一种描述read比对情况的标记,对于双端比对的数据,生成的BAM文件中,R1端序列和R2端序列的标识符是一样的,之前一直不知道如何根据bam文件区分哪条序列是R1端,哪条序列是R2端,代表R1端和R2端的信息都存储在flag中,即bam文件的第二列;

在bam文件格式中定义了各种flag代表的意思,一种12种,可以搭配使用。

-f 正确比对 only include reads with all  of the FLAGs in INT present [0]

-F NOT正确比对 only include reads with none of the FLAGS in INT present [0]

查询flag值含义:samtools flag 4

更多Flag信息见:http://www.htslib.org/doc/samtools-flags.html

五.提取特定位置上的比对结果

# 提取bam文件中比对到chr1上的比对结果,并保存到sam文件格式
samtools view test.bam chr1 > test.chr1.sam

# 线粒体
samtools view test.bam chrM > test.chrM.sam

# 提取chr1上能比对到30k到100k区域的比对结果
samtools view test.bam chr1:30000-100000 > test.chr1_30k-100k.sam

六.将sam文件、bam文件、fastq文件之间转换

## bam文件转fastq文件

samtools fastq -N -1 sample_P1.fq -2 sample_P2.fq sample.bam

## sam文件转bam文件:

samtools view -bS test.sam > test.bam

## bam文件转sam文件

附:samtools功能蛮强大的,功能很多,都可以单独写一篇了,参考的里面有非常详细的记录。

七.错误

错误1.

[M::bwa_idx_load_from_disk] read 0 ALT contigs

[M::process] read 67652 sequences (10000283 bp)…

[main_samview] fail to read the header from “-”.

中划线“-”是前一句命令的,也就是bwa出了错误。

发现错误2

错误2.单独运行bwa程序:

/opt/gridview//pbs/dispatcher/mom_priv/jobs/21873.node1.SC: line 10: 20117 Bus error  (core dumped)

一时找不到原因,但换了服务器运行就没有问题,暂时记录一下。

参考:

bwa官网:http://bio-bwa.sourceforge.net/

samtools命令详解:https://blog.csdn.net/qq_27390023/article/details/121164168

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BWA比对及Samtools提取目标序列 的相关文章

  • 使用sequoiadb遇坑 连接不上sdb

    前提 xff1a 三台虚拟机搭建的集群 问题 xff1a 本来前一天什么都是正常的 xff0c 用idea连接sdb的mysql实例能进行正常的操作 第二天早在idea上连接不上mysql xff0c 然后进入虚拟机用指令直接进入报错 xf
  • 错误: 找不到或无法加载主类 Application

    问题 启动idea 运行Springboot项目 出现错误 错误 找不到或无法加载主类 com XXX XXXXApplication 发现右边java文件不正常 解决方法 点击 file 选择 project structure 选择mo
  • 保证线程安全的10个小技巧

    对于从事后端开发的来说 xff0c 线程安全问题是我们每天都需要考虑的问题 线程安全问题通俗的讲 xff1a 主要是在多线程的环境下 xff0c 不同线程同时读和写公共资源 xff08 临界资源 xff09 xff0c 导致的数据异常问题
  • AOP是什么?

    一 AOP是什么 xff1f AOP为Aspect Oriented Programming的缩写 xff0c 意为 xff1a 面向切面编程 xff0c 是OOP的延续 xff0c 而这里的切面则代表动态的将代码加入到指定的方法或位置上
  • 一次anaconda+pycharm环境配置出现<No Interpreter>问题的解决办法

    选择add local interpreter后出现如下画面 xff1a 出现如下页面 xff0c 选择安装anaconda目录 xff0c 外面的python exe是base环境的 xff0c 里面envs文件夹中则是自己创建的环境 b
  • Archlinux配置静态的IP地址

    可以参考archwiki中配置网络的部分 使用网络配置工具来配置静态IP地址 dhcpcd可以配置静态的IP地址 xff0c 客户端dhcpcd和服务器端dhcpd是两个不同的软件包 我们使用的时候就是使用客户端的版本 安装dhcpcd s
  • Selenium在定位的class含有空格的复合类的解决办法

    题外话 有个博友看了我的文章之后 xff0c 解决好问题了 xff0c 请点击 xff1a https blog csdn net young gril article details 82754315 其实 xff0c 用CSS属性大法
  • 如何制作多合一Windows镜像

    新人发帖 xff0c 如有错误请纠正 1 准备多个Windows镜像 Vista以上的都可以 和工具包 工具包 zip 蓝奏云 2 随便建个文件夹 xff0c 解压工具包 3 提取Windows镜像中的install wim xff0c 在
  • shell脚本无法执行

    之前我再服务器中直接执行脚本 xff0c 但是无法执行 xff0c 我仔细看了一下原来没有给对应的shell文件设置对应的执行权导致shell无法执行 于是乎我使用了下面的脚本赋予了脚本执行权 chmod 43 x restart sh 这
  • zabbix6.0LTS安装全过程及遇到的问题

    现有centos 7 和mysql8 0 想下载zabbix6 0LTS的 server版本 xff0c 可是发现没有 xff0c 只有proxy 还没搞懂proxy的用处 xff0c 但目前知道不能替代server 所以打算安装cento
  • AndroidStudio使用kotlin入门

    AndroidStudio使用kotlin入门 导读 1 创建第一个kotlin项目2 java代码自动转换成kotlin代码3 开始Hello world ps 由于Markdown在简书里对锚点的支持效果不是很好 xff0c 就没设置跳
  • LAMP架构以及论坛的安装

    LAMP架构 一 熟悉LAMP架构1 Linux平台2 Apache前台3 Mysql后台4 PHP中间连接 二 编译安装Apache httpd服务三 编译安装mysqld服务四 编译安装PHP解析环境五 安装论坛 一 熟悉LAMP架构
  • Android OpenCV基础(一、OpenCV入门)

    一 OpenCV概述 OpenCV xff08 Open Source Computer Vision Library xff09 是一个开源的计算机视觉库 xff0c 它提供了很多函数 xff0c 这些函数非常高效地实现了计算机视觉算法
  • Ubuntu安装最新版本NodeJs和Npm的方法

    第一种方法 通过NodeSource提供的官方包安装 自带最新npm xff08 最推荐 xff09 以下是 Nodejs 18 x的安装 xff0c 一行代码搞定 amp amp 的意思是前面的命令执行无误后 xff0c 再执行后面代码
  • 记录ubuntu 编译android 10 源码遇到的问题

    记录ubuntu 编译android 10 源码遇到的问题 1下载android 10源码 2repo工具下载及安装 xff08 参考网上教程 xff09 3建立源码文件夹 mkdir source cd source 4初始化仓库 我们将

随机推荐

  • @zabbix6.0安装部署(centeros 8 stream)

    文章目录 1 系统版本2 zabbix server官方查看3 平台安装和配置Zabbix服务器4 数据库安装5 Zabbix server配置数据库6 Zabbix前端配置PHP7 zabbix相关组件服务启动8 zabbix web配置
  • 使用Python处理excel表格(openpyxl)教程

    现在有个小任务 xff0c 需要处理excel中的数据 其实就是简单的筛选 xff0c excel玩的不熟练 xff0c 而且需要处理的表有70多个 xff0c 于是想着写个脚本处理一下吧 python中的openpyxl包可以轻松实现读写
  • Linux 6.1/6.2发布新补丁:缓解AMD处理器fTPM间歇性卡顿问题

    导读早些时候 xff0c AMD承认 xff0c 在Linux系统中开启AMD锐龙处理器的fTPM xff0c 将可能导致系统出现间歇性的卡顿 死机等情况 据悉 xff0c 该Bug在Linux 6 1内核中表现得最为明显 xff0c 这是
  • 完美解决主机与虚拟机相互通信,相互ping等问题

    笔者最近在学习使用linux时 xff0c 使用到了vm virtue box的虚拟机服务来简单的安装linux xff0c 但是在使用的时候发现了一个严重的问题 xff1a 虚拟机可以ping通主机 xff0c 主机却无法ping通虚拟机
  • CSS——CSS的选择器

    概念 xff1a CSS在渲染 HTML 页面是 xff0c 为了得到 HTML 中的标签进行样式渲染 xff0c 为我们提供了大量好用的各种选择器 xff0c 以便于我们在CSS 中拿到 HTML 的标签进行样式设置 一 基本选择器 基本
  • OA工作流的浅谈

    如今 xff0c 越来越多的人意识到将工作流引入解决方案的重要性 随着信息技术的发展和商业竞争的日益激烈 xff0c 人们不再满足于独立 分散的办公自动化和计算机应用 xff0c 而需要全面 集成的解决方案 作为一种管理和集成常规事务的技术
  • GPG key retrieval failed: [Errno 14] curl#60 - “Peer‘s Certificate has expired.“

    GPG key retrieval failed Errno 14 curl 60 Peer s Certificate has expired GPG key retrieval failed Errno 14 curl 60 Peer
  • html,css常见的几种垂直居中方式

    一丶什么是垂直居中 指当前标签在父级容器中垂直方向是居中显示的 实现垂直居中的几种方式 xff1a 1 table cell 43 vertical align 属性配合使用 2 absolute 43 transform 属性配合使用 3
  • STM32用XCOM调试助手打印不出数据

    STM32用XCOM调试助手打印不出数据 被困扰了一段时间的串口终于解决了 xff0c 用STM332F103ZET6写串口 xff0c 但是不懂为什么打开串口调试助手就是打印不出数据 首先检查了代码有没有错 xff0c 因为是按照网上的代
  • 基于蚁群算法的机器人路径规划matlab——代码注释超级详细,都能看懂

    采用蚁群算法路径规划matlab 本文对基本蚁群算法代码进行了详细的注释 每一步都简单易懂 程序在matlab中可直接运行 适合刚开始学习本算法的同学入门 蚁群算法是由意大利学者Dorigo提出的一种仿生智能算法 最早运用在旅行商问题上 蚁
  • java集合类(collection)

    一 集合类 collection Java中有哪些容器 xff08 集合类 xff09 Java中的集合类主要由Collection和Map这两个接口派生而出 xff0c 其中Collection接口又派生出三个子接口 xff0c 分别是S
  • linux安装程序和软件

    文章目录 一 解析Linux应用软件安装包二 rpm命令2 1 安装有依赖关系的 rpm软件包 xff0c 2 2 升级或更新 rpm软件包2 3 实列2 4 查询未安装的 rpm软件包文件 一 解析Linux应用软件安装包 通常Linux
  • Postman入门教程【没有废话,直入实战,绝对给力!】

    基础篇 Postman功能 xff08 https www getpostman com features xff09 主要用于模拟网络请求包快速创建请求回放 管理请求快速设置网络代理安装 下载地址 xff1a https www getp
  • U3D开发的逆天级大型游戏有哪些

    1 World of Diving 潜水世界 一款潜水游戏 潜水世界 xff1a http dx60 downyouxi com qianshuishijie zip 氛围不错 xff0c 不过细看建模好像不是特别精细的样子 2 The F
  • 线程安全(实现线程方式+线程状态+通信方式,sleep,wait,守护线程)

    目录 用户自定义线程 Java中实现多线程的方法 xff1a 如何停止一个正在运行的线程 1 说说什么是线程安全 xff1f 如何实现线程安全 xff1f 2 Java中线程的状态有哪些 xff1f 线程间的通信方式有哪些 xff1f 追问
  • LINUX——远程访问控制ssh

    文章目录 一 什么是SSH xff1f 二 SSH远程管理 服务端2 1 SSH协议2 2服务监听选项2 3用户登录控制 Authentication xff1a 2 4登录验证方式 三 TCP Wrappers控制3 1 2保护机制的实现
  • 关于Visual studio 2010运行时闪退问题的解决

    在运行一个刚刚下载的visual studio 2010时候 xff0c 编程一个简单程序进行输出时候 xff0c 会出现闪退状况 明明成功编译了 xff0c 但是没有显示结果 xff0c 只是闪了一下就自己关闭了 解决方法1 在main函
  • GFF/GTF简介及格式转换

    最近做转录组的比对时 xff0c 在建立索引过程中 xff0c 遇见一个问题 xff0c 就是我从ncbi下载的序列文件和gtf文件中 xff0c 染色体命名规则竟然不一样 xff0c 但序列文件和gff文件染色体命名规则是一样的 xff0
  • Linux 系统上安装R及加载R包

    因为安装Hic Pro xff0c 需要依赖几个R包 xff0c 比如ggplot2 又依赖 gt 4 0的R xff0c 之前安的3 6 xff0c 再重新安装一遍最新的吧 xff0c 记录一下 xff0c 省去了以后再重复查资料的过程
  • BWA比对及Samtools提取目标序列

    今天想看一下自己的序列里面会不会有某细菌基因组存在 xff0c 主要使用BWA和Samtools xff1a bwa主要用于将低差异度的短序列与参考基因组进行比对 主要包含三种比对算法 xff1a backtrack SW和MEM xff0