Thermocycling Helper Functions

melt_curve

autoprotocol_utilities.thermocycle_helpers.melt_curve(start=65, end=95, inc=0.5, rate=5)[source]

Generate a melt curve on the fly

No inputs neded for a standard melt curve.

Example Usage:

from autoprotocol import Protocol
from autoprotocol_utilities import melt_curve
protocol = Protocol()

dest_plate = protocol.ref("plate", None, "96-pcr", discard=True,
                          storage=None)
protocol.seal(dest_plate)
melt_params = melt_curve()
protocol.thermocycle(dest_plate,
                     [{"cycles": 1,
                       "steps": [
                           {"temperature": "37:celsius",
                           "duration": "60:minute"}
                           ]
                       }
                      ],
                     volume="15:microliter",
                     dataref="data",
                     dyes={"SYBR":
                     dest_plate.wells_from(0, 3).indices()},
                     **melt_params)

Returns:

{
  "refs": {
    "plate": {
      "new": "96-pcr",
      "discard": true
    }
  },
  "instructions": [
    {
      "object": "plate",
      "type": "ultra-clear",
      "op": "seal"
    },
    {
      "dataref": "data",
      "melting": {
        "start": "65.00:celsius",
        "rate": "5.00:second",
        "end": "95.00:celsius",
        "increment": "0.50:celsius"
      },
      "object": "plate",
      "volume": "15:microliter",
      "groups": [
        {
          "cycles": 1,
          "steps": [
            {
              "duration": "60:minute",
              "temperature": "37:celsius"
            }
          ]
        }
      ],
      "dyes": {
        "SYBR": [
          "A1",
          "A2",
          "A3"
        ]
      },
      "op": "thermocycle"
    }
  ]
}
Parameters:
  • start (int, float) – Temperature to start at
  • end (int, float) – Temperature to end at
  • inc (int, float) – Temperature increment during the melt_curve
  • rate (int) – After x seconds the temperature is incremented by inc
Returns:

melt_params – containing melt_params

Return type:

dict

Raises:

ValueError – If start, end or inc are not of type float or int. And if rate is not of type int

thermocycle_ramp

autoprotocol_utilities.thermocycle_helpers.thermocycle_ramp(start_temp, end_temp, total_duration, step_duration)[source]

Create a ramp instruction for the thermocyler.

Create a multi-temperature thermocycling program commonly used in annealing protocols. Based on total time and the step duration this function computes the temperature increment required for each step within the start and the end temperature.

Example Usage:

thermocycle_group = [
  {
      "cycles": 1,
      "steps": thermocycle_ramp(65, 95, "30:minute", "1:minute")
  }
]
protocol.thermocycle(dest_plate,
                     groups=thermocycle_group,
                     volume="15:microliter")
Parameters:
  • start_temp (string, int, float, Unit) – Start of the thermocycle protocol, in the format “37:celsius”
  • end_temp (string, int, float, Unit) – End of the thermocycle protocol, in the format “37:celsius”
  • total_duration (string, Unit) – Total duration of the thermocycle protocol, in the format “1:hour”
  • step_duration (string, Unit) – Time that each temperature should be held, in the format “1:minute”
Returns:

containing thermocycling steps that can be used in the thermocycle instruction

Return type:

dict

Raises:

ValueError – If either temperature is not of type int, float, string or Unit and if either duration is not of type string or Unit