The MATLAB function
BasicMelter located in the MATLAB directory runs the Basic DNA Melting GUI ("Graphical User Interface"). Type
BasicMelter in MATALB to start the GUI.
On the left side of the window, BasicMelter 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 BasicMelter 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, which you should measure with your multimeter. Rpullup is the "pull-up" resistor in the temperature sensor circuit (nominally 15kΩ, but you should measure the actual value with your multimeter before putting it into the cirsuit). 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.
BasicMelter graphs the fluorescence voltage signal as well as temperature data in multiple plots. BasicMelter 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 data accumulated from setting up or a previous run.
Use the "Open file ..." button to start saving data to a file. Data will be continuously saved to the file, including all data after the "Clear" button was pressed. (If you press the Clear button while a file is open, only the plot is cleared, but all data is still saved.) At the end of the run, Close the file, so that no more data is saved.
The data will be tab-delimited and can be read into Matlab with the
load command. The data will be in 3 columns of time, temperature, and fluorescence signal.
Troubleshooting: If BasicMelter gives you a data acquisition error, for example, "
Data acquisition cannot start!", it may be the DAQ device is not working. Try physically disconnecting the USB cable from the DAQ box and then reconnecting it. The X-series devices (blue and silver boxes) have on/off switches: make sure it is on or toggle the power off and on. If that fails, 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." Try to run the BasicMelter program again, and/or close MATLAB, re-open it, and run BasicMelter again. If this does not work, consult a TA or Instructor.
BasicMelter 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
|| Data acquisition rate
|| 1000 Hz
|| Data acquisition time
|| 0.1 seconds
|| Temperature circuit reference voltage
|| 15 V
|| Temperature circuit pullup resistor
|| 15000 ohms
|| Temperature sensor R at T=0
|| 1000 ohms
|| Temperature sensor coefficient
|| 3.850 ohms/degree
|| User function to calculate temperature
|| See below.
|| 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