对sam/bam文件进行操作

1、view
-b:输出bam格式,用于后续分析
-h:默认输出sam文件不带表头,该参数设定后输出带表头信息
sam文件转换为bam文件
samtools view -bS -1 test.sam > test.bam

1 view 从bam/sam文件中提取/打印部分比对结果。默认为所有的区域
常见参数:-b 输出bam格式文件,-u 以未压缩的格式输出 -h 增加文件表格的说名, -t 依据当前序列的特点加头(序列输入需要经过samtools faidx 处理过)

2、sort
主要功能:对bam文件进行排序(不能对sam文件进行排序)

3、index
主要功能:对bam文件建立索引,但在此之前必须进行排序(sort),生成后缀是.bai的文件。

index
为了能够快速访问bam文件,可以为已经基于坐标排序后bam或者cram的文件创建索引,生成以.bai或者.crai为后缀的索引文件。必须使用排序后的文件,否则可能会报错。另外,不能对sam文件使用此命令。如果想对sam文件建立索引,那么可以使用tabix命令创建。

Usage: samtools index [-bc] [-m INT] aln.bam |aln.cram [out.index]
Options:
  -b 创建bai索引文件,未指定输出格式时,此参数为默认参数;
  -c 创建csi索引文件,默认情况下,索引的最小间隔值为2^14,与bai格式一致;
  -m INT 创建csi索引文件,最小间隔值2^INT;

例子:

#创建bai索引
$ samtools index test_2.sorted.bam
$ smatools index -b test_2.sorted.bam
#创建csi索引
$ samtools index -c test_2.sorted.bam
$ samtools index -c -m 10 test_2.sorted.bam
以下两种命令结果一样

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

作者:生物信息与编程
链接:https://www.jianshu.com/p/a3791cf16474
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

4、merge

功能:合并多个已经sort的bam文件

当有多个样本的bam文件时,可以使用samtools的merge命令将这些bam文件合并为一个排序的且保持所有输入记录并保持现有排序顺序的bam文件。
-h:FILE 指定FILE内的’@’头复制到输出bam文件中并替换输出文件的文件头
-c:多个输入文件包含相同的@RG头ID时,只保留第一个到合并后输出的文件
samtools merge merge.bam smallNA06985.sort smallNA06994.sort

merge
上面排好序,站好队了,哎(这两瘦的一样高,合成一个呗,省地儿),这就有了merge(纯属胡说八道!)!
官方如右:将2个或2个以上的已经sort了的bam文件融合成一个bam文件。融合后的文件不需要则是已经sort过了的。

01Usage: samtools merge [-nr] [-h inh.sam] <out.bam> <in1.bam> <in2.bam>[…]
03Options: -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 <out.bam> [in1.bam]

11 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. :注意:Samtools的合并不会在头文件中重建@RG字典。用户必须使用-h提供正确的头文件,或者使用Picard在合并时正确维护头文件字典。

4 merge:

对排序后的文件进行合并,如果bam文件有头,则必须一致,如果没有头,则可以用-h指向某一个文件
命令:samtools merge -h 1.bam bam1 bam2 bam3
-h:默认输出sam文件不带表头,该参数设定后输出带表头信息

三、将bam文件进行sort
只能对bam文件进行sort, 不能对sam文件。

samtools sort aln.bam anl.sorted
默认是根据coordinate进行sort, 如果输入bam文件为in.bam , 则输出文件名为in.sorted.bam
如果要按照read name进行sort, 需要加-n, 如heseq-count 就要求文件时按照read name 而不是coordinate。
samtools sort -n aln.bam anl.sorted
四、去除bam文件中pcr导致的重复reads信息
samtools rmdup in.bam in.rmp.bam
【先在这里建立index,建索引(必须是已经使用默认排序后的):】
五、合并bam文件,merge前必须是已经sort的文件
samtools merge out.bam in1.bam in2.bam in3.bam
假如in1.bam, in2.bam, in3.bam是某个某样本的三个重复,我们可以将他们合并为一个bam文件。

samtools merge -R chr1 out.bam in1.bam in2.bam in3.bam
如果想对部分合并,如至合并一号染色的上的bam文件合并,chr1必须为序列的名字,一号染色体序列的名字为Chr1,那么就应为-R Chr1

注意:要合并的bam文件,必须有对应的index文件。【!!!!!!】

samtools index in.bam #结果文件名为in.bam.bai

https://www.jianshu.com/p/c008fa53f9d9

当有多个样本的bam文件时,可以使用samtools的merge命令将这些bam文件进行合并为一个bam文件。。Merge命令将多个已经排序后的bam文件合并成为一个排序的且保持所有输入记录并保持现有排序顺序的bam文件。

Options:
  -1 指定压缩等级;
  -b FILE 输入文件列表,一个文件一行;
  -f overwrite the output BAM if exist 强制覆盖同名输出文件;
  -h FILE copy the header in FILE to <out.bam> [in1.bam]。 指定FILE内的’@’头复制到输出bam文件中并替换输出文件的文件头。否则,输出文件的文件头将从第一个输入文件复制过来;
  -n sort by read names。设定输入比对文件是以read名进行排序的而不是以染色体坐标排序的;
  -R STR merge file in the specified region STR [all]。合并输入文件的指定区域;
  -r attach RG tag (inferred from file names)。使RG标签添加到每一个比对文件上,标签值来自文件名;
  -u uncompressed BAM output。输出的bam文件不压缩;
  -c 当多个输入文件包含相同的@RG头ID时,只保留第一个到合并后输出的文件。当合并多个相同样本的不同文件时,非常有用。
  -p 与-c参数类似,对于要合并的每一个文件中的@PG ID只保留第一个文件中的@PG。
例子

#合并test_L1.bam和test_L2.bam文件
$ samtools merge -h test.sam
test_L1_L2.bam
test_L1.sorted.bam
test_L2.sroted.bam

#合并test_L1.bam和test_L2.bam文件中的指定区域chr7
$ samtools merge -h test.sam
-R chr7
test_L1_L2.bam
test_L1.sorted.bam
test_L2.sroted.bam

5、faidx

功能:对fasta格式的文件建立索引,后缀名.fai。根据索引文件和序列文件,可以快速提取任意区域的序列文件。

fasta序列格式要求:每条序列,除了最后一行外,其他行的长度必须相同!

7、flagstat

作用:reads的比对情况统计

11、cat

作用:连接多个bam文件(不做排序)

Usage: samtools cat [-h header.sam] [-o out.bam] <in1.bam> […]

14、fastq

作用:bam文件转换为fastq
15、fasta

作用:bam文件转换为fasta
17、stats

作用:对bam文件做详细统计,其统计结果可用mics/plot-bamstats作图

19、rmdup
samtools rmdup:::一般是sort.bam文件之后在去重!!!!!
作用:将由PCR duplicates 获得的reads去掉,并保留高比对质量的reads
1 Usage: samtools rmdup [-sS]
2 -s 对single-end reads。默认情况下,只对paired-end reads
3 -S 将Paired-end reads作为single-end reads处理。
4
5 $ samtools input.sorted.bam output.bam

对sam/bam文件进行操作相关推荐

  1. bam文件读取_bam格式文件处理大全(一)

    sam文件是短序列比对生成的文件,是二代测序中最核心的文件.在RNAseq,变异检测等分析中,都需要首先生成sam文件格式.bam文件是sam格式的二进制格式,转换为二进制之后,可以减小文件的存储.掌 ...

  2. linux bam文件格式,pysam - 多种格式基因组数据(sam/bam/vcf/bcf/cram/…)读写与处理模块(python)...

    在开发基因组相关流程或工具时,经常需要读取.处理和创建bam.vcf.bcf文件.目前已经有一些主流的处理此类格式文件的工具,如samtools.picard.vcftools.bcftools,但此 ...

  3. SAM/BAM相关的进阶知识

    1. samtools和picard的排序问题 samtools和picard都有对SAM/BAM文件进行排序的功能,一般都是基于坐标排序(还提供了-n选项来设定用reads名进行排序),先是对chr ...

  4. bam文件转fq.gz文件

    bam转fq过程 1.fq文件格式 2.bam文件格式 3.转换思路 3.1 软件bedtools自带功能 3.2 自己写代码 3.3 代码示例 4.参考资料 1.fq文件格式   fastq格式是一 ...

  5. 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?

    生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...

  6. Samtools应用指南-处理Sam与Bam文件

    安装 去官网下载想要的版本 tar jxvf samtools-1.9.tar.bz2 cd samtools-1.9 ./configure --prefix=全路径/samtools-1.9 ma ...

  7. linux bam文件格式介绍,Sam和bam文件说明

    SAM文件 SAM(Sequence Alignment/Map)格式是一种通用的比对格式,用来存储reads到参考序列的比对信息. SAM是一种序列比对格式标准,由sanger制定,是以TAB为分割 ...

  8. Edit Distance编辑距离(NM tag)- sam/bam格式解读进阶

    sam格式很精炼,几乎包含了比对的所有信息,我们平常用到的信息很少,但特殊情况下,我们会用到一些较为生僻的信息,关于这些信息sam官方文档的介绍比较精简,直接看估计很难看懂. 今天要介绍的是如何通过b ...

  9. pysam - 多种格式基因组数据(sam/bam/vcf/bcf/cram/…)读写与处理模块(python)--转载...

    pysam 模块介绍!!!! http://pysam.readthedocs.io/en/latest/index.html 在开发基因组相关流程或工具时,经常需要读取.处理和创建bam.vcf.b ...

最新文章

  1. Journal of Genetics and Genomics科学编辑招聘启事
  2. 多年iOS开发经验总结(一)
  3. java程序死了telnet还有用吗_java实现telnet连接操作 改进
  4. ORA-01031 权限不足-过程中DBA 角色用户无法执行DDL
  5. P4068-[SDOI2016]数字配对【二分,费用流】
  6. 基于xilinx FPGA实现LZW压缩算法
  7. js 添加事件 attachEvent 和addEventListener 的用法
  8. Hibernate4 : 持久化你的第一个类
  9. 【一分钟知识】决策树-ID3,C4.5,CART
  10. python进阶之学习笔记_Python进阶学习笔记
  11. 怎么提高文公写作水平?公文写作报告类模板
  12. ​【预测模型】基于粒子群算法优化最小二乘支持向量机实现数据分类matlab代码
  13. Xilinx差分输入时钟100Ω终端电阻设置
  14. c语言中min函数的作用,min函数到底在哪个头文件里?
  15. 分析:G20相争 IMF得利
  16. switch vba_VBA switch
  17. stlink-opencd-gdb调试程序
  18. Python编程学习教程:用python给自己DIY一款小说阅读器
  19. 【玩转c++】多态深度刨析
  20. 对话系统论文集(1)-BBQ网络

热门文章

  1. C/C++解析tar文件
  2. 2021-2027全球及中国G Suite开发工具行业研究及十四五规划分析报告
  3. log4j教程(史上最详细)
  4. Flink项目实践【一】实时热门商品统计
  5. 大数据学习——之探索中国米其林餐厅
  6. Shapefile转geojson
  7. Hive解析Json数组超全讲解
  8. 【JSON】java获取json数组格式中的值
  9. WebGoatV8.1(A8 2013Request Forgery)详细过关教程
  10. java execution_aop execution 表达式解析