Cluster job overview » History » Revision 2
Revision 1 (Amber Herold, 07/21/2014 11:16 AM) → Revision 2/4 (Amber Herold, 07/21/2014 11:28 AM)
h1. Cluster job overview From the user perspective, a refinement job includes 3 parts: # Preparation step ** prepares any data that is needed for the method to be run ** includes modifying a selected stack to be in any required format # Run step ** User selects which cluster they would like to run the job on ** The job file is built and submitted to a queue # Upload step ** Results are converted to a format that Appion accepts ** Converted results are uploaded to the Appion Database From a programming perspective, the following pieces of code need to be written: # GUI prep step launch form - see the [[Refinement GUI tutorial|Refine_Refactor_documentation]] # Python prep step run script # GUI run step launch form - see the [[Refinement GUI tutorial|Refine_Refactor_documentation]] # Python run step run script # GUI upload step launch form - see the [[Refinement GUI tutorial|Refine_Refactor_documentation]] # Python upload step run script # GUI results viewing page Many of these pieces use the [[Object_Oriented_Programming|object-oriented programming]] feature of inheritance to create base classes that take care of common functions. To add a new cluster job to the Appion Pipeline, you will need to have a basic grasp of [[Object_Oriented_Programming|object-oriented programming]]. This design is used to reduce the amount of copied and pasted repeated code which is error prone, fragile, and difficult to maintain. It can also reduce the learning curve for adding new packages to Appion if the base classes are well defined and easy to read examples are provided.