使用trim_galore对数据进行质量控制-过滤

写在前面
参考1
参考2

cutadapt 软件可以对NGS数据进行质量过滤
FastQC 软件可以查看NGS数据的质量分布
trim_galore 将这两个软件封装到一起,使用起来更加方便

  • Trim galore,是可以自动检测adapter
  • 去除reads 3’端的低质量碱基 # 自动调用cutadapt
  • 去除adapter序列 # 自动去除3’端的adapter,可以通过设定--Illumina,--small_rna,--nextera参数来指定对应的adapter类型
  • 去除长度太短的序列 #通过设定--length参数,小于设定值被去除
  • 其它过滤

说明

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

  • Illumina: AGATCGGAAGAGC # 如果输入参数 --Illumina,就会默认trimmed前13bp的adapter
  • Small RNA: TGGAATTCTCGG # 同上 如果输入参数 --small_rna,就会默认trimmed前12bp的adapter
  • Nextera: CTGTCTCTTATA # 同上 如果输入参数 --nextera,就会默认trimmed前12bp的adapter

对于单端测序数据,基本用法如下
trim_galore --quality 20 -a AGATCGGAAGAGC --length 20 -o out_dir input.fq
其中-a后面可以跟着序列(-a AGATCGGAAGAGC)
对于双端测序数据,基本用法如下
trim_galore --paired --quality 20 -a AGATCGGAAGAGC -a2 AGATCGGAAGAGC --length 20 -o out_dir R1.fq.gz R2.fq.gz

参数说明

--quality/-q<INT>:设定Phred quality score阈值,默认为Phred 20 切除质量得分低于设定值的序列
--phred33/64:使用ASCII+33/64质量得分作为Phred得分选择-phred33或者-phred64,表示-测序平台使用的Phred quality score。
(需要确认:anger/Illumina 1.9+ encoding为33; Illumina 1.5 encoding为64)
--adapter/-a :输入adapter序列。也可以不输入,Trim Galore!会自动寻找可能性最高的平台对应的adapter。自动搜选的平台三个,也直接显式输入这三种平台,即--illumina、--nextera和--small_rna。
-s/--stringency<INT>:设定可以忍受的前后adapter重叠的碱基数,默认为1(非常苛刻)。可以适度放宽,因为后一个adapter几乎不可能被测序仪读到。
--length<INT>:设定输出reads长度阈值小于设定值会被抛弃,默认值20bp;即小于20bp的被去除。注意,在pe150下,不要设置太高,可以50或36(默认20)
--max_length : 设置长度大于此值被丢弃
-e <ERROR RATE> :默认0.1
--paired:对于双端测序结果,一对reads中,如果有一个被剔除,那么另一个会被同样抛弃,而不管是否达到标准。
--retain_unpaired:对于双端测序结果,一对reads中,如果一个read达到标准,但是对应的另一个要被抛弃,达到标准的read会被单独保存为一个文件。
--gzip和--dont_gzip:清洗后的数据zip打包或者不打包。
-o/--output_dir:输入目录 [需要提前建立目录,否则运行会报错]
-- trim-n : 移除read一端的reads
-j :使用线程数, 注意假设已使用Python 3并安装了Pigz,那么内核设置为4,实际使用内核是15,因此,最高设为4.
--fastqc #当分析结束后,使用默认选项对结果文件进行fastqc分析

ls *.fastq | while read id ; do ~/biosoft/fastqc/FastQC/fastqc $id;done
## Sequence length 51
## %GC 39
## Adapter Content passed
mkdir QC_results
mv *zip *html QC_results/

https://www.cnblogs.com/weipeng-loaded/p/10601285.html

FastQC(测序质量分析)

$: fastqc -q -t 4 -o ./fastqc_result/ *.fastq.gz &
> -t:调用核心数目
> -q:安静运行,运行过程中不会生成报告,在结束时将报告生成一个文件
> -o ../path/to/file :文件输出位置
> *. fq.gz:输入文件,**当前目录下**所有名字中有“ .fq.gz ”的文件

查看QC结果
单个查看:鼠标双击打开html文件查看
批量查看:使用MultiQC软件: multiqc *fastqc.zip

Fastqc结果报告关注重点:

1).basic statistics
2).per base sequence quality
3).per base sequcence content
4).adaptor content
5).sequence duplication levels
最主要的几个指标是

  • GC含量
  • Q20和Q30的比例以及是否存在接头(adaptor)
  • index以及其他物种序列的污染等。

先看利用fastqc检测原始序列的质量:

在*.gz所在目录:
ls *.gz | while read id ; do /home/yangjy/miniconda3/envs/chipseq/bin/fastqc $id;done

从页面左侧的的【summary】中可以看出有哪些选项没有通过,可以看出此数据的测序质量。从【Basic Statics】看出数据的序列数量,测序平台以及GC含量等相关信息


SRR391033_fastqc.html

Per base sequence quality : 每个read各位置碱基的测序质量。
横轴碱基的位置,纵轴是质量分数,
Quality score= -10log10p
(p代表错误率),所以当质量分数为40的时候,p就是0.0001,质量算高了。
[红色线]代表中位数,
[蓝色线]代表平均数
[黄色]是25%-75%区间,
[权]是10%-90%区间。
若任一位置的下 [四分位数] 低于10或者 [中位数] 低于25---->出现 “警告”
若任一位置的下 [四分位数] 低于5或者 [中位数] 低于20,出现“失败,Fail”

Per base sequence quality
 此图中
- 横轴是测序序列第1个碱基到第51个碱基
- 纵轴是质量得分,Q = -10*log10(error P)即20表示1%的错误率,30表示0.1%
- 每1个boxplot,都是该位置的所有序列的测序质量的一个统计:
*上面的bar是90%分位数
*下面的bar是10%分位数,
*箱子的中间的横线是50%分位数(上边是75%分位数,下边是25%分位数)
- 图中蓝色的细线是各个位置的平均值的连线(一般要求此图中,所有位置的10%分位数大于20,即Q20过滤)
。。上面的这个测序结果,需要把后面的27bp以后的序列切除,从而保证后续分析的正确性
【Failure 报错 如果任何碱基质量低于5,或者是任何中位数低于20】
较好

Per tile sequence quality 每tile的碱基质量
【蓝色】代表测序质量很高,【暖色】代表测序质量不高

Per tile sequence quality
此图中
- 横轴代表51个碱基的每个不同位置
- 纵轴是tail的Index编号
- 这个图主要是为了防止,在测序过程中,某些tile受到不可控因素的影响而出现测序质量偏低
。。 某些tail出现暖色可以在后续分析中把该tail测序的结果全部都去除

Per sequence quality scores 各个序列质量的分布情况

Per sequence quality scores
假如1条序列长度为51bp,则这51个位置的 每个位置Q之的平均值就是这条reads的质量值
- 该图横轴是0-33,表示Q值
- 纵轴 对应的reads数目
数据中,测序结果主要集中在高分中,证明测序质量良好!

Per base sequence content,碱基分布 ; 对所有reads的每一个位置,统计ATCG四种碱基的分布,理论上来说,A和T应该相等,G和C应该相等,但是一般测序的时候,刚开始测序仪状态不稳定,很可能出现严重分离的情况。像这种情况,即使测序的得分很高,也需要cut开始部分的序列信息,一般像这种情况,会cut前面5-10bp。

当任一位置的A/T比例与G/C比例相差超过10%,报'WARN';当任一位置的A/T比例与G/C比例相差超过20%,报'FAIL'

Per base sequence content
- 横轴为位置,
- 纵轴为碱基含量,
* 正常情况下每个位置每种碱基出现的概率是相近的,四条线应该平行且相近。
* !当部分位置碱基的比例出现bias时,即四条线在某些位置纷乱交织,往往提示我们有overrepresented sequence的污染。

Per sequence GC content 序列平均GC含量分布图

Per sequence GC content
- 横轴是0 - 100%; 
- 纵轴是每条序列GC含量对应的数量
- 蓝色的线是程序根据经验分布给出的理论值
- 红色是真实值,两个应该比较接近才比较好
- 当红色的线出现双峰,基本是混入了其他物种的DNA序列
- 这张图中的信息良好

Per base N content 序列中各个位点的N含量,越小越好

Per base N content

sequence_length_distribution 序列测序长度统计,从图中可以看出序列的平均长度为51。
每次测序仪测出来的长度在理论上应该是完全相等的

sequence_length_distribution
当测序的长度不同时,如果很严重,则表明测序仪在此次测序过程中产生的数据不可信

Sequence Duplication Levels 指在测序前建库PCR过程中 由一些序列扩增次数过多导致的。若重复较高则需要进行处理这些dup。

Sequence Duplication Levels

较好

Overrepresented sequences
有某个序列大量出现被称为(over-represented);fastqc的标准是占全部reads的0.1%以上。
*为了计算方便,只取了fq数据的前200,000条reads进行统计,所以有可能over-represented reads不在里面。而且大于75bp的reads也是只取50bp。
当发现超过总reads数0.1%的reads时报"黄色!"
当发现超过总reads数1%的reads时报"红色×"
正常显示No overrepresented sequences

Overrepresented sequences

Adapter Content
衡量 序列中两端adapter的情况
*如果在 fastqc分析时候 -a选项没有内容,则默认使用图例中的四种通用adapter序列进行统计

Adapter Content
有adapter序列没有去除干净的情况
在后续分析的时候需要先使用cutadapt软件进行去接头也可以用 trimmomatic来去除接头

使用trim_galore对数据进行质量控制-过滤

trim_galore -q 20 --phred33 --stringency 3 --length 20 -e 0.1 --paired fq --gzip -o ../clean

重新用fastqc检测进行过滤后的reads质量

fastqc -o out_dir *fq.gz
multiqc *fastqc.zip --ignore *.html

附注,处理信息

Multicore support not enabled. Proceeding with single-core trimming.  [未启用多核支持]
Path to Cutadapt set as: 'cutadapt' (default)
Cutadapt seems to be working fine (tested command 'cutadapt --version')
Cutadapt version: 1.18                             Cutadapt版本: 1.18 
single-core operation.
Output will be written into the directory: /home/yangjy/chipseq_test/clean/  

AUTO-DETECTING ADAPTER TYPE
===========================
Attempting to auto-detect adapter type from the first 1 million sequences of the first file (>> SRR391032.fastq.gz <<)
Found perfect matches for the following adapter sequences:
Adapter type Count Sequence Sequences analysed Percentage
Illumina 1926 AGATCGGAAGAGC 1000000 0.19
smallRNA 1 TGGAATTCTCGG 1000000 0.00
Nextera 0 CTGTCTCTTATA 1000000 0.00
Using Illumina adapter for trimming (count: 1926). Second best hit was smallRNA (count: 1)
Writing report to '/home/yangjy/chipseq_test/clean/SRR391032.fastq.gz_trimming_report.txt'
SUMMARISING RUN PARAMETERS
==========================
Input filename: SRR391032.fastq.gz
Trimming mode: paired-end
Trim Galore version: 0.6.6
Cutadapt version: 1.18
Number of cores used for trimming: 1
Quality Phred score cutoff: 20
Quality encoding type selected: ASCII+33
Adapter sequence: 'AGATCGGAAGAGC' (Illumina TruSeq, Sanger iPCR; auto-detected)
Maximum trimming error rate: 0.1 (default)
Minimum required adapter overlap (stringency): 3 bp
Minimum required sequence length for both reads before a sequence pair gets removed: 20 bp
Output file(s) will be GZIP compressed
Cutadapt seems to be reasonably up-to-date. Setting -j 1
Writing final adapter and quality trimmed output to SRR391032_trimmed.fq.gz

输入文件名:SRR391032.fastq.gz
整理模式:配对端
Trim Galore版本:0.6.6
Cutadapt版本:1.18
用于微调的内核数:1
Quality Phred分数截止:20
已选择质量编码类型:ASCII + 33 适配器序列:“ AGATCGGAAGAGC”(Illumina TruSeq,Sanger iPCR;自动检测)
最大修整错误率:0.1(默认值)
适配器所需的最小重叠量(严格度):3 bp
最小删除序列对之前,两次读取都需要序列长度:20 bp
输出文件将经过GZIP压缩
设置-j 1
将最终适配器和质量调整后的输出写入SRR391032_trimmed.fq.gz

再回顾一下我们的命令:
trim_galore -q 20 --phred33 --stringency 3 --length 20 -e 0.1 --paired fq --gzip -o ../clean

##细节:

出现了一个报错

first_line = file.readline()
AttributeError: 'str' object has no attribute 'readline'

与python有关;解决方案
https://www.cnblogs.com/lovebing/p/13048948.html
https://blog.csdn.net/qq_41185868/article/details/82079079
########暂时没有解决!

其他软件:
数据过滤之 Trimmomatic 详细说明

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容