shenwei爪哥开发的处理Fasta/Fastq文件的万能工具。之前处理fq/fa文件时花时间写的一些脚本发现在seqkit里直接能一行命令就解决。实在是提升效率,整合流程中十分好的工具。本文是对Seqkit官方介绍(https://bioinf.shenwei.me/seqkit/usage/)的学习,参考学习的过程中可以对照着官方文档中的例子进行操作学习。
熟练的运用关键还是需要多练习,搭建分析流程时多多回顾记得使用此工具。
序列和子序列(Sequence and subsequence)
1. seq 序列操作
-p, -r 反向互补序列
-w 指定输出每列的序列长度。例如-w 0即为一行格式序列输出。
-n 输出序列的名字
-m 500 过滤序列长度小于500的序列
-n , -i 输出序列名字id
-i --id-regexp 根据正则匹配对序列名称进行操作(仅匹配正则匹配括号里的)。
>cel-mir-1 MI0000003 Caenorhabditis elegans miR-1 stem-loop
ATAAGCGCGCGCGCG
seqkit seq hairpin.fa.gz -i --id-regexp "^[^\s]+\s([^\s]+)\s"
2. subseq根据区域/gtf/bed文件提取序列,以1为开始。
-r 1:12 取每条序列的前12bp
--gtf a.gtf b.fas 根据gtf文件提取序列
--gtf --feature cds -u 1000提取cds序列以及上游1000bp启动子区序列。
--gtf a.gtf -u 1000 -f根据gtf文件仅选取上游1000bp的启动子序列。
seqkit subseq --gtf t.gtf t.fa -u 3 -f
3. sliding根据滑窗取序列
4. stats对序列fa/fq文件进行基本统计
-a *.fq.gz包括所有的统计信息
-T 输出\t分割的文件,可接下来进行管道操作
##接管道csvtk进行操作
seqkit stats *.f{a,q}.gz -T | csvtk pretty -t
## 转为markdown文件格式
seqkit stats *.f{a,q}.gz -T | csvtk csv2md -t
5. faidx创建类似于samtools faidx的index文件。
可用于提取某一序列的指定区域序列,并且可以根据正则匹配来匹配序列姓名
##提取某一序列20~30bp区域的序列。
seqkit faidx tests/hairpin.fa hsa-let-7a-1:20-30
格式的转换(Format conversion)
1. fq2fa如其名,fastq文件转换为fasta文件
2. fx2tab 将每条序列fa/fq转换为tab分割的一行格式