转录组学习之samtools软件[学习笔记通俗易懂版]

转录组学习之samtools软件[学习笔记通俗易懂版]

date :2023.07.25

recorder : CYH-BI

特别注意(声明):本文为我自己学习的学习记录,没有任何权威,只能仅供初学者提供思路与参考。
本文知乎地址:


samtools工具介绍

Samtools是一个用来处理SAM/BAM(SAM的二进制格式,用于压缩空间)格式的比对文件的工具,它能够输入和输出SAM(sequence alignment/map:序列比对)格式的文件,对其进行排序、合并、建立索引等处理。排序后的 .bam用于后续转录本的组装与定量。

安装samtools工具

方法一:官网下载包安装(不推荐)

在安装之前我们需要安装所需的依赖环境,否则安装samtools后使用不了

#安装依赖
yum install bzip2-devel ncurses-libs ncurses-devel xz-devel zlib-devel
#download packages
wget https://github.com/samtools/samtools/releases/download/1.17/samtools-1.17.tar.bz2
#解压
tar -jxvf samtools-1.17.tar.bz2
#编译
./configure --prefix=/home/lh/biosoft/samtools-1.17#进入samtools-1.17文件
make
make install#报错,如下
#***********************************************************************
[lh@localhost samtools-1.17]$ make install
gcc -g -Wall -O2 -I. -Ihtslib-1.17 -I./lz4  -c -o bam_rmdup.o bam_rmdup.c
bam_rmdup.c:31:18: fatal error: zlib.h: No such file or directory
 #include 
                  ^
compilation terminated.
make: *** [bam_rmdup.o] Error 1
#********************************************************************
#解决方法,如果下列包安装后仍无法解决,请自行百度错误提示
#下载   zlib-devel等包,后重新编译
sudo yum install zlib-devel
sudo yum install bzip2-devel
yum install -y xz-devel

方法二:使用conda安装(强力推荐)

官网安装包会出现各种各样的问题,最轻松的方式是使用conda安装。

conda install samtools

安装成功后,可以help一下,如有结果则安装成功。


samtools的实际应用举例

samtools工具可以将 .sam转换为 .bam格式文件,便于基因组学、转录组学、表观基因组学等领域的研究。

(先排序后转换格式效率更高)。

详细参数以及用法可以查看官方文档或自己**-h**查看

官方手册:Samtools-Manual-CN by CNCBI

1、排序

samtools sort input.sam -o output.sam#用法
samtools sort ly1_seq_mached.sam -o ly1_seq_mached_1.sam

2、转换格式,.sam转换成.bam

samtools view -bS input.sam > output.bam#用法
samtools view -bS ./ly1_seq_mached_1.sam > /home/cyh/Desktop/his_result_ly1/ly1_seq_mached_1.bam

或者:直接排序转换为.bam文件

samtools sort -@ 4 -o output.bam input.sam

-@ 4 表示四个核

总结:

samtools view -b -h -F 0x04 -q 10 input.sam > output.bam
samtools sort output.bam -o output_sorted.bam
samtools index output_sorted.bam

第一行代码:

  • samtools:命令行工具的名称。
  • view:命令选项,用于查看SAM文件中的reads。
  • -b:将输出格式设置为BAM格式。
  • -h:保留BAM文件中的头部信息。
  • -F 0x04:过滤掉FLAG为0x04的reads,即过滤掉不合格的reads。
  • -q 10:只保留MAPQ大于等于10的reads。
  • input.sam:您要转换的SAM文件的文件名。
  • output.bam:将输出重定向到名为"output

其中,"input.sam"是您要转换的SAM文件的文件名,"output.bam"是转换后的BAM文件的文件名,"output_sorted.bam"是排序后的BAM文件的文件名。

这个命令将首先使用samtools view命令将SAM文件转换为BAM格式,并过滤掉所有FLAG为0x04的reads(即过滤掉不合格的reads),并且只保留MAPQ大于等于10的reads。然后,它将输出的BAM文件进行排序,并将排序后的结果保存为"output_sorted.bam"文件。最后,它将使用samtools index命令创建BAM索引文件。


到此,本文内容结束,这篇文章是经过了自己学习实践出来的,参考了很多资料,如若有大佬能指出错误,我将感激

你可能感兴趣的:(转录组学习,学习,笔记,linux,学习方法)