Detailed code infoXML command reference Python set up

MultiTask Documentation

    The Nano-Plotter programming environment enables the capability of engineering very sophisticated liquid handling automation. However, what comes with this practically limitless potential is somewhat of a thorough knowledge of the Pascal programming language which can be a bit intimidating especially for those who have little to no programming expertise. Even for those who have programming knowledge, it can be mundane having to script extensively in order to do basic robotic routines.

    MultiTask was written to simplify the operation of this instrument. This is a type of transfer list Nano-Plotter program that uses an XML syntax format. A transfer list program involves uploading a text file into the spotting program that includes commands that are interperated and translated into specific robotic functions. XML is a markup language that contains structured information that makes it possible to continually build sophisticated commands without having to do to extensive reprogramming. As a result, with the current MultiTask environment, one can integrate diverse spotting routines within one standard program.

    General Operation:

    In order to run a MultiTask program, you need to prepare a transfer list. Displayed is an example of a typical transferlist structure:


DEFAULT PARAMETERS
<DAF>0.2</DAF><DAV>4.5</DAV><DADT>1</DADT><DADDT>0</DADDT><DADBDT>0.1</DADBDT>
<DAPZ>true</DAPZ><DAPZV>100</DAPZV><DAPZP>50</DAPZP><DAPZF>100</DAPZF>
<DSDT>4</DSDT><DSCHC>5</DSCHC><DSBTDT>0.1</DSBTDT><DSCV>25</DSCV>
<DZOFF>0.75</DZOFF><DZMOFF>5</DZMOFF>
<DWDT>15</DWDT><DDT>0.1</DDT><DEWV>0</DEWV><DEWF>0.5</DEWF><DEPZ>false</DEPZ><DEWW>extrawash</DEWW>
TIP DISPENSING PARAMETERS
<V>106,72,75,58,70,75</V><L>45,50,50,50,50,50</L><F>136,100,100,100,100,100</F><D>20,20,20,20,20,20</D>
ASPIRATION COMMAND
<P>MTP_Sys</P><A>1</A><G>1</G><TL>1,1,1,1,1,1</TL><SR>1</SR><SC>1</SC>
DISPENSING COMMAND
<D>1</D><G>1</G><TL>1,1,1,1,0,1</TL><B>1</B><A>4</A><ST>1</ST><ADP>4</ADP><XOFF>15</XOFF><YOFF>14</YOFF>
<D>2</D><G>1</G><TL>1,1,1,1,1,1</TL><B>1</B><A>4</A><ST>1</ST><ADP>4</ADP><XOFF>7</XOFF><YOFF>14</YOFF>


After running this transferlist, three separate files get generated and are saved in a time stamped directory that is located in the Workplate file directory in the NPC path.
  • Track file - tracks the Nano-Plotter motion during run time
  • Stroboscope data file - lists the stroboscope statistical data regarrding the droplet profile. This directory also contains the raw stroboscope .tif images
  • Correction file - contains any repair commands that may need to be run if certain samples have failed the stroboscope test.

Current list of available XML commands and more detail about how the code works is documented here.


    Examples

    Tip check program
      This is a technique you can used to verify that the nozzles are dispensing stably which is important to ensure against misspotting problems. The Strobcheck function can be used to calculate the droplet statistics. Specifically the y droplet position from the measuring point is the key variable to analyze. Normally you need the y droplet position to not deviate more then 2 to 7% depending on the application.

      Here is an example of a transferlist that calculates the performance of 4 nozzles dispensing from one set of wells 7 times:

      After running the program, you need to analyze the strob output file which involves being comfortable with analyzing XML data. For facilitate this process, attached is a python script that generates a report, posted is an example. (Note: right now this script only works with MultiTask version 020609. Efforts are underway to make this operate with the latest version. It will be operating in conjuction with the annotation (AT) tag).

      Note: If you wanted to change the nozzle parameters in run time you could include before every aspiration command:

      <V>100,98,80,110</V>

    Dispensing on array positions
      Generally speaking there are two approaches to dispensing on targets when working with the Nano-Plotter, the first being dispensing on points defined by an array or collection of spots within a target and the second which involves dispensing on coordinate x,y positions which can be absolute or relative to an absolute position. Most commonly when spotting microarrays, the first scenario is employed. In this programming environment, this is disguished using the <ST> command where ST=1 and ST=3 are absolute positioning schemes and ST=2 uses array positions.

      One nice feature of MultiTask is that you can programming spotting zig zag patterns by indicating using the target column and block column coordinates what direction you want to go. Here is an example:

    Absolute positioning
      In this case, ST can be set to 1 or 3. Within these settings, you have multiple ways to do spotting: advanced dispense programming (ADP) array, ADP line, spotting on the fly (SOF) and direct position normal speed. When ST=1, 1 or a series of multiple target groups identified by <G> can be selected. It will only spot on one target within the target group though. If you want to spot on multiple targets within a target group, then you need to use ST=3.

    Sequential mode spotting and controlling tips
      One (of many) reasons why MultiTask was developed was to use one standard .npl program that can be utilized for multiple functions. This is because mostly that its very difficult to support diverse applications with disparate snippets of code whereby the customer (having relatively limited experience) is working with typically unoptimized programs that in turn may produce inadequate or flawed spotting runs. So having a program that can do both simultaneous (where all the tips are dispensing at the same time) and sequential (where tips dispense one after the other) was a must have when this was begin written.

       © HTS Resources