In this tutorial, I will show you how to create a simple ELISA protocol using the VWorks software.
This video assumes that you already know how to create a device file in the VWorks software. If you do not have this background, please view the Device File video first
before continuing. You can also learn about device files and writing basic protocols in the VWorks Automation Control User Guide.
Before I start creating the protocol in the VWorks software, I like to outline what my protocol will do.
In my protocol, I have a number of assay plates that need to be processed.
Ultimately, I want to add a sample, antibody, and substrate to the assay plates. Then, I want to read the plates. The detailed process will be as follows:
Each assay plate will enter the system and go through a wash process at the BioTek Washer device.
Sample from a sample plate will be dispensed into the assay plate at the Vertical Pipettor.
The assay plate will incubate at the MicroMix device, and then move to the BioTek Washer for washing.
Antibody will be added to the entire assay plate at the FlexDrop device, from bottle A.
The assay plate will incubate at the MicroMix device, and then return to the BioTek Washer for a round of washing.
Next, substrate will be added to the entire assay plate at the FlexDrop device, from bottle B.
The assay plate will incubate at room temperature in the PlateHub Carousel,
and then return to the FlexDrop device so that the stop solution can be added from bottle C to the entire plate.
Finally, the assay plate will move to the Multiskan Ascent reader to be scanned.
So that’s the overall goal of the protocol. But I also have to consider other details. For the protocol, I need assay plates, sample plates, and fresh pipette tips.
All of these will be stored in the Plate Hub Carousel. During the protocol run, the robot will go get, or unload, the plates or tipboxes from the carousel.
After each plate is finished, it will return to its original storage location in the Plate Hub Carousel.
The assay and sample plates are lidded. So I need some way to delid them before they are processed, and relid them after they are processed.
I will use a Lid Hotel Station for these plates.
The tipboxes are also lidded, but I don’t need to relid them, so I will use a Vacuum Delid Station for that job.
Lastly, if I want to track the plates so that I know which ones are processed, I can use a platepad with a barcode reader.
In this video, I will not go into barcode reader setup and usage. To learn how to set up barcode readers and use them in protocols, see the Barcode-Reader Setup video.
Together with the devices I listed in my protocol outline, I now know all of the devices I need for the protocol.
So I can create a new device file with all of the necessary devices, or use an existing device file and make sure that all of the devices I need are contained in the file.
For this example, I already have the right device file, so I can proceed to create my protocol.
To create a new protocol, I'm going to go to the File menu and select New, and then select Protocol. A new protocol file tab appears.
The first thing I want to do is make sure the correct device file is associated with this protocol. So I'll click Protocol Options and check the device file path.
Note that whenever you create a new protocol, the protocol is automatically associated with the device file that is open.
But it’s good practice to always check the device-file association.
In the Protocol File area, there are different panes labeled Startup Protocol, Main Protocol, and Cleanup Protocol.
I can use the Startup Protocol and Cleanup Protocol to run processes before and after the Main Protocol, respectively. For my protocol, I want to prime the lines in the FlexDrop
device and run a program on the BioTek Washer device before starting the main protocol.
So in the Startup Protocol, I'll click Add Process, and add the Prime (FlexDrop) and Run Program (BioTek Washer) tasks.
Similarly, after the main protocol is finished, I want to run a program on the washer and purge liquid from the FlexDrop device.
So in the Cleanup Protocol, I'll click Add Process, and then add the Run Program (BioTek Washer) and Purge (FlexDrop) tasks.
Notice that for each task, I can set parameters to specify what the task should do. For example, for the Purge task, I want the purge action to occur for bottles A and B.
In addition, I want to discard the purged liquid to waste. So I'll make that selection for bottles A and B.
While I’m here, I’ll briefly go over a couple of features that exist for many protocol tasks in the Startup, Main, and Cleanup Protocols.
Below the Task Parameters, I can click Device Selection to select the device I want to use for the task.
In this case, I only have one FlexDrop device, so it is selected for me. The Device Selection is more applicable in cases where you have multiple devices of the same type.
Below Device Selection, I can click Advanced Settings to add JavaScript to modify or enhance the existing capabilities of a task.
For this protocol, I will use the existing features so I will not add JavaScript in any task.
For detailed information about task parameters, device selection, or VWorks JavaScript, see the VWorks Automation Control User Guide.
Let’s go to the Main Protocol and start to create the main body of the protocol.
On the left is the list of tasks that are available for use in my protocol. The tasks that are available are based on the devices I have in my device file.
In the middle area, in the Main Protocol, I can add a process or configure labware.
The differences are explained in detail the VWorks Automation Control User Guide, but very briefly:
A process is a sequence of tasks that will be performed on a group of labware.
In my example, the assay plates, the sample plates, and the tipboxes are three different labware groups, and each has multiple instances in my protocol.
They will all enter and exit the system during the protocol run.
Configured labware represents labware that starts within the system, on a device, and will remain in the system.
The labware has only a single instance throughout the protocol, and is used over and over.
As I mentioned, the assay plates, sample plates, and tipboxes are three labware groups that will be processed in the protocol, so I will go ahead and add three processes.
The first process is for the assay plates. So I'll click the process - 1 icon in the protocol file, and then go to the Plate identity area. For the Plate name, I'll type ASSAY.
In the Plate type list, I'll select the type of labware it is.
I'm going to select the Plates have lids option to indicate that this labware has lids. For now, I’ll leave the other properties as they are.
Next, I'm going to do the same for the sample plate. I'll click the process -2 icon, then set the properties for the sample plate, which also has lids.
And one more time for the tipboxes, also with lids.
Now I can add tasks to the processes. I refer back to my protocol outline and see that the first thing I want to do is move the assay plate, sample plate,
and tipbox out of the Plate Hub Carousel and into the system. So I need the Unload task. I'll go to the Available Tasks area, look for the Unload task (in this case, I'll
type the letter u here to get me to the first task that starts with the letter u), find Unload, and drag it into each plate process.
After adding the Unload tasks, I need to set the task parameters to specify where the different plates are in the carousel.
In this example, my assay plates are in cassette 1. So I'll select the Unload task in the Assay Plate process, go to the Task Parameters area and select cassette 1.
Sample plates will be unloaded from cassette 2.
And the tipboxes will unload from cassette 12.
Next, my outline shows that the assay plate has to go to the BioTek Washer device for a wash process. So I'll add the Run Program (BioTek Washer) task to the Assay Plate process.
I'll select the desired BioTek Washer in the Device Selection area. I only have one BioTek Washer, so that’s the one that will be used.
Back in the Task Parameters area, I can’t select a program to use, because I’m currently in software simulation mode. After I connect the computer to the system, the selection of
programs will appear here and I can go ahead and make my selection.
After the wash process, I can add the sample from the sample plate to the assay plate. This will occur in the Vertical Pipettor.
So I'll add the Subprocess task for the Vertical Pipetting Station to the Assay Plate process.
Because the sample plate is also involved in this step, I will copy the Subprocess task and paste it in the Sample Plate process.
Alternatively, you can drag the Subprocess task from the Available Tasks area and drop it in the Sample Plate process.
Now I’ll go ahead and add the necessary tasks within the Subprocess.
The first thing I want to do is load pipette tips onto the pipettor. So I'll add the Tips On task.
To load the tips, I need the tips in the tipboxes, so I’ll go ahead and copy and paste the Subprocess in the Tipbox process.
After the tips are on, I can mix the sample. So I'll add the Mix task in the Sample Plate process.
Notice that when I add the Mix task in the Sample Plate process, the same task also appears in the other processes.
That is, it doesn’t matter in which process I add the task, because it will appear in all of the processes that are involved in the Vertical Pipettor Subprocess.
So I'll add the next task, the Aspirate task, in the Assay Plate process, even though it should go in the Sample Plate process. It appears in the Sample Plate process anyway.
I’ll go ahead and add the rest of the tasks in the subprocess:
After aspirating from the sample plate, I want to dispense the sample into the assay plate. Then the tips can be removed.
So I’ve just added the tasks, but now let’s go back and set the task parameters for each.
The Tips On task will use the tips in the tipbox, the Mix and Aspirate tasks will happen at the SAMPLE plate, the Dispense task will happen at the ASSAY plate.
And the tips will be removed in the tipbox.
For each task, there are a lot of other parameters that I can set. For example, for the Mix task, I can set the Pre-aspirate volume.
For my protocol, I will use the default settings. However, you can set these parameters to meet your application needs.
For the description of the task parameters, see the VWorks Automation Control User Guide.
After the sample is added, I want to incubate the assay plate. So I'll add the Incubate (DPC MicroMix) task in the Assay Plate process, outside of the Subprocess.
I want to incubate the plate for about 15 minutes, so in the Task Parameters area, I'll set the Duration to 900 seconds, which is the equivalent of 15 minutes.
After the incubation is finished, the assay plate needs to go through another wash process. So I'll add the Run Program (BioTek Washer) task.
Now I’m ready to add the antibody, which will happen at the FlexDrop device.
I'll add the Dispense (FlexDrop) task in the Assay Plate process.
Remember from our protocol outline that the antibody is in bottle A. So in the Task Parameters area, next to Bottle A volume, type the volume to dispense from bottle A.
Then I'll click the Bottle A columns field. A browse button appears so that I can select the wells to dispense into. I'll click the button.
In the Well Selection dialog box, I can specify the wells in which I want to dispense the antibody.
I'll right-click one of the wells and choose Select all wells, because I want to add the antibody to the entire plate. I'll click Ok to return to the protocol.
Back in the Task Parameters area, notice that all 48 columns of the plate are selected.
Next, the assay plate will be incubated at the MicroMix device. So I'll add the Incubate (DPC MicroMix) task in the Assay Plate process.
And again, the plate will incubate for 900 seconds, or 15 minutes.
After incubation, the plate has to go through another wash process.
Now, let’s add the substrate, which will be dispensed from Bottle B at the FlexDrop device.
I'll add the Dispense (FlexDrop) task, I type the volume for Bottle B, click the browse button, and right-click to select all wells.
After the substrate is added, the assay plate has to incubate at room temperature. This means using the Storage Incubate task to move the plate to the Plate Hub Carousel.
And again, I have to specify the cassette to use for the task. I’ll go ahead and select cassette 3, because I know it’s empty.
I will set the incubation duration to 15 minutes and 10 seconds.
When incubation is finished, I'll dispense the stop solution at the FlexDrop device, from Bottle C. Again, the solution will be dispensed into the entire plate.
And finally, the plate will move to the Multiskan Ascent Reader.
I need to select the filter for the reader, but once again, I won’t be able to do that until the computer is connected to the system.
After the plate is read, it will return to the Plate Hub Carousel. So I’ll add the Load task in the Assay Plate process.
I have the option of returning them to a different cassette, or returning them to their original storage locations, which is what I want to do.
And we’re done with our assay plate.
Of course, the sample plates need to be put away as well. So I’ll need to add a Load task in the Sample Plate process.
Again, I have the option of returning the plates to their original locations, which is what I want to do.
Remember that the assay plates and sample plates have lids, as indicated by these Plates have lids selections. And the lids must be removed when they enter the system.
So I’ll go ahead and add a Delid task right after they are unloaded.
In this case, I need to select the device I want to use, because there are two delidding devices in the system. The Lid Hotel Station handles the plate lids and can be used for
relidding. The Vacuum Delid Station handles tipboxes. I’ll go ahead and select the Lid Hotel Station for the Assay Plate.
And I will copy the Delid task and paste it in the Sample Plate process, because it also needs to be delidded.
Before the assay plates are incubated, they’ll need to be relidded. So I’ll add a Relid task immediately after the Vertical Pipetting Station Subprocess.
I’ll add a pair of Delid and Relid tasks before and after every set of wash and dispense tasks…
And I’ll go ahead and add a Relid task here in the Sample Plate process.
Remember we also need to remove the lid from the tipboxes. So I'll add the Delid task here. But this time, I am going to select the Vacuum Delid Station.
And with that, the protocol is complete!
Let’s go back to the Assay Plate process and take a look at a property in the Plate identity area.
The Simultaneous plates property is currently set at the default value of 1. This means that only one assay plate will be allowed in the system during the run.
So the first assay plate enters the system from storage, gets processed, and returns to storage.
Only after it is returned to storage will the next assay plate be allowed to be unloaded and processed.
Because there are incubation tasks in the protocol, it is likely that devices will sit idle while the single plate is in incubation. Ideally, I want to bring in more plates into
the system for processing to optimize the use of resources in the system and increase throughput. But bringing in too many plates can result in a traffic jam, or deadlock, at
some point. So I need to figure out the ideal value to enter here.
For the time being, let’s keep the Simultaneous plates value at 1 and check that I’ve written the protocol correctly first.
I am going to Compile this protocol. The compile process checks for logic errors and conflicts in labware classes and devices.
In this case, there are five errors, all having to do with the fact that I did not select the BioTek Washer programs to use.
This is OK for now, because the software permits me to simulate the program with these errors.
I see that there aren’t any other errors, so I’ll go ahead and run the protocol in simulation mode for one plate, just to make sure everything is working.
I’ll run the simulation one time. And if this succeeds, I can go ahead and increase the Simultaneous plates number.
This simulation was successful. So now I can start building on it.
Let’s go ahead and try 10 simultaneous plates, then gradually increase this number to the number of devices in the system.
In general, the system must be able to accommodate the number that you allow in the system. In my case, I have a washer, a Vertical Pipettor with several shelves, and a
MicroMix incubator with 20 slots, so I can probably accommodate more than 10 plates.
But it’s a good idea to start with 10 and gradually increase the value to see what the system can realistically accommodate.
Another useful feature I can take advantage of in my protocol is the time constraint feature.
Let’s say I want the assay plates read within 16 minutes after the substrate is added.
What I'll do is right-click the first task that is involved, which is the substrate dispense task, and click Add time constraint.
When the Select Task for Time Constraints dialog box opens, I'll select the second task that is involved. In my case, it is the Multiskan Ascent Read task.
So I'll click that task in the protocol. Then I'll click Next in the dialog box, which brings up the Edit Time Constraints dialog box.
Here, I can set the length of time. In this case, I’m going to set the time to 16 minutes, and the plus-minus time to half a minute. I'll click OK.
And now in the protocol, I can see clock icons on the tasks that are being constrained and an arc above all the tasks that must happen within the time I specified,
which is 16 minutes.
After making modifications to a protocol, as I have done just now, be sure to compile and run the protocol in simulation mode.
Then, perform a dry run on the system to make sure everything is fine before running the protocol with real plates.