温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Docker怎么实现Samtools截取基因组序列

发布时间:2022-03-19 16:39:51 来源:亿速云 阅读:348 作者:iii 栏目:开发技术

这篇文章主要讲解了“Docker怎么实现Samtools截取基因组序列”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker怎么实现Samtools截取基因组序列”吧!

Samtools是一个用于操作sam和bam文件的工具软件,能够对比对文件进行二进制查看、格式转换、排序及合并等,结合sam格式中的flag、tag等信息,还可以完成比对结果的统计汇总,是处理sam和bam文件(例如:转录组Tophat分析软件输出的比对结果为.bam文件,而重测序中BWA、bowtie等比对软件则主要输出为.sam文件)不可或缺的神器!

下载镜像并运行

安装好Docker后,搜索我们亿速云提供的docker镜像,其中便有安装好samtools软件的镜像。

$ docker search 亿速云
NAME                           DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
亿速云/gene-family         gene-family analysis docker image               2
亿速云/isoseq3             isoseq3 v3.3.0 build by 亿速云              0
亿速云/bwa                 BWA v0.7.17 build by 亿速云                 0
亿速云/rnaseq              RNA-seq analysis docker image build by omics…   0
亿速云/samtools            samtools v1.10 build by 亿速云              0
亿速云/biocontainer-base   Biocontainers base Image centos7                0
亿速云/blast-plus          blast+ v2.9.0                                   0
亿速云/blastall            legacy blastall v2.2.26                         0
亿速云/sratoolkit          SRAtoolkit v2.10.3 and aspera v3.9.9.177872     0

下载镜像。

$ docker pull 亿速云/samtools
Using default tag: latest
latest: Pulling from 亿速云/samtools
ab5ef0e58194: Already exists
417469905807: Already exists
ed09842cc19f: Already exists
f860268ff83f: Already exists
f87dd41136a6: Already exists
90091b4f5d91: Already exists
6485f44fc594: Pulling fs layer
latest: Pulling from 亿速云/samtools
ab5ef0e58194: Already exists
417469905807: Already exists
ed09842cc19f: Already exists
f860268ff83f: Already exists
f87dd41136a6: Already exists
90091b4f5d91: Already exists
6485f44fc594: Pull complete
Digest: sha256:e641dd5b9f60d8f9d01f0d109eff72d15836d0d59a753e3e35677b1200adc4a1
Status: Downloaded newer image for 亿速云/samtools:latest

下载完成后可以检查一下。

$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
亿速云/samtools     latest              9373e18781bf        8 days ago          2.04GB
亿速云/blast-plus   latest              0220cac51a6e        8 days ago          2.55GB

之后在电脑的D盘创建samtools文件夹,并粘贴需要的染色体fasta文件。如果docker是windows Toolbox版本,需要挂载D盘到虚拟机,具体操作可参考 Docker 工具安装(windows Toolbox版本)详解版!

进入虚拟机。

$ docker run --rm -v /d/samtools:/work -it 亿速云/samtools:latest   #这里我使用的Docker是windows Toolbox版本
######################################################
#      欢迎使用组学大讲堂提供的docker镜像              #
#      问题交流请访问:www.亿速云.com             #
######################################################

            Linux新手建议学习课程:
      --> https://www.亿速云.com/article/702

         搭建实验室生信分析平台与docker使用详情见课程:
      --> https://www.亿速云.com/article/1181
[root@0e9f42f25cc1  10:16:46 /work]#

查看工作目录。

# ll
total 117M
-rwxrwxrwx 1 1000 ftp 117M Apr 23 10:19 Arabidopsis_thaliana.TAIR10.31.dna.toplevel.fa

samtools提取序列

samtools faidx 能够对fasta序列建立一个后缀为.fai 的文件,根据这个.fai 文件和原始的fasta文件,能够快速的提取任意区域的序列。用法:

samtools faidx Arabidopsis_thaliana.TAIR10.31.dna.toplevel.fa

该命令对输入的fasta序列有一定要求:对于每条序列,除了最后一行外,其他行的长度必须相同。

>one 
ATGCATGCATGCATGCATGCATGCATGCAT 
GCATGCATGCATGCATGCATGCATGCATGC 
ATGCAT 
>two another chromosome 
ATGCATGCATGCAT 
GCATGCATGCATGC

最后生成的.fai文件如下, 共5列,\t分隔;

Pt      154478  4       60      61
Mt      366924  157061  60      61
4       18585056        530104  60      61
2       19698289        19424914        60      61
3       23459830        39451511        60      61
5       26975502        63302342        60      61
1       30427671        90727439        60      61

第一列 NAME:序列的名称,只保留“>”后,第一个空白之前的内容;

第二列 LENGTH:序列的长度,单位为bp;
第三列 OFFSET:第一个碱基的偏移量,从0开始计数,换行符也统计进行;
第四列 LINEBASES:除了最后一行外,其他代表序列的行的碱基数,单位为bp;
第五列 LINEWIDTH : 行宽,除了最后一行外,其他代表序列的行的长度,包括换行符,在windows系统中换行符为\r\n, 要在序列长度的基础上加2;

最后指定要提取的序列或序列在染色体上的位置,即可提取出需要的序列:

samtools faidx Arabidopsis_thaliana.TAIR10.31.dna.toplevel.fa Pt> Pt.fa             #提取叶绿体序列
samtools faidx Arabidopsis_thaliana.TAIR10.31.dna.toplevel.fa Pt:100-1000> Pt.fa    #提取叶绿体第100到1000碱基的序列

感谢各位的阅读,以上就是“Docker怎么实现Samtools截取基因组序列”的内容了,经过本文的学习后,相信大家对Docker怎么实现Samtools截取基因组序列这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI