搜索
查看: 1211|回复: 0

fasta/fastq文件处理工具Seqtk及seqkit

[复制链接]

29

主题

29

帖子

149

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
149
发表于 2018-8-29 19:42:58 | 显示全部楼层 |阅读模式
-----------------------------------------------------------------Seqtk------------------------------------------------------------------------
1)简单介绍
Seqtk是一种快速轻量级的工具,用于处理FASTA或FASTQ格式的序列。 它无缝地解析FASTA和FASTQ文件,这些文件也可以选择通过gzip压缩。
2)安装seqtk
git clone https://github.com/lh3/seqtk.git;
cd seqtk; make
3)常用功能
fasta/fastq之间格式转化、按照质量值mask低质量碱基、末端低质量碱基过滤、对read1、read2随机抽样、方向互补序列、根据bed文件提取截取序列等。
4)简单使用
4.1)fastq文件转换fasta文件     
         seqtk seq -a longreads.fq.gz >out.fast
4.2)把fastq转换成fasta的同时,对低质量的碱基做操作
         seqtk seq -aQ64 -q20 longreads.fq > out.fa     #质量值低于20的mask为小写
         seqtk seq -aQ64 -q20 -n N longreads.fq > out.fa  #质量值低于20的mask为N
4.3)反向互补FASTA/Q文件
         seqtk seq -r longreads.fa >out.fa
4.4)从fasta/fastq文件中提取子集
         seqtk subseq longreads.fq name.lst>out  # name.lst里面包含有要提取的序列ID,一行一个
4.5 )利用质量值来对reads两端进行低质量过滤
         seqtk trimfq in.fq > out.fq
4.6) reads左端去除5bp,右端去除10bp
         seqtk trimfq -b 5 -e 10 longreads.fa > out.fa
其他功能可以参考https://github.com/lh3/seqtk
-----------------------------------------------------------------------------Seqtik----------------------------------------------------------------
1)背景介绍
对于fasta/q文件的操作主要包括:去重复(deduplication)、分割(splitting)、转换(converting)、收索(searching)、过滤(filtering),  shuffling, and sampling(抽取)。目前其他软件安装依赖包太多、界面操作不友好、仅可以执行其中的一部分操作、许多并不非常高效、且不能跨平台。因此Seqkit作为可执行的二级制文件在所有的主流平台(linux、window、Mac OSX)下都可以运行,不用任何的配置或依赖环境。与其它类似的软件相比,运行时间短、内存消耗少,支持普通文本及gzip压缩格式,这些优点使得Seqkit成为一款优秀的处理fasta/q文件的工具,非常适合放进pipline中。
2)功能
如下图,与其它软件相比,功能十分齐全(除了没有translation功能外)

Seqkit采用‘command subcommand’结构,有6个主命令(command)及19个子命令(subcommand)。
在用子命令stat, fq2fa, fx2tab, tab2fx, grep, locate, replace, seq, sliding, subseq等对fastq/a进行处理的时候,并不需要将整个fastq/a读入内存,且在用一些命令的时候支持正则,因此在处理大数据文件的时候会显得格外的方便,灵敏。

3)安装
3.1)mkdir seqkit && cd seqkit
3.2)wget https://github.com/shenwei356/se ... _linux_amd64.tar.gz
3.3) tar  -zxvf  seqkit_linux_amd64.tar.gz
3.4) echo 'export PATH=/home/jxdong/biosoft/seqkitPATH' >>~/.bashrc
3.5) source ~/.bashrc
4) 简单使用
1)统计fasta/q文件的信息
seqkit stat longreads.fa >out
2)显示序列全名称
seqkit seq hairpin.fa.gz -n
3)仅仅显示序列ID
seqkit seq hairpin.fa.gz -n -i
4)支持正则表达式
seqkit seq hairpin.fa.gz -n -i --id-regexp "^[^\s]+\s([^\s]+)\s"
5)方向互补序列
seqkit seq hairpin.fa.gz -r -p
6)RNA to DNA
echo -e ">seq\nUCAUAUGCUUGUCUCAAAGAUUA" | seqkit seq --rna2dna
7)依据长度进行筛选
cat hairpin.fa | seqkit seq -m 100 -M 1000 | seqkit stats
8)取子序列
zcat hairpin.fa.gz | seqkit subseq -r 1:12  #前12个字母
zcat hairpin.fa.gz | seqkit subseq -r -12:-1 #后12个字母
zcat hairpin.fa.gz | seqkit subseq -r 13:-13 #前后去除12个字母
9)根据gtf文件和基因组文件获取指定染色体指定feture的序列
seqkit subseq --gtf Homo_sapiens.GRCh38.84.gtf.gz --chr 1 --feature cds  hsa.fa > chr1.gtf.cds.fa
10)根据gtf文件和基因组文件获取指定染色体指定feture的序列
seqkit subseq --gtf t.gtf t.fa -u 3
11) 通过bed文件获取基因组上的序列
seqkit subseq --bed Homo_sapiens.GRCh38.84.bed.gz --chr 1 hsa.fa >  chr1.bed.gz.fa
12)在基因组文件中抓取指定染色体序列
seqkit grep -p 1 Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa.gz -o chr1.fa.gz

4)所用到的参考数据连接地址
ftp://ftp.ensembl.org/pub/release-84/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa.gz
ftp://ftp.ensembl.org/pub/release-84/gtf/homo_sapiens/Homo_sapiens.GRCh38.84.gtf.gz
ftp://mirbase.org/pub/mirbase/21/hairpin.fa.gz

5)参考资源
SeqKit:A Cross-Platform and Ultrafast Toolkit for FASTA/Q File Manipulation
https://bioinf.shenwei.me/seqkit/usage/#seq


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:methylKit读取文件时出错
下一篇:使用ggpubr一键生成发表级别的图片
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2019-2-21 22:59 , Processed in 0.073501 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.