The specification relates to a self-pipelining workflow management system. The system can receive a request to run a bioinformatics analysis and automatically create a workflow by accessing a knowledge structure. The knowledge structure can include a plurality of predicates describing computational relationships between at least one bioinformatics data file and at least two bioinformatics programs. The workflow contains a dynamic set of predicates specific to the request based upon initial input data, general request parameters and the knowledge structure. The workflow is initiated based on a first predicate of the dynamic set of predicates and after a new unprocessed input data is obtained, the dynamic set of predicates is updated. The workflow continues until no more predicates can be associated with the unprocessed input data or no more unprocessed data can be obtained.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method comprising the steps of: a) receiving a request to run a bioinformatics analysis, the request defining a source for initial input data and general request parameters; b) accessing a knowledge structure stored in a database, the knowledge structure including a plurality of predicates describing computational relationships between at least one bioinformatics data file and at least two bioinformatics programs; c) forming a dynamic set of predicates specific to the request based upon the initial input data, the general request parameters and the plurality of predicates of the knowledge structure; d) initiating at least one of the at least two bioinformatics programs based on a first predicate of the dynamic set of predicates, the initial input data being available at the time of execution for the at least one of the at least two bioinformatics programs; e) obtaining a new unprocessed input data from the at least one of the at least two bioinformatics programs; f) updating the dynamic set of predicates based upon the upon the new unprocessed input data, the general request parameters and the plurality of predicates of the knowledge structure; g) initiating at least one more of the at least two bioinformatics programs based on a predicate of the updated set of predicates, the new unprocessed input data being available at the time of execution for the at least one more of the at least two bioinformatics programs; and h) repeating the method from step e) until no more predicates can be associated with the unprocessed input data or no more unprocessed data can be obtained. 2. The method of claim 1 further comprising the steps of: obtaining a resultant for the bioinformatics analysis. 3. The method of claim 2 wherein the general request parameters includes a desired set of methods and available resources needed to obtain the resultant for the bioinformatics analysis. 4. The method of claim 3 further comprising the steps of: automatically deciding an order of execution for the dynamic set of predicates based upon the desired set of methods and the available resources defined in the general request parameters. 5. The method of claim 4 wherein the order of execution for the dynamic set of predicates can change dynamically during an execution process based on intermediate results. 6. The method of claim 4 further comprising the steps of: building a mapping table based upon the order of execution for the dynamic set of predicates needed to fulfill the request, the mapping table guiding starts and stops of the bioinformatics programs. 7. The method of claim 1 wherein the bioinformatics programs are started consecutively, in parallel or a combination of both. 8. The method of claim 5 wherein the execution process continues until the programs and data reaches a state of equilibrium. 9. A system comprising: one or more processors; one or more computer-readable storage mediums containing instructions configured to cause the one or more processors to perform operations including: a) receiving a request to run a bioinformatics analysis, the request defining a source for initial input data and general request parameters; b) accessing a knowledge structure stored in a database, the knowledge structure including a plurality of predicates describing computational relationships between at least one bioinformatics data file and at least two bioinformatics programs; c) forming a dynamic set of predicates specific to the request based upon the initial input data, the general request parameters and the plurality of predicates of the knowledge structure; d) initiating at least one of the at least two bioinformatics programs based on a first predicate of the dynamic set of predicates, the initial input data being available at the time of execution for the at least one of the at least two bioinformatics programs; e) obtaining a new unprocessed input data from the at least one of the at least two bioinformatics programs; f) updating the dynamic set of predicates based upon the upon the new unprocessed input data, the general request parameters and the plurality of predicates of the knowledge structure; g) initiating at least one more of the at least two bioinformatics programs based on a predicate of the updated set of predicates, the new unprocessed input data being available at the time of execution for the at least one more of the at least two bioinformatics programs; and h) repeating the method from step e) until no more predicates can be associated with the unprocessed input data or no more unprocessed data can be obtained. 10. The system of claim 9 further performing the operation of: obtaining a resultant for the bioinformatics analysis. 11. The system of claim 10 wherein the general request parameters includes a desired set of methods and available resources needed to obtain the resultant for the bioinformatics analysis. 12. The system of claim 11 further performing the operation of: automatically deciding an order of execution for the dynamic set of predicates based upon the desired set of methods and the available resources defined in the general request parameters. 13. The system of claim 12 wherein the order of execution for the dynamic set of predicates can change dynamically during an execution process based on intermediate results. 14. The system of claim 12 further performing the operation of: building a mapping table based upon the order of execution for the dynamic set of predicates needed to fulfill the request, the mapping table guiding starts and stops of the bioinformatics programs. 15. The system of claim 9 wherein the bioinformatics programs are started consecutively, in parallel or a combination of both. 16. The system of claim 13 wherein the execution process continues until the programs and data reaches a state of equilibrium. 17. A computer-program product, the product tangibly embodied in a machine-readable storage medium, including instructions configured to cause a data processing apparatus to: a) receive a request to run a bioinformatics analysis, the request defining a source for initial input data and general request parameters; b) access a knowledge structure stored in a database, the knowledge structure including a plurality of predicates describing computational relationships between at least one bioinformatics data file and at least two bioinformatics programs; c) form a dynamic set of predicates specific to the request based upon the initial input data, the general request parameters and the plurality of predicates of the knowledge structure; d) initiate at least one of the at least two bioinformatics programs based on a first predicate of the dynamic set of predicates, the initial input data being available at the time of execution for the at least one of the at least two bioinformatics programs; e) obtain a new unprocessed input data from the at least one of the at least two bioinformatics programs; f) update the dynamic set of predicates based upon the upon the new unprocessed input data, the general request parameters and the plurality of predicates of the knowledge structure; g) initiate at least one more of the at least two bioinformatics programs based on a predicate of the updated set of predicates, the new unprocessed input data being available at the time of execution for the at least one more of the at least two bioinformatics programs; and h) repeat the method from step e) until no more predicates can be associated with the unprocessed input data or no more unprocessed data can be obtained. 18. The product of claim 17 further including instructions configured to cause a data processing apparatus to: obtain a resultant for the bioinformatics analysis. 19. The product of claim 17 wherein the bioinformatics programs are started consecutively, in parallel or a combination of both. 20. The product of claim 17 wherein the execution continues until the programs and data reaches a state of equilibrium.