samtools是一个用于操作sam和bam文件的工具合集。包含有许多命令。以下是常用命令的介绍:

sambamba是一个比samtools更强大的操作sam和bam的工具,绝大部分samtools能用的功能sambamba都能用,而且速度和资源占用上都有很大的优化,所以后期用samtools的时候都可以替换成sambamba。

1. view

view命令的主要功能是:将sam文件转换成bam文件;然后对bam文件进行各种操作,比如数据的排序(不属于本命令的功能)和提取(这些操作 是对bam文件进行的,因而当输入为sam文件的时候,不能进行该操作);最后将排序或提取得到的数据输出为bam或sam(默认的)格式。

bam文件优点:bam文件为二进制文件,占用的磁盘空间比sam文本文件小;利用bam二进制文件的运算速度快。

将sam文件转换成bam文件

$ samtools view -bS abc.sam > abc.bam

$ samtools view -b -S abc.sam -o abc.bam

提取比对到参考序列上的比对结果

$ samtools view -bF 4 abc.bam > abc.F.bam

提取paired reads中两条reads都比对到参考序列上的比对结果,只需要把两个4+8的值12作为过滤参数即可

$ samtools view -bF 12 abc.bam > abc.F12.bam

提取没有比对到参考序列上的比对结果

$ samtools view -bf 4 abc.bam > abc.f.bam

提取bam文件中比对到caffold1上的比对结果,并保存到sam文件格式

$ samtools view abc.bam scaffold1 > scaffold1.sam

提取scaffold1上能比对到30k到100k区域的比对结果

$ samtools view abc.bam scaffold1:30000-100000 > scaffold1_30k-100k.sam

根据fasta文件,将 header 加入到 sam 或 bam 文件中

$ samtools view -T genome.fasta -h scaffold1.sam > scaffold1.h.sam

2. sort

sort对bam文件进行排序。

Usage: samtools sort [-n] [-m ]

-m 参数默认下是 500,000,000 即500M(不支持K,M,G等缩写)。对于处理大数据时,如果内存够用,则设置大点的值,以节约时间。

-n 设定排序方式按short reads的ID排序。默认下是按序列在fasta文件中的顺序(即header)和序列从左往右的位点排序。

例子:

$ samtools sort abc.bam abc.sort

$ samtools view abc.sort.bam | less -S

3.merge

将2个或2个以上的已经sort了的bam文件融合成一个bam文件。融合后的文件不需要则是已经sort过了的。

Usage: samtools merge [-nr] [-h inh.sam] [...]

Options: -n sort by read names

-r attach RG tag (inferred from file names)

-u uncompressed BAM output

-f overwrite the output BAM if exist

-1 compress level 1

-R STR merge file in the specified region STR [all]

-h FILE copy the header in FILE to [in1.bam]

Note: Samtools' merge does not reconstruct the @RG dictionary in the header. Users must provide the correct header with -h, or uses Picard which properly maintains the header dictionary in merging.

4.index

必须对bam文件进行默认情况下的排序后,才能进行index。否则会报错。

建立索引后将产生后缀为.bai的文件,用于快速的随机处理。很多情况下需要有bai文件的存在,特别是显示序列比对情况下。比如samtool的tview命令就需要;gbrowse2显示reads的比对图形的时候也需要。

Usage: samtools index [out.index]

例子:

以下两种命令结果一样

$ samtools index abc.sort.bam

$ samtools index abc.sort.bam abc.sort.bam.bai

5. faidx

对fasta文件建立索引,生成的索引文件以.fai后缀结尾。该命令也能依据索引文件快速提取fasta文件中的某一条(子)序列

Usage: samtools faidx [ [...]]

对基因组文件建立索引

$ samtools faidx genome.fasta

生成了索引文件genome.fasta.fai,是一个文本文件,分成了5列。第一列是子序列的名称;

第二列是子序列的长度;个人认为“第三列是序列所在的位置”,因为该数字从上往下逐渐变大,最后的数字是genome.fasta文件的大小;第4和5列不知是啥意思。于是通过此文件,可以定位子序列在fasta文件在磁盘上的存放位置,直接快速调出子序列。由于有索引文件,可以使用以下命令很快从基因组中提取到fasta格式的子序列

$ samtools faidx genome.fasta scffold_10 > scaffold_10.fasta

6. cat

合并多个bam文件,samtools cat 能实现对很多bam文件合并起来的操作,跟merge的差别是该合并之后的bam需要sort,且是merge的备选方案,merge命令对太多bam文件不适用。

$ samtools cat -o xx.bam /xx/*bam

bam文件读取_sam和bam文件处理相关推荐

  1. bam文件读取_SAM/BAM 格式文件内容解析

    一.首先需要知道以下几个知识点: 1.1-based coordinate system A coordinate system where the rst base of a sequence is ...

  2. c语言实现指定路径文件读取_C语言实现文件复制功能(包括文本文件和二进制文件)...

    文件的复制是常用的功能,要求写一段代码,让用户输入要复制的文件以及新建的文件,然后对文件进行复制.能够复制的文件包括文本文件和二进制文件,你可以复制1G的电影,也可以复制1Byte的txt文档.实现文 ...

  3. python文件读取输出-Python 读写文件中数据

    1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...

  4. python文件读取数据-Python从文件中读取数据

    一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...

  5. python中文件读取不出来_Python文件读取

    一文件读取 aa.txt: 登鹳雀楼 白日依山尽,黄河入海流. 欲穷千里目,更上一层楼. 1读取整个文件 filename = 'E:/COLDDEMO/Python/src/FirstDay/文件读 ...

  6. python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别

    r+和w+都是可读可写,区别在于r+读文件时,不会覆盖之前的内容,之前的内容能够读出来:w+读时,会覆盖之前的内容:所以读文件时,用r或者r+ #读操作 r 1 filepath = 'aa.log' ...

  7. python的文件读取方式_python中文件读取方式

    指\u201CPython编程:从入口到实践\u201D和\u201CPython编程快速启动\u201D1.文件路径获取文件路径包括绝对路径和相对路径.绝对路径是指\u201CE: \\ \\\u2 ...

  8. pandas parquet文件读取pyarrow、feather文件保存与读取;requests 或wget下载图片文件

    **pandas读取文件填写绝对路径,相对路径可能出错读不了 安装 fastparquet库,需要安装python-snappy ,一直安装错误,所以使用了pyarrow pip install py ...

  9. java 文件读取中文乱码_java文件读取时发生中文乱码怎么解决

    java文件读取时发生中文乱码怎么解决 发布时间:2020-06-23 09:33:47 来源:亿速云 阅读:59 作者:Leah java文件读取时发生中文乱码怎么解决?这篇文章运用了实例代码展示, ...

  10. Codesys的文件读取功能---G代码文件读取及运行

    1.序言 前文已经介绍过Codesys软件可以将dxg格式的CAD文件直接读取出来转换成G代码,导入到软件可以使用的CNC程序,通过对该CNC程序的编程,可以实现将CAD图纸转成CNC指令并运行,参考 ...

最新文章

  1. 跟老齐学python轻松入门_【英语动词后面跟什么词?】作业帮
  2. 初学python还是swift-Swift 势必取代 Python?
  3. aix安装bff_AIX的yum安装
  4. VTK修炼之道38:图像平滑_中值滤波器
  5. axios 请求的配置选项
  6. Hexo自定义页面的方法
  7. 素数回文数的个数(信息学奥赛一本通-T1408)
  8. 14.图像透视——投影几何性质,平行线(Parallel Lines),消失点(Vanishing Point)_3
  9. MNIST数据集手写数字识别(一)
  10. 【笔记】《C#高效编程改进C#代码的50个行之有效的办法》第1章C#语言习惯(1)--属性的特性以及索引器(SamWang)...
  11. NOIP模拟赛20161016R2
  12. SpringCloud整合Hmily实现TCC分布式事务案例详解
  13. c语言函数定义的语法格式,C语言函数 -C语言函数定义的语法格式
  14. VS Code C++ 插件推荐安装
  15. 为知笔记Typora编辑器上传图片失效(20.5.16)
  16. 管理人员巡店用表-生鲜部经理及主管每日检查事项
  17. java学不下去能学web安全吗,这半年学习 Web 安全的一点心得体会
  18. Eureka健康检查
  19. 漏洞预警| vm2 任意代码执行漏洞
  20. 个人理财必须掌握的10个技巧

热门文章

  1. php sns 源码,ThinkSNS v4
  2. DevOps 实践指南
  3. rabbitvcs svn如何添加到忽略列表,如何恢复
  4. 精品软件试用及分享 屏幕录像专家注册版 附下载地址
  5. 大华linux密码,大华ME-S-S系列双SD卡车载DVR
  6. 微信搜索,不一样的搜索?
  7. 20款英文LOGO字体
  8. 家庭理财系统 -- 功能清单
  9. 永磁同步电机转速电流双闭环PI+MTPA+弱磁控制Simulink仿真模型
  10. weblogic 安装部署