BeadAssay code is written in MATLAB -- This code is developed to parse image stacks (.czi files from ZEN microscopes), find beads via laplacian of gaussian edge finding filters and circular Huogh transforms, record the x and y location of the beads' centroids and sprouts, and using this information, calculate the sprout lengths and distance to the nearest neighbor. NOTE: Before using this code, the MATLAB library bfmatlab must be downloaded and in the same folder as where this code is being run from.
The file AngiogenesisSproutingAssayBeadFindingCode.m is the first code that needs to be run. After opening, press RUN. The user will be prompted to open a file. Select the .czi file with the bead assay image on it. Only one image can be opened at a time. Once selected, the code will parse the image, pass it through filters, and find the beads. It will then display the beads found in GUI form. The user is able to select any beads that the code missed by clicking and dragging a circle around the desires area. All circles are able to be adjusted. If a circle was wrongly selected, it can be de-selected by right clicking on it. Once all beads have been selected/ de-selected, close the window. Another GUI will pop up, this time zooming in on one bead. The bead will have a yellow dot indicating its center. If there are other beads on display, ignore them, the code only stores data for the bead with the yellow center. Click on the end of each sprout that is branching off of the bead with the yellow center. If a sprout is wrongly selected, right click to de-select. When all sprouts have been selected, press the key that correlates to the population of the bead: 'A' is for population A and 'B' is for population B. Currently there is no way to correct the population if the wrong key is pressed, so the user would have to go into the output data and manually change it. When the final bead has been assigned a population, the code will display an image of the whole well with red '*' where all selected sprouts are. This is shown as confirmation, once done, the window can simply be closed. All data will be output into two files: "BeadData.txt" and "SproutData.txt". The user should rename the files in the following format: "YourNewFileName_BeadData.txt" and "YourNewFileName_SproutData.txt". *****MAKE SURE to rename the files before running this code again or it will be overwritten!!! ALSO MAKE SURE to leave the ending of the files as "_BeadData" and "_SproutData" because the post processing code uses these SPECIFIC names when running.
The file PostProcessingBeads.m is the post processing MATLAB script that analyzes all of the data output by the previous code. The user should press RUN, and will be prompted to select a file. The "BeadData.txt" file should be open. The user will again be prompted to open a file. This time the "SproutData.txt" file should be selected. The code will run through the data and analyze the sprout length, the distance between beads, the nearest neighbor, and the population of the nearest neighbor. All of this will be output in table form. All data is saved into the same folder as this MATLAB file and should be RENAMED and transferred to the users own folder. Again...MAKE SURE to rename the output files before running this code again or it will be overwritten!!!
The file MigratingCellCounting.m can be used to identify the number of cells that have migrated away from the beads into the bulk of the fibrin gel. The user should press RUN, and will be prompted to open a file. Select the .czi file with the bead assay image on it. Only one image can be opened at a time. Once selected, the code will parse the image and then crop it into 81-tile 9x9 images. It will then display a GUI with the cropped window of the original image. The user should select any migratory cells by clicking on them. If a cell is wrongly selected, right click to de-select. When finished with the window, press the "enter" key to move on. All 81 tiles will be shown twice through. The first time the user should select only cells from population "A". The second time the user should select only cells from population "B". If there are no cells for either of the specific population, press "enter" until through all 81 tiles. The number of migratory cells for each population will output in a data table with two columns labeled "population_A_count" and "population_B_count". Data will be saved in an excel file titled "MigratoryCellCount.xlsx".All data is saved into the same folder as this MATLAB file and should be RENAMED and transferred to the users own folder. Again...MAKE SURE to rename the output files before running this code again or it will be overwritten!!!