Spawn Process
Description
The Spawn Process task () is used to initiate another process within the same protocol. For example, to reduce evaporation, you can use Process Control task to deliver a certain labware into the system only when they are ready to be processed. You can also use the Process Control task with JavaScript code to use operator-supplied information to initiate a new process or funnel incoming labware into a different process depending on the barcode.
 
Task is available for...
Task is available in...
Any device
Main Protocol
When to use Spawn Process instead of Process Control 
The Spawn Process task provides a simple way to initiate another process in the same protocol. Use the task if you want to initiate only one or two processes in the protocol, and the spawning of the processes do not depend on varying run-time conditions.
If you want to initiate multiple processes depending on changing run-time conditions, use the Process Control task instead. See Process Control.
Task parameters 
After adding the Spawn Process task at the desired point in the protocol, set the following parameters in the Task Parameters area:
 
 
Parameter
Description
Process to spawn
The process that starts to run when the current process reaches the Spawn Process task.
Select from the list of processes.
Spawn as subroutine
The option to run the spawned process as a subroutine (or subprocess) of the current process.
*If the spawned subprocess specifies a different labware type, the software ignores the labware specification.
Select the option if you want the software to start the spawned process when the Spawn Process task is reached, and continue the current process after the spawned process is finished.
Clear the check box if the two processes can run in parallel when the current process reaches the Spawn Process task. In this case, the task will use the Spawn parameter property if it is specified.
Spawn parameter
The option to enter a string, used by a script, to identify which process spawned a given spawned process.
For example, suppose that process A and process B both contain a Spawn Process task that spawns process C. Process C has a script that behaves differently depending on whether the process is spawned by process A or B. If the Spawn Process task in process A has a blank Spawn parameter, but the Spawn Process task in process B has a Spawn parameter set to B, the script in process C could distinguish between the two as follows:
if (plate.spawnParameter == "B")
{
// Process B spawned this process
}
else
{
// Process A spawned this process
}
The Spawn parameter property can be set to a scripted value or set in the task's script.
Example 1 
Goal
Replicate Source Plate on the Bravo Platform. Deliver the Diluent Plate from the BenchCel Microplate Handler into the system only when the Destination Plate is ready for dilution.
Implementation
The Bravo Platform and BenchCel Microplate Handler in the example are configured as follows:
The replication process will occur on the Bravo Platform.
The Source Plate, Destination Plate, and Diluent Plate will be stored in different stacks in the BenchCel Microplate Handler. At the end of the process, the microplates are stored in an empty stack in the BenchCel Microplate Handler.
When writing the protocol:
Add a process for the Source Plate as shown. In the Source Plate process, add a Bravo Subprocess (renamed Replication in the example) that aspirates contents from the Source Plate and dispenses into the Destination Plate.
Add a process for the Destination Plate as shown. In the Destination Plate process, add two Bravo Subprocesses:
The first subprocess (renamed Replication in the example) reflects the movement of contents from the Source Plate and into the Destination Plate. This is a copy of the tasks in the Source Plate process.
The second subprocess (renamed Dilution in the example) aspirates contents from the Diluent Plate and dispenses into the Destination Plate.
Add a process for the Diluent Plate as shown. In the Diluent Plate process, add a subprocess (renamed Diluent in the example) that reflects the movement of contents from the Diluent Plate into the Destination Plate. This is a copy of the tasks in the Diluent subprocess in the Destination Plate process.
Add a configured labware for the Tip Box as shown.
In the Destination Plate process, add a Spawn Process task between the Replication subprocess and the Dilution subprocess. Doing so holds the Diluent Plate in the BenchCel stack until the Replication subprocess is finished and the Destination Plate is ready to receive the diluent.
 
Example 2 
Goal
The same goal as Example 1, except:
Ask the operator to specify the number of replications.
Control the spawning of the Source Plate and Destination Plate processes based on the operator input.
Implementation
The Bravo Platform and the BenchCel Microplate Handler are configured as described in Example 1. Set up the Source Plate, Destination Plate, and Diluent Plate processes as described in Example 1.
Add a new process called Control at the top of the Main Protocol as shown. Add the following tasks in the Control process:
User Message. Asks the operator to specify the number of replications.
Spawn Process. Starts the Source Plate process. In addition, provide JavaScript code in the Advanced Settings area to incorporate the input from the operator during the run. For example, if the operator specified two replications, the JavaScript code should use that value to produce two replications during the run.
Spawn Process. Starts the Destination Plate process. Provide JavaScript code in the Advanced Settings area to incorporate the input from the operator during the run.
 
Related information
 
For information about...
See...
Adding devices
Device user guide
Adding tasks in a protocol
Task parameter variables
Using JavaScript
Liquid-handling tasks
Microplate-handling tasks
Microplate-storage tasks