【RSS】[3] Filtering FASTQ files & cutadapt用法

在分析了QA报告之后,人们可能想放弃some of the reads based on several criteria;
我们将使用两个不同的工具来执行这些过滤步骤:PRINSEQfastq mcf;

PRINSEQ提供了广泛的过滤选项,我们可以在manual中了解它们:

PRINSEQ lite-h

根据我们从质量保证报告中了解到的情况,我们可以决定应用following filters:

zcat SRR031714_1.fastq.gz | prinseq-lite \
    -fastq stdin \
    -out_good SRR031714_1_filt1 \
    -out_bad null \
    -trim_qual_right 30 -min_len 32 \
    -ns_max_p 5 \
    -lc_method dust -lc_threshold 10
    
zcat SRR031714_2.fastq.gz | prinseq-lite \
    -fastq stdin \
    -out_good SRR031714_2_filt1 \
    -out_bad null \
    -trim_qual_right 30 -min_len 32 \
    -ns_max_p 5 \
    -lc_method dust -lc_threshold 10

练习:我们使用哪些标准来丢弃reads?
解决方案:用prinseq-lite -h查看参数,指定标准,去除不符合标准参数的fastq;

练习:如果我们的文件是phred 64格式的,我们应该使用哪个option?
答:我们应该使用-phred64选项。正确选择此选项非常重要,否则软件将无法正确解释质量字符串,这将影响我们的输出。

练习:过滤完fastq文件后,再次fastQC QA报告来决定我们是否对结果满意,你认为我们能解决最初发现的主要问题吗?
答案:我们可以使用以下命令在筛选的fastq文件上运行FastQC:

fastqc SRR031714_1_filt1.fastq SRR031714_2_filt1.fastq

然后我们可以打开并检查报告。

练习:通常在过滤步骤之前和之后,跟踪fastq文件中可用的读取次数也是有用的。你能从FastQC报告中收集这些信息吗?现在想象一下我们正在处理更多的文件;你能想出一个更自动化的方法来检查吗?
答案:我们可以从FastQC报告的第一个表中获取每个fastq文件的读取次数,如果我们希望自动化流程,还可以执行以下命令:

grep '^@SRR' SRR031714_1_filt1.fastq | wc -l
# find the lines starting with "@SRR" and count how many there are
# 5,150,415
# 利用wc指令我们可以计算文件的Byte数、字数、或是列数
# -l或--lines 只显示行数

请注意,在某些筛选步骤中过于严格可能会导致信息的严重丢失。从一开始就丢弃太多的读取通常不是一个好的选择,而且还可以依赖mapping step来丢弃低质量的读取。

如果使用paired-end data,筛选步骤可能会变得复杂,因为必须确保两个fastq文件(每个读取对一个)以相同的顺序包含相同数量的读取。有一些工具可以简化此任务,例如fastq mcf。我们只需输入工具名称即可打印可用选项列表:

fastq-mcf

我们注意到fastq mcf的主要功能是从fastq文件中删除adapter。因此,我们需要提供一个带有adapter序列的fasta文件。在我们的案例中,我们决定只检查标准Illumina paired-end adapter:

cat adapters.fa

现在我们已经很好地理解了所需的输入,我们可以继续执行该工具,尝试匹配我们之前使用的PRINSEQ:

fastq-mcf adapters.fa SRR031714_1.fastq.gz SRR031714_2.fastq.gz \
    -o SRR031714_1_filt2.fastq -o SRR031714_2_filt2.fastq \
    -q 30 -P 33 -l 32 --max-ns 1

根据所使用的filtering options,我们可能最终得到一组具有不同长度的reads,导致我们可能会在下游分析中遇到一些困难;

因此,为了方便和safe side,我们可以使用针对所有reads的filtering options;

zcat SRR031714_1.fastq.gz | prinseq-lite \
    -fastq stdin \
    -out_good SRR031714_1_filt3 \
    -out_bad null \
    -trim_right 5
    
zcat SRR031714_1.fastq.gz | prinseq-lite \
    -fastq stdin \
    -out_good SRR031714_1_filt3 \
    -out_bad null \
    -trim_right 5

# zcat(选项)(参数)
# zcat命令 用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。

总之,您可以应用许多filtering combinations,具体选项在很大程度上取决于type of data和后续分析。我们建议查看PRINSEQ manual以获得关于该主题的详细概述。

使用cutadapt去除adapter

生物信息学100个基础问题 —— 第10题 读懂FastQC报告之adapter与kmer中,我们知道,测序结果中可能会有若干条序列存在adapter的信息,而adapter的信息一般是不在基因组上存在的。所以,在比对之前如果不把adapter去干净,我相信你会得到1个非常非常低的mapping rate。

1

通常情况下,我们都是使用cutadapt这个软件进行adapter(接头)序列的去除。cutadapt这个软件不但支持单端序列,还支持双端序列的切除,同时还支持gz格式的自动压缩与解压缩。1个常用的切除命令类似:

# 在linux 命令行模式下
cutadapt -a ADAPTER_FWD -A ADAPTER_REV -o out.1.fastq -p out.2.fastq reads.1.fastq reads.2.fastq

# -a是第1个文件的adapter序列
# -A是第2个文件的adapter序列
# -o是第1个输出文件
# -p是第2个输出文件
# reads.1.fastq 是第1个输入文件,也就是双端测序中的read-1
# reads.2.fastq 是第2个输入文件,也就是双端测序中的read-2
  1. cutadapt中-a/-A 参数与-g/-G参数分别代表什么意思?Illumina测序过程中,一般不会用到哪个参数?

  2. cutadapt可以过滤一些非常短的reads,请解释其中-m 参数是什么意思?为什么要过滤一些非常短的reads?

  3. 在测序的过程中,我们经常发现一些序列的3'端的测序质量不太好(如图2所示),即使去掉adapter以后还是需要把低质量的序列再去除1次,从而保证后续的mapping质量。cutadapt可以使用一些办法来去除3'端质量不太好的序列。请说明用哪个参数来设置相关的cutoff,并简要说明cutadapt对read质量判断的策略与方法。

2

cutadapt软件的介绍

这个cutadapt软件是最常用的去adapter的工具。它是基于Python编写的一个Python包,还是用bioconda安装:

conda install -c bioconda cutadapt

关于adapter的使用汇总

image.png

其实主体还是利用fastqc进行质量评估,然后根据质量评估的信息。进行相应的质控。利用到的软件是cutadapter 和 fastx-toolkit,其实还有一些别的软件可以用,比如说trimmomatic或者是Trim Galore;cutadapter序列过滤参考

illumina的通用adapter序列是什么?

Illumina Paired End Adapters(cannot be used for multiplexing)
Top adapter
    5' ACACTCTTTCCCTACACGACGCTCTTCCGATC*T 3'
Bottom adapter
    5' P-GATCGGAAGAGCGGTTCAGCAGGAATGCCGAG 3'
    
**来源**
http://bioinformatics.cvr.ac.uk/blog/illumina-adapter-and-primer-sequences/
不同颜色的图例代表不同的测序通用的adapter;
如果在当时fastqc分析的时候-a选项没有内容,则默认使用图例中的通用adapter序列进行统计。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353