查看原文
其他

嵌合体?也就那么回事儿——高通量数据处理二三事

2016-12-09 参天大葱 微生物生态

前些时间生信小白参天大葱(就是本人)在做细菌16S的高通量数据处理,费了老大劲将公司给的Raw Data处理成Clean Data,正要高高兴兴进行OTU聚类,却被实验室一霸小圆师姐急忙拦住。

“住手!”

本葱一脸茫然,刚刚鼓起的半拉子成就感被师姐浇了冷水,瑟瑟小心得问:“肿么了?”

师姐侧了侧头,用眼角盯着本葱,不屑地说:“平时叫你多读书,嵌合体(Chimera去了没?”

“啥?嵌合体啥东西??”本葱读书少,赶快抱起垫在桌子下面的红宝书看看嵌合体啥东西。

 

本葱翻遍了红宝书也没有找到合适的定义,根据本葱理解,高通量测序谈及的嵌合体应该是这么个东西,为方便理解本葱画了个草图,如下。

在序列扩增时多数序列是顺着单条序列前进的,如Read1扩增产生新的Read1Read2扩增产生新的Read2。但有时两条序列也可能缠在一起,扩增时产生的新序列前半段可能属于Read1,后半段属于Read2,形成了拥有两条序列信息的嵌合体序列。


后来本葱在与公司技术人员闲聊时问及这个问题,砖家说:“嵌合体可能是在PCR扩增时造成的,同时,Illumina PE测序双端序列拼接过程中也可能产生嵌合体”。

听了砖家的话本葱终于弱弱的明白,嵌合体不是啥好东西,要去掉!

 

咋去呢?本葱又翻开红宝书,看到几个醒目的大字,“Usearch61去除嵌合体”。

usearch61?本葱电脑上没有呀,于是本葱又花了点时间安装上了usearch61

下载网址:http://drive5.com/usearch/

 

OK,万事具备,本葱终于可以去除嵌合体了

 

# 1嵌合体检测

参考: http://qiime.org/scripts/identify_chimeric_seqs.html

 

嵌合体检测分为有参无参,即检测时是否使用参考数据库。

 

identify_chimeric_seqs.py -m usearch61 -i split_libraries/seqs.fna -o  usearch61_chimera_checking/  -r $HOME/Database/gold.fasta

#基于usearch61,参考数据库为silva.gold数据库。

 

#或identify_chimeric_seqs.py -m usearch61 -i split_libraries/seqs.fna -o  usearch61_chimera_checking/  --suppress_usearch61_ref 

#基于usearch61,无参考序列(功能基因和ITS可用此方法)。

 

#上述指令是在qiime下运行的,使用到python包:identify_chimeric_seqs.py

#指令中,

-m是选择嵌合体检测方法,除此处的usearch61外,还有blast_fragments ChimeraSlayer,默认ChimeraSlayer

-i是输入文件,此处需要注意的是输入应是没有聚类的序列,如之前质控生成的clean data,而不是聚类后的代表序列;

-o是输出路径,嵌合体检测会在输出目录 “usearch61_chimera_checing/ ”生成“chimeras.txt”文件,此文件是记录检测为嵌合体的序列名称的。嵌合体的去除即是将检测出的嵌合体序列(chimeras.txt)从原序列文件(split_libraries/seqs.fna)中去除;

-r是参考数据库的目录,本葱的数据库存放在了$HOME/Database/目录下,是进行有参嵌合体检测时需要指明的。因为嵌合体检测比较耗时,所以本葱此处选择比较小的gold数据库。

此外需要注意的是,usearch61处理太大的数据会卡死,如有需要可以将数据分成几个,之后再合并。

 

# 2嵌合体去除

 

filter_fasta.py -f split_libraries/seqs.fna -o non_chimeric_seqs.fasta -s usearch61_chimera_checking/chimeras.txt -n

#去除嵌合体序列。

 

#由此输出文件“non_chimeric_seqs.fasta”即为去除嵌合体的序列文件。

 

去除完嵌合体本葱舒了口气,悄悄把脚从桌腿下抽了出来,换上了红宝书。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存