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


目录
相关文章
|
4天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
16 7
|
3天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
17 5
|
6天前
|
监控 Linux
Linux常用命令-2
本文继续介绍Linux常用命令,涵盖目录操作、文件操作、系统信息和进程管理等类别。具体包括mkdir、rmdir、cp、mv、rm、touch、whereis、whatis、dmesg、free、date、cal、ps、kill、killall和top等命令的使用方法和常用参数。
32 7
|
4天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
12 5
|
4天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
14 4
|
3天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
3天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
7 2
|
4天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
16 3
|
6天前
|
Linux Shell
Linux常用命令-1
本课程要求学生熟悉Linux系统终端窗口和命令基础,掌握文件目录类、系统信息类、进程管理类及其他常用命令,学时为3-6小时。课程内容涵盖Linux命令的特点、常见命令的使用方法及其应用场景,如文件浏览、目录切换、内容显示等。建议学生逐个操作命令并及时反馈问题。
30 5
|
4天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。