Knight:Colony PCR protocol - source code

From OpenWetWare
Jump to navigationJump to search
#include "BioCoder.h"
#define X 60

void main()
{

	start_protocol("Knight - Colony PCR");

	Fluid supermix = new_fluid("PCR supermix");
	Fluid vf2 = new_fluid("VF2", "40 µM");
	Fluid vr = new_fluid("VR", "40 µM");
	Fluid colony = new_fluid("colony template");

	Container rxn_tube = new_container(RXN_TUBE);

	// Reaction mixture
	//
	//1X Reaction
	//
	//    * 9 μL PCR supermix
	//    * 0.25 μL 40μM VF2
	//    * 0.25 μL 40μM VR
	//    * 0.5 μL colony template 
	//
	first_step("Reaction Mixture");
	Fluid fluid_array[4] = {supermix, vf2, vr, colony};
	Volume* volumes[4] = {vol(9, UL), vol(0.25, UL), vol(0.25, UL), vol(0.5, UL)};
	char* tube[1] = {"Colony PCR"};
	mixing_table(2, 5, fluid_array, tube, volumes, vol(10, UL), rxn_tube);

	//PCR conditions
	//
	//   1. 95°C for 15 mins
	//   2. 94°C for 30 secs
	//   3. 56°C for 30 secs
	//   4. 68°C for 1 min per kb of expected product
	//          * I typically round up for this step. i.e. For a 3.6kb construct, I used a 4 min elongation time. It seems to help to be a bit generous with the elongation time. 
	//   5. Repeat 2-4 39 times.
	//   6. 68°C for 20 mins
	//   7. 4°C forever 
	//
	next_step("PCR conditions");
	pcr_init_denat(rxn_tube, 95, time(15, MINS));
	thermocycler(rxn_tube, 39, 94, time(30, SECS), 56, time(30, SECS), 68, time(X, SECS), NORMAL);
	comment("Elongation time : 1 min per kb of expected product. I typically round up for this step. i.e. For a 3.6kb construct, I used a 4 min elongation time. It seems to help to be a bit generous with the elongation time.");
	pcr_final_ext(rxn_tube, 60, time(20, MINS), 4);

	//Run a gel to determine amplification product length. 
	next_step();
	name_sample(rxn_tube, "PCR products");
	electrophoresis(rxn_tube);

	end_protocol();
}