数据清洗—【trim_galore】那些事

Trim Galore是对FastQC和cutadapt的包装。适用于所有高通量测序,包括RRBS(Reduced Representation Bisulfite-Seq )、 Illumina、Nextera和smallRNA测序平台的双端和单端数据。主要功能包括两步:第一步首先去除低质量碱基,然后去除3' 末端的adapter, 如果没有指定具体的adapter,程序会自动检测前1 million的序列,然后对比前12-13bp的序列是否符合以下类型的adapter:

1 Illumina: AGATCGGAAGAGC
2 Small RNA: TGGAATTCTCGG
3 Nextera: CTGTCTCTTATA

 

一、部分参数说明

1 #–q | ––quality <INT>
2     除了去除接头,同时修剪3‘端低质量的碱基;默认的phred分数为20;对不同的样本处理方式不同;
3     RRBS样本:先修剪3‘末端低质量碱基,随后再去除接头;
4     其他类型样本:低质量碱基和接头一次性处理;
1 #––phred33
2    适用于IlLumina 1.9+:指导cutadapt使用ASCII+33质量分数作为pared分数,默认使用。
3 #--phred64
4    适用于Illumina 1.5: 指导cutadapt使用ASCII+64质量分数作为pared分数
1 #––fastqc
2     当数据修剪完成以后以默认参数运行fastqc再次处理fastq文件
3 #––fastqc_args ”<ARGS>”
4     为fastqc运行提供额外的参数,如果参数多于一个,必须以”arg1 arg2…”的格式。如:––fastqc_args ”--nogroup --outdir /home ” 
 1 #-a | --adapter <STRING>
 2    指定要修剪的接头序列;若没有特别指定,trim_galore将自动检测是否为以下的种类:
 3    Illumina通用
 4    Nextera转座酶
 5    Illumina小RNA接头序列
 6    如果在指定的第一个文件的前100万个序列中没有检测到接头或者在一些接头序列之间存在联系,trim_galore会默认使用”--illumina”(如果illuminate adapter是其中的一个选项,否则会默认使用”--nextera”)
 7 
 8 #-a2 | --adapter2 <STRING>
 9    为双端测序的第二个读长设置要去除的接头序列;该选项依赖于”--paired”;如果要清洗的文库是smallRNA,则a2会自动使用Illumina系统的small RNA 5’接头(GATCGTCGGACT)
10 
11 #--illumina
12    使用illumina通用接头的前13bp作为要去除的接头序列(AGATCGGAAGAGC),而不会默认去检测接头序列的类型
13 
14 #--nextera
15    使用Nextera接头的前12bp作为要去除的接头序列(CTGTCTCTTATA),而不会默认去检测接头序列的类型
16 
17 #--small_rna
18    使用illumina small RNA 3’接头的前12bp作为要去除的接头序列(TGGAATTCTCGG),而不会默认去检测接头序列的类型。此选项会默认将”--length”值设置为18,如果 smallRNA 文库是双末端的,则 a2 将自动设置为 Illumina small RNA 5' 接头 (GATCGTCGGACT),除非设置-a2的值
 1 #-- consider_already_trimmed <INT>
 2    设置一个阈值,在接头自动检测的过程中,若没有接头的序列序列个数达到阈值,则去接头的程序不会继续运行,但其他质控会继续运行
 3 
 4 #--max_length <INT>
 5    修剪后丢弃长于 <INT> bp 的read。 这仅建议用于 smallRNA 测序以去除non-small RNA 序列。
 6 
 7 #--stringency <INT>
 8     接头序列最小配对碱基数:简单来说就是最多能允许末端残留多少个接头序列的碱基,默认值为极端值1;该参数与trimmomatic中ILLUMINACLIP <minAdapterLength>含义相同。
 9 
10 #-e <ERROR RATE>
11    允许的最大错误率,默认是0.1;即ERROR rate大于10%的read 会被舍弃,如果添加来--paired参数则会舍弃一对reads
12 
13 #--gzip
14    使用gzip格式压缩输出文件,如果输入文件是经过gzip压缩过的,则输出文件会默认使用此格式进行压缩
15 
16 #--dont_gzip
17    此选项会重写” --gzip”,输出文件不会使用gzip格式进行压缩。
18 
19 #--length <INT>
20    设置长度阈值,若read通过质控清洗或去接头后长度小于此阈值,则会被剔除。
21    对于双端结果,一对reads中若一个read因为该原因被抛弃,则对应的另一个read也抛弃。不会被输出到双端结果文件。
1 #--paired
2    对于双端结果,一对reads中若一个read因为质量或其他原因被抛弃,则对应的另一个read也抛弃,但若使用--retain_unpaired选项可以保留

 

 

二、利用trim_galore对测序数据进行清洗

1.对数据名预处理

1 ls fastq | grep "_1" > gz1
2 ls fastq | grep "_2" > gz2
3 paste gz1 gz2>config_file
4 cat config_file

 

 

2.数据处理

 1 #!/bin/bash
 2 cat config_file | while read id
 3 do
 4     sample_dir="./fastq"
 5     output_dir="./fastq_clean"
 6     arr=($id)
 7     fq1=${arr[0]}
 8     fq2=${arr[1]}
 9     sample_dir1="$sample_dir/$fq1"
10     sample_dir2="$sample_dir/$fq2"
11     #为防止结束终端时命令挂掉,可以用nohub防止挂起,因为现在使用学校超算中心,所以不用担心该问题
12     trim_galore -q 25 --phred33 --length 36 -e 0.1 --stringency 3 --paired -o $output_dir $sample_dir1 $sample_dir2
13 done

 

posted @ 2022-02-21 17:03  S_梦痕  阅读(2568)  评论(2编辑  收藏  举报