DOI: 10.5061/dryad.7m0cfxq6d
title: AggreBots: configuring CiliaBots through guided, modular tissue aggregation

description: Ciliated biobots, or CiliaBots, are a class of engineered multicellular
 tissues that are capable of self-actuated motility propelled by the motile
 cilia located on their exterior surface. Correlations have been observed
 between CiliaBot motility patterns and their morphology and cilia
 distribution. However, precise control of these structural parameters to
 generate desired motility patterns predictably remains unexplored. Here,
 we developed a novel Aggregated CiliaBot (AggreBot) platform capable of
 producing designer motility patterns through spatially controlled
 aggregation of epithelial spheroids made from human airway cells (referred
 to as CiliaBot Building Blocks or CBBs), yielding AggreBots with
 configurable geometry and distribution of active cilia. Guided multi-CBB
 aggregation led to the production of rod-, triangle-, and diamond-shaped
 AggreBots, which consistently effected greater motility than traditional
 single-spheroid CiliaBots. Furthermore, CBBs were found to maintain
 internal boundaries post-aggregation through the combined action of
 pathways controlling cellular fluidity and tissue polarity. This boundary
 fidelity, combined with the use of CBBs with immotile cilia due to
 mutations in the CCDC39 gene, allowed for the generation of hybrid
 AggreBots with precision control over the coverage and distribution of
 active cilia, further empowering control of motility patterns. Our results
 demonstrate the potential of AggreBots as self-propelling biological
 tissues through the establishment of morphological “levers” by which
 alterations to tissue motility can be theoretically planned and
 experimentally verified.
description: # AggreBots: configuring CiliaBots through guided, modular tissue
 aggregation
 [https://doi.org/10.5061/dryad.7m0cfxq6d](https://doi.org/10.5061/dryad.7m0cfxq6d) ## Description of the data and file structure 7 .zip files are included in this dataset, containing all of the brightfield images, confocal images, and videos needed to reproduce the data seen in the AggreBot manuscript. ### Files and variables #### File: Figure_2*_*Dryad*_*Curated.zip **Description:** The materials within are split into six separate folders. "2B Images" contains the brightfield images taken at 20X magnification from which the data points in Figure 2B were extracted. These images are further subdivided into folders depending on the time point after pairing of spheroids (0, 2, 4, 6, and 24 hours after). "2B Analysis" contains the Excel spreadsheet with the morphological data plotted in Figure 2B. time point of image is listed in the first column, followed by the overall length L and central width W_c, both in pixels. L/L0, the normalized length of the AggreBots, was calculated by dividing a given length datum by the average of the length at the first time point (t+0), while W_c/L, the width-length ratio, was calculated by dividing the central width by the overall length. These metrics are the morphological data plotted in Figure 2B. Note that there are certain cells in Column D marked "BLUR." This is due to the brightfield image being too blurry to obtain an accurate readout of the AggreBot morphology, hence its exclusion from the data. Redundant copies of the MATLAB programs used to analyze the brightfield images are also in this folder, though, refer to the versions in the software .zip primarily. Cells in Column D marked "NULL" are to be ignored. Cells marked "#N/A" are to be similarly ignored due to data being unavailable in these cells as a result of the "BLUR" marker. "2C Images" contains the brightfield images from which the data points in Figure 2C were extracted. This folder is subdivided by time point of merging (M1, M3, M5), with each grouping then further subdivided into the experiments in which each AggreBot was generated, imaged, and analyzed. "2C Analysis" contains the Excel spreadsheets with the morphological data plotted in Figure 2C, across all experiments. time point of image is listed in the first column, followed by the overall length L and central width W_c, both in pixels. L/L0, the normalized length of the AggreBots, was calculated by dividing a given length datum by the average of the length at the first time point (t+0), while W_c/L, the width-length ratio, was calculated by dividing the central width by the overall length. These metrics are the morphological data plotted in Figure 2C. Cells in column D marked "BLUR" indicate the brightfield image being too blurry to obtain an accurate readout of the AggreBot morphology, hence its exclusion. Cells in column D marked "CYST" indicate that the AggreBot in the brightfield image developed a cyst that impacts morphological analysis of the 2D projection of the AggreBot, hence its exclusion. Cells in column D marked "FAIL" indicate the constituent spheroids failed to aggregate in the first place, hence their exclusion. Cells in column D marked "LOST" indicated AggreBots that were lost at some point during culture, likely during media change. Cells in Column D marked "NULL" are to be ignored. Cells marked "#N/A" are to be similarly ignored due to data being unavailable in these cells as a result of the "BLUR" marker. Additionally, certain spreadsheets may have the "Day 20" rows marked "#N/A". This is due to no Day 20 brightfield images being captured for that particular experimental group. Redundant copies of the MATLAB programs used to analyze the brightfield images are also in this folder, though, refer to the versions in the software .zip primarily. "2D Images" contains the confocal images from which the data points in Figure 2D were extracted. .nd2 files containing the text "DPA-8 control" refer to 500-Cell UniBots. .nd2 files containing the text "Pa10 1" refer to 1000-Cell AggreBots aggregated on Day 1. .nd2 files containing the text "Pa10 3" refer to 1000-Cell AggreBots aggregated on Day 3. .nd2 files containing the text "Pa10 5" refer to 1000-Cell AggreBots aggregated on Day 5. Each .nd2 file also has 6 associated .jpg files, 3 containing the DAPI channel at various slices in the CiliaBot, 3 containing the tubulin channels at those same slices. "2D Analysis" contains the Excel spreadsheet with the morphological cilia coverage percentage readouts from the confocal images, separated by experimental group (H referring to CBB1 UniBots, HH M1/3/5 referring to CBB2 AggreBots aggregated on days 1, 3, and 5, respectively). It also further contains information about the input parameters to the associated custom MATLAB program CiliationCheckerV6 that generated these values (thresh, levelf, and boundary) for reproducibility. Cells marked "NULL" are to be ignored. The folder also contains the ImageJ macro file used to automatically slice the .nd2 files in the "2D Images" folder, yielding the 6 associated .jpg files inputted into the MATLAB program to obtain the morphological cilia coverage percentage. A redundant copy of the MATLAB program used to analyze the .jpg images is also in this folder, though refer to the version in the software .zip primarily. Alongside these folders, the GraphPad Prism Projects that were used to collect and display all the data points in the figure are also included. #### File: Figure_3_Dryad*_*Curated.zip **Description:** The materials within are split into two separate folders. "3 Videos" contains the AggreBot videos from which all the data points in Figure 3 were extracted, in 7 separate folders for each overarching type of CiliaBot (both UniBots and AggreBots of various initial cell counts), with each folder further subdivided into the experiments in which each AggreBot was generated and analyzed. "3 Analysis" contains the Excel spreadsheets with the time-series data of all of the different AggreBot videos, across all experiments that went into Figure 3. The time-series data (generated using custom MATLAB programs) included in these spreadsheets list the X- and Y-values of the Centroid, as well as potentially additional locations on the CiliaBot in pixels: for UniBots, there are no additional X- or Y-values; for CBB2 AggreBots, there are X- and Y-values listed for Edge1 and Edge2, referring to the tips of the AggreBot's major axis; for CBB2 AggreBots, there are X- and Y-values listed for Edge1, Edge2, and Edge3, referring to the tips of the triangular AggreBot's centroid-vertex segments; and for CBB2 AggreBots, there are X- and Y-values listed for Edge1, Edge2, Edge3, and Edge4, referring to the tips of the diamond AggreBot's major (Edge1 and Edge2) and minor (Edge3 and Edge4) axes. From these time series, the CenSpeed variable (the average translational speed of the CiliaBot derived from the X- and Y- values of the Centroid--listed in pixels/s, meaning it must then be converted into microns/s) and the RotSpeed (the average rotational speed of the CiliaBot, in deg/s) are the most important readouts, with CenSpeed calculated as the average of the change position over change in time for each time point, and RotSpeed calculated as the average of the column labeled omega representing the change in major axis orientation between each time point. From these values, a simple division of the latter by the former yields the path curvature data also seen in Figure 3. Cells marked "NULL" are to be ignored. Cells marked "#N/A" represent time points where positional/rotational data could not be extracted due to the CiliaBot either not being in frame or due to exclusion of rotational data entirely, due to it not being possible for it to be properly obtained--the reason for this can be found in the software README. An additional master Excel spreadsheet showcasing all of the metrics used across all panels (translational velocity v in micron/s, rotational velocity omega in deg/s, and path curvature omega/v in micron^-1) is also included. The Major Axis Lengths of all AggreBots included in the data of this figure are also listed in this spreadsheet in microns, as this metric is necessary for calculating the dimensionless linear tendency metric lambda. Alongside both of these folders, the GraphPad Prism Project that was used to collect and display all the data points in the figure is also included. #### File: Figure_4*_*Dryad*_*Curated.zip **Description:** The materials within are split into eight separate folders. "4A Videos" contains the UniBot videos from which all the data points in Figure 4A were extracted, separated by non-diseased UniBot and PCD-derived UniBot, with each folder further subdivided into the experiments in which each UniBot was generated and analyzed. "4A Analysis" contains the Excel spreadsheets with the time-series data of all of the different UniBot videos, across all experiments that went into Figure 4A. The time-series data (generated using custom MATLAB programs) included in these spreadsheets list the X- and Y-values of the Centroid. From these time-series data (generated using custom MATLAB programs), the Speed variable (the average translational speed of the AggreBot--listed in both pixels/s and microns/s) is the most important readout, calculated as the average of the change in position over change in time for each time point. Cells marked "NULL" are to be ignored. Cells marked "#N/A" represent time points where positional/rotational data could not be extracted due to the CiliaBot not being in frame. Also contained in the "Experiment AG-2 Motility" spreadsheet are the 2D projected areas of all the UniBots found in "4A Videos," with listed values already converted to microns^2. Redundant copies of the MATLAB programs used to analyze the videos for both their translational speed and projected area are also in this folder, though refer to the versions in the software .zip primarily. "4B Images" contains the brightfield images from which the data points in Figure 4B were extracted. This folder is subdivided by time point of merging (M1, M3, M5), with each grouping then further subdivided into the experiments in which each AggreBot was generated, imaged, and analyzed. "4B Analysis" contains the Excel spreadsheets with the morphological data plotted in Figure 4B, across all experiments. The time point of the image is listed in the first column, followed by the overall length L and central width W_c, both in pixels. L/L0, the normalized length of the AggreBots, was calculated by dividing a given length datum by the average of the length at the first time point (t+0), while W_c/L, the width-length ratio, was calculated by dividing the central width by the overall length. These metrics are the morphological data plotted in Figure 4B. Cells in column D marked "BLUR" indicate the brightfield image being too blurry to obtain an accurate readout of the AggreBot morphology, hence its exclusion. Cells in column D marked "CYST" indicate that the AggreBot in the brightfield image developed a cyst that impacts morphological analysis of the 2D projection of the AggreBot, hence its exclusion. Cells in column D marked "FAIL" indicate the constituent spheroids failed to aggregate in the first place, hence their exclusion. Cells in column D marked "LOST" indicated AggreBots that were lost at some point during culture, likely during media change. Cells in Column D marked "NULL" are to be ignored. Cells marked "#N/A" are to be similarly ignored due to data being unavailable in these cells as a result of the "BLUR" marker. Additionally, certain spreadsheets may have the "Day 20" rows marked "#N/A". This is due to no Day 20 brightfield images being captured for that particular experimental group. Redundant copies of the MATLAB programs used to analyze the brightfield images are also in this folder, though, refer to the versions in the software .zip primarily. "4C Images" contains the confocal images from which the data points in Figure 4C were extracted, separated into the four small-molecule treatment groups, and further subdivided into the experiments in which each AggreBot was generated and analyzed. The .lsm file z-stacks are also accompanied by a .jpg channel-merged slice used to analyze these AggreBots. "4C+D Analysis" contains the ImageJ macro used to generate the channel-merged and brightness-adjusted z-stack, from which the middle slice was manually scrolled to and saved as the .jpg files in "4C Images." A redundant copy of the MATLAB program used to analyze the .jpg images is also in this folder, though refer to the version in the software .zip primarily. The GraphPad Prism Project used for the graphs seen in Figures 4C and 4D is also in this folder, as it contains the arrays derived from the custom MATLAB program used to analyze the .jpg files in "4C Images." "4F Videos" contains the AggreBot collagen-embedded videos from which all the data points in Figure 4G were extracted, in 3 separate folders for each type of hybrid Aggrebot analyzed. "4F+G Analysis" contains the Excel spreadsheet with the functional cilia coverage percentage readouts from the collagen-embedded videos (HP refers to the CBB^ND_1-CBB^PCD_1 AggreBots, HHP refers to the CBB^ND_2-CBB^PCD_1 AggreBots, and HPP refers to the CBB^ND_1-CBB^PCD_2 AggreBots). A redundant copy of the MATLAB program used to analyze the videos is also in this folder, though refer to the version in the software .zip primarily. An additional amount of text explains the method of the software used to calculate the functional cilia coverage percentage, with a more complete explanation found in the README section about the software .zip below. Alongside these folders, the GraphPad Prism Projects that were used to collect and display all the data points in the figure are also included. #### File: Figure_5_Dryad.zip **Description:** The materials within are split into two separate folders. "5 Videos" contains the AggreBot videos from which all the data points in Figure 5 were extracted, in 9 separate folders for each overarching type of AggreBots, ranging from CBB-2 to CBB-4, with each folder further subdivided into the experiments in which each AggreBot was generated and analyzed. "5 Analysis" contains the Excel spreadsheets with the time-series data of all of the different AggreBot videos, across all experiments that went into Figure 5. The time-series data (generated using custom MATLAB programs) included in these spreadsheets list the X- and Y-values of the Centroid, as well as potentially additional locations on the CiliaBot in pixels: for CBB2 AggreBots, there are X- and Y-values listed for Edge1 and Edge2, referring to the tips of the AggreBot's major axis; for CBB2 AggreBots, there are X- and Y-values listed for Edge1, Edge2, and Edge3, referring to the tips of the triangular AggreBot's centroid-vertex segments; and for CBB2 AggreBots, there are X- and Y-values listed for Edge1, Edge2, Edge3, and Edge4, referring to the tips of the diamond AggreBot's major (Edge1 and Edge2) and minor (Edge3 and Edge4) axes. From these time series, the CenSpeed variable (the average translational speed of the CiliaBot derived from the X- and Y- values of the Centroid--listed in pixels/s, meaning it must then be converted into microns/s) and the RotSpeed (the average rotational speed of the CiliaBot, in deg/s) are the most important readouts, with CenSpeed calculated as the average of the change position over change in time for each time point, and RotSpeed calculated as the average of the column labeled omega representing the change in major axis orientation between each time point. From these values, a simple division of the latter by the former yields the path curvature data also seen in Figure 5. Cells marked "NULL" are to be ignored. Cells marked "#N/A" represent time points where positional/rotational data could not be extracted due to the CiliaBot either not being in frame or due to exclusion of rotational data entirely, due to it not being possible for it to be properly obtained--the reason for this can be found in the software README. An additional master Excel spreadsheet showcasing all of the metrics used across all panels (translational velocity v in micron/s, rotational velocity omega in deg/s, and path curvature omega/v in micron^-1) is also included. The Major Axis Lengths of all AggreBots included in the data of this figure are also listed in this spreadsheet in microns, as this metric is necessary for calculating the dimensionless linear tendency metric lambda. Alongside both of these folders, the GraphPad Prism Project that was used to collect and display all the data points in the figure is also included. #### File: Figure_6_Dryad.zip **Description:** The materials are contained within a single folder. "6 Analysis" contains the Excel spreadsheet with the compiled phenotypic data of all AggreBots that were used as data points in Figure 5. The compiled data includes the raw values across all AggreBots for their aspect ratio, a simple measure of the length of the AggreBot's major axis divided by its minor axis, translational velocity, and linear tendency, along with each of their z-scores (the metrics of CBB#, referring to the number of CBB used to create a given AggreBot, and Functional Composition, referring to the percentage of the AggreBot's constituent CBB that is non-diseased, are included in the spreadsheet but not utilized in the analysis). The result of unsupervised, fuzzy c-means clustering when applied to said z-scores creates the cluster identification numbers seen in Column O. This master list is then split into the cluster values belonging to specific AggreBot configurations, along with the percentages of these proportions in each configuration. Alongside this spreadsheet, the GraphPad Prism Project that was used to collect and display all the data points in the figure is also included. #### File: Figure_S*_*Dryad*_*Curated.zip **Description:** The materials within are split into two separate folders. "Figure S2" contains specifically all of the images used to create Figure S2 that do not already appear in the Figure_2_Dryad.zip file. This, in practice, refers to the new donor-to-donor variability experiment conducted as part of the requested revisions. Alongside these images, the GraphPad Prism Project that was used to collect and display all the data points in Figure S2 is also included. "Figure S3" contains two additional folders. "S3 Videos" contains the CiliaBot videos from which all of the data points in Figure S3 were extracted, split between CBB-1 UniBots and CBB-2 AggreBots. "S3 Analysis" contains the Excel spreadsheets of the output kymographs for each of the CiliaBots from "S3 Videos," along with a master spreadsheet that compiles all of the derived values. A redundant copy of the MATLAB program used to count the number of peaks in the CiliaBot kymographs is also in this folder, though refer to the version in the software .zip primarily. Alongside both of these folders, the GraphPad Prism Project that was used to collect and display all the data points in Figure S3 is also included. ## Code/software The MATLAB programs used in the analysis of the collected data are split into 5 overarching categories **Rod AggreBot Morphological Analysis** The three MATLAB programs found in the folder of this name were used to analyze the morphology of the Rod AggreBot aggregation over time, with the data extracted from these programs being seen in Figures 2B, 2C, and 4B. OrganoidMALV1 is the program used to obtain the combined length of the spheroids in the pre-aggregation image. Using the program involves inputting a grayscale image into the program and then tracing a line down the length of the 2 spheroids. The program will output this length in pixels. OrganoidStreamlineV2 is the primary program the user interacts with when obtaining morphological data. Using the program involves inputting a grayscale image into the program and then tracing the 2D projected shape of the AggreBot in the image. The program will output several variables, of which only "mal," referring to the major axis length of the AggreBot, and "quarter2height," referring to the width of the line perpendicular to the major axis that bisects the 2D projected area of the AggreBot, are used in the manuscript. OrganoidQuadrisector_AvgArea is the backend program that OrganoidStreamlineV2 calls to obtain the aforementioned "mal" and "quarter2height" variables. This program takes the traced 2D shape provided by the user, identifies the major axis, rotates the shape to have the major axis lie flat, segments the area of the 2D shape into quarters using line segments perpendicular to the major axis, and then outputs the lengths of these additional line segments and their locations along the major axis. This program is not intended for a user to directly interact with. **Morphological Cilia Coverage Analysis** The MATLAB program found in the folder of this name was used to analyze the morphological cilia coverage for a given confocal slice, with the data extracted from this program being seen in Figure 2D. CiliationCheckerV6 involves inputting two images to the program (first, the tubulin channel slice, second, the DAPI channel slice). The program identifies the region within the image of high DAPI signal and forms a convex hull of the region, from which the program searches a banded region a user-controlled distance from the edge of the convex hull for areas of high tubulin signal. This search is performed radially, with the banded region being segmented into 360 slices, with morphological cilia coverage percentage (the number of segments with high tubulin signal divided by the total of 360) outputted. The program also has 3 additional inputs for internal parameters the program utilizes when thresholding and segmenting the signal in the inputted images: thresh, which when increased enlarges the size of the banded region beyond the edge of the DAPI convex hull to check for high tubulin signal; levelf, which when increased leads to a more liberal identifying of DAPI signal in the image; and boundarysmooth, which when increased makes the hull of DAPI signal more compact. Optimal values for these input parameters were identified through extended testing to be thresh of 0.2, levelf of 1, and boundarysmooth of 0. **CiliaBot Motility Analysis** The six MATLAB programs found in the folder of this name were used to analyze the motility of CiliaBots on a flat plate, with the data extracted from these programs being seen in Figures 3, 4A, and 5. OrganoidVideoTrackerV1, OrganoidVideoTrackerTriangleV2, and OrganoidVideoDiamondTrackerV1 are three programs designed for the same purpose but meant to handle different inputs. OrganoidVideoTrackerV1 is meant for UniBots and CBB-2 rod-shaped AggreBots. OrganoidVideoTrackerTriangleV2 is meant for CBB-3 triangle-shaped AggreBots. OrganoidVideoDiamondTrackerV1 is meant for CBB-4 diamond-shaped AggreBots. Each program takes an input of a video of a CiliaBot moving on a flat plate. The program then asks for the FPS of the video and the microscope magnification used. Finally, through an internal call of the associated OrganoidTracerV4 program, the program asks for a "criteria value" (more on that in the next paragraph). After these parameters are set. The program will identify the location and orientation of the CiliaBot every second, with the progress being shown to the user in a VideoPlayer MATLAB object. After the video's runtime is complete, the path and extent of the CiliaBot over the course of the video will be outputted as an image, with a final query to the user to specify alterations to the extent lines so that they can be made to conform more correctly with the actual edges of the CiliaBot, if any. The program outputs time-series data for the centroid and the edges of the CiliaBot, along with calculated pixels/s values of the average translational speeds of the centroid and edges. A projected area time-series is also outputted to provide the user with a sanity check that the program did, in fact, track the AggreBot and nothing else in the image. OrganoidTracerV4 is the backend program for the aforementioned three programs. The purpose of the function is to detect the CiliaBot shape in every frame of the video input to the other three programs. The program achieves this through the Sobel edge detection, leveraging the fact that CiliaBots are darker than the background of the flat plate to allow for areas of high pixel intensity *change* to be the edges of the CiliaBot. How stringent this edge detection is is determined through the aforementioned criteria value (the time-series data included in this dataset has a cell for the criteria value used, titled "CritVal," to allow for the reproduction of the data). Following sobel edge detection, a number of additional image manipulation programs are used to thicken the edge segments, connect them into a shape, and fill the voids within the shape to attain a blob that represents the CiliaBot in that frame, from which the centroid, major axis length, and orientation can be found through built-in MATLAB blob analysis functions. Note that the criteria value only needs to be provided once per given CiliaBot. I, the creator of these programs, must admit their imperfect nature. The CiliaBot detection algorithm can fail to produce accurate time-series data in two ways, with these ways appearing in some of the videos in the dataset. First, if the CiliaBot ever moves to a darker area of the flat plate, the CiliaBot becomes harder to distinguish from the plate background, leading to edge detection producing faulty blobs. This issue can be partially rectified by setting a lower criteria value, but it does not always work. Second, the outputted blob exists as a black-white image, meaning any visual features on the interior of the CiliaBot do not carry over to the blob. This means that it is difficult to properly track the major axis and orientation of a sufficiently circular CiliaBot over the course of the video, even if it is clearly visible to the naked eye. As such, a handful of CiliaBots in this dataset have calculated translational speed, but no rotational speed, as accurate rotational data could not be obtained using these programs. OrganoidProjectedArea is a simple program that takes in a CiliaBot video and a trace of the CiliaBot to identify the projected area. OrganoidVideoShape is a simple program that takes in a CiliaBot video to identify the major axis length, minor axis length, and circularity, the first two of these metrics being used to calculate the aspect ratio of the CiliaBots. OrganoidPathProgressionV1 is a program used to calculate the rotational speed of the CiliaBot. The program takes the inputs of the time-series data outputted from one of the three video tracker programs, specifically the XY-coordinates of the centroid and two edges. The change in orientation over time is outputted as the "omegar" variable, which, when averaged, provides the rotational speed value found in the dataset. **AggreBot Boundary Integrity Analysis** The MATLAB program found in the folder of this name was used to analyze the separation of fluorescent signal in a confocal slice of a rod-shaped AggreBot, with the data extracted from this program being seen in Figures 4C and 4D. OrganoidWideProfile reads in a given RGB image and allows the user to trace the shape of the AggreBot. From here, the program identified the major axis of the AggreBot and its orientation, rotated the image about the AggreBot's centroid so that the major axis lies flat, and then took 9 image profiles down the length of the major axis, each profile line 5 pixels apart from its neighbors. These profiles are averaged, and the red and green channels--the program can be easily modified to change desired channels if other fluorescent dyes are used--are normalized by the maximum intensity of that channel seen in the profile and separated. The raw red-green data over the length of the AggreBot was used to create the graphs in Figure 4C, while the correlation coefficients of the red to the green are data points found in Figure 4D. **Collagen-Embedded CiliaBot Analysis** The MATLAB programs found in the folder of this name were used to analyze the surface area covered by active cilia in a given hybrid AggreBot, with the data extracted from this program being seen in Figures 4F and 4G, and analyze the ciliary beat frequency (CBF) of a given CiliaBot, with the data extracted from this program being seen in Figure S3. OrganoidFunctionalCoverageV2 reads in a grayscale video of a collagen-embedded AggreBot (embedding is necessary to arrest overall AggreBot locomotion while preserving cilia motility). After the application of a Gaussian blur, the intensity range of the given pixel over the course of the video (i.e., the brightest the pixel ever is subtracted by the dimmest it ever is) is obtained as a measure of regions of active cilia. From here, a convex hull of the AggreBot is generated, with a banded region covering the outer edge of the hull becoming the search area for active cilia, utilizing the same radial slice method from the morphological coverage program. However, rather than directly outputting the percentage of slices with active cilia in them, the number of pixels in the top 80% for intensity range in a given slice are instead counted, allowing for the construction of a (noisy) square wave over the 360 degrees, as the hybrid AggreBot surface presents with regions of active cilia that abruptly switch to inactive cilia rather than a gradual change, much like a square wave. A square wave is then fit to this data, with the duty cycle of the square wave with the least RMSE being outputted as the functional coverage percentage of the AggreBot. This more complicated approach to functional coverage was necessary due to the fact that even an all-non-diseased AggreBot did not exhibit 100% morphological cilia coverage, as seen in the data in Figure 2D. This square wave method was considered to be a more accurate representation of where in the AggreBot the surface cells were non-diseased and where they were PCD-derived. KymographPeakCounter is a simple program that takes in an ImageJ-derived kymograph from a resliced video and delivers a count of the peaks in the graph, instituting some basic exclusions for distance between and prominence of peaks to prevent overcounting. ## Access information Other publicly accessible locations of the data: * N/A Data was derived from the following sources: * N/A