Samtools(CentOS Linux)安装及常用命令详解

简介: Samtools(CentOS Linux)安装及常用命令详解

序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文件,例如转录组Tophat分析软件输出的比对结果为.bam文件,而重测序中BWA、bowtie等比对软件则主要输出为.sam文件。


samtools是一个用于操作sam和bam文件的工具软件,能够对比对文件进行二进制查看、格式转换、排序及合并等,结合sam格式中的flag、tag等信息,还可以完成比对结果的统计汇总,是处理sam和bam文件不可或缺的神器!


1.下载安装包


http://www.htslib.org/download/


2. 安装依赖


yum install bzip2-devel ncurses-libs ncurses-devel xz-devel zlib-devel


3.编译安装


tar xvf samtools-1.9.tar.bz2


cd samtools-1.9


./configure --prefix=/opt/samtools1.9


make


make install


4.配置环境变量


gedit ~/.bashrc


#Samtools1.9


export PATH=/opt/samtools1.9/bin:$PATH


source ~/.bashrc


5.运行:samtools


image.png

image.png

samtools常用命令详解

1. view


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


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


view命令中,对sam文件头部的输入(-t或-T)和输出(-h)是单独的一些参数来控制的。


Usage: samtools view [options] | [region1 [...]]


默认情况下不加 region,则是输出所有的 region.


Options: -b       output BAM


                默认下输出是 SAM 格式文件,该参数设置输出 BAM 格式


       -h       print header for the SAM output


                默认下输出的 sam 格式文件不带 header,该参数设定输出sam文件时带 header 信息


       -H       print header only (no alignments)


       -S       input is SAM


                默认下输入是 BAM 文件,若是输入是 SAM 文件,则最好加该参数,否则有时候会报错。


       -u       uncompressed BAM output (force -b)


                该参数的使用需要有-b参数,能节约时间,但是需要更多磁盘空间。


       -c       Instead of printing the alignments, only count them and print the


                total number. All filter options, such as ‘-f’, ‘-F’ and ‘-q’ ,


                are taken into account.


       -1       fast compression (force -b)


       -x       output FLAG in HEX (samtools-C specific)


       -X       output FLAG in string (samtools-C specific)


       -c       print only the count of matching records


       -L FILE  output alignments overlapping the input BED FILE [null]


       -t FILE  list of reference names and lengths (force -S) [null]


                使用一个list文件来作为header的输入


       -T FILE  reference sequence file (force -S) [null]


                使用序列fasta文件作为header的输入


       -o FILE  output file name [stdout]


       -R FILE  list of read groups to be outputted [null]


       -f INT   required flag, 0 for unset [0]


       -F INT   filtering flag, 0 for unset [0]


                Skip alignments with bits present in INT [0]


                数字4代表该序列没有比对到参考序列上


                数字8代表该序列的mate序列没有比对到参考序列上


       -q INT   minimum mapping quality [0]


       -l STR   only output reads in library STR [null]


       -r STR   only output reads in read group STR [null]


       -s FLOAT fraction of templates to subsample; integer part as seed [-1]


       -?       longer help


目录
相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
95 8
|
16天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
44 14
Linux 10 个“who”命令示例
|
5天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
57 20
|
2天前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
27 13
|
5天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
26 7
|
25天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
31 9
|
23天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
28天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
29天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
116 3
|
1月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
52 4
下一篇
DataWorks