CN107408043A - 用于序列流水线中的智能工具的系统和方法 - Google Patents
用于序列流水线中的智能工具的系统和方法 Download PDFInfo
- Publication number
- CN107408043A CN107408043A CN201580068268.1A CN201580068268A CN107408043A CN 107408043 A CN107408043 A CN 107408043A CN 201580068268 A CN201580068268 A CN 201580068268A CN 107408043 A CN107408043 A CN 107408043A
- Authority
- CN
- China
- Prior art keywords
- streamline
- instrument
- change
- shelves
- wrapper script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B20/00—ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B20/00—ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
- G16B20/20—Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Software Systems (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Biophysics (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Genetics & Genomics (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Molecular Biology (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Stored Programmes (AREA)
- Computing Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及生物信息流水线以及在那些流水线中调用可执行档并且还识别对流水线有益的变更的包装器脚本。在流水线中的工具具有智能包装器,该智能包装器不仅可以使工具分析其所接收的序列数据,而且可以在情况允许时选择对流水线的变更。在某些方面,本发明提供了一种用于基因组分析的系统。该系统包括耦接至非暂时性存储器的处理器。该系统能够操作以向用户呈现组织到流水线中的多个基因组工具。工具中的至少第一工具包括可执行档和包装器脚本。该系统可以从用户处接收指令并接收序列数据——要求由流水线分析序列数据的指令——并使用包装器脚本选择对流水线的变更。
Description
相关申请的交叉引用
本申请要求2014年10月14日提交的序列号为62/063,545的美国临时专利申请的优先权和权益,其内容通过引用方式被纳入到本文中。
技术领域
本发明大体上涉及生物信息流水线(pipeline),并涉及在那些流水线中调用可执
行档(executables,可执行文件或可执行程序)并且还识别对流水线有益的变更的包装器
脚本。
背景技术
检查人的基因可以揭示人是否具有基因疾病,或者甚至他或她是否是疾病的潜在携带者,是否存在将疾病传递给他或她的孩子的风险。信息是可以通过DNA测序揭示的人的基因。被称为下一代测序(NGS)的DNA测序技术能够在不到一天并且不到$1000的情况下对整个人的基因组进行测序。参见Clark的Illumina announces landmark$1000humangenome sequencing,Wired,2014年1月15日。NGS仪器的输出通常包括许多短序列读出物(reads,片段),该短序列读出物必须拼接在一起并与已知的基因信息进行比较,以有意义地确定人的基因信息。
这种拼接和分析是重要的任务,并且存在进行各种拼接和分析工作的各个部分的不同计算机程序工具。存在提供如下图形用户接口(GUI)的计算机平台,研究员或医学专业人士可以使用该图形用户接口将基因组分析工具组装在对序列数据进行复杂分析任务的流水线中。参见例如Torri的Next generation sequence analysis and computationalgenomics using graphical pipeline workflows,Genes(Basel)3(3):545-75(2012)。然而,这些流水线编辑器要求用户已经掌握潜在工具的复杂性。如果用户想要将序列读出物按照一参照基因组进行比对(align,调整),例如,用户必须熟悉大量的比对工具,诸如MAQ、Burrows-Wheeler Aligner、SHRiMP、ZOOM、BFAST、MOSAIK、PERM、MUMmer、PROmer、BLAT、SOAP2、ELAND、RTG Investigator、Novoalign、Exonerate、Clustal Omega、ClustalW、ClustalX和FASTA,仅举几例。另外,用户必须对序列文件(如,VCF、FASTA、FASTQ、SAM、GenBank、Nexus、EMBL、GCG、SwissProt、PIR、phylip、msf、hennig86、jackknifer)有着深入的理解,并且知道哪个是哪个,在什么时间点一个需要被转换成另一个,以及什么格式是流水线内每个工具的默认输入和输出。由于所涉及的复杂性,在图形流水线编辑器内工作不能够解决组合和分析序列数据中的所有挑战。数据文件可能以错误的格式传递,导致程序引发错误并且中止流水线。在一些情况下,选择来做工作的工具不是好的选择,并且将不能有效地处理传递给它的数据或者——更糟的是——将会提供基本上错误的输出。例如,工具的选择、序列数据、由用户提供的指令以及用户的期望之间的不一致实际上可能导致流水线不提供正确的结果并且可能错过重要的变异。
发明内容
本发明提供了流水线,在该流水线中工具具有智能包装器,该智能包装器不仅可以使工具分析其接收的序列数据,而且可以在情况允许时选择对流水线的变更。例如,智能包装器可以检测输入数据和工具之间的不一致(如,错误的格式),并且可以使流水线在运行工具之前修复输入数据。替代地,智能包装器可以检测输入数据和工具之间的不一致,并且调用接受输入数据格式以实施分析的替代的第二工具。在另一实施例中,智能包装器可以检测到建议的分析要求一些额外资源,并且可以取得该资源(例如,可以取得包括用于各种调用的参照基因组的文件)。通过读取错误的消息并且做出适当的改正,智能包装器可以从流水线错误中恢复(例如,序列数据中包括“E”的DNA序列文件可能导致程序停止并且发出错误;智能包装器可以将“E”重新编码成“N”)。由于智能包装器能够处理来自工具的错误或者数据、工具以及指令之间的不一致,所以包括具有智能包装器的工具的流水线将会避免错误,并且运行完成以向用户提供正确的并且符合用户期望的分析结果。因此,序列拼接和分析将产生期望的结果并且会成功,这意味着基因序列分析可以广泛地在医学和研究中采用,并且用于解决科学和医学问题。
在某些方面,本发明提供了一种用于基因组分析的系统。该系统包括耦接至非暂时性存储器的处理器。该系统能够操作以向用户呈现组织到流水线中的多个基因组工具。工具中的至少第一工具包括可执行档和包装器脚本。该系统可以从用户处接收要求由流水线分析序列数据的指令并接收序列数据,并使用包装器脚本选择对流水线的变更。包装器脚本可以分析序列数据并且基于序列数据的特征来选择变更。对流水线的变更可以包括执行替代的可执行档而不是所述可执行档。包装器脚本可以响应于由工具中的一个产生的错误来选择所述变更。包装器脚本可以向用户推荐所述变更,并且允许用户接受该推荐。在一些实施方案中,包装器脚本还进行对流水线的变更。
在某些实施方案中,包装器脚本选择不用可执行档分析序列数据。包装器脚本可以推荐用户使用第二工具而不是工具中的所述第一工具。例如,可执行档可以包括序列比对程序,并且对流水线的变更包括替代的序列比对程序。
所选择的变更可以包括对额外资源的请求,并且包装器脚本可以提出该请求。所请求的额外资源可以包括使用系统用于:检索不由用户提供的并且不包括在序列数据中的数据文件;从URL检索数据;检索概率的矩阵;要求所述流水线中的第一工具根据所述序列数据生成辅助数据,该辅助数据待由所述流水线中的后一工具在所述后一工具分析所述序列数据时使用;请求额外的计算能力;请求额外的计算机处理器;请求一个或多个虚拟机器;以及请求额外的存储空间。
所述指令可以包括为参数确立一个值的至少一个标记,并且智能包装器通过改变标记以为参数确立不同的值来选择变更。包装器脚本可以向指令添加标记,该标记向可执行档发送参数,其中,参数控制可执行档如何分析序列数据。
在一些实施方案中,包装器脚本通过接收来自可执行档的错误、做出避免错误的调整并且重新运行可执行档来选择对流水线的变更。
包装器脚本可以用于检测在指令和可执行档之间、在指令和序列数据之间或者在序列数据和可执行档之间的不一致。包装器脚本可以使系统:向用户提示额外的数据;提示用户接受所选择的变更;向用户通知所选择的变更;或者采取其他行动。
本发明的某些方面提供了一种用于基因组分析的方法。该方法包括:使用包括处理器的计算机系统,该处理器耦接至存储器子系统,用于向用户呈现组织到流水线中的多个基因组工具(其中,工具中的至少第一工具包括可执行档和包装器脚本);接收来自用户的指令并接收序列数据,其中,指令要求由流水线分析序列数据;以及选择——使用包装器脚本——对流水线的变更。在一些实施方案中,对流水线的变更包括执行替代的可执行档而不是所述可执行档。可选地,包装器脚本还进行对流水线的变更。
在某些实施方案中,包装器脚本响应于由工具中的第一工具产生的错误来选择变更。包装器脚本可以向用户推荐变更,并且允许用户接受该推荐。可执行档可以包括序列比对程序,并且对流水线的变更可以包括替代的序列比对程序。在某些实施方案中,所选择的变更包括对额外资源的请求,并且包装器脚本提出该请求(例如,检索不由用户提供的并且不包括在序列数据中的数据文件;从URL检索数据;检索概率的矩阵;要求所述流水线中的第一工具根据所述序列数据生成辅助数据,该辅助数据待由所述流水线中的后一工具在所述后一工具分析所述序列数据时使用;请求额外的计算能力;请求额外的计算机处理器;请求一个或多个虚拟机器;或者请求额外的存储空间)。
在一些实施方案中,包装器脚本通过接收来自可执行档的错误、做出避免错误的调整并且重新运行可执行档来选择对流水线的变更。在某些实施方案中,指令包括为参数确立一个值的至少一个标记,并且智能包装器通过改变标记以为参数确立不同的值来选择变更。包装器脚本可以选择变更,该变更包括不用可执行档分析序列数据。包装器脚本可以检测例如在指令和可执行档之间的不一致、在指令和序列数据之间的不一致或者在序列数据和可执行档之间的不一致。选择变更可以包括推荐用户使用第二工具而不是工具中的第一工具。在一些实施方案中,包装器脚本向指令添加标记,该标记向可执行档发送参数,其中,该参数控制可执行档如何分析序列数据。包装器脚本可以使系统:向用户提示额外的数据;提示用户接受所选择的变更;向用户通知所选择的变更;或者它们的组合。在一些实施方案中,包装器脚本分析序列数据,并且基于序列数据的特征选择变更。
附图说明
图1示出了流水线编辑器。
图2示出了涉及流水线的工作流程的概略图。
图3图示了根据一些实施方案的系统。
图4描绘了包括包装器脚本的工具。
图5给出了由流水线编辑器呈现的显示。
图6示出了工具的包装器。
图7示出了使用智能包装器的图形表示。
图8示出了如何将工具加入流水线编辑器中。
图9示出了本发明的系统的功能组件。
图10示出了本发明的系统的操作。
图11示出了将SAM文件转换成FASTQ文件的流水线。
图12示出了用于差异表达分析的流水线。
图13示出了用于提供比对总结的流水线。
图14描绘了用于分开读出物比对的流水线。
具体实施方式
图1示出了根据一些实施方案的流水线编辑器101。流水线编辑器101可以以任何合适的形式来呈现,诸如专用计算机应用程序或者经由网络浏览器可访问的网站。通常,流水线编辑器101将会呈现工作区域,在该工作区域中用户可以看到并访问表示多个工具107a、107b……107n的图标。工具可以从侧边栏801被拖入编辑器101的工作空间,并且通过连接器501彼此连接。任何工具107n都可以包括包装器脚本233n和二进制可执行档401n。在某些实施方案中,可执行档401n将会是序列分析可执行档。包装器脚本233对提供给工具107的参数或输入、任何输入数据、相关联的可执行档401n、工具107在其中运行的环境或者由可执行档401n生成的错误进行评估并对其作出反应。本发明的一个新颖特征在于包装器脚本233可以识别、建议或实施对流水线113的变更。举例而言,变更可以是运行替代的可执行档401m,而不是由包装器脚本233n引起的可执行档401n。
工具107可以在流水线编辑器101内被表示为图标。通常,工具107将具有可以链接到另一工具107的一个或多个输入或输出的至少一个输入或输出。工具的输入和输出可以图形地被表示为附接至图标的小符号(小节,nodule)。可以将一组链接的工具称为流水线。流水线编辑器101的图形用户接口允许用户将经由其相应的输出和输入流来链接成对的可执行档,以限定流水线。
选择(如,点击)工具允许设置该工具的参数(参见图5)。所述参数随后在执行期间被包装器传递(参见如图10)。可以通过将工具的组合与表示从一个工具到另一个工具的数据流的连接器501连接来构建流水线113。图11至图14示出了各种样本流水线,其中,充当流水线的输入和输出的文件可以表示为节点,就像工具一样。输入文件经由连接器连接到所述输入文件充当输入的工具上的输入小节,并且输出文件连接到生成所述输出文件的工具上的输出小节。输入和输出节点可以表示单个文件,或者它们可以表示多维的数据结构,诸如文件列表、多个文件列表的列表、其他或者它们的组合。
在一些实施方案中,输入和输出文件由序列数据和相关联的元数据组成,包括文件类型(.bam、.fastq等)以及其他属性,诸如样本编号、创建的日期、作者、其他或者它们的组合。优选地,输入文件类型和维度将匹配被馈入的工具所要求的。在工具107包括序列分析可执行档的情况下,该序列分析可执行档通常会限定输入流和输出流(分别表示为对应的工具107的输入和输出点)。
图2示出了根据本发明的某些实施方式的涉及流水线113的工作流程的概略图。流水线模块809是运行流水线113的系统组件。流水线模块809通过运行包装器脚本233(可以由脚本诸如Python脚本提供)来执行工具107。包装器脚本233调用可执行档401,设置参数和输入(根据用户已经选择的、流水线中已经生成的在先工具、执行环境要求的、或者合理的默认值),设置输出文件路径,运行可执行档401并且传递任何引发的错误。
包装器脚本233不仅运行工具可执行档401,并且还返回工具的输出或错误。包装器脚本233可以建议流水线模块809做除了流水线113的设计、输入数据或用户的指令严格指示的之外的一些事情,以获得期望的结果。
在一些实施方案中,流水线模块809将默认自动遵循包装器脚本233的建议,但是如果包装器脚本233包括“提示”工作,那么流水线模块809则替代地将建议传递给用户,用于决定是否遵循该建议(这在其中来自包装器脚本233的建议可能更改所获的结果的情况下是重要的)。在一些情况下,包装器脚本233则可以替代地包括“通知”工作,该工作会向流水线模块809发出信号,让其继续并且遵循建议但是向用户发送向用户通知变更的警告消息。
包装器脚本233可以记载或记录对优化的流水线237作出的建议和任何变更,作为来自包装器脚本233的那些建议或变更的结果,该优化的流水线运行以确保再现性、允许调试、通知用户以及其他的这种功能。包装器脚本233可以实施各种功能,包括诸如提出替代的工作、请求额外的资源以及智能地从错误中恢复的这些广泛种类的功能。
由包装器脚本233提供的一种重要的功能包括提出替代的工作。包装器脚本233可以评估给予其的参数和输入,并向流水线模块809建议不同组的参数和输入或者甚至运行不同工具对于得到期望的结果来说将会是更好的(参见图10)。
代替返回输出或错误,包装器脚本233基本上返回“代替地运行这个(THIS)”,其中,“这个(THIS)”完整地描述包括工具、参数和输入的替代的工作。
包装器脚本233可提出替代的工作的原因包括:(i)输入数据、工具107、用户指令以及参数的一些组合将会导致错误;(ii)输入数据、工具107、用户指令以及参数的替代的组可能会更有效率地运行,节省用户时间或金钱(如,用户支付执行成本的情况下);(iii)所提供的参数和输入向用户强烈地建议了错误,因此按照命令运行工作将会是浪费(这就要求“通知”工作);以及(iv)从科学观点来看,输入数据、工具107、用户指令以及参数的替代的组将得到“更好”的结果(如,更准确的比对),而不需要显著的折衷(这对于“提示”工作来说将会是好的方式,因为用户应该会最终要求对实质的科学问题的解答)。
由包装器脚本233提议的替代的工作实际上可以是一组工作。例如,包装器脚本233可以建议系统“运行这个(一些其他)流水线”,或者“运行这个工具然后提取它的输出并将输出馈送到下一个工具”,或者“并行地运行这些工具(或者相同工具的多个实例)”。
包装器脚本233提供的功能中的一种重要分类包括请求额外的资源。包装器脚本233还可以评估工具107在其上运行的机器(如,Amazon EC2实例)上工具107具有的对该包装器脚本可用的资源,并且告诉流水线模块809工具107需要额外的资源来进行工作。所请求的资源可以包括执行环境的要素,诸如额外的计算能力或存储器。所请求的资源还可以包括通过URL指定的特定的文件/数据,该特定的文件/数据然后被保存到高速缓冲存储器中以在即使URL的形式改变的情况下也能确保再现性。
正如提议一替代的工作可以包括提议一组替代的工作,请求额外的资源可以是多步骤的过程。例如,包装器脚本233可以发出本质上表明“前往URL X处的数据库,输入这个SQL查询,并且向我提供输出”的指令。
包装器脚本233提供的功能中的一种重要分类包括智能地从错误中恢复。虽然本文描述的包装器脚本233功能中的一些在工具运行之前发生,但包装器脚本233也可以评估由工具引发的错误,并且建议避开该错误的替代的方案。所建议的替代的方案可以采用不同参数/工具/输入或额外资源的形式。
在一些实施方案中,流水线模块809请求AWS弹性云计算(EC2)实例(如,用以提供图10中的命令模块819)运行来自工具模块813中的工具、提取EC2服务并且保持一“池”可用实例的组件。流水线模块809基于包装器元数据决定需要何种实例,该元数据包括关于工具要求的资源(CPU、存储器、存储设备)的信息,有时候包括特定子工作的具体资源请求。在所描绘的实施方式中,流水线模块809使工具模块813执行单独的工具401。用户输入(如,以序列文件的形式)通过流水线113运行,其中包装器233读取输入、指令、元数据以及可执行档,并且控制通过流水线113的序列数据流。由于包装器233实际上可以对流水线113引起大幅变更(如,使可执行档401b运行而不运行401a),可以认为包装器233提供了有组织的优化流水线237,该优化流水线提供输出。
通常,智能包装器233与序列分析可执行档401一起包括在工具107中。当流水线113调用工具107n时,该工具107n的包装器脚本233n调用可执行档401n。序列分析可执行档可以包括,例如,GATK、Paup*、MrBayes等。任何这种可执行档401n都可以是编译的、二进制可执行档(如,能以/bin访问)。对应的包装器脚本233n通常包括用以执行可执行档401n的命令,并且可以包括用以管理输入或输出数据、设置标记、错误代码、记录、在后台中运行程序的信息或者本领域技术人员将理解的其他这种功能。包装器脚本可以以本领域已知的任何合适的语言创建,该语言包括例如bash、Perl、Python或者其他语言。图2示出了智能包装器233可以理解为从流水线113创造出优化流水线237。
如上所述,流水线通常指包括一个或多个单独步骤的生物信息工作流程。每个步骤(实施并且表示为流水线编辑器101内的工具107)通常包括将对基因数据进行的分析或处理。例如,分析项目可以始于获得多个序列读出物。流水线编辑器101可以提供工具,以对读出物进行质量控制,然后将读出物组装成重叠群(contigs)。然后可以通过第三工具将该重叠群与参照值诸如人类基因组(如,hg18)进行比较,以检测变异。原始序列读出物上使用的这三个工具——质量控制、组装以及与参照值比较——仅代表无数基因组流水线中的一种。基因组流水线在以下中均有讨论过:Dinov,2011,Applications of the pipelineenvironment for visual informatics and genomic computations,BMC Bioinf 12:304和Torri,2012,Next generation sequence analysis and computational genomicsusing graphical pipeline workflows,Genes(Basel)3:545,它们中每个的内容均通过引用方式纳入到本文中。
如图1中所表示的,每个步骤均被提供作为工具107。任何工具107均可以进行任何合适的分析,诸如,(如,FASTQ、BAM/SAM或VCF文件的)比对、变量调用、RNA拼接建模、质量控制、数据处理或者其他格式化或转换实用程序。流水线编辑器101将工具107表示为“应用(app,应用程序)”,并且允许用户将工具组装到流水线113中。
可以包括仅使用单个应用或工具的小的流水线。例如,编辑器101可以包括在任何环境中可以再使用以合并FASTQ文件的合并FASTQ流水线。可以创建包括多个工具之间的多个交互的复杂流水线(如,诸如使用BWA+GATK从单个样本调用变量的流水线),以存储和再现已公布的分析,使得之后的研究员可以复制对他们自己的数据的分析。使用流水线编辑器101,用户可以浏览存储的工具和流水线,以发现提供期望功能的感兴趣的已存储工具107。然后用户可以将感兴趣的工具107复制到项目中,然后照原样运行该工具,或者将其修改成适合于该项目。另外,用户可以从头开始建立新的分析。
本发明的实施方案可以包括服务器计算机系统,该服务器计算机系统提供流水线编辑器101以及计算资源,用于进行由流水线113表示的分析。计算执行和存储可以由系统的一个或多个服务器计算机、由附属云资源、由用户的本地计算机资源或者由它们的组合来提供。
图3图示了根据某些实施方案的系统201。系统201通常包括服务器计算机系统207,用以提供诸如访问一个或多个工具107的功能。用户可以通过使用本地计算机213访问流水线编辑器101和工具107。服务器207上的流水线模块可以启用流水线113调用的一系列工具107。然后工具模块可以启用由工具107调用的命令或程序代码。命令或程序代码可以通过处理服务器207的资源来执行。在某些实施方案中,处理是由附属云计算资源219提供的。另外,附属存储器223可以用于存储数据。
用户可以通过本地计算机213与流水线编辑器101交互。本地计算机213可以是笔记本电脑、台式机或者移动设备诸如平板电脑或智能手机。通常,本地计算机213是包括耦接至具有一个或多个输入/输出机构的处理器的存储器的计算机设备。本地计算机213与服务器207通信,该计算机通常为包括耦接至具有一个或多个输入/输出机构的处理器的存储器的计算机。这些计算设备可以可选地与附属资源219或附属存储器223通信,该附属资源或附属存储器中的每个均优选地使用并且至少包括具有耦接至处理器的存储器的计算机。
本领域技术人员将理解,如对于实施本发明的方法所需要的或最合适的,本发明的系统包括一个或多个计算机设备,该一个或多个计算机设备包括一个或多个处理器(如,中央处理单元(CPU)、图形处理单元(GPU)等)、计算机可读存储设备(如,主存储器、静态存储器等)或者它们的组合,它们经由总线彼此通信。计算机通常包括经由总线耦接至存储器的至少一个处理器和输入或输出设备。
处理器可以是本领域已知的任何合适的处理器,诸如由Intel(加利福尼亚州,圣克拉拉)出售的商标为XEON E7的处理器或者由AMD(加利福尼亚州,森尼韦尔)出售的商标为OPTERON 6200的处理器。
存储器优选地包括至少一个有形的、非暂时性介质,该介质能够存储:一组或多组指令,所述指令可执行以使系统执行本文所描述的功能(如,体现本文中的任何方法或功能的软件);数据(如,体现任何有形的物理对象,诸如,在患者的染色体中发现的基因序列);或者两者。虽然计算机-可读存储设备在示例性实施方案中可以是单个介质,但术语“计算机可读存储设备”应该理解为包括存储指令或数据的单个介质或多个介质(如,集中式或分布式数据库,和/或相关联的高速缓冲存储器和服务器)。术语“计算机可读存储设备”应相应地理解为包括但不限于固态存储器(如,用户身份模块(SIM)卡、安全数字卡(SD卡)、微SD卡或者固态驱动(SSD))、光学和磁性介质和任何其他有形的存储介质。
任何合适的服务均可以用于附属资源219或附属存储设备223,诸如,例如亚马逊网络服务。在一些实施方案中,附属存储设备223由亚马逊弹性块存储(Amazon EBS)快照提供,允许云资源219动态地用运行流水线113所需的数据加载Amazon EBS容量。云存储器223的使用允许研究员分析大量的数据组,或者其中数据组的大小大幅且不可预见地变化的数据组。因此,本发明的系统可以用于一次性分析例如成百的人类全基因组。
根据本发明的输入/输出设备可以包括视频显示单元(如,液晶显示器(LCD)或阴极射线管(CRT)监视器)、字母数字输入设备(如,键盘)、光标控制设备(如,鼠标或触控板)、盘驱动单元、信号生成设备(如,扬声器)、触摸屏、加速计、传声器、蜂窝射频天线以及网络接口设备,该网络接口设备可以是例如网络接口卡(NIC)、Wi-Fi卡,或者蜂窝调制解调器。
如图1中示出的,在流水线编辑器101中,各个工具(如,命令行工具)表示为图形编辑器中的图标。
图4描绘了示出表示为图标301的工具107。工具107包括包装器脚本233,所述包装器脚本233有能力调用可执行档401。图标301可以具有分别对应于可执行档401的输出和输入流水的一个或多个输出点307和一个或多个输入点315。在工具107包括底层序列分析可执行档的实施方案中,输入点315类似于可以送入的变元(argument)或数据,而输出点307表示命令的输出。图标301可以被显示具有标签311以帮助识别工具107。在一些实施方案中,选择或者单击工具107的图标301允许在流水线编辑器101内设置工具的参数。
当包括工具107的流水线113运行时,在流水线工作流程期间工具107待要被调用处,流水线模块809将调用包装器脚本233。在图4中示出的示例性实施方案中,脚本233是Python脚本,该脚本首先进行查看是否已经为变量ref分配了文件hg18的内容(为了示例的目的,此处以简化的伪代码示出)。如果还未向ref分配hg18,则脚本233退出并且告诉用户需要参照。在示出的实施例中,可执行档401是比对Mosaik比对器,该Mosaik比对器对着参照将读出物进行比对。用户已经设置包装器脚本233,要求将hg18作为Mosaik将使用的参照。因此,用户使用包装器脚本233来在事件——例如参照设置成hg19的事件——中将流水线113的运行中断。如果参照已经设置成hg18,那么包装器233发出使可执行档401运行的系统命令MosaikAligner比对。脚本233可以向Mosaik传递切换或标记以及数据。经由流水线编辑器101能够访问这种描述的功能。
图5给出了当工具107被选择时由流水线编辑器101呈现的显示。工具可以包括用于删除该工具或者获得与图标301相关联的更多信息的按钮。另外,用于运行工具的参数的列表可以用元素显示,诸如用于设置参数的勾选框或输入提示(如,类似于UNIX/LINUX命令中的切换或标记)。点击工具107允许在编辑器101内(如,在GI内)设置工具的参数。如下文中更详细讨论的,然后参数设置将通过工具模块传递到命令级模块。用户可以通过在输入点315和输出点307之间放置连接器来构建流水线113。
图6示出了在流水线113内包装器233b如何位于工具107b的下方。此处,流水线133包括将第一工具107a连接至第二工具107b的连接器501。连接器501表示从第一工具107a到第二工具107b的数据流(如,类似于在UNIX/LINUX文本命令中的流水(I)符号)。包装器233b评估工具107a的输出、来自用户的指令和标记(即,切换或参数)、与工具107b相关联的可执行档,并且可以对它们之间任何的不一致做出响应。例如,命令“bamtool合并”可以由包装器233b启用,以调用bamtool合并作为可执行档401b。包装器233b因此期望工具107a的输出是许多小的BAM文件。在给定的实例中,用户可以运行将使工具107a仅输出单个BAM文件的工作。在这种情况下,包装器233b可以检测在到工具107b的输入和对应的可执行档401b之间的不一致,并且包装器233b可以被预编程以在那些实际情况下直接跳过工具107b,无需进一步注释(或可选地给出通知)。
图7示出了使用智能包装器233以在即使用户的指令和输入数据之间存在不一致时还保持分析运行的图形表示。此处,流水线713包括作为工具107a的Mosaik,用户已设置流水线用以将hg18对着hg19进行比对。包装器脚本233a检测到用以将hg18对着hg19进行比对的用户指令与Mosaik的使用不一致,这预期会对着参照将许多短读出物进行比对。脚本233a识别出流水线713可以改变成包括MUMmer而不包括Mosaik。这可以通过任何合适的方式来完成。例如,脚本233a可以包括一个表或一系列“if…elseif…”的语句,这些语句基于输入的特性将输入分配到具体的比对器。脚本233a检查的输入的特性包括,例如,文件大小、扩展名、文件格式、输入文件的数量、元数据或者其他信息。在示出的实施例中,脚本233a可以认识到具有*.vcf扩展名的一组文件和一个基因组大小的文件适合于Mosaik。然而,脚本233a可以认识到基本上相等大小的两个文件不适合于通过Mosaik比对,而是适合于通过MUMmer比对。参见,如,Delcher等人,1999,Alignment of whole genomes,NucleicAcids Research 27(11):2369-2376。脚本233a认识到流水线713应该更新,使得流水线会将MUMmer作为可执行档401b来执行。在一些实施方案中,脚本233a将仅会做出该改变,并且MUMmer会对着hg19将hg18进行比对。值得注意的是,更新的流水线713将调用MUMmer作为工具107b,并且这可以调用脚本233b。
图8示出了工具107可以如何加入流水线编辑器101中以用于在编辑器内使用。在一些实施方案中,流水线编辑器101包括图8中以工作空间左侧的纵列示出的“应用列表”801,在该列表中列出了可用的工具。在一些实施方案中,可以将应用列表801上的应用拖出到它们将作为图标出现的工作空间中。用户可以作出拖拽手势以将任何工具(即,任何应用)加入到流水线编辑器101的工作空间中。
本文描述的系统可以在客户端/服务器架构中实施。替代地,本文描述的功能可以由仅在客户端计算机上运行(即,本地运行)的计算机程序应用提供。客户端计算机可以是笔记本电脑、台式计算机或者便携设备诸如平板电脑或智能手机、或者诸如与测序仪器相关联的专用计算硬件。例如,在一些实施方案中,本文所描述的功能由NGS测序系统的分析单元提供,访问根据本发明的实施方案的数据库,并且拼接来自NGS的序列读出物,以及通过直接连接至NGS系统的终端硬件(如,显示器、键盘以及鼠标)报告结果。在一些实施方案中,这种功能被提供作为“插件”或者序列拼接的功能组件以及报告软件,诸如,例如GS DeNovo Assembler,被称为Roche公司(康涅狄格州布兰福德)454Life Sciences的gsAssembler或者Newbler(NEW assemBLER)。Newbler被设计成拼接来自测序系统的读出物,诸如来自454Life Sciences的GS FLX+(如,在Kumar,S.等人,Genomics11:571(2010)和Margulies等人,Nature 437:376-380(2005)中所描述的)。在一些实施方案中,产品应用被提供作为序列分析系统诸如由Illumina有限公司(加利福尼亚州圣地亚哥)出售的HiSeq2500/1500系统或者Genome AnalyzerIIX系统中的功能(例如,作为可下载内容、升级或软件组件)。
图9示出了根据某些实施方案的系统201的功能组件。通常,用户将与设置在例如本地计算机213内的用户接口(UI)801交互。UI模块805可以在服务器系统207内运行,以向UI 801发送指令并且从UI 801接收输入。在服务器系统207内,UI模块805位于执行流水线113的流水线模块809的顶部。流水线模块809执行包装器脚本233。流水线模块809直接处理任务的安排和执行,同时对于分配的实例可以采用独立组件并且确保它们被有效使用。工具107的运行或执行由包装器脚本233进行(更多细节参见图10)。
优选地,UI模块801、流水线模块809以及工具模块813至少部分地由服务器系统207提供。在一些实施方案中,附属的云计算资源219有助于实现UI模块801、流水线模块809以及工具模块813中的一个或多个的功能。命令级模块819可以由本地计算机213、服务器系统207、云计算资源219或者它们的组合中的一个或多个提供。要注意的是,如图10中所描绘的,“>”符号不代表FASTA文件的信息行前缀,而是在此处代表UNIX提示,以表明假设命令模块819接收用于工具p、q、r、x、y以及z的命令,这些工具待用沿链条送到输入的输出来执行。
可以使用本领域已知的任何合适的语言来写计算机程序指令,包括例如Perl、BioPer、Python、C++、C#、JavaScript、Ruby on Rails、Groovy和Grails或者其他语言。程序代码可以是线性的、面向对象的或者它们的组合。优选地,本文描述的用于工具的程序指令被提供作为独特的模块,每个均具有限定的功能。示例性的语言、系统和开发环境包括Perl、C++、Python、Ruby on Rails、JAVA、Groovy、Grails、Visual Basic.NET。在本发明中有用的资源的概述呈现在Barnes(Ed.),Bioinformatics for Geneticists:ABioinformatics Primer for the Analysis of Genetic Data,Wiley,Chichester,WestSussex,England(2007)以及Dudley和Butte,A quick guide for developing effectivebioinformatics programming skills,PLoS Comput Biol 5(12):e1000589(2009)中。
在一些实施方案中,本发明的系统用Perl进行开发(如,可选地使用BioPerl)。Perl在Tisdall,Mastering Perl for Bioinformatics,O’Reilly&Associates有限公司,Sebastopol,CA,2003中讨论过。在一些实施方案中,工具107是使用BioPerl开发的,BioPerl是允许面向对象地开发生物信息学应用的Perl模块的集合。可以从综合Perl档案网(Comprehensive Perl Archive Network,CPAN)的网址下载BioPerl。还参见Dwyer,Genomic Perl,剑桥大学出版社(2003)和Zak,CGI/Perl,第一版,Thomson Learning(2002)。
在某些实施方案中,本发明的系统使用Java来开发,并且可选地使用由MatthewPocock和Thomas Down在1998年在EBI/Sanger开发的对象的BioJava集合(BioJavacollection of objects)来开发。Biojava提供了应用编程接口(API),并且在Holland等人,Biojava:an open-source framework for bioinformatics,Bioinformatics 24(18):2096-2097(2008)中讨论过。Java在Liang,Introduction to Java Programming,Comprehensive(第八版),Prentice Hall,Upper Saddle River,NJ(2011)和Poo等人,Object-Oriented Programming and Java,Springer Singapore,Singapore,322p.(2008)中讨论过。
本发明的系统可以使用Ruby编程语言和可选的BioRuby、Ruby on Rails或者它们的组合来开发。Ruby或BioRuby可以在Linux、Mac OS X和Windows以及与JRuby在Java虚拟机器上实施,并且支持面向对象的开发。参见Metz,Practical Object-Oriented Designin Ruby:An Agile Primer,Addison-Wesley(2012)和Goto等人,BioRuby:bioinformaticssoftware for the Ruby programming language,Bioinformatics 26(20):2617-2619(2010)。
本发明的系统和方法可以使用Groovy编程语言和网络开发框架Grails来开发。Grails是开源模型视图控制器(MVC)网络框架和开发平台,其提供域名类,该域名类通过视图携载用于显示的应用数据。Grails域名类可以生成底层数据库模式。Grails提供用于包括网络应用的应用程序的开发平台,以及数据库和被称为Grails对象关系映射(GORM)的对象关系映射框架。GORM可以将对象映射到关系数据库,并且代表这些对象之间的关系。GORM依靠Hibernate对象关系持续性框架来将复杂的域名类映射到关系数据库表格。Grails还包括Jetty web容器和服务器以及网页布局框架(SiteMesh)以创建web组件。Groovy和Grails在Judd等人,Beginning Groovy and Grails,Apress,Berkeley,CA,414p.(2008);Brown,The Definitive Guide to Grails,Apress,Berkeley,CA,618p.(2009)中讨论过。
图10示出了本发明的系统的组件的运行和相互关系。在某些实施方案中,流水线113存储在流水线模块809内。流水线113可以使用在本领域中已知的任何合适的语言或格式来表示。在一些实施方案中,使用JavaScript对象标记法(JSON)来描述和存储流水线。该流水线JSON对象包括描述节点(节点包括工具107以及输入点315和输出点307)的段和描述节点之间关系(即,连接501)的段。
流水线模块809实际上执行包装器脚本233,并且还可以是执行这些流水线113的组件。运行或执行包装器脚本233就是运行或执行工具107之物。
工具模块813管理关于组成流水线113的包装工具107的信息(诸如输入/输出和资源要求)。工具模块813存储包装器233。可执行档401本身可以包括一个或任何数量的命令(如,l、m、n……或p、q、r……或x、y、z……举例来说)。
UI模块805处理前端用户接口。这个模块可以在图形流水线编辑器101中将流水线模块809的工作流程图形地表示为流水线。UI模块还可以在图形编辑器101中将组成每个流水线113中节点的工具107表示为节点图标301,根据工具模块813中的信息生成输入点315和输出点307和工具参数。UI模块将在沿着编辑器101旁边的“应用”列表中列出其他的工具107,可以从该列表中拖动所述工具107并放入流水线编辑空间中作为节点图标301。
在某些实施方案中,除了在“应用”列表中列出工具107,UI模块805还将列出用户可以访问的其他流水线(分成“公共流水线”和“您的定制流水线”),从流水线模块809中得到此信息。
使用本文描述的系统,可以提供广泛种类的基因组分析流水线。通常,流水线将涉及分析基因序列数据。可以创建的多种流水线是开放的并且无限制的。在一些实施方案中,一个或多个流水线可以包括在系统201中作为用在流水线编辑器101中的工具。例如,某些基因组分析步骤可以是常规且通用的,因此有助于作为预制流水线提供。
为了说明可以使用系统201支持的可能分析的广度,并且为了引入可以被包括用于在本发明的系统内使用的几个示例性流水线,将讨论几个示例流水线。
图11示出了将序列比对图谱(SAM)文件或SAM(BAM)的二进制形式转换成FASTQ文件的相对简单的流水线1001。
图12示出了用于使用程序Cuffdiff进行差异表达分析的流水线1101。流水线1101可以发现样本群之间转录表达的显著不同。在流水线1101中,Cuffdiff接受来自包括一个或多个样本的任何数量组的读出物比对文件,它计算出同种型和基因水平的表达水平,并且它测试显著的表达差异。Cuffdiff输出可下载的文件集,该文件集能够作为可以研究的电子表格查看。该流水线还可以对CummeRbund支持的差异表达实验进行基本质量控制。最后,流水线1101可以根据Cuffdiff结果呈现交互可视化。这允许用户以交互式绘图的形式探索差异表达结果,输出基因组并生成公布质量图。
本发明的系统中包括的另一种分析可以提供比对总结。
图13示出了用于提供比对总结的流水线1201。流水线1201可以用于分析基因组和转录组实验的读出物比对的质量。流水线1201提供有用的统计以帮助判断比对的质量。流水线1201接受BAM形式的已比对的读出物和参照FASTA,所述已比对的读出物是对着所述参照FASTA被比对作为输入比对的,并且所述流水线提供具有信息的报告,诸如无法比对的读出物的比例以及通过质量检查的读出物的百分比。
图14描绘了用于分开读出物比对的流水线1301。流水线1301使用TopHat比对器将序列读出物映射到参照转录组并识别新的剪接点。TopHat比对器在Trapnell等人,TopHat:Discovering splice junctions with RNA-Seq.Bioinformatics 2009,25:1105-1111中讨论过,其通过引用方式被纳入本文。流水线1301适应最常见的实验设计。TopHat工具非常通用,流水线编辑器101允许研究员构建流水线以开发其许多功能。
利用本发明的系统可以创建或包括其他可能的流水线。例如,可以使用BWA和GATK为外显子组变体调用提供流水线。
使用BWA和GATK的外显子组变体调用流水线可以用于分析外显子组测序实验得出的数据。它复制了由Broad Institute和1000基因组项目使用的默认生物信息流水线。GATK在McKenna等人,2010,The Genome Analysis Toolkit:a MapReduce framework foranalyzing next-generation DNA sequencing data,Genome Res.20:1297-303和DePristo等人,2011,A framework for variation discovery and genotyping usingnext generation DNA sequencing data,Nature Genetics.43:491-498中讨论过,两者的内容通过引用方式纳入本文。外显子组变体调用流水线可用于对着参照基因组将序列读出物文件进行比对,并识别单核苷酸多态性(SNPs)和短插入和缺失(插入和缺失)。
可以包括在本发明的系统中的其他流水线示出了可以使用系统201进行的基因组分析的范围和多功能性。系统201可以包括下述流水线:使用FastQC工具评估原始测序读出物的质量;对着参照基因组将FASTQ测序读出物文件进行比对,并识别单核苷酸多态性(SNP);评估外显子组测序库构建的质量,并且还可选地计算和可视化覆盖率统计;分析由Ion Torrent测序机器产生的外显子组测序数据;将多个FASTQ文件合并成单个FASTQ文件;基于用于Ion Proton转录组数据的两步比对方法,从由Ion Proton生成的FASTQ文件中读取;其他;或本文所讨论的任何工具或流水线的任何组合。
本发明提供了用于创建工具并将工具集成到流水线编辑器中的系统和方法。可以使用任何合适的创建和集成工具的方法。在一些实施方案中,提供了软件开发工具包(SDK)。在某些实施方案中,本发明的系统包括Python SDK。SDK可以优化,以将工具直接包装、测试和集成到可升级应用中。该系统可以包括类似映射归约的框架,以允许并行处理本地不支持并行化的工具的集成。
应用程序可以在平台上发布,也可以为用户组私下部署以在其任务内进行部署。定制流水线可以在选定的用户组中保持私有。
本发明的系统可以包括用于安全和隐私的工具。系统201可以用于将数据视为私有的并视为用户或附属组的属性。可以将系统配置成使得在没有所有者的许可的情况下即使是系统管理员也无法访问数据。在某些实施方案中,流水线编辑器101的安全性由综合加密和认证框架提供,包括仅HTTPS的web访问、仅SSL数据传输、签名的URL数据访问、服务认证、TrueCrypt支持和仅SSL服务访问。
另外,本发明的系统可以设置成包括参照数据。系统内可以存储任何合适的基因组数据以供使用。示例包括:最新构建的人类基因组和其他流行模型生物体;来自dbSNP的到目前为止的参照SNPs;来自1000个基因组项目和Broad Institute的金标准的插入和缺失;来自Illumina、Agilent、Nimblegen和Ion Torrent的外显子组采集工具注释;转录注释;用于用流水线实验的小测试数据(如,对于新用户)。
在一些实施方案中,可以使参照数据在系统包括的数据库的环境中可用。可以使用任何合适的数据库结构,包括关系数据库、面向对象的数据库等。在一些实施方案中,参照数据被存储在关系数据库中,诸如“不仅SQL”(NoSQL)数据库中。在某些实施方案中,本发明的系统内包括图形数据库。
使用诸如NoSQL数据库的关系数据库允许在具有保真度的情况下对现实世界的信息进行建模,并且允许体现复杂性。
可以包括图形数据库诸如例如Neo4j以构建图形模型。带标签的节点(用于信息实体)经由直接的、类型化的关系进行连接。节点和关系二者都可以拥有任意属性(键值对)。不需要任何死板的模式,节点-标签和关系-类型均可以对任何数量和类型的元数据进行编码。图形可以导入到图形数据库中并从图形数据库中导出,并且图形中描绘的关系可以被视为数据库中的记录。这允许节点和它们之间的连接被实时确定路线和引用(即,关系数据库中的一些现有技术的多JOIN SQL查询与指数减速相关联)。
通过引用方式纳入
本公开内容通篇参考和引用了其他文件,诸如专利、专利申请、专利出版物、期刊、书籍、论文、网页内容。出于所有目的,所有这些文档的全部内容通过引用方式整体纳入到本文中。
等同物
根据本文档的全部内容,包括本文对科学和专利文献的参考,除了本文所示和所描述的之外,本发明的各种修改及其许多其他实施方案对于本领域技术人员将是明了的。本文的主题包含重要信息、例示和指导,这些重要信息、例示和指导可以适于在本发明的各种实施方案及其等同物中实践本发明。
Claims (40)
1.一种用于基因组分析的系统,所述系统包括:
耦接至存储器的处理器,所述处理器能够操作以使所述系统:
向用户呈现被组织到流水线中的多个基因组工具,其中,所述工具中的至少第一工具包括可执行档和包装器脚本;
从所述用户接收指令并接收序列数据,其中,所述指令要求通过所述流水线分析所述序列数据;以及
使用所述包装器脚本选择对所述流水线的变更。
2.根据权利要求1所述的系统,其中,对所述流水线的所述变更包括执行替代的可执行档而不是所述可执行档。
3.根据权利要求1所述的系统,其中,所述包装器脚本还进行对所述流水线的所述变更。
4.根据权利要求1所述的系统,其中,所述包装器脚本响应于由所述工具中的所述第一工具产生的错误来选择所述变更。
5.根据权利要求1所述的系统,其中,所述包装器脚本向所述用户推荐所述变更,并且允许所述用户接受所述推荐。
6.根据权利要求1所述的系统,其中,所述可执行档包括序列比对程序,并且对所述流水线的所述变更包括替代的序列比对程序。
7.根据权利要求1所述的系统,其中,所选择的变更包括对额外资源的请求,并且所述包装器脚本提出所述请求。
8.根据权利要求7所述的系统,其中,所述对额外资源的请求包括选自由以下组成的列表中之一:
检索不是由所述用户提供的并且不包括在所述序列数据中的数据文件;
从URL检索数据;
检索概率的矩阵;
要求所述流水线中的第一工具根据所述序列数据生成辅助数据,该辅助数据待由所述流水线中的后一工具在所述后一工具分析所述序列数据时使用;
请求额外的计算能力;
请求额外的计算机处理器;
请求一个或多个虚拟机器;以及
请求额外的存储空间。
9.根据权利要求1所述的系统,其中,所述包装器脚本通过以下来选择对所述流水线的所述变更:
接收来自所述可执行档的错误;
做出避免所述错误的调整;以及
重新运行所述可执行档。
10.根据权利要求1所述的系统,其中,所述指令包括为参数确立一个值的至少一个标记,并且智能包装器通过改变所述标记以对所述参数确定一不同值来选择所述变更。
11.根据权利要求1所述的系统,其中,所述包装器脚本选择一变更,该变更包括不用所述可执行档分析所述序列数据。
12.根据权利要求1所述的系统,其中,所述包装器脚本检测所述指令和所述可执行档之间的不一致。
13.根据权利要求1所述的系统,其中,所述包装器脚本检测所述指令和所述序列数据之间的不一致。
14.根据权利要求1所述的系统,其中,所述包装器脚本检测所述序列数据和所述可执行档之间的不一致。
15.根据权利要求1所述的系统,其中,选择所述变更包括推荐所述用户使用所述工具中的第二工具而不是所述第一工具。
16.根据权利要求1所述的系统,其中,所述包装器脚本向所述指令添加标记,所述标记向所述可执行档发送参数,其中,所述参数控制所述可执行档如何分析所述序列数据。
17.根据权利要求1所述的系统,其中,所述包装器脚本使所述系统向所述用户提示额外的数据。
18.根据权利要求1所述的系统,其中,所述包装器脚本使所述系统提示所述用户接受所选择的变更。
19.根据权利要求1所述的系统,其中,所述包装器脚本使所述系统向所述用户通知所选择的变更。
20.根据权利要求1所述的系统,其中,所述包装器脚本分析所述序列数据,并且基于所述序列数据的特征选择所述变更。
21.一种用于基因组分析的方法,所述方法包括使用包括耦接至存储器子系统的处理器的计算机系统来:
向用户呈现组织到流水线中的多个基因组工具,其中,所述工具中的至少第一工具包括可执行档和包装器脚本;
接收来自所述用户的指令并接收序列数据,其中,所述指令要求通过所述流水线分析所述序列数据;以及
使用所述包装器脚本选择对所述流水线的变更。
22.根据权利要求21所述的方法,其中,对所述流水线的所述变更包括执行替代的可执行档而不是所述可执行档。
23.根据权利要求21所述的方法,其中,所述包装器脚本还进行对所述流水线的所述变更。
24.根据权利要求21所述的方法,其中,所述包装器脚本响应于由所述工具中的所述第一工具产生的错误来选择所述变更。
25.根据权利要求21所述的方法,其中,所述包装器脚本向所述用户推荐所述变更,并且允许所述用户接受所述推荐。
26.根据权利要求21所述的方法,其中,所述可执行档包括序列比对程序,并且对所述流水线的所述变更包括替代的序列比对程序。
27.根据权利要求21所述的方法,其中,所选择的变更包括对额外资源的请求,并且所述包装器脚本提出所述请求。
28.根据权利要求27所述的方法,其中,所述对额外资源的请求包括选自由以下组成的列表中之一:检索不是由所述用户提供的并且不包括在所述序列数据中的数据文件;从URL检索数据;检索概率的矩阵;要求所述流水线中的第一工具根据所述序列数据生成辅助数据,该辅助数据待由所述流水线中的后一工具在所述后一工具分析所述序列数据时使用;请求额外的计算能力;请求额外的计算机处理器;请求一个或多个虚拟机器;以及请求额外的存储空间。
29.根据权利要求21所述的方法,其中,所述包装器脚本通过以下来选择对所述流水线的所述变更:接收来自所述可执行档的错误;做出避免所述错误的调整;以及重新运行所述可执行档。
30.根据权利要求21所述的方法,其中,所述指令包括为参数确立一个值的至少一个标记,并且所述智能包装器通过改变所述标记以对所述参数确定一不同值来选择所述变更。
31.根据权利要求21所述的方法,其中,所述包装器脚本选择一变更,该变更包括不用所述可执行档分析所述序列数据。
32.根据权利要求21所述的方法,其中,所述包装器脚本检测所述指令和所述可执行档之间的不一致。
33.根据权利要求21所述的方法,其中,所述包装器脚本检测所述指令和所述序列数据之间的不一致。
34.根据权利要求21所述的方法,其中,所述包装器脚本检测所述序列数据和所述可执行档之间的不一致。
35.根据权利要求21所述的方法,其中,选择所述变更包括推荐所述用户使用所述工具中的第二工具而不是所述第一工具。
36.根据权利要求21所述的方法,其中,所述包装器脚本向所述指令添加标记,所述标记向所述可执行档发送参数,其中,所述参数控制所述可执行档如何分析所述序列数据。
37.根据权利要求21所述的方法,其中,所述包装器脚本使所述系统向所述用户提示额外的数据。
38.根据权利要求21所述的方法,其中,所述包装器脚本使所述系统提示所述用户接受所选择的变更。
39.根据权利要求21所述的方法,其中,所述包装器脚本使所述系统向所述用户通知所选择的变更。
40.根据权利要求21所述的方法,其中,所述包装器脚本分析所述序列数据,并且基于所述序列数据的特征选择所述变更。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462063545P | 2014-10-14 | 2014-10-14 | |
US62/063,545 | 2014-10-14 | ||
PCT/US2015/054461 WO2016060910A1 (en) | 2014-10-14 | 2015-10-07 | Systems and methods for smart tools in sequence pipelines |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107408043A true CN107408043A (zh) | 2017-11-28 |
Family
ID=55655487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580068268.1A Pending CN107408043A (zh) | 2014-10-14 | 2015-10-07 | 用于序列流水线中的智能工具的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9558321B2 (zh) |
CN (1) | CN107408043A (zh) |
CA (1) | CA2964349C (zh) |
WO (1) | WO2016060910A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171013A (zh) * | 2017-12-19 | 2018-06-15 | 北京荣之联科技股份有限公司 | 一种可视化生物信息分析流程的调试方法及系统 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10672156B2 (en) | 2016-08-19 | 2020-06-02 | Seven Bridges Genomics Inc. | Systems and methods for processing computational workflows |
US10545792B2 (en) | 2016-09-12 | 2020-01-28 | Seven Bridges Genomics Inc. | Hashing data-processing steps in workflow environments |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11055135B2 (en) | 2017-06-02 | 2021-07-06 | Seven Bridges Genomics, Inc. | Systems and methods for scheduling jobs from computational workflows |
US10860618B2 (en) | 2017-09-25 | 2020-12-08 | Splunk Inc. | Low-latency streaming analytics |
US10678613B2 (en) | 2017-10-31 | 2020-06-09 | Seven Bridges Genomics Inc. | System and method for dynamic control of workflow execution |
US10997180B2 (en) | 2018-01-31 | 2021-05-04 | Splunk Inc. | Dynamic query processor for streaming and batch queries |
US11915797B2 (en) * | 2018-06-15 | 2024-02-27 | Grail, Llc | Methods for managing sequencing pileups |
US10866831B2 (en) | 2018-06-15 | 2020-12-15 | Sap Se | Distributed execution of data processing pipelines |
US10747506B2 (en) * | 2018-06-15 | 2020-08-18 | Sap Se | Customizing operator nodes for graphical representations of data processing pipelines |
US10733034B2 (en) | 2018-06-15 | 2020-08-04 | Sap Se | Trace messaging for distributed execution of data processing pipelines |
US10949219B2 (en) | 2018-06-15 | 2021-03-16 | Sap Se | Containerized runtime environments |
US11275485B2 (en) | 2018-06-15 | 2022-03-15 | Sap Se | Data processing pipeline engine |
US10740209B2 (en) * | 2018-08-20 | 2020-08-11 | International Business Machines Corporation | Tracking missing data using provenance traces and data simulation |
US10761813B1 (en) * | 2018-10-01 | 2020-09-01 | Splunk Inc. | Assisted visual programming for iterative publish-subscribe message processing system |
US10775976B1 (en) | 2018-10-01 | 2020-09-15 | Splunk Inc. | Visual previews for programming an iterative publish-subscribe message processing system |
US10936585B1 (en) | 2018-10-31 | 2021-03-02 | Splunk Inc. | Unified data processing across streaming and indexed data sets |
US11238048B1 (en) | 2019-07-16 | 2022-02-01 | Splunk Inc. | Guided creation interface for streaming data processing pipelines |
EP3792924A1 (en) * | 2019-09-12 | 2021-03-17 | Bluebee Holding B.V. | A system and method for bioinformatics data analysis by processing computational data analysis workflows |
US10769167B1 (en) * | 2019-12-20 | 2020-09-08 | Lifebit Biotech Limited | Federated computational analysis over distributed data |
US11614923B2 (en) | 2020-04-30 | 2023-03-28 | Splunk Inc. | Dual textual/graphical programming interfaces for streaming data processing pipelines |
US11636116B2 (en) | 2021-01-29 | 2023-04-25 | Splunk Inc. | User interface for customizing data streams |
US11687487B1 (en) | 2021-03-11 | 2023-06-27 | Splunk Inc. | Text files updates to an active processing pipeline |
US11663219B1 (en) | 2021-04-23 | 2023-05-30 | Splunk Inc. | Determining a set of parameter values for a processing pipeline |
CN115086296B (zh) * | 2022-05-27 | 2024-04-05 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
Family Cites Families (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583024A (en) | 1985-12-02 | 1996-12-10 | The Regents Of The University Of California | Recombinant expression of Coleoptera luciferase |
US5750341A (en) | 1995-04-17 | 1998-05-12 | Lynx Therapeutics, Inc. | DNA sequencing by parallel oligonucleotide extensions |
US5701256A (en) | 1995-05-31 | 1997-12-23 | Cold Spring Harbor Laboratory | Method and apparatus for biological sequence comparison |
GB9620209D0 (en) | 1996-09-27 | 1996-11-13 | Cemu Bioteknik Ab | Method of sequencing DNA |
US6054276A (en) | 1998-02-23 | 2000-04-25 | Macevicz; Stephen C. | DNA restriction site mapping |
US6787308B2 (en) | 1998-07-30 | 2004-09-07 | Solexa Ltd. | Arrayed biomolecules and their use in sequencing |
GB9901475D0 (en) | 1999-01-22 | 1999-03-17 | Pyrosequencing Ab | A method of DNA sequencing |
US6818395B1 (en) | 1999-06-28 | 2004-11-16 | California Institute Of Technology | Methods and apparatus for analyzing polynucleotide sequences |
EP1218543A2 (en) | 1999-09-29 | 2002-07-03 | Solexa Ltd. | Polynucleotide sequencing |
KR101054732B1 (ko) | 2000-07-18 | 2011-08-05 | 더 유나이티드 스테이츠 오브 아메리카 애즈 리프리젠티드 바이 더 세크레터리 오브 더 디파트먼트 오브 헬쓰 앤드 휴먼 써비시즈 | 생물학적 데이터의 숨겨진 패턴에 근거한 생물학적 상태의 식별 방법 |
NO20004869D0 (no) | 2000-09-28 | 2000-09-28 | Torbjoern Rognes | Metode for hurtig optimal lokal sekvensjustering ved bruk av parallell prosessering |
US20020133504A1 (en) * | 2000-10-27 | 2002-09-19 | Harry Vlahos | Integrating heterogeneous data and tools |
CA2440754A1 (en) | 2001-03-12 | 2002-09-19 | Stephen Quake | Methods and apparatus for analyzing polynucleotide sequences by asynchronous base extension |
US6890763B2 (en) | 2001-04-30 | 2005-05-10 | Syn X Pharma, Inc. | Biopolymer marker indicative of disease state having a molecular weight of 1350 daltons |
WO2003095978A2 (en) | 2002-05-09 | 2003-11-20 | Surromed, Inc. | Methods for time-alignment of liquid chromatography-mass spectrometry data |
US7225324B2 (en) | 2002-10-31 | 2007-05-29 | Src Computers, Inc. | Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions |
US8843356B2 (en) | 2002-12-27 | 2014-09-23 | Merck Sharp & Dohme Corp. | Computer systems and methods for associating genes with traits using cross species data |
US7575865B2 (en) | 2003-01-29 | 2009-08-18 | 454 Life Sciences Corporation | Methods of amplifying and sequencing nucleic acids |
WO2005042781A2 (en) | 2003-10-31 | 2005-05-12 | Agencourt Personal Genomics Corporation | Methods for producing a paired tag from a nucleic acid sequence and methods of use thereof |
US7169560B2 (en) | 2003-11-12 | 2007-01-30 | Helicos Biosciences Corporation | Short cycle methods for sequencing polynucleotides |
US20060195266A1 (en) | 2005-02-25 | 2006-08-31 | Yeatman Timothy J | Methods for predicting cancer outcome and gene signatures for use therein |
US8185367B2 (en) | 2004-04-30 | 2012-05-22 | Merck Sharp & Dohme Corp. | Systems and methods for reconstructing gene networks in segregating populations |
US20050282137A1 (en) * | 2004-06-19 | 2005-12-22 | Incogen, Inc. | System and method using visual or audio-visual programming for life science educational and research purposes |
US7642511B2 (en) | 2004-09-30 | 2010-01-05 | Ut-Battelle, Llc | Ultra high mass range mass spectrometer systems |
WO2007145612A1 (en) | 2005-06-06 | 2007-12-21 | 454 Life Sciences Corporation | Paired end sequencing |
US7329860B2 (en) | 2005-11-23 | 2008-02-12 | Illumina, Inc. | Confocal imaging methods and apparatus |
KR100722504B1 (ko) * | 2006-01-18 | 2007-05-29 | 학교법인 포항공과대학교 | 비선형 공정 계획 생성 방법 및 이를 이용한 인터넷 기반step-nc 시스템 |
GB2436564A (en) | 2006-03-31 | 2007-10-03 | Plant Bioscience Ltd | Prediction of heterosis and other traits by transcriptome analysis |
US7282337B1 (en) | 2006-04-14 | 2007-10-16 | Helicos Biosciences Corporation | Methods for increasing accuracy of nucleic acid sequencing |
US7754429B2 (en) | 2006-10-06 | 2010-07-13 | Illumina Cambridge Limited | Method for pair-wise sequencing a plurity of target polynucleotides |
EP4134667A1 (en) | 2006-12-14 | 2023-02-15 | Life Technologies Corporation | Apparatus for measuring analytes using fet arrays |
US8262900B2 (en) | 2006-12-14 | 2012-09-11 | Life Technologies Corporation | Methods and apparatus for measuring analytes using large scale FET arrays |
US8349167B2 (en) | 2006-12-14 | 2013-01-08 | Life Technologies Corporation | Methods and apparatus for detecting molecular interactions using FET arrays |
CA2676570C (en) | 2007-01-26 | 2016-05-03 | Illumina, Inc. | Nucleic acid sequencing system and method |
US8146099B2 (en) | 2007-09-27 | 2012-03-27 | Microsoft Corporation | Service-oriented pipeline based architecture |
US20090119313A1 (en) | 2007-11-02 | 2009-05-07 | Ioactive Inc. | Determining structure of binary data using alignment algorithms |
US20100010992A1 (en) | 2008-07-10 | 2010-01-14 | Morris Robert P | Methods And Systems For Resolving A Location Information To A Network Identifier |
KR100992169B1 (ko) * | 2008-07-25 | 2010-11-04 | 한국생명공학연구원 | 정보 분석프로세스 추천 설계시스템 및 방법 |
US20100035252A1 (en) | 2008-08-08 | 2010-02-11 | Ion Torrent Systems Incorporated | Methods for sequencing individual nucleic acids under tension |
US20120040851A1 (en) | 2008-09-19 | 2012-02-16 | Immune Disease Institute, Inc. | miRNA TARGETS |
US20100301398A1 (en) | 2009-05-29 | 2010-12-02 | Ion Torrent Systems Incorporated | Methods and apparatus for measuring analytes |
US8546128B2 (en) | 2008-10-22 | 2013-10-01 | Life Technologies Corporation | Fluidics system for sequential delivery of reagents |
US20100137143A1 (en) | 2008-10-22 | 2010-06-03 | Ion Torrent Systems Incorporated | Methods and apparatus for measuring analytes |
US8691510B2 (en) | 2008-11-07 | 2014-04-08 | Sequenta, Inc. | Sequence analysis of complex amplicons |
WO2010059235A2 (en) | 2008-11-20 | 2010-05-27 | Pacific Biosciences Of California, Inc. | Algorithms for sequence determination |
WO2010075570A2 (en) | 2008-12-24 | 2010-07-01 | New York University | Methods, computer-accessible medium, and systems for score-driven whole-genome shotgun sequence assemble |
US8673627B2 (en) | 2009-05-29 | 2014-03-18 | Life Technologies Corporation | Apparatus and methods for performing electrochemical reactions |
US8574835B2 (en) | 2009-05-29 | 2013-11-05 | Life Technologies Corporation | Scaffolded nucleic acid polymer particles and methods of making and using |
US9524369B2 (en) | 2009-06-15 | 2016-12-20 | Complete Genomics, Inc. | Processing and analysis of complex nucleic acid sequence data |
WO2011050341A1 (en) | 2009-10-22 | 2011-04-28 | National Center For Genome Resources | Methods and systems for medical sequencing analysis |
EP2524330A4 (en) | 2010-01-14 | 2015-07-08 | Fluor Tech Corp | SYSTEMS AND METHODS FOR 3D PLANT MODELING |
US9165109B2 (en) | 2010-02-24 | 2015-10-20 | Pacific Biosciences Of California, Inc. | Sequence assembly and consensus sequence determination |
US20120030566A1 (en) | 2010-07-28 | 2012-02-02 | Victor B Michael | System with touch-based selection of data items |
FR2964482B1 (fr) * | 2010-09-02 | 2012-09-28 | Commissariat Energie Atomique | Procede de test en ligne des etages de pipeline temporairement non utilises et son dispositif associe |
EP3572528A1 (en) | 2010-09-24 | 2019-11-27 | The Board of Trustees of the Leland Stanford Junior University | Direct capture, amplification and sequencing of target dna using immobilized primers |
EP2666115A1 (en) | 2011-01-19 | 2013-11-27 | Koninklijke Philips N.V. | Method for processing genomic data |
US20120239706A1 (en) | 2011-03-18 | 2012-09-20 | Los Alamos National Security, Llc | Computer-facilitated parallel information alignment and analysis |
CN107368705B (zh) | 2011-04-14 | 2021-07-13 | 完整基因有限公司 | 分析生物体的基因组dna的方法和计算机系统 |
US9506167B2 (en) | 2011-07-29 | 2016-11-29 | Ginkgo Bioworks, Inc. | Methods and systems for cell state quantification |
KR101282798B1 (ko) * | 2011-09-08 | 2013-07-04 | 한국과학기술정보연구원 | 생명 정보 분석 파이프라인 처리 시스템 및 방법 |
WO2013035904A1 (ko) | 2011-09-08 | 2013-03-14 | 한국과학기술정보연구원 | 생명 정보 분석 파이프라인 처리 시스템 및 방법 |
WO2013043909A1 (en) | 2011-09-20 | 2013-03-28 | Life Technologies Corporation | Systems and methods for identifying sequence variation |
US9047133B2 (en) * | 2012-03-02 | 2015-06-02 | Vmware, Inc. | Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment |
US9552458B2 (en) | 2012-03-16 | 2017-01-24 | The Research Institute At Nationwide Children's Hospital | Comprehensive analysis pipeline for discovery of human genetic variation |
US8209130B1 (en) | 2012-04-04 | 2012-06-26 | Good Start Genetics, Inc. | Sequence assembly |
US20130345066A1 (en) | 2012-05-09 | 2013-12-26 | Life Technologies Corporation | Systems and methods for identifying sequence variation |
CN105190656B (zh) | 2013-01-17 | 2018-01-16 | 佩索纳里斯公司 | 用于遗传分析的方法和系统 |
US10032195B2 (en) | 2013-03-13 | 2018-07-24 | Airline Tariff Publishing Company | System, method and computer program product for providing a fare analytic engine |
US9087007B2 (en) * | 2013-03-14 | 2015-07-21 | International Business Machines Corporation | Generating fault tolerant connectivity API |
US9477779B2 (en) | 2013-03-15 | 2016-10-25 | Neo Technology, Inc. | Graph database devices and methods for partitioning graphs |
US9189224B2 (en) * | 2013-07-11 | 2015-11-17 | Oracle International Corporation | Forming an upgrade recommendation in a cloud computing environment |
US9116866B2 (en) | 2013-08-21 | 2015-08-25 | Seven Bridges Genomics Inc. | Methods and systems for detecting sequence variants |
US20150066383A1 (en) * | 2013-09-03 | 2015-03-05 | Seven Bridges Genomics Inc. | Collapsible modular genomic pipeline |
US9063914B2 (en) | 2013-10-21 | 2015-06-23 | Seven Bridges Genomics Inc. | Systems and methods for transcriptome analysis |
-
2015
- 2015-10-07 WO PCT/US2015/054461 patent/WO2016060910A1/en active Application Filing
- 2015-10-07 CA CA2964349A patent/CA2964349C/en active Active
- 2015-10-07 US US14/877,378 patent/US9558321B2/en active Active
- 2015-10-07 CN CN201580068268.1A patent/CN107408043A/zh active Pending
-
2016
- 2016-12-16 US US15/381,492 patent/US10083064B2/en active Active - Reinstated
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171013A (zh) * | 2017-12-19 | 2018-06-15 | 北京荣之联科技股份有限公司 | 一种可视化生物信息分析流程的调试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US9558321B2 (en) | 2017-01-31 |
US20170199764A1 (en) | 2017-07-13 |
WO2016060910A1 (en) | 2016-04-21 |
US10083064B2 (en) | 2018-09-25 |
CA2964349A1 (en) | 2016-04-21 |
US20160103659A1 (en) | 2016-04-14 |
CA2964349C (en) | 2023-03-21 |
Similar Documents
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171128 |