欢迎关注”生信修炼手册”!
在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由一系列的命令组成,每个命令提供一个实用的小功能。在使用时需要注意以下几点
- 不支持压缩格式的输入文件
- 不允许序列中存在N碱基,这样的序列会自动去除
- 可视化命令依赖gunplot软件和perl的GD模块
- 默认情况下认为fastq文件的碱基编码格式为phred64
对于目前主流的phred33编码的fastq文件,需要添加参数-Q 33
。
1. 将fastq文件转换为fasta文件
fastq_to_fasta
命令可以将fastq文件转换为fasta文件,基本用法如下
fastq_to_fasta -i input.fq -o out.fa -Q 33
2. fasta 序列格式化
fasta_formatter
命令用于格式化fasta文件,主要是指定序列的行数。fasta文件中每条序列由>
开头的序列标识符和碱基序列两部分构成,其中碱基序列可以写成一行,也可以写成多行。该命令通过指定一行允许的最大碱基数,控制序列的展现形式,基本用法如下
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
碱基,基本用法如下
fasta_nucleotide_changer -i input.fa -r -o out.fa
4. 获取反向互补序列
fastx_reverse_complement
命令可以将序列方向互补,支持fastq/fasta格式的输入文件,基本用法如下
fastx_reverse_complement -i input.fq -o rc.fq
5. 重命名序列标识符
fastx_renamer
命令可以重命名序列标识符,提供了两种重命名方式,默认采用SEQ
模式,直接用序列作为标识符,但是由于序列可能存在冗余,采用这种方式存在风险,COUNT
模式采用数字编码作为标识符,编号从1开始。基本用法如下
fastx_renamer -n COUNT -i input.fa -o out.fa
6. 从序列中提取子串
fastx_trimmer
命令可以从序列中提取子串,-f
参数指定子串的起始位置,默认为1,-l
参数指定子串的终止位置,默认为序列的长度。通过指定-f
参数,可以方便的从序列的头部切除固定个数的碱基,基本用法如下
fastx_trimmer -f 5 -i input.fq -o out.fq
7. 去除adapter序列
fastx_clipper
命令用于去除adapter序列, 也支持去除长度太短的序列,-a
参数指定adapter序列,-l
参数指定序列的最短长度,基本用法如下
fastx_clipper -a GATTGA -l 20 -i input.fa -o out.fa
8. 过滤fastq文件中的低质量序列
fastq_quality_filter
命令根据高质量碱基所占的百分比对序列进行过滤,-q
参数指定碱基质量阈值,高于该阈值的碱基认为是高质量碱基,-p
指定高质量碱基百分比的阈值,低于该阈值的序列会被过滤掉,基本用法如下
fastq_quality_filter -q 20 -p 90 -i input.fq -o out.fq -Q 33
9. 合并重复序列
fastx_collapser
命令用于合并重复序列,合并后的序列标识符由两部分组成,用-
分隔,前半部分为数字编号,后半部分为该序列出现的次数,基本用法如下
fastx_collapser -i input.fa -o out.fa
10. 统计序列的碱基组成和质量分布
fastx_quality_stats
命令统计序列的碱基组成和质量分布,支持fastq/fasta文件,基本用法如下
fastx_quality_stats -i input.fq -o stats.txt
只有当输入序列为fastq文件时,质量分布才有意义。
11. 可视化序列的碱基组成
fastx_nucleotide_distribution_graph.sh
命令用于可视化序列的碱基组成,输入文件为fastx_quality_stats
命令的输出文件,基本用法如下
fastx_nucleotide_distribution_graph.sh -i stats.txt -o out.png
产生的图片示意如下
12. 可视化序列的质量分布
fastq_quality_boxplot_graph.sh
命令用于可视化序列的质量分布,输入文件为fastx_quality_stats
命令的输出文件,基本用法如下
fastq_quality_boxplot_graph.sh -i stats.txt -o out.png
产生的图片示意如下
13. 可视化序列长度分布
fasta_clipping_histogram.pl
命令用于可视化fasta序列的长度分布,基本用法如下
fasta_clipping_histogram.pl input.fa out.png
fastx_toolkit功能丰富,使用方便简单,但是在处理数据量较大的文件时,速度比较慢。
·end·
—如果喜欢,快分享给你的朋友们吧—