序列操作神器:Seqkit

Linux Linux 669 人阅读 | 0 人回复 | 2024-06-11

导读

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

1. 安装

  • conda 安装
conda install -c bioconda seqkit
  • Mac 安装
brew install seqkit  # 用于苹果电脑

2. 用法

2.1. 序列操作

seqkit seq [flags] file
  • 参数
参数 作用
-p 取互补序列
--dna2rna DNA to RNA
-l 序列以小写字母输出
-g 移除组装序列中的gap
-r 取反向序列
--rna2dna RNA to DNA
-u 序列以大写字母输出
-w 每行指定长度数据序列(default=60)
# 将序列转换为一行输出
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
# 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
# 序列碱基含量及序列长度信息统计
seqkit fx2tab [flags]
  • 参数
参数 作用
-B 输出碱基的含量 Ex: -B AT -B N
-g 输出 GC 含量
-l 输出序列长度
-n 仅输出名字
-i 输出ID
-H 输出 header 行
# 输出序列长度,GC含量,名字,ID
seqkit fx2tab -l -g -n -i -H ex.fasta

2.3. 序列信息统计

# 序列长度分布统计
seqkit stat [flags]
  • 参数
参数 作用
-a 输出所有统计数据,包括 seq 长度的四分位数、sum_gap、N50
# 统计信息
seqkit stats *.f{a,q}.gz

# 结果如下图

示例

2.4. 根据ID提取序列

seqkit grep
  • 参数
参数 作用
-n 匹配整个序列的名字
-s 匹配序列
-d pattern/motif 包含简并碱基
-i 忽略大小写
-v 反向匹配
-p 匹配模式,支持连续写多个模式,匹配任一模式即输出
-R 匹配位置选择
-r 使用正则表达式
# 选取有起始密码子的序列
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定位

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)
seqkit locate -i -d -p AUGGACUN ex.fa

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

seqkit common [flags]
  • 参数
参数 作用
-n 匹配整个序列的名字,包含description部分,而不是序列id
-s match by sequence
-i 忽略大小写
-m use MD5 reduce memory usage
# 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. 文件切割

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)
# 将一个文件切割为 4 份
seqkit split ex.fa -p 4

微信扫一扫分享文章

+10
无需登陆也可“点赞”支持作者
分享到:
评论

使用道具 举报

2548 积分
226 主题
+ 关注
热门推荐