DNA Melting: Using the Matlab DNAMelter GUI

From Course Wiki
Jump to: navigation, search
20.309: Biological Instrumentation and Measurement

ImageBar 774.jpg


The Matlab DNA Melting GUI ("Graphical User Interface") is called DNAMelter.m and is located in the CourseMaterials/Labs/DNAMelting. You may make a copy in your directory of choice, double click that copy to open the code in Matlab, then run the code via the Run button.


On the left side of the window, DNAMelter displays the current sample block temperature. Also shown are the temperature sensor circuit parameters used to compute the actual temperature. Note: it is important to set the Vref and Rpullup parameters each time DNAMelter is run, so that the temperature is computed accurately. (Remember you are attempting to determine the melting temperature of a DNA sample.) Vref is the actual voltage supplied either by the reference or +15V supply, and Rpullup is the "pull-up" resistor in the temperature sensor circuit. Rt0 is the thermistor resistance at 0 C (1000 ohms) and alphaT is the thermistor temperature coefficient (3.85 ohm/degree). Rt0 and alphaT should not be changed unless a different type of sensor is used.

DNAMelter graphs the fluorescence voltage signal as well as temperature data in multiple plots. DNAMelter acquires the temperature and fluorescence signals at 1000 Hz every 0.1 seconds (100 data points). The fluorescence signal and spectrum are displayed in the two left-hand graphs. Florescence voltage and temperature (averaged over the 100 points every 0.1 seconds) versus time are plotted in the upper right-hand graph. Florescence voltage versus temperature are plotted in the lower right-hand graph.

Before starting a run, use the "Clear Data" button to clear out data accumulated from setting up or a previous run.

At the end of a run, use the "Save Data" button to save to a file. The data will be tab-delimited and can be read into Matlab with the load command.

Troubleshooting: If Matlab gives you a data acquisition error, for example, "NO DATA ACQUISITION DEVICE FOUND!", open the Measurement and Automation Explorer ("MAX"), open the Devices and Interfaces drop-down on the left side, and make sure there is only one "NI USB-6xxx" entry and that it is called "Dev1." If it is not, or there is more than one device listed, physically disconnect the USB cable from your DAQ, then delete all "NI USB-6xxx" entries, then reconnect your DAQ, then verify that one entry reappears and that it is called "Dev1." Try to run the DNAMelter program again, and/or close it, re-open it, and run it again. If this does not work, consult a TA or Instructor.


DNAMelter may be run in the Matlab command window or in another script as


or with optional Matlab-style 'Name', Value pairs which can be used to pre-set parameters in the GUI


The following options may be set:

Option name Description Default
'rate' Data acquisition rate 1000 Hz
'duration' Data acquisition time 0.1 seconds
'Vref' Temperature circuit reference voltage 15 V
'Rpu' Temperature circuit pullup resistor 15000 ohms
'Rt0' Temperature sensor R at T=0 1000 ohms
'alphaT' Temperature sensor coefficient 3.850 ohms/degree
'CalculateTemperatureFcn' User function to calculate temperature See below.
'taskbarHeight' Height of Windows taskbar for sizing window 40 pixels



Starts the GUI with Rpullup set to 14860 and Vref set to 14.96.

'CalculateTemperatureFcn' may be used to specify an external function to calculate temperature if a special temperature sensor or circuit is used that cannot be accommodated by the standard conversion. The function takes two arguments, a struct and a voltage, and returns temperature. The struct contains the standard sensor parameters as well as any others specified in the command line. The standard temperature function is equivalent to

@(params,V) (params.Rpu*V/(params.Vref - V) - params.Rt0)/params.alphaT