diff --git a/SaveTranscriptions.m b/SaveTranscriptions.m index 10fba75f4d1c4ba25adf997e10c669c7c81e90b3..edf9b48446eee47aa8c2f447253dddf5839303a8 100644 --- a/SaveTranscriptions.m +++ b/SaveTranscriptions.m @@ -1,23 +1,30 @@ +clearvars -except ls lss remainingFiles + %% For testing -load('C:\Users\chris\Box\Nelson Lab Data\Other Data\NTAud Transcription\Transcript_OrigAudio_AudSentStim.mat', 'lss'); -test = load('C:\Users\chris\Box\Nelson Lab Data\Other Data\NTAud Transcription\Transcript_Version2_AudSent.mat'); -ls = test.lss; +% load('C:\Users\chris\Box\Nelson Lab Data\Other Data\NTAud Transcription\Transcript_OrigAudio_AudSentStim.mat', 'lss'); +% test = load('C:\Users\chris\Box\Nelson Lab Data\Other Data\NTAud Transcription\Transcript_Version2_AudSent.mat'); +% ls = test.lss; + +testpos = 6; +resetLabelValues(lss, testpos) +setLabelValue(lss, testpos, 'Words', ls.Labels.Words{testpos}.ROILimits, ls.Labels.Words{testpos}.Value) %% Main code % Search the workspace for ls and lss and check for the tracker -if ~ValidWorkspace(ls, lss); return; end +if ~ValidateWorkspace(ls, lss); return; end % Update progress - % Compare ls and lss roi and values +if ~exist('remainingFiles', 'var'); remainingFiles = []; end +remainingFiles = FindRemainingFiles(ls, lss, remainingFiles); % Transfer labels lss = TransferLabels(ls, lss); -% Save lss and progress - % use uiget element to select save location +% Save latest transcription and progress +uisave({'lss', 'remainingFiles'}, 'lss.mat') %% Functions -function extStatus = ValidWorkspace(ls, lss) +function extStatus = ValidateWorkspace(ls, lss) if ~exist("ls", "var") fprintf(2, 'No exported transcript found. Please export your transciription to the work space as ''ls''\n') @@ -35,6 +42,30 @@ extStatus = true; end +function remainingFiles = FindRemainingFiles(ls, lss, remainingFiles) + +% Find identical labels +nFiles = lss.NumMembers; +isUntouched = false(nFiles, 1); +for i = 1:nFiles + isUntouched(i) = isequal(ls.Labels.Words{i}, lss.Labels.Words{i}); +end + +% Account for previosuly edited files +if ~isempty(remainingFiles) + wasPreviouslyUntouched = ~ismember(1:nFiles, remainingFiles.File_Pos); + isUntouched(wasPreviouslyUntouched) = false; +end + +% Prepare output +File_Pos = find(isUntouched); +memberNames = ls.getMemberNames; +File_Name = memberNames(isUntouched); +remainingFiles = table(File_Pos, File_Name); + +% could always print out a nice little status msg to encourage the user +end + function lss = TransferLabels(ls, lss) % Clear lss labels