123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791 |
- function varargout = clamp(varargin)
- % CLAMP MATLAB code for clamp.fig
- % CLAMP, by itself, creates a new CLAMP or raises the existing
- % singleton*.
- %
- % H = CLAMP returns the handle to a new CLAMP or the handle to
- % the existing singleton*.
- %
- % CLAMP('CALLBACK',hObject,eventData,handles,...) calls the local
- % function named CALLBACK in CLAMP.M with the given input arguments.
- %
- % CLAMP('Property','Value',...) creates a new CLAMP or raises the
- % existing singleton*. Starting from the left, property value pairs are
- % applied to the GUI before clamp_OpeningFcn gets called. An
- % unrecognized property name or invalid value makes property application
- % stop. All inputs are passed to clamp_OpeningFcn via varargin.
- %
- % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
- % instance to run (singleton)".
- %
- % See also: GUIDE, GUIDATA, GUIHANDLES
- % Edit the above text to modify the response to help clamp
- % Last Modified by GUIDE v2.5 01-Aug-2018 17:00:38
- % Begin initialization code - DO NOT EDIT
- gui_Singleton = 1;
- gui_State = struct('gui_Name', mfilename, ...
- 'gui_Singleton', gui_Singleton, ...
- 'gui_OpeningFcn', @clamp_OpeningFcn, ...
- 'gui_OutputFcn', @clamp_OutputFcn, ...
- 'gui_LayoutFcn', [] , ...
- 'gui_Callback', []);
- if nargin && ischar(varargin{1})
- gui_State.gui_Callback = str2func(varargin{1});
- end
- if nargout
- [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
- else
- gui_mainfcn(gui_State, varargin{:});
- end
- % End initialization code - DO NOT EDIT
- % --- Executes just before clamp is made visible.
- function clamp_OpeningFcn(hObject, eventdata, handles, varargin)
- % This function has no output args, see OutputFcn.
- % hObject handle to figure
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % varargin command line arguments to clamp (see VARARGIN)
- % Update the current L&F
- %originalLnF = javax.swing.UIManager.getLookAndFeel; %class
- %newLnF = 'javax.swing.plaf.metal.MetalLookAndFeel'; %string
- %javax.swing.UIManager.setLookAndFeel(newLnF);
- % Restore the original L&F
- %javax.swing.UIManager.setLookAndFeel(originalLnF);
- %Create a data acquisition session
- handles.devices = daq.getDevices;
- handles.daqSession = daq.createSession('ni');
- % Add channels specified by subsystem type and device
- chAI0=addAnalogInputChannel(handles.daqSession,'Dev1', 0, 'Voltage');
- chAI0.TerminalConfig = 'SingleEndedNonReferenced';
- chAI1=addAnalogInputChannel(handles.daqSession,'Dev1', 1, 'Voltage');
- chAI1.TerminalConfig = 'SingleEndedNonReferenced';
- chAO0=addAnalogOutputChannel(handles.daqSession,'Dev1', 0, 'Voltage');
- % Configure Data Acquisition Properties
- handles.daqSession.Rate = 100000;
- handles.secToAccuire=1;%Sample period in seconds
- handles.vHold=-100;
- handles.scaleFactorI=0.1; %0.1 V per uA
- handles.scaleFactorV=10; %V output scaled 10x on OC-725C
- handles.mVconversion=1000; %To mV
- handles.mSconversion=1000; %To mS
- handles.msToSamples=handles.daqSession.Rate/handles.mSconversion;
- handles.saveData=0;
- handles.leakSubtraction=0;
- handles.PathName='C:\Users\Hugo\Documents\MATLAB';
- handles.FileName='clamp.mat';
- handles.btnStop=0;
- % Axis lim
- handles.xMin = 300;
- handles.xMax = 350;
- handles.yMinI = -5;
- handles.yMaxI = 0;
- handles.yMinV = -120;
- handles.yMaxV = 80;
- % Info
- handles.newCell=0;
- handles.human=0;
- handles.neandertal=0;
- handles.iData=[];
- handles.vData=[];
- handles.time=[];
- plot(handles.axes1,[],[]);
- xlabel(handles.axes1,'Time (ms)');
- ylabel(handles.axes1,'Current (uA)');
- axis(handles.axes1,[handles.xMin handles.xMax handles.yMinI handles.yMaxI]);
- plot(handles.axes2,[],[]);
- xlabel(handles.axes2,'Time (ms)');
- ylabel(handles.axes2,'Voltage (mV)');
- axis(handles.axes2,[handles.xMin handles.xMax handles.yMinV handles.yMaxV]);
- % Choose default command line output for clamp
- handles.output = hObject;
- % Update handles structure
- guidata(hObject, handles);
- % UIWAIT makes clamp wait for user response (see UIRESUME)
- % uiwait(handles.figure1);
- % --- Outputs from this function are returned to the command line.
- function varargout = clamp_OutputFcn(hObject, eventdata, handles)
- % varargout cell array for returning output args (see VARARGOUT);
- % hObject handle to figure
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Get default command line output from handles structure
- varargout{1} = handles.output;
- % --- Executes on button press in actFastInact.
- function actFastInact_Callback(hObject, eventdata, handles)
- % hObject handle to actFastInact (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- handles.btnStop=0;
- guidata(hObject, handles);
- hold(handles.axes1,'off');
- hold(handles.axes2,'off');
- holdingVoltage=handles.vHold;
- testPulsStart=holdingVoltage;
- testPulsEnd=20;
- testPulsInactivation=0;
- sleepTime=10;
- %Stockholmsprotokollet. 9-11 grader. Oklart vilken paus mellan?
- preStimulusTime=60; %ms
- stimulus1Time=300; %ms
- stimulus2Time=40; %mS
- postStimulusTime=120; %mS
- samplesToAcquire=(preStimulusTime+stimulus1Time+stimulus2Time+postStimulusTime)*handles.msToSamples;
- nrOfSweeps=(testPulsStart-(testPulsEnd))/-10+1;
- iData=zeros(samplesToAcquire,nrOfSweeps);
- vData=zeros(samplesToAcquire,nrOfSweeps);
- time=zeros(samplesToAcquire,nrOfSweeps);
- testPuls=testPulsStart;
- i=1;
- while testPuls<=testPulsEnd% used to be 10 steps
-
- if i>1
- pause(sleepTime);
- end
-
- drawnow() %Give the abort callback a chance to interrupt
- handles = guidata(hObject); %Update the GUI data
- if handles.btnStop==1 % stop condition
- disp('Aborted.')
- break;
- end
-
- preStimulusVoltage=holdingVoltage; %mV
- preStimulus=preStimulusVoltage*ones(preStimulusTime*handles.msToSamples,1);
-
- stimulus1Voltage=holdingVoltage+(i-1)*10; %mV
- stimulus1=stimulus1Voltage*ones(stimulus1Time*handles.msToSamples,1);
-
- stimulus2Voltage=testPulsInactivation; %mV
- stimulus2=stimulus2Voltage*ones(stimulus2Time*handles.msToSamples,1);
-
- postStimulusVoltage=holdingVoltage; %mV
- postStimulus=postStimulusVoltage*ones(postStimulusTime*handles.msToSamples,1);
-
- line0=vertcat(preStimulus,stimulus1,stimulus2,postStimulus);
-
- queueOutputData(handles.daqSession,line0*(handles.scaleFactorV/handles.mVconversion));
- [inputData,time(:,i),triggerTime] = handles.daqSession.startForeground();
-
- iData(:,i)=(1/handles.scaleFactorI)*inputData(:,1); %data in uA
- vData(:,i)=(handles.mVconversion/handles.scaleFactorV)*inputData(:,2); %data in mV
-
- %Leak subtraction
- if 1>0 %(handles.leakSubtraction==0)
- iDataPlot=iData(:,i);
- else
- iDataPlot=iData(:,i)-mean(iData(38000:40000,i));
- end
-
- iDataPlot=movmean(iDataPlot,20);
-
- plot(handles.axes1,handles.mSconversion*time(:,1),iDataPlot);
- xlabel(handles.axes1,'Time (ms)');
- ylabel(handles.axes1,'Current (uA)');
- axis(handles.axes1,[handles.xMin handles.xMax handles.yMinI handles.yMaxI]);
- hold(handles.axes1,'on');
-
- plot(handles.axes2,handles.mSconversion*time(:,1),vData(:,i));
- xlabel(handles.axes2,'Time (ms)');
- ylabel(handles.axes2,'Voltage (mV)');
- axis(handles.axes2,[handles.xMin handles.xMax handles.yMinV handles.yMaxV]);
- hold(handles.axes2,'on');
-
- disp(['Clamped ', num2str(stimulus1Voltage),' mV']);
-
- testPuls=testPuls+10;
- i=i+1;
- end
- handles.type='fast';
- handles.iData=iData;
- handles.vData=vData;
- handles.time=time;
- guidata(hObject, handles);
- % --- Executes on button press in slowkinetics.
- function slowkinetics_Callback(hObject, eventdata, handles)
- % hObject handle to slowkinetics (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % hObject handle to actFastInact (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- hold(handles.axes1,'off');
- hold(handles.axes2,'off');
- preStimulusTime=100; %ms
- stimulus1Time=10000; %mS
- stimulus2Time=100; %mS
- stimulus3Time=200; %mS
- postStimulusTime=100; %mS
- holdingVoltage=-120;
- testPulsStart=-120;
- testPulsEnd=-20;
- sleepTime=10; %Seconds
- samplesToAcquire=(preStimulusTime+stimulus1Time+stimulus2Time+stimulus3Time+postStimulusTime)*handles.msToSamples;
- nrOfSweeps=(testPulsStart-(testPulsEnd))/-10+1;
- iData=zeros(samplesToAcquire,nrOfSweeps);
- vData=zeros(samplesToAcquire,nrOfSweeps);
- time=zeros(samplesToAcquire,nrOfSweeps);
- testPuls=testPulsStart;
- i=1;
- while testPuls<=testPulsEnd% used to be 10 steps
-
- if i>1
- pause(sleepTime);
- end
-
- preStimulusVoltage=holdingVoltage; %mV %Used to be minus 120
- preStimulus=preStimulusVoltage*ones(preStimulusTime*handles.msToSamples,1);
-
- stimulus1Voltage=testPuls; %mV %Used to be minus 140 * 10
- stimulus1=stimulus1Voltage*ones(stimulus1Time*handles.msToSamples,1);
-
- stimulus2Voltage=holdingVoltage; %mV %Used to be minus 120
- stimulus2=stimulus2Voltage*ones(stimulus2Time*handles.msToSamples,1);
-
- stimulus3Voltage=0; %mV
- stimulus3=stimulus3Voltage*ones(stimulus3Time*handles.msToSamples,1);
-
- postStimulusVoltage=holdingVoltage; %mV
- postStimulus=postStimulusVoltage*ones(postStimulusTime*handles.msToSamples,1);
-
- line0=vertcat(preStimulus,stimulus1,stimulus2,stimulus3,postStimulus);
-
- queueOutputData(handles.daqSession,line0*(handles.scaleFactorV/handles.mVconversion));
- [inputData,time(:,i),triggerTime] = handles.daqSession.startForeground();
-
- iData(:,i)=(1/handles.scaleFactorI)*inputData(:,1); %data in uA
- vData(:,i)=(handles.mVconversion/handles.scaleFactorV)*inputData(:,2); %data in mV
-
- %Leak subtraction
- if 1<0%(handles.leakSubtraction==0)
- iDataPlot=iData(:,i);
- else
- iDataPlot=iData(:,i)-max(iData((preStimulusTime+stimulus1Time+stimulus2Time+0.5*stimulus3Time:preStimulusTime+stimulus1Time+stimulus2Time+stimulus3Time)*handles.msToSamples,i));
- end
-
- iDataPlot=movmean(iDataPlot,20);
-
- plot(handles.axes1,handles.mSconversion*time(:,1),iDataPlot);
- xlabel(handles.axes1,'Time (ms)');
- ylabel(handles.axes1,'Current (uA)');
- axis(handles.axes1,[handles.xMin handles.xMax handles.yMinI handles.yMaxI]);
- hold(handles.axes1,'on');
-
- plot(handles.axes2,handles.mSconversion*time(:,1),vData(:,i));
- xlabel(handles.axes2,'Time (ms)');
- ylabel(handles.axes2,'Voltage (mV)');
- axis(handles.axes2,[handles.xMin handles.xMax handles.yMinV handles.yMaxV]);
- hold(handles.axes2,'on');
-
- disp(['Clamped ', num2str(stimulus1Voltage),' mV']);
-
- testPuls=testPuls+10;
- i=i+1;
- end
- handles.type='slow';
- handles.iData=iData;
- handles.vData=vData;
- handles.time=time;
- guidata(hObject, handles);
- % --- Executes on button press in resurgent.
- function resurgent_Callback(hObject, eventdata, handles)
- % hObject handle to resurgent (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- hold(handles.axes1,'off');
- hold(handles.axes2,'off');
- preStimulusTime=100; %ms
- stimulus1Time=20; %ms
- stimulus2Time=500; %mS
- postStimulusTime=100; %mS
- samplesToAcquire=(preStimulusTime+stimulus1Time+stimulus2Time+postStimulusTime)*handles.msToSamples;
- iData=zeros(samplesToAcquire,11);
- vData=zeros(samplesToAcquire,11);
- time=zeros(samplesToAcquire,11);
- for i=1:1%11
-
- preStimulusVoltage=-100; %mV
- preStimulus=preStimulusVoltage*ones(preStimulusTime*handles.msToSamples,1);
-
- stimulus1Voltage=30; %mV
- stimulus1=stimulus1Voltage*ones(stimulus1Time*handles.msToSamples,1);
-
- stimulus2Voltage=-80+(i-1)*10; %mV
- stimulus2=stimulus2Voltage*ones(stimulus2Time*handles.msToSamples,1);
-
- postStimulusVoltage=-100; %mV
- postStimulus=postStimulusVoltage*ones(postStimulusTime*handles.msToSamples,1);
-
- line0=vertcat(preStimulus,stimulus1,stimulus2,postStimulus);
-
- queueOutputData(handles.daqSession,line0*(handles.scaleFactorV/handles.mVconversion));
- [inputData,time(:,i),triggerTime] = handles.daqSession.startForeground();
-
- iData(:,i)=(1/handles.scaleFactorI)*inputData(:,1); %data in uA
- vData(:,i)=(handles.mVconversion/handles.scaleFactorV)*inputData(:,2); %data in mV
-
- %Leak subtraction
- if(handles.leakSubtraction==0)
- iDataPlot=iData(:,i);
- else
- iDataPlot=iData(:,i)-mean(iData(500*handles.msToSamples:600*handles.msToSamples,i));
- end
-
- iDataPlot=movmean(iDataPlot,200);
-
- plot(handles.axes1,handles.mSconversion*time(:,1),iDataPlot);
- xlabel(handles.axes1,'Time (ms)');
- ylabel(handles.axes1,'Current (uA)');
- axis(handles.axes1,[handles.xMin handles.xMax handles.yMinI handles.yMaxI]);
- hold(handles.axes1,'on');
-
- plot(handles.axes2,handles.mSconversion*time(:,1),vData(:,i));
- xlabel(handles.axes2,'Time (ms)');
- ylabel(handles.axes2,'Voltage (mV)');
- axis(handles.axes2,[handles.xMin handles.xMax handles.yMinV handles.yMaxV]);
- hold(handles.axes2,'on');
-
- disp(['Clamped ', num2str(stimulus2Voltage),' mV']);
- pause(2.5);
- end
- handles.type='resurgent';
- handles.iData=iData;
- handles.vData=vData;
- handles.time=time;
- guidata(hObject, handles);
- % --- Executes on button press in pushbutton2.
- function pushbutton2_Callback(hObject, eventdata, handles)
- % hObject handle to pushbutton2 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Run Session & Acquire Data
- %line0=vertcat(ones(handles.daqSession.Rate*1,1), ones(handles.daqSession.Rate*0,1));
- handles.vHold = str2double(get(handles.edit1,'String'));
- line0=handles.vHold*ones(handles.daqSession.Rate,1);
- %vHold = str2double(get(handles.edit1,'String'));
- %line0=vHold*ones(handles.daqSession.Rate,1);
- queueOutputData(handles.daqSession,line0*(handles.scaleFactorV/handles.mVconversion));
- [data,time,triggerTime] = handles.daqSession.startForeground();
- guidata(hObject, handles);
- % --- Executes on button press in save.
- function save_Callback(hObject, eventdata, handles)
- % hObject handle to save (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- %'iData','vData','time',
- iData=handles.iData;
- vData=handles.vData;
- time=handles.time;
- newCell=handles.newCell;
- human=handles.human;
- neandertal=handles.neandertal;
- %type=handles.type;
- temp=str2double(get(handles.temp,'String'));
- conc=str2double(get(handles.conc,'String'));
- days=str2double(get(handles.days,'String'));
- fileNr=length(dir('*.mat'))+1;
- if newCell==1
- str='_newcell';
- else
- str='';
- end
- if human==1
- save(strcat(date,'_',num2str(fileNr),'_human',str),'human','neandertal','iData','vData','time','days','conc','temp');
- disp('Data saved.')
- elseif neandertal==1
- save(strcat(date,'_',num2str(fileNr),'_neandertal_M932L',str),'human','neandertal','iData','vData','time','days','conc','temp');
- disp('Data saved.')
- else
- disp('No species set. Data could not be saved.')
- end
- % --- Executes on button press in newcell.
- function newcell_Callback(hObject, eventdata, handles)
- % hObject handle to newcell (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- if (get(hObject,'Value') == get(hObject,'Max'))
- handles.newCell=1;
- else
- handles.newCell=0;
- end
- % Update handles structure
- guidata(hObject, handles);
- % --- Executes on button press in pushbutton3.
- function pushbutton3_Callback(hObject, eventdata, handles)
- % hObject handle to pushbutton3 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- [handles.FileName,handles.PathName] = uiputfile('*.mat','Save data to');
- % Update handles structure
- guidata(hObject, handles);
- function edit1_Callback(hObject, eventdata, handles)
- % hObject handle to edit1 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of edit1 as text
- % str2double(get(hObject,'String')) returns contents of edit1 as a double
- % --- Executes during object creation, after setting all properties.
- function edit1_CreateFcn(hObject, eventdata, handles)
- % hObject handle to edit1 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- function xminset_Callback(hObject, eventdata, handles)
- % hObject handle to xminset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of xminset as text
- % str2double(get(hObject,'String')) returns contents of xminset as a double
- % --- Executes during object creation, after setting all properties.
- function xminset_CreateFcn(hObject, eventdata, handles)
- % hObject handle to xminset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- % --- Executes on button press in setaxes.
- function setaxes_Callback(hObject, eventdata, handles)
- % hObject handle to setaxes (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- axis(handles.axes1,[str2double(get(handles.xminset,'String')) str2double(get(handles.xmaxset,'String')) str2double(get(handles.yminset,'String')) str2double(get(handles.ymaxset,'String'))]);
- handles.xMin = str2double(get(handles.xminset,'String'));
- handles.xMax = str2double(get(handles.xmaxset,'String'));
- handles.yMinI = str2double(get(handles.yminset,'String'));
- handles.yMaxI = str2double(get(handles.ymaxset,'String'));
- handles.yMinV = -120;
- handles.yMaxV = 80;
- guidata(hObject, handles);
- function xmaxset_Callback(hObject, eventdata, handles)
- % hObject handle to xmaxset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of xmaxset as text
- % str2double(get(hObject,'String')) returns contents of xmaxset as a double
- % --- Executes during object creation, after setting all properties.
- function xmaxset_CreateFcn(hObject, eventdata, handles)
- % hObject handle to xmaxset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- function yminset_Callback(hObject, eventdata, handles)
- % hObject handle to yminset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of yminset as text
- % str2double(get(hObject,'String')) returns contents of yminset as a double
- % --- Executes during object creation, after setting all properties.
- function yminset_CreateFcn(hObject, eventdata, handles)
- % hObject handle to yminset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- function ymaxset_Callback(hObject, eventdata, handles)
- % hObject handle to ymaxset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of ymaxset as text
- % str2double(get(hObject,'String')) returns contents of ymaxset as a double
- % --- Executes during object creation, after setting all properties.
- function ymaxset_CreateFcn(hObject, eventdata, handles)
- % hObject handle to ymaxset (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- function checkbox5_Callback(hObject, eventdata, handles)
- % hObject handle to save (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hint: get(hObject,'Value') returns toggle state of save
- if (get(hObject,'Value') == get(hObject,'Max'))
- handles.leakSubtraction=1;
- else
- handles.leakSubtraction=0;
- end
- % Update handles structure
- guidata(hObject, handles);
- % --- Executes on button press in pushbutton9.
- function pushbutton9_Callback(hObject, eventdata, handles)
- % hObject handle to pushbutton9 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- handles.sweep=9999;
- %Update handles structure
- guidata(hObject, handles);
- % --- Executes on button press in human.
- function human_Callback(hObject, eventdata, handles)
- % hObject handle to human (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- if (get(hObject,'Value') == get(hObject,'Max'))
- handles.human=1;
- else
- handles.human=0;
- end
- % Update handles structure
- guidata(hObject, handles);
- % --- Executes on button press in neandertal.
- function neandertal_Callback(hObject, eventdata, handles)
- % hObject handle to neandertal (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- if (get(hObject,'Value') == get(hObject,'Max'))
- handles.neandertal=1;
- else
- handles.neandertal=0;
- end
- % Update handles structure
- guidata(hObject, handles);
- function days_Callback(hObject, eventdata, handles)
- % hObject handle to days (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of days as text
- % str2double(get(hObject,'String')) returns contents of days as a double
- % --- Executes during object creation, after setting all properties.
- function days_CreateFcn(hObject, eventdata, handles)
- % hObject handle to days (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- function conc_Callback(hObject, eventdata, handles)
- % hObject handle to conc (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of conc as text
- % str2double(get(hObject,'String')) returns contents of conc as a double
- % --- Executes during object creation, after setting all properties.
- function conc_CreateFcn(hObject, eventdata, handles)
- % hObject handle to conc (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- function temp_Callback(hObject, eventdata, handles)
- % hObject handle to temp (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hints: get(hObject,'String') returns contents of temp as text
- % str2double(get(hObject,'String')) returns contents of temp as a double
- % --- Executes during object creation, after setting all properties.
- function temp_CreateFcn(hObject, eventdata, handles)
- % hObject handle to temp (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles empty - handles not created until after all CreateFcns called
- % Hint: edit controls usually have a white background on Windows.
- % See ISPC and COMPUTER.
- if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
- end
- % --- Executes on button press in checkbox9.
- function checkbox9_Callback(hObject, eventdata, handles)
- % hObject handle to checkbox9 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- % Hint: get(hObject,'Value') returns toggle state of checkbox9
- % --- Executes on button press in pushbutton14.
- function pushbutton14_Callback(hObject, eventdata, handles)
- % hObject handle to pushbutton14 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- preStimulusTime=100; %ms
- stimulus1Time=100; %ms
- postStimulusTime=100; %mS
- samplesToAcquire=(preStimulusTime+stimulus1Time+postStimulusTime)*handles.msToSamples;
- nrOfSweeps=1;
- iData=zeros(samplesToAcquire,nrOfSweeps);
- vData=zeros(samplesToAcquire,nrOfSweeps);
- time=zeros(samplesToAcquire,nrOfSweeps);
- for i=1:nrOfSweeps
- preStimulusVoltage=handles.vHold; %mV
- preStimulus=preStimulusVoltage*ones(preStimulusTime*handles.msToSamples,1);
-
- stimulus1Voltage=handles.vHold+10; %mV
- stimulus1=stimulus1Voltage*ones(stimulus1Time*handles.msToSamples,1);
-
- postStimulusVoltage=handles.vHold; %mV
- postStimulus=postStimulusVoltage*ones(postStimulusTime*handles.msToSamples,1);
-
- line0=vertcat(preStimulus,stimulus1,postStimulus);
-
- queueOutputData(handles.daqSession,line0*(handles.scaleFactorV/handles.mVconversion));
- [inputData,time(:,i),triggerTime] = handles.daqSession.startForeground();
-
- iData(:,i)=(1/handles.scaleFactorI)*inputData(:,1); %data in uA
- vData(:,i)=(handles.mVconversion/handles.scaleFactorV)*inputData(:,2); %data in mV
- end
- disp(['Membrane resistance is ', num2str(0.01/(mean(iData(150*handles.msToSamples:200*handles.msToSamples,1))-mean(iData(1*handles.msToSamples:50*handles.msToSamples,1)))),' MOhm at ', num2str(handles.vHold), 'mV' ]);
- % --- Executes on button press in pushbutton15.
- function pushbutton15_Callback(hObject, eventdata, handles)
- % hObject handle to pushbutton15 (see GCBO)
- % eventdata reserved - to be defined in a future version of MATLAB
- % handles structure with handles and user data (see GUIDATA)
- handles.btnStop=1;
- guidata(hObject, handles);
|