bam文件读取_sam和bam文件处理
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文件处理相关推荐
- bam文件读取_SAM/BAM 格式文件内容解析
一.首先需要知道以下几个知识点: 1.1-based coordinate system A coordinate system where the rst base of a sequence is ...
- c语言实现指定路径文件读取_C语言实现文件复制功能(包括文本文件和二进制文件)...
文件的复制是常用的功能,要求写一段代码,让用户输入要复制的文件以及新建的文件,然后对文件进行复制.能够复制的文件包括文本文件和二进制文件,你可以复制1G的电影,也可以复制1Byte的txt文档.实现文 ...
- python文件读取输出-Python 读写文件中数据
1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...
- python文件读取数据-Python从文件中读取数据
一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...
- python中文件读取不出来_Python文件读取
一文件读取 aa.txt: 登鹳雀楼 白日依山尽,黄河入海流. 欲穷千里目,更上一层楼. 1读取整个文件 filename = 'E:/COLDDEMO/Python/src/FirstDay/文件读 ...
- python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别
r+和w+都是可读可写,区别在于r+读文件时,不会覆盖之前的内容,之前的内容能够读出来:w+读时,会覆盖之前的内容:所以读文件时,用r或者r+ #读操作 r 1 filepath = 'aa.log' ...
- python的文件读取方式_python中文件读取方式
指\u201CPython编程:从入口到实践\u201D和\u201CPython编程快速启动\u201D1.文件路径获取文件路径包括绝对路径和相对路径.绝对路径是指\u201CE: \\ \\\u2 ...
- pandas parquet文件读取pyarrow、feather文件保存与读取;requests 或wget下载图片文件
**pandas读取文件填写绝对路径,相对路径可能出错读不了 安装 fastparquet库,需要安装python-snappy ,一直安装错误,所以使用了pyarrow pip install py ...
- java 文件读取中文乱码_java文件读取时发生中文乱码怎么解决
java文件读取时发生中文乱码怎么解决 发布时间:2020-06-23 09:33:47 来源:亿速云 阅读:59 作者:Leah java文件读取时发生中文乱码怎么解决?这篇文章运用了实例代码展示, ...
- Codesys的文件读取功能---G代码文件读取及运行
1.序言 前文已经介绍过Codesys软件可以将dxg格式的CAD文件直接读取出来转换成G代码,导入到软件可以使用的CNC程序,通过对该CNC程序的编程,可以实现将CAD图纸转成CNC指令并运行,参考 ...
最新文章
- 跟老齐学python轻松入门_【英语动词后面跟什么词?】作业帮
- 初学python还是swift-Swift 势必取代 Python?
- aix安装bff_AIX的yum安装
- VTK修炼之道38:图像平滑_中值滤波器
- axios 请求的配置选项
- Hexo自定义页面的方法
- 素数回文数的个数(信息学奥赛一本通-T1408)
- 14.图像透视——投影几何性质,平行线(Parallel Lines),消失点(Vanishing Point)_3
- MNIST数据集手写数字识别(一)
- 【笔记】《C#高效编程改进C#代码的50个行之有效的办法》第1章C#语言习惯(1)--属性的特性以及索引器(SamWang)...
- NOIP模拟赛20161016R2
- SpringCloud整合Hmily实现TCC分布式事务案例详解
- c语言函数定义的语法格式,C语言函数
-C语言函数定义的语法格式
- VS Code C++ 插件推荐安装
- 为知笔记Typora编辑器上传图片失效(20.5.16)
- 管理人员巡店用表-生鲜部经理及主管每日检查事项
- java学不下去能学web安全吗,这半年学习 Web 安全的一点心得体会
- Eureka健康检查
- 漏洞预警| vm2 任意代码执行漏洞
- 个人理财必须掌握的10个技巧