前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fastx_toolkit:处理fasta/fastq文件的小工具

fastx_toolkit:处理fasta/fastq文件的小工具

作者头像
生信修炼手册
发布2020-05-08 16:39:19
7.4K0
发布2020-05-08 16:39:19
举报
文章被收录于专栏:生信修炼手册

欢迎关注”生信修炼手册”!

在NGS数据分析中,常常需要对fasta/fastq文件进行一些处理,fastx_toolkit是一款综合性的工具,提供了很多有用的功能,能够简单方便的处理序列文件。官网如下

http://hannonlab.cshl.edu/fastx_toolkit

官网提供了二进制可执行文件,直接下载即可

代码语言:javascript
复制
wget http://hannonlab.cshl.edu/fastx_toolkit/fastx_toolkit_0.0.13_binaries_Linux_2.6_amd64.tar.bz2
tar xjvf fastx_toolkit_0.0.13_binaries_Linux_2.6_amd64.tar.bz2

fastx_toolkit由一系列的命令组成,每个命令提供一个实用的小功能。在使用时需要注意以下几点

  1. 不支持压缩格式的输入文件
  2. 不允许序列中存在N碱基,这样的序列会自动去除
  3. 可视化命令依赖gunplot软件和perl的GD模块
  4. 默认情况下认为fastq文件的碱基编码格式为phred64

对于目前主流的phred33编码的fastq文件,需要添加参数-Q 33

1. 将fastq文件转换为fasta文件

fastq_to_fasta命令可以将fastq文件转换为fasta文件,基本用法如下

代码语言:javascript
复制
fastq_to_fasta -i input.fq -o out.fa -Q 33
2. fasta 序列格式化

fasta_formatter命令用于格式化fasta文件,主要是指定序列的行数。fasta文件中每条序列由>开头的序列标识符和碱基序列两部分构成,其中碱基序列可以写成一行,也可以写成多行。该命令通过指定一行允许的最大碱基数,控制序列的展现形式,基本用法如下

代码语言:javascript
复制
fasta_formatter -i input.fa -w 60 -o out.fa
3. DNA序列和RNA序列的转换

fasta_nucleotide_changer命令用于改变fasta文件中的碱基,提供了两种模式,-r参数代表DNA转换成RNA模式,将T碱基转换成U碱基;-d参数代表RNA转换成DNA, 将U碱基转换成T碱基,基本用法如下

代码语言:javascript
复制
fasta_nucleotide_changer -i input.fa -r -o out.fa
4. 获取反向互补序列

fastx_reverse_complement命令可以将序列方向互补,支持fastq/fasta格式的输入文件,基本用法如下

代码语言:javascript
复制
fastx_reverse_complement -i input.fq -o rc.fq
5. 重命名序列标识符

fastx_renamer命令可以重命名序列标识符,提供了两种重命名方式,默认采用SEQ模式,直接用序列作为标识符,但是由于序列可能存在冗余,采用这种方式存在风险,COUNT模式采用数字编码作为标识符,编号从1开始。基本用法如下

代码语言:javascript
复制
fastx_renamer -n COUNT -i input.fa -o out.fa
6. 从序列中提取子串

fastx_trimmer命令可以从序列中提取子串,-f参数指定子串的起始位置,默认为1,-l参数指定子串的终止位置,默认为序列的长度。通过指定-f参数,可以方便的从序列的头部切除固定个数的碱基,基本用法如下

代码语言:javascript
复制
fastx_trimmer -f 5   -i input.fq -o out.fq
7. 去除adapter序列

fastx_clipper命令用于去除adapter序列, 也支持去除长度太短的序列,-a参数指定adapter序列,-l参数指定序列的最短长度,基本用法如下

代码语言:javascript
复制
fastx_clipper -a GATTGA -l 20 -i input.fa -o out.fa
8. 过滤fastq文件中的低质量序列

fastq_quality_filter命令根据高质量碱基所占的百分比对序列进行过滤,-q参数指定碱基质量阈值,高于该阈值的碱基认为是高质量碱基,-p指定高质量碱基百分比的阈值,低于该阈值的序列会被过滤掉,基本用法如下

代码语言:javascript
复制
fastq_quality_filter -q 20 -p 90 -i input.fq -o out.fq -Q 33
9. 合并重复序列

fastx_collapser命令用于合并重复序列,合并后的序列标识符由两部分组成,用-分隔,前半部分为数字编号,后半部分为该序列出现的次数,基本用法如下

代码语言:javascript
复制
fastx_collapser -i input.fa -o out.fa
10. 统计序列的碱基组成和质量分布

fastx_quality_stats命令统计序列的碱基组成和质量分布,支持fastq/fasta文件,基本用法如下

代码语言:javascript
复制
fastx_quality_stats -i input.fq -o stats.txt

只有当输入序列为fastq文件时,质量分布才有意义。

11. 可视化序列的碱基组成

fastx_nucleotide_distribution_graph.sh命令用于可视化序列的碱基组成,输入文件为fastx_quality_stats命令的输出文件,基本用法如下

代码语言:javascript
复制
fastx_nucleotide_distribution_graph.sh -i stats.txt -o out.png

产生的图片示意如下

12. 可视化序列的质量分布

fastq_quality_boxplot_graph.sh命令用于可视化序列的质量分布,输入文件为fastx_quality_stats命令的输出文件,基本用法如下

代码语言:javascript
复制
fastq_quality_boxplot_graph.sh -i stats.txt -o out.png

产生的图片示意如下

13. 可视化序列长度分布

fasta_clipping_histogram.pl命令用于可视化fasta序列的长度分布,基本用法如下

代码语言:javascript
复制
fasta_clipping_histogram.pl input.fa out.png

fastx_toolkit功能丰富,使用方便简单,但是在处理数据量较大的文件时,速度比较慢。

·end·

—如果喜欢,快分享给你的朋友们吧—

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 将fastq文件转换为fasta文件
  • 2. fasta 序列格式化
  • 3. DNA序列和RNA序列的转换
  • 4. 获取反向互补序列
  • 5. 重命名序列标识符
  • 6. 从序列中提取子串
  • 7. 去除adapter序列
  • 8. 过滤fastq文件中的低质量序列
  • 9. 合并重复序列
  • 10. 统计序列的碱基组成和质量分布
  • 11. 可视化序列的碱基组成
  • 12. 可视化序列的质量分布
  • 13. 可视化序列长度分布
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档