高通量数据处理的一些经验和建议.docx
- 文档编号:30405347
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:20
- 大小:29.97KB
高通量数据处理的一些经验和建议.docx
《高通量数据处理的一些经验和建议.docx》由会员分享,可在线阅读,更多相关《高通量数据处理的一些经验和建议.docx(20页珍藏版)》请在冰豆网上搜索。
高通量数据处理的一些经验和建议
高通量数据处理的一些经验和建议
最近一年时间里收到很多同学和朋友关于454数据处理的询问,通过QQ,微信,人人网和邮件等各种途径,当然不少也是面对面的讨论。
这些同学和朋友包括同组的,跨组的,同所的,跨所的,其他大学的,来自北京的、南京的、广州的、西安的,甚至也有国外的中国朋友。
有些朋友我素未谋面,也不知长相如何,不知男女。
有时候同一天能收到五六份邮件,问题之五花八门,有时已经超越了我所能够解答的范围。
这些现象也反映了当前生物信息学的急剧变革,第二代测序技术就像Iphone问世一些,彻底席卷和重新定义了当前生态学研究的方法和手段。
而几年前费用昂贵的第二代测序如今已“旧时王谢堂前燕,飞入寻常百姓家”,于是乎大潮裹挟之下的硕士生博士生们都想出来耍耍,扔个十几万块钱,希望能够轻松的收获几篇文章。
科研论文的发表讲究“猎奇性”,大家都喜欢看到新奇的方法和漂亮的图表。
但我认为这其实也是当今科研界的弊端之一,讲究创新和手段的先进,而忽视了研究的重要性。
以微生物生态学的旗舰杂志ISMEJ为例,最近一年多发表的学术论文里,第二代测序技术已经是寻常方法,所谓第三代的单细胞测序技术也开始出现。
研究生物信息学的来自美国科罗拉多的RobKnight能够作为ISMEJ的高级主编,方法对于微生物生态学研究的重要性可见一斑。
前几天读到阿伯丁大学的JamesProsser教授在Nature上发表的一篇观点文章“Thinkbeforeyousequence“,在这里面他讲到,第二代测序只不过是一个工具而已,我们的研究依旧要从扎扎实实的假设出发,设计实验来解决问题和验证假设。
高通量测序并不能弥补实验设计的缺陷。
我在阅读文章的过程中也发现,设计合理和完整的实验,即使使用传统的Sanger测序技术,依旧能够说明和解决问题,并能够发表到高档次期刊上。
而如果使用第二代测序技术,但是数据处理有问题,数据质量控制不好,文章也很难得到发表,相当于花钱买罪受。
我从2011年秋天开始学习454数据的处理,在学习的起始阶段,能够和师弟袁超磊一起探讨和交流,并且几乎阅读了ISMEJ上所有与第二代测序技术有关的文章,所以能够很快的上手。
在此我也对师弟袁超磊表示正式的感谢,祝愿他在阿德雷德大学能吃上可口的饭菜。
很多朋友的问题我未能一一解答,在此也表示歉意。
我经历过学习454数据处理的漫长和痛苦的过程,我很清楚有时候一句话或者一段话很难解决所问的问题。
去年我自己投出的文章经历了很多次的拒稿,十几位审稿人和生物信息学家对数据处理提出了建议,现在经过在悉尼和生物信息学专家的讨论,我也能够更加合理地看待数据处理的问题。
摸着石头过河的一些经验和建议,在这里进行分享,希望正在摸索和思考中的你,觉得并不孤单。
1.Mothur和QIIME那个软件更好
Mothur是美国密歇根大学的PatrickSchloss在2009年开发的数据处理平台,它的前身是Dothur软件,相信大家都听说过。
这两个软件的发音分别为Mother和Daughter,是DrParick献给他的妻子和女儿的。
另一个被广泛使用的数据处理平台是QIIME,也是美国科罗拉多RobKnight等人于2009年开发出来的。
截至今天,Mothur的方法文献已经被引用1229次,而QIIME被引用574次。
这说明Mothur比QIIME有更广泛的群众基础。
我刚开始学习使用的就是Mothur,我个人非常喜欢这个开源的数据处理平台,基本能够实现我的所有数据处理目的。
Mothur软件无需安装,在Windos,Linix,和MacOS系统上都可以运行。
我研究了Mothur每一个中间导出文件的格式和原理,所以我能够将这些中间产生的文件导入其他软件进行处理和做图,比如R语言。
很多人不喜欢Mothur,都是因为Mothur不能够直接出图,必须依赖于其他软件。
而这正式我所喜欢的原因,我现在也正在进一步学习R语言,R的做图功能是非常强大的,其实大家平时看到文章上那些非常漂亮的图,大都是R语言做出来的。
所以,如果将Mothur和R结合,我认为是一个能正确处理数据并完美展现数据的途径。
除了罗氏454数据处理之外,Mothur现在也有了针对Illumina数据的处理方式,大家从Mothur的网页上就可以读到Dr.Patick写的标准数据处理流程。
现在QIIME携苹果电脑的时髦,也得到了很多人的青睐。
这个软件我本人没有真正使用过,但是知道QIIME只能在MacOS和Linix系统上运行,当然也可以通过在Windos系统上安装VirtualBox来运行。
这个软件出图的效果比较好,很多人把直接出的图用来发表文章。
我所在的悉尼这边的研究所的生物信息学专家也是用QIIME来处理数据。
我就这个软件问题和他讨论了好多次。
基本来说,两个软件都可以帮助我们实现正确的数据处理,并不存在哪个更好的问题,只有个人在使用上的喜好。
我希望你无论使用那个软件,都仔仔细细阅读软件网页上的教程,并熟悉所有的命令。
自己一一试试各个命令,合理组合命令,这样才会通过修改命令来正确处理自己的数据。
这个过程没人可以帮你,只有你自己能够救赎自己。
2.数据处理难学吗
这是一个我一直以来很想告诉所有人的问题。
说实话,那两个软件都很好使用,有标准的处理流程在那里等着你,把所有数据处理下来绝对不超过十天时间。
但是,为什么我们几个月甚至一年都拿不下来数据处理
因为数据处理的难点不在于软件的使用,而在于你对微生物生态学基本概念的了解。
我认为我们需要在数据处理之前就应该特别清楚的是1)α多样性的各种指标。
数据条数的多少会直接影响α多样性的计算结果,它们之间是正相关关系。
所以计算α多样性必须统一序列条数。
而我们知道统一序列条数就会舍弃很多条数不足的样品,这个取舍就涉及到很多的经验问题,需要你阅读很多的文献来了解;2)β多样性的表征方式。
我研究β多样性的时候,阅读了很多相关的文献,对Bray-Curtis指数,UniFrac等都非常了解。
选择能够最好表现你多样性差异的指数,需要花很多很多的汗水。
3)多元统计方法。
这个又是更大的难点了,Mothur不会告诉你,QIIME也不会告诉你。
你只有去阅读教材,阅读文章,才能弥补这些缺陷。
不然你连那些命令都读不懂,还谈什么数据处理,修改命令。
4)文章的构思。
这又是更高一级的知识预储备了。
在你的数据处理之前,请阅读所有高质量期刊上的相关文章,至少需要预估计,你可以出哪些图,做哪些分析。
其实在数据处理的过程中已经是你不断验证假设和推翻假设的过程。
希望你在数据处理之前踏踏实实地做好这些功课,不然你很难完美运行各个命令。
另外,要仔细研究各个软件的原理,做到人机合一的效果。
因为有时候软件并不能解决所有问题,比如在alignment的时候,有时候在部分区域比对效果不好,你需要使用合适的软件打开这些中间文件,手动进行删除,不然会影响后续的多样性计算。
所以,你需要把自己练成一台机器。
2010年我做过同位素超高速离心,尽管已经有很多文献可供参考,我当时还是研究了离心机的原理和等密度梯度离心的原理,所以自己就很清楚应当如何优化实验条件,获得最好的数据。
3细菌和古菌16S数据和功能基因数据处理的不同
如果你处理的是细菌16S数据,那么恭喜你,你应该很容易完成数据处理,因为Mothur和QIIME都包含了细菌16S比对和分类的数据库。
因为细菌的研究已经非常多,所以分类的效果也很好,未知的类别一般也很少。
如果是古菌16S的话,RDP,Greengenes,SILVA等数据库我都用过,分类效果都很差,但是不影响你的多样性分析。
因为古菌的纯培养仍然很少,分类问题仍然是处于发展阶段。
你基本也可以顺利按照标准流程完成数据处理。
但是功能基因的话,就面临很大很大的难题。
如果想测序功能基因的同学,一定要三思而后行,我自己在这方面进行了很多的尝试,虽然知道处理的方式,但是解释起来真的很难。
就像我在上面所说的,如果你不了解Mothur和QIIME的文件格式,基本架构,我很难告诉你怎么去实现自己的目的。
所以大家也可以看到,现在发表的关于功能基因测序的文章很少很少。
大家基本都是DIY,都是一些很熟悉生物信息学的国外实验室发表的。
希望你能认识到功能基因处理的难点1)第一步是比对alignment,一开始就做不了。
因为没有可供使用的alignmentreference数据库。
我的经验是自己做一些,从NCBI上下载功能基因序列,然后自己通过MUSCLE或者ARB比对的很齐,然后作为参比序列;2)分类。
这个更难,需要经过alignment之后,分成不同的OTU,然后从每个OTU中选择一个代表序列,通过BLAST进行分类。
3)分OTU。
对于细菌和古菌16S而言,97%代表species水平,但是功能基因就完全不一样。
以氨氧化微生物研究为例,AOA的species-levelOTU应当是87%,而AOB应当是80%,所以和16S数据完全不同。
对于必须要做功能基因的同学,我建议可以考虑基因芯片(microarray)的方法。
现在针对pmoA和amoA基因的基因芯片都已经开发的非常完善,国际合作也不是难题。
Microarray通过设计的探针合理解决了分类的问题,价格比454测序也便宜,数据处理简单。
所以我认为是一种更好的方式。
以上所写,难免有错误之处。
我以分享知识为乐趣,也祝各位同学和朋友数据处理顺利。
Mothur命令手册-Mothur命令中文解释
(一)
这个命令使你计算16SrRNA基因序列中潜在的错配碱基对数目。
如果你对ARB(的编辑窗口熟悉的话,这与计算~,#,-和=这些符号的数目相同。
用greengenes的二级结构图谱和esophagusdataset运行这个命令。
要运行这个命令,你必须提供FASTA格式的序列文件。
这个命令把用户提供的FASTA格式的候选序列文件对齐到用户提供的同样格式的模板序列。
通用的方法是:
1.采用kmersearching(apps/mediawiki/kmer/title=Main_Page),blastn或suffixtreesearching找到每个候选序列的最接近模板
2.在候选序列文件和空位模板序列之间进行碱基配对,采用Needleman-Wunsch,Gotoh,或者blastn算法规则。
3.重新在候选和模板序列对之间插入间隔(空位),采用NAST算法,这样候选序列就能与原始模板序列兼容。
我们提供了一些16S和18S基因序列的数据库,这些是与greengenes和SILVA队列兼容的。
然而,自定义的任何DNA序列的排列都可以用作模板,所以鼓励用户分享他们的排列供其他人使用。
普遍来说,进行排列是很快的-我们能在3小时内将超过186000个的全长序列排序到SILVA排列中,而且质量像SINAaligner做的一样好。
另外,这个速率可以由多个处理器加倍。
Amova
分子方差分析(Analysisofmolecularvariance)是一种传统方差分析的非参数模拟。
这种方法被广泛应用在种群遗传学以检测关于两个种群的遗传多样性不是显著不同于由这两个种群的共同联合导致的多样性这样一个假设。
Anosim
参考文献:
Clarke,K.R.(1993).Non-parametricmultivariateanalysisofchangesincommunitystructure._AustralianJournalofEcology_18,117-143.群落结构变化的非参数多元分析《澳大利亚生态学报》
这个命令输出一个fasta格式的文件,其中序列根据它们所属的OTU进行排序。
这样的输出也许对一个OTU生成特异性引物有帮助,用来对序列进行分类。
Catchall
这个命令使mothur与LindaWoodard,SeanConnolly和JohnBunge开发的catchall程序连接。
获取更多信息,请参看。
catchall的可执行程序必须与你的mothur在同一个文件夹里。
如果你是一个Mac或Linux用户,你必须也安装了mono,在catchall的网页中有一个关于mono的链接。
采用Bellerophon方法生成一个挑选的优先嵌合序列的得分列表。
采用Ccode方法。
对每个词语,在查询序列和参考序列之间对比距离的差异,以及参考序列与它们自己。
采用chimeraCheck方法...注意:
从RDP模型中,这个方法不能决定一个序列是否是嵌合的,但是让你决定那些基于产生的IS值的序列。
查看“查询的序列的左边到它的最近的匹配的距离+查询的右边到它最近的匹配的距离-整个查询序列到它最近的匹配的距离”,通过多个窗口
这个命令读取并命名一个fasta文件,输出潜在的嵌合序列。
采用Pintall方法。
在不同的窗口中查询一个序列,查看期望的差异与观察到的差异之间的不同
这个命令已经被拆分为6个分离的命令。
目前,mothur执行六种方法以确定一个序列是不是嵌合的。
如果有一个你喜欢看到的算法可以实施,请考虑一下或者贡献给mothur项目,或者联系开发者,我们将会考虑我们能做什么。
这个命令读取一个fasta文件和参照文件,并输出潜在的嵌合序列。
原始算法的开发者建议采用一个特殊的模版参照(例如,gold)。
我们用silva参照文件提供silva-based排列的数据库。
你将需要在blast/bin文件夹中有megablast和formatdb可执行文件的拷贝,这里blast文件夹与mothur可执行程序相邻。
megablast/formatdb的版本可以在这里
2.2.25,或者它们就包含在mothur的程序版本中。
这个命令读取一个fasta文件和参考文件,并输出潜在的嵌合序列。
原始的uchime程序是由RobertC.Edgar编写的,并且贡献为公共所有。
uchime/
这个命令读取一个fasta文件,输出一个.,包含着修剪的整理的序列。
它可以用于排序的和未排序的序列。
这个命令用来为一个OTU得到一个共有序列分类.
这个命令允许用户使用多个不同的方法把他们的序列分配到他们选择的分类提纲(轮廓)中。
当前的方法包括采用一个k-nearest邻近共有序列和Bayesian方法。
分类提纲和参考序列可以在taxonomyoutline()的页面中获得。
这个命令需要你提供一个fasta格式的输入文件和数据库序列文件,还要有一个为了参考序列的分类文件。
这个命令用来为一个进化树的每个节点获得一个共有序列。
这个命令从内存中删除保存的参考数据,你可以在已经用以下命令,,,,和之一使用过保存参数之后使用.
Clearcut
这个让mothur用户在mothur内部运行clearcut程序。
chearcut程序是由Idaho大学的InitiativeforBioinformatics和EvolutionaryStudies(IBEST)编写。
了解更多clearcut相关信息,参看。
注意,在版本中,clearcut源码已经加进mothur,所以你不再需要clearcut的可执行程序。
当然,如果你愿意,你仍可以从这里下载clearcut的可执行文件
Cluster
一旦一个距离矩阵读进mothur,cluster命令就能用来给OTUs分派序列。
目前,mothur采用三个分簇方式。
最近邻:
从OTU的最相似序列,一个OTU内的每一个序列都最多x%的距离
最远邻:
一个OTU内的所有序列与OTU内的所有其它序列最多有X%的距离
平均邻近:
这个方法介于另外两个算法的中间水平
如果您有一个算法,请考虑一下贡献给mothur项目。
这个命令可用于把序列分配到OTUs.它是cluster的dotur工具,目前mothur采用三个分簇方式。
这个命令需要一个fasta格式的文件,也要提供
一个命名的文件而且当一个序列被确定为一个更大的序列的一部分时,列出的与序列名相关的指明文件就会被合并。
这个命令用来分配序列到OTUs并输出一个.list,.rabund,.sabund文件.它把大的距离矩阵拆分为小的部分。
这个命令给计算器生成一个收集曲线,描绘出不同群落间的相似性或它们的共有丰度。
Collector'scurves描绘随着你样本增加的个体,丰富度和多样性的变化。
如果Collector'scurves变得与x轴平行,你可以合理的确信你在采样这个工作上做的很好,并且相信曲线上的最终值。
否则,你需要继续抽样(采样),mothur能为collector'scurves生成数据,就像sons做的那样。
当时sons将数据呈现在sons文件中,实际上不可能被新手分析解读。
mothur解决了许多这样的问题,因为mothur为每一个估计值产生分离的文件。
利用计算器()生成collector'scurves,描述了丰度,多样性和样本的其他特征。
Collector'scurves描绘了你抽取额外的个体时丰度和多样性的变化。
这个命令可以以两种方式使用:
从fasta文件创建一个共有序列,或者由一个list文件为每个OTU创建一个共有序列。
序列必须进行排列。
的参数(特征,因素)是fasta,list,name和label
Cooccurrence
这个命令计算四个度量并且测试他们的显著性以评估是否样式的存在与否比起那些随机期待的有所不同。
这个命令将会计算在shared/relabund文件中每一行(或列)的相关系数,记录在一个pcoa文件所显示的轴线上。
这个命令从一个特定的组(group)或者一套组算出序列,从下面这些文件类型:
group或者shared文件.
这个命令计算在一个name文件中的代表性序列所代表的序列的数目。
如果提供了一个group文件,它也会提供使group计数崩溃。
这个命令读取一个list文件,*.,*.,*.和可选的group文件,并且创建一个数据库(database)文件.
这个命令读取一个fasta文件并输出一个.文件,它包含所有间隔字符都被移除后的序列。
这个命令是的反向命令,从一个fasta和name文件创建一个fasta文件。
这个命令把冗余序列标识符重新插入一个唯一的系统树。
这个命令将计算两个排序的DNA序列间不正确的成对距离。
这个方法比通用的DNADIST更好,因为这些距离不是存储在RAM(随机存储器)中,它们直接打印到一个文件。
而且,通过它可以忽略可能不感兴趣的“大的”距离。
这个命令将产生一个列格式的距离矩阵,这个矩阵与命令中的“列选项”相互兼容。
这个命令也能生成一个phylip格式的距离矩阵。
它有多个如何操纵gap比较和末端gap的选项。
这个命令将会生成一个phylip格式的距离矩阵,描述多个组的差异性。
这个命令将会计算任何一个描述群落成员或结构相似性的计算子(calculator)。
这个命令读取一个fastq文件,并创建一个fasta和quality文件。
从基于一个由用户定义标准的排列删除列。
例如,生成的与参照排列相对的排列经常有一些列的每一个字符是“.”或者“-”。
这些列不会包含用于计算距离,因为他们本身没有信息。
通过删除这些列,计算大量的距离这一过程就会加快。
同样,人们也喜欢用温和的或强制的屏蔽方式(比如Lane'mask)屏蔽他们的序列来移除可变区域。
这类屏蔽只在深层次系统进化分析时鼓励使用,而在精细水平的分析比如需要计算OTUs中不建议。
这个命令决定可变数目的样本中的OTUs的片段,为了不同的最小相关丰富度。
这个命令允许你找出mothur已经为每个类型保存为current的一些文件,你也可以清空current文件。
这个命令允许你为储存在内存中的多个样本的OTU数据获得一个已有的不同群组的目录。
这个特征应该在为其它命令使用group选项时有帮助。
这个命令从一个特定group或一套groups选择序列。
group来自以下文件类型:
fasta,name,group,list,taxonomy.
这个命令是你为当前储存在内存中的每行OTU数据获得一个标签的目录。
这个特征应该在为其他命令使用label选项时有帮助。
这个命令读取一个taxonomy文件和一个分类(taxon),并产生一个新的文件只包含有来自分类的序列。
你也许也会把一个fasta,name,group,list或者文件包括到这个命令中,mothur将会为那些只包含有选定序列的文件生成新的文件。
这个命令解析一个list文件并且为每一个包含两列的距离创建一个.otu文件。
第一列是OTU数目,第二列是那个OTU中的序列的列表(list)。
命令能为所有序列报告OTU号码(即编号),命令生成一个fasta格式的序列文件,为每个OTU只包含一个代表性序列。
为每个OTU的定义生成一个.和.文件。
这个命令选择出包含有来自一个特定group或一副groups的序列的OTUs.
这个命令将生成一个rabund文件,它基于你输入到mothur的OTU数据。
这个命令计算一个样本中的每个OTU的相对丰富度。
它将输出一个.relabund文件。
这个命令将产生一个sabund文件,基于你读入mothur的OTU数据。
例如,如果你读入一个list文件,将产生对应的sabund文件。
这个命令把一个序列名字的列表(list)和一个fasta,name,group,list或文件生成一个新的文件,只包含在list中出现的文件。
这个命令也许用于和命令结合以帮助显示一个序列结合。
这个命令取一个list和group文件并为每个距离输出一个*.文件。
这对于那些情况有用,即你或许对于确定特殊groups中特定的或共有的序列感兴趣。
这样接下来你就可以分类。
这些是mothurH-Z的目前所有命令的说明的翻译,第二部分。
(使用Ctrl+F搜索你所查命令)
参看页面上查阅的所有命令
我查了一下网上的中文教程,似乎没有。
现在国内使用Mothur的人还很少,不过国外有不少做生态的都用到mothur了。
毕竟有很多都是命令行操作。
前天我还搜到了一个印度人在网上发的询问帖子,想问哪里有关于mothur的简单教程呢,他说mothur官方网站的教程有点难,看不太懂。
今天这些命令里有三个可能会比较常用,一个是help,就类似于Linux中的man命令,也就是你在windows中常见的帮助文件。
还有两个,sffinfo和,在处理sff文件时会用上。
其中sffinfo就能将sff文件转化为fasta格式的文件,fasta是mothur处理的文件中最常见的格式。
由于最近我要处理一个sff文件,所以特别关注了与sff有关的命令,呵呵。
Hcluster
这个命令可以用来给OTUs分配序列,并输出一个.list,.rabund,.sabund和.文件。
它不会像cluster命令那样把距离矩阵(distancematrix)保存在RAM(随机存储器)中,允许大距离文件被处理。
Hcluster对小文件的处理比cluster要慢,但在大文件上更有竞争力。
目前,hcluster实行4种成簇方式:
1.最近相邻:
一个OTU内的每个序列与OTU中最相似的序列有最多X%的距离。
2.最远相邻:
一个OTU内的所有序列与OTU内的其它序列有最多X%的距离。
3.平均相邻:
这个方法介于其他两种方法之间的水平
4.重量相邻:
这个命令从一个*.list或*.shar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通量 数据处理 一些 经验 建议