工欲善其事必先利其器
FASTX-Toolkit 最初是由 Hannon Lab 开发的一个为处理高通量测序数据(尤其是从 Illumina 测序平台获得的数据)设计的软件包。这个工具包包含了一系列命令行工具,用于对 FASTA 和 FASTQ 文件进行预处理操作,如质量控制、数据过滤、数据转换等。其特性包括:
官网:http://hannonlab.cshl.edu/fastx_toolkit github: https://github.com/agordon/fastx_toolkit
仅仅是一些小工具集,官网未见有发表专门的文章
省事省力,推荐这个方式
conda create -n miRNA
conda activate miRNA
conda install fastx-toolkit
由于软件很早,也不再维护了,预编译版本安装的时候有一个小报错,需要补丁修改一下
wget -c https://github.com/agordon/fastx_toolkit/releases/download/0.0.14/fastx_toolkit-0.0.14.tar.bz2
tar -xf fastx_toolkit-0.0.14.tar.bz2
cd fastx_toolkit-0.0.14/
./configure --prefix=/home/yjzhang/software/fastx_toolkit
make
make install
## make编译的时候遇到报错 fasta_formatter.cpp:105:9: error: this statement may fall through [-Werror=implicit-fallthrough=],
## 此时需要下载一个补丁文件,打补丁后再重新编译即可成功
wget -c https://github.com/agordon/fastx_toolkit/files/1182724/fastx-toolkit-gcc7-patch.txt
## 打补丁
patch -p1 < fastx-toolkit-gcc7-patch.txt
编译报错
子命令
-i #指定输入
-o #指定输出
-v #输出简短的摘要
-z #使用GZIP压缩输出
## 基本用法
fastq_to_fasta -i sample.fastq -o sample.fasta
## 保留那些含有未知(N)核苷酸的序列
fastq_to_fasta -n -i sample.fastq -o sample.fasta
## 重命名序列标识符,将序列标识符重命名为数字,以简化标识符或为了其他分析目的
fastq_to_fasta -r -i sample.fastq -o sample.fasta
## 基本用法(输出旧的格式)
fastx_quality_stats -i example.fastq -o quality_stats.txt
## 使用新的输出格式
fastx_quality_stats -N -i example.fastq -o quality_stats_new.txt
旧格式
column
:列号(对应fastq文件的每个read)count
:在此列中发现的碱基数量min
:此列中发现的最低质量分数值max
:此列中发现的最高质量分数值sum
:此列的质量分数值之和mean
:此列的平均质量分数值Q1
:第一四分位质量分数med
:中位数质量分数Q3
:第三四分位质量分数IQR
:四分位间距(Q3-Q1)lW
:左侧须值(用于箱形图)rW
:右侧须值(用于箱形图)A_Count
、C_Count
、G_Count
、T_Count
、N_Count
:此列中A、C、G、T、N碱基的计数max-count
:碱基数量的最大值新输出格式以循环(之前称为column
)为单位展示,为每个循环中的每个核苷酸提供 count 、min 、max、 sum、 mean、 Q1、 med 、Q3、 IQR、 lW 、 rW统计信息
fastq_quality_boxplot_graph.sh -i ./test-data/quality_stats.txt -t "Sample_01 Quality Boxplot" -o quality_boxplot.png
-p #生成PostScript (.PS) 文件。默认情况下,输出是PNG图像
-t #标题,将被绘制在图形上。用户可以为图表添加自定义标题,以便于识别和展示
quality_boxplot
fastx_nucleotide_distribution_graph.sh -i ./test-data/quality_stats.txt -t "Sample_01 Nucleotide Distribution" -o quality_Nucleotide.png
quality_Nucleotide
## 剪切掉一个特定的适配体序列`AGATCGGAAG`,并且只保留包含该适配体的序列,输出到`clipped_sample.fastq`
fastx_clipper -a AGATCGGAAG -c -i sample.fastq -o clipped_sample.fastq
-a ADAPTER # 指定适配体序列。默认值是CCTTAAGG(一个虚拟的适配体)
-l N #丢弃短于N个核苷酸的序列。默认值为5
-d N #保留适配体和它之后的N个碱基。使用`-d 0`与不使用`-d`是相同的,这是默认行为。
-c #丢弃未剪切的序列(即,只保留包含适配体的序列)。
-C #丢弃已剪切的序列(即,只保留未包含适配体的序列)。
-k #报告仅包含适配体的序列。
-n #保留含有未知(N)核苷酸的序列。默认是丢弃这些序列。
-M #要求适配体对齐的最小长度为N。如果与适配体对齐的碱基少于N个,不进行剪切。
## 保留从第5个碱基到第15个碱基之间的部分
fastx_trimmer -f 5 -l 15 -i example.fastq -o trimmed_example.fastq
#每个序列末端裁剪掉3个碱基,并且只保留长度不小于10的序列,同时输出为GZIP压缩文件
fastx_trimmer -t 3 -m 10 -z -i example.fastq -o trimmed_example.fastq.gz
-f N #保留的第一个碱基的位置。默认值为1(即序列的第一个碱基)。指定一个起始点,从而裁剪掉序列前端不需要的部分
-l N #保留的最后一个碱基的位置。默认情况下,保留整个读取序列。指定一个结束点,从而裁剪掉序列后端不需要的部分。
-t N #从读取的末端裁剪N个碱基。`-t`选项不能与`-l`和`-f`同时使用。
-m MINLEN # 与`-t`一起使用时,丢弃长度小于`MINLEN`的读取。
# 过滤掉那些质量分数低于20的序列,同时要求至少90%的碱基满足这一质量标准
fastq_quality_filter -q 20 -p 90 -i example.fastq -o high_quality_example.fastq
-q #保留的最小质量分数。序列中的碱基必须达到或超过这个质量分数才会被保留。
-p #必须具有`[-q]`指定的最小质量分数的碱基的最小百分比。这意味着,只有当至少`N%`的碱基具有足够高的质量时,序列才会被保留。
# 使每个序列的所有核苷酸都显示在一行上:
fasta_formatter -w 0 -i example.fasta -o formatted_example.fasta
# 序列行宽设置为每行 7 个核苷酸:
fasta_formatter -w 7 -i example.fasta -o formatted_example.fasta
-w N #设置输出 FASTA 文件的最大序列行宽。当设置为零(默认值)时,序列行不会被换行,每个序列的所有核苷酸将显示在一行上(适合脚本处理)。
-t #输出制表符分隔的格式(而非 FASTA 格式)。序列标识符将出现在第一列,核苷酸将以单行形式出现在第二列。
-e #输出空序列(默认是丢弃它们)。空序列是指那些只有序列标识符而没有实际核苷酸的序列。
# 所有 T 转换为 U
fasta_nucleotide_changer -r -i dna_sequences.fasta -o rna_sequences.fasta
#所有 U 转换回 T
fasta_nucleotide_changer -d -i rna_sequences.f
asta -o dna_sequences_converted.fasta
-r #DNA 到 RNA 模式 - 将 T 转换为 U。
-d #RNA 到 DNA 模式 - 将 U 转换为 T。
转换
更多用法见:http://hannonlab.cshl.edu/fastx_toolkit/commandline.html
参考: