序列操作神器:Seqkit

2023-02-27 12:47:51 浏览数 (1)

导读

本文[1]将介绍 SeqKit :用于 FASTA/Q 文件操作的跨平台和超快工具包,后续提供了一些常用的示例

‍‍‍‍‍‍‍‍‍‍‍‍1. 安装

  • conda 安装
代码语言:javascript复制
conda install -c bioconda seqkit
  • Mac 安装
代码语言:javascript复制
brew install seqkit  # 用于苹果电脑

2. 用法

2.1. 序列操作

代码语言:javascript复制
seqkit seq [flags] file
  • 参数

参数

作用

-p

取互补序列

--dna2rna

DNA to RNA

-l

序列以小写字母输出

-g

移除组装序列中的gap

-r

取反向序列

--rna2dna

RNA to DNA

-u

序列以大写字母输出

-w

每行指定长度数据序列(default=60)

代码语言:javascript复制
# 将序列转换为一行输出
seqkit seq ex.fasta -w 0 > test.fasta

# 每行输出指定碱基n
seqkit seq -w n ex.fasta

# DNA序列转换为RNA序列
seqkit seq --dna2rna ex.fasta

# 取反向互补,且‍‍‍‍‍‍‍‍‍每行100碱基
seqkit seq -w 100 -p -r ex.fasta > test.fasta

2.2. 格式转换

  • fa2fa
代码语言:javascript复制
# fastq 转换为 fasta
seqkit fq2fa ex1.fq -o ex2.fa

# FASTA/FASTQ 转换成 tab 格式
seqkit fx2tab ex.fa > test.fa.tab.fa
seqkit fx2tab ex.fq > test.fq.tab.fq
代码语言:javascript复制
# 序列碱基含量及序列长度信息统计
seqkit fx2tab [flags]
  • 参数

参数

作用

-B

输出碱基的含量 Ex: -B AT -B N

-g

输出 GC 含量

-l

输出序列长度

-n

仅输出名字

-i

输出ID

-H

输出 header 行

代码语言:javascript复制
# 输出序列长度,GC含量,名字,ID
seqkit fx2tab -l -g -n -i -H ex.fasta

2.3. 序列信息统计

代码语言:javascript复制
# 序列长度分布统计
seqkit stat [flags]
  • 参数

参数

作用

-a

输出所有统计数据,包括 seq 长度的四分位数、sum_gap、N50

代码语言:javascript复制
# 统计信息
seqkit stats *.f{a,q}.gz

# 结果如下图

示例

2.4. 根据ID提取序列

代码语言:javascript复制
seqkit grep
  • 参数

参数

作用

-n

匹配整个序列的名字

-s

匹配序列

-d

pattern/motif 包含简并碱基

-i

忽略大小写

-v

反向匹配

-p

匹配模式,支持连续写多个模式,匹配任一模式即输出

-R

匹配位置选择

-r

使用正则表达式

代码语言:javascript复制
# 选取有起始密码子的序列
seqkit grep -s -r -i -p ^atg ex.fa

# 根据ID提取序列
seqkit grep -f list ex.fa > new.fa

# 简并碱基使用。S 代表C or G.
seqkit grep -s -d -i -p TTSAA

# 匹配限定到某区域
seqkit grep -s -R 1:30 -i -r -p GCTGG#

2.5. motif定位

代码语言:javascript复制
seqkit locate [flags]
  • 参数

参数

作用

-d

pattern/motif contains degenerate base

-i

ignore case

-P

only search at positive strand

-p

search pattern/motif

-f

pattern/motif file (FASTA format)

代码语言:javascript复制
seqkit locate -i -d -p AUGGACUN ex.fa

2.6. 多个文件寻找相同的序列

代码语言:javascript复制
seqkit common [flags]
  • 参数

参数

作用

-n

匹配整个序列的名字,包含description部分,而不是序列id

-s

match by sequence

-i

忽略大小写

-m

use MD5 reduce memory usage

代码语言:javascript复制
# By ID (default,>后面,空格之前的名字)输出ID名字相同的。
seqkit common test1.fa test2.fa -o common.fasta

# By full name(整个序列的名字,包含description部分)。输出序列名字相同的。
seqkit common test1.fa test2.fa  -n -o common.fasta

# 输出要比较的文件中序列相同的序列
seqkit common test1.fa test2.fa -s -i -o common.fasta

# 输出要比较的文件中序列相同的序列 (for large sequences)
seqkit common test1.fa test2.fa -s -i -o common.fasta --md5

2.7. 文件切割

代码语言:javascript复制
seqkit split [flags]
  • 参数

参数

作用

-i

split squences according to sequence ID

-p

将一个文件分割成N 份

-s

将一个文件按照N 条序列一个文件进行分割

-O

输出目录

-2

two-pass mode to lower memory usage(only FAST)

代码语言:javascript复制
# 将一个文件切割为 4 份
seqkit split ex.fa -p 4

参考资料

[1]

Ref: https://bioinf.shenwei.me/seqkit/

0 人点赞