The matlab scripts used in this project are listed below.
Required to run in this particular order:
- viewAndProcessResults.m - Retrieves the initial datasets to work with.
- findSubjectsWithCF.m - Generates subjectIDandStatus which contains the ID's and status of the subjects who's airways were used for annotation.
- filterUsefullResults.m - Filters the data, generated by viewAndProcessResults.m, based on the criteria described in the paper. Returns the filtered versions of the input tables of this file and some additional columns.
Required to run in order to perform the analyses:
- separatingTasks.m - Creates an cell which contains specific information of each image of the dataset. The rows indicate the image of the dataset. The rows of images without useable annotations will be empty.
- selectFilteredTasksBasedOnCFStatus.m - Creates a cell which contains the subject ID, status and list of tasks of that subject. These task only include the annotations that satisfied the filtering criteria.
- selectAllTasksBasedOnCFStatus.m - Is similar to 'selectFilteredTasksBasedOnCFStatus.m' the output only differs by the fact that the lists of tasks include ALL annotations generated by knowledge workers.
Analyses of the data:
- mape.m - calculates the mean absolute percentage error of each image slice. These MAPEs per image slice are visualized in a individual box per subject. The first 12 boxes are of subjects without CF, the last 12 boxes are of subjects with CF.
- scatterplotInnervsOuterAnnotation.m - Creates a scatterplot of the inner area vs. outer area annotations of the KWs. Each dot is an individual annotation result. It also creates the same scatterplot for the expert's measurements, this contains less points because each image is only described by one person.
- scatterplotPerImage.m - Creates a scatter plot of expert-vs-KW for both airway lumen and airway wall. The annotations of the KWs are median combined. So, each image is one scatter point.
- wapSubject.m - Tests difference in mean wall area percentage between CF subjects and healthy subjects. One WAP per subject is calculated. So, means were calculated over the crowd annotations and over the images of one subject.
- boxplotGeneral.m - This script indicates the measurements of the crowd annotations per image slice. Each box represents one image slice. This script can be runned for one of the two airway areas of a specific individual subject, but notice that the input should be the index of the subject ID.
Remainder scripts -not used, however these could be informative:
- otherScatterExKW.m - Creates a scatter plot expert-vs-KW of specific images. The inner area and outer area of the corresponding image are shown in the same color.
- otherScatterInOut.m - Creates a scatter plot inner-vs-outer area of specific images. The annotations of the same image slice are shown in the same color.
- relativeDifferencesLargestandSmallest.m - Script finds the largest and smallest airway of each subject and returns the number of useable annotations of those image slices. The part of relative differences was under construction.
Functions used in 'viewAndProcessResults.m':
- classifyAnnotation.m
- ellipse.m
- radiusExtraction.m
- measureEllipses.m
- getPath.m
- parse_json.m