2011 ka po chu all rights reserved - rutgers university

72
2011 Ka Po Chu ALL RIGHTS RESERVED

Upload: others

Post on 18-Dec-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

2011

Ka Po Chu

ALL RIGHTS RESERVED

NEARBY FIBROBLASTS’ RESPONSE TO MULTIPLE ACUPUNCTURE NEEDLE REVOLUTIONS ON

FIBROBLAST POPULATED COLLAGEN GELS

by

KA PO CHU

A thesis submitted to the

Graduate School-New Brunswick

Rutgers, The State University of New Jersey

and

The Graduate School of Biomedical Sciences

University of Medicine and Dentistry of New Jersey

in partial fulfillment of the requirements

for the degree of

Master of Science

Graduate Program in Biomedical Engineering

written under the direction of

David I. Shreiber

and approved by

________________________

________________________

________________________

New Brunswick, New Jersey

January 2011

ii

ABSTRACT OF THE THESIS

Nearby fibroblasts’ response to multiple acupuncture needle revolutions on fibroblast

populated collagen gels

By KA PO CHU

Thesis Director: David I. Shreiber

Acupuncture is an ancient Chinese healing practice, and an alternative therapy for

alleviating pain and chronic disorders. For over twenty years, research is trying to understand

the mechanisms that lead to its therapeutic effect. Our laboratory investigates the cellular and

molecular events in the connective tissue that occur by acupuncture needling. An in vitro assay

was developed to evaluate some of the potential contributors to acupuncture’s effects using a

cellular collagen gel as a loose connective tissue mimic. It was hypothesized besides immediate

changes to cells under mechanical loading from an acupuncture needle, there were chemical

factors released to nearby cells in acupuncture. This thesis investigates whether mechanically

stimulating collagen gels with fibroblasts at different revolutions would release chemical factors

to nearby fibroblasts where flow cytometry was used to observe cell proliferation as an

indicator. Results reveal mechanically stimulating cellular collagen gels at different revolutions

does not cause any changes in cell proliferation to nearby cells. However, dead stained

mechanically stimulated cellular collagen gels showed cell death occurs around the acupuncture

needle. It is possible there were no effects in cell proliferation because when a cellular collagen

gel was needle manipulated, some chemical factors were released into the nearby cells. Then as

iii

needle manipulation increased, more chemical factors were released, but restricted by the

larger amount of cell death around the needle from the increasing rotation.

iv

Acknowledgements

I would like to acknowledge the individuals who have provided extraordinary assistance,

dedication, and support in this project. I am thankful for the guidance my professor, advisor, and

mentor, David I. Shreiber, Ph.D., gave me in my graduate career. I am grateful for Helen M.

Buettner, Ph.D., for guiding and advising me throughout the project. Also, I thank Margaret

Julias, Ph.D., who was the previous Ph.D. candidate in the acupuncture project for mentoring me

when I joined the lab. I am appreciative for the graduate students at the Tissue and Cellular

Biomechanics, Tissue Engineering, Brain and Spinal Cord Injury, Microfluidics Laboratory who

have supported me in this project. They include Shirley Masand and Ian Gaudet. Also, Jeffery

Barminko from the Tissue Engineering, Metabolic Engineering, Stem Cell Bioengineering, and

Applied Immunology Laboratory for teaching me how to use the flow cytometer. I am thankful

for the undergraduate members who are Janice Jeschke and Asha Singanamalli for making my

lab experience a pleasurable ad enjoyable environment to work. Lastly, I am grateful for my

parents, my sister, my family, and God’s eternal love and support.

v

Table of Contents:

Abstract…………………………………………………………………………………………………………………………….……ii

Acknowledgements……………………………………………………………………………………………………………….iv

List of Figures…………………………………………………………………………………………………………………..……vii

Chapter 1. Introduction

1.1 Acupuncture …………………………………………………………………………………………………………...1

1.2 Fibroblasts …………………………………………………………………………………………………………..….3

Chapter 2. Cell Cycle Analysis via Flow Cytometry

2.1. Flow Cytometry Basics …………………………………………………………………………….................5

2.2. FACSCalibur and CellQuest ……………………………………………………………………………………..6

2.3. Cell Cycle Analysis …………………………………………………………………………………………………..8

2.4. Flow Cytometry Data Analysis with MATLAB ………………………………………………….…….11

Chapter 3. Mechanically Stimulated Cellular Collagen Gels

3.1. Sample Preparation ……………………………………………………………………………………………...16

3.2. Fixing Samples …………………………………………………………………………………………………..….19

3.3. Flow Cytometry using PI Analysis ………………………………………………………………………....20

3.4. Collagen Gel Image Analysis with Polarized Light Imaging …………………………………....21

3.5. Calcein AM/ Ethidium Homodimer Viability Assay …………………………………………...…..24

Chapter 4. Results…………………………………………………………………………………………………………...……26

Chapter 5. Discussion……………………………………………………………………………………………………………30

Chapter 6. Summary and Recommendations………………………………………………………………………..32

References……………………………………………………………………………………………………………………….…..36

Appendices

Appendix A………………………………………………………………………………………………………..…………38

vi

Appendix B……………………………………………………………………………………………………………….....52

vii

List of Figures:

Figure 1 – Mechanotransduction response after acupuncture needle rotation on connective

tissue……………………………………………………………………….…………………………………………………………….…..2

Figure 2 – Flow cytometer fluidics……………………………….………………………………………………………..…...6

Figure 3 – Flow cytometer optics…………………………………….……………………………………………………...….7

Figure 4 – Cell cycle analysis example using CellQuestTM…….…………………………………………………….10

Figure 5 – Flow cytometry data analysis with peakreflectmethod2.m…………….…………………….....13

Figure 6 – Peakreflectmethod2.m verification with Gaussian curve and fibroblasts in 10% and

0.5% fetal bovine serum media…………………………………………………………………………….…………….…….15

Figure 7 – Experimental setup images…………………………………………………………………………………….…19

Figure 8 – Polarized light microscopy (PLM) system schematic……………………………………….....….…21

Figure 9 – Intensity_generator_testing.m and file_update_testing.m for plotting and saving pixel

intensity area versus image frames.……………………………………………………………………………………….…24

Figure 10 – PLM images of cellular collagen gel alignment at 1, 2, and 2.5 revolutions…..………..26

Figure 11 – Plot of the percent of cells versus six conditions in G0/G1 and S/G2/M

phases……………………………………………………………………………………………………………………………….….….28

Figure 12 – Cellular collagen gels stained with Ethidium Homodimer and fixed in 10% formalin

with acupuncture needle removed……………………………………………………….…………………………….….…29

Figure 13 - Dead staining with Ethidium Homodimer on cellular collagen gels after twenty-four

hours of needle manipulation with needle in the gel………………………………………………………….…….33

Figure 14 – Plot of percent of cells versus the condition where the cellular gels were GFP FIB or

MSCs with nearby cells were GFP FIB………………………………………………………….……………………….……35

1

Chapter 1. Introduction

1.1. Acupuncture

One of the oldest Chinese healing practices and alternative therapy for alleviating pain and

chronic disorders is acupuncture. Recently, its practice is gaining popularity in Western society.

Also, for the last twenty years, acupuncture research is still trying to understand mechanisms

that lead to its therapeutic effect (Langevin et al., 2002). While previous studies focused on

possible neural mechanisms on acupuncture, recent studies reveal biomechanical mechanisms

may play a role too. At the University of Vermont, research by Langevin et al. suggests that

acupuncture needle rotation initiates cellular and molecular mechanisms in the tissue

surrounding the needle (Buettner et al., 2005). Our laboratory evaluates the cellular and

molecular events in the connective tissue that occur by acupuncture needling.

During acupuncture treatment, fine needles are inserted at specific locations in the body

called acupuncture points, and needles are rotated in these areas. The acupuncture points are

connected to the acupuncture meridians where they form a network throughout the body for

movement, communication, or energy exchange referred as “meridian qi” (Langevin & Yandow,

2002). The meridians are usually along the fascial plans between muscles, or between a muscle

and bone or tendon suggesting the connective tissue may play a role in acupuncture’s

therapeutic response. Also, the therapeutic effect that occurs from needle insertion is “de qi”.

De qi is needle grasp the acupuncturist feels when tissue is gathering around the needle or the

force required to remove the needle after a certain number of needle rotations.

When fine needles are inserted and rotated at the acupuncture points, the subcutaneous

connective tissue thickens and forms a whorl with increasing mechanical stress in the area

surrounding the needle (Buettner et al., 2005). The mechanical stress from needle manipulation

2

deforms the tissue and initiate changes in the resident fibroblasts’ phenotype that may cause

changes in cellular events such as intracellular signaling and synthesis of cellular proteins.

Langevin & Yandow (2002) suggest the acupuncture meridian system corresponds to connective

tissue planes where the acupuncture needle sends a signal through the tissue network because

needle grasp is associated with the connective tissue. The connective tissue planes are believed

to connect all body parts with each other. From Langevin & Yandow’s (2002) in vitro and in vivo

experiments, they show during acupuncture needle rotation, connective tissue winds around

the needle to form a compact mechanical coupling between the needle and the tissue. The

coupling allows further needle rotation that deforms the connective tissue surrounding the

needle sending a

mechanical signal to the

tissue. Therefore, as

shown in Figure 1,

acupuncture needle

manipulation may start a

mechanotransduction

response from

connective tissue both

spatially and temporally

(Buettner et al., 2005).

The connective tissue

winding around the

needle is loose

connective tissue that is

Figure 1. Mechanotransduction response after acupuncture needle

rotation on connective tissue spatially and temporally. After needle

rotation, tissue is deformed and a mechanical signal disperses

through connective tissue fibers and fibroblasts to stimulate

neurons and local cellular responses. (Figure taken from Buttner et

al., 2005)

3

part of the subcutaneous tissue. Subcutaneous tissue contains multiple cell types which include

fibroblasts, adipose cells, and macrophages (Lodish et al., 2008).

1.2. Fibroblasts

Within the loose connective tissue, there are interconnected networks of fibroblasts that

quickly react within minutes to tissue stretch (Langevin et al., 2005, 2006). The cells’ shape will

undergo active, dynamic, and reversible changes caused by acupuncture needle rotation.

Fibroblasts are thought to support the connective tissue and to synthesize extracellular matrix

constituents (Langevin et al., 2004). However, recent research suggests they respond to

mechanical forces in wound absence. For example, fibroblasts grown in tissue culture react

within minutes to mechanical stimuli such as stretch, pressure, traction, and shear forces. Under

mechanical stimulation, they will respond with alterations that include changes in intracellular

calcium and ATP release, signaling pathway activation, actin polymerization, and gene

expression. Fibroblasts synthesize structural components for the extracellular matrix (ECM)

including collagen type I and III along with small amounts of collagen IV, V, VI, elastin, laminin,

proteoglycans, and glycosaminoglycans (Wang & Thampatty, 2006). They also create factors

such as cytokines, growth factors, and matrix metalloproteinases. Furthermore, fibroblasts may

not be “stress-shielded” in loose connective tissue compared with load-bearing connective

tissue. Therefore, externally applied mechanical forces may cause significant effects on

fibroblast mechanical signal transduction processes. The signal transduction processes may

influence the fibroblasts to send a body-wide signaling system responding to mechanical forces

and affecting other physiological systems in the human body.

In our lab, like to Langevin et al., we have also shown needle grasp has been attributed to

loose connective tissue winding around the needle like spaghetti on a fork. In addition, it is has

been hypothesized that this mechanical stimulation is an initiator of cellular and tissue changes

4

within the connective tissue that ultimately contributes to acupuncture’s therapeutic benefits.

Our current goal is to identify and elucidate the elements that govern mechanical coupling to

the needle. However, this phenomenon is difficult to evaluate in vivo or in situ in a reproducible

manner. Therefore, our lab has developed an in vitro assay to evaluate some of the potential

contributors to acupuncture’s effects using a collagen gel as a loose connective tissue mimic

(Julias et al., 2008). We previously examined collagen concentration, collagen crosslinking, gel

height, needle insertion depth, and assay size and shape. Julais et al. (2008, 2009) also examined

fibroblasts contained in a collagen gel. The fibroblasts experienced altered mechanics during

acupuncture as indicated by the immediate change in alignment and density. Also, recent

research reveal stretching connective tissue causes fibroblast nucleus remodeling where

changes in the nuclear shape may affect cell differentiation (Langevin et al., 2010). The nucleus

acts like a mechanosensor for the cell where changes in its nuclear shape leads to

conformational changes in its chromatin structure and its organization directly affecting

transcriptional regulation (Dahl et al., 2008). Therefore, it is hypothesized besides immediate

changes in the fibroblasts’ alignment and density during acupuncture, there are chemical factors

released to nearby cells. The altered mechanics on the fibroblasts can cause changes in cell

morphology and gene expression that can produce soluble factors affecting cells at a distance.

Then cells at a distance may have changes in their genotype and phenotype. This thesis

investigates whether mechanically stimulating a collagen gel containing fibroblasts at different

revolutions releases chemical factors that affect nearby fibroblasts using cell proliferation as an

indicator for phenotypic changes. Flow cytometry was used to analyze the nearby cells’

proliferation and polarization light microscopy on the collagen fiber alignment of cellular

collagen gels.

5

Chapter 2. Cell Cycle Analysis via Flow Cytometry

For this project, flow cytometry was used to analyze nearby cells’ proliferation as an

indicator for chemical factors released from a needle manipulated cellular collagen gel. The

following will discuss some flow cytometry basic principles, and the CellQuest program it uses

for saving and analyzing data. Then address a problem CellQuestTM has for evaluating collected

data and a solution with a written MATLAB program.

2.1. Flow Cytometry Basics

Flow cytometry is a method that uses optics and electronics to determine and to quantify

cellular features, organelles, cell structural components, or latex beads (Nunez, 2001; Givan,

2001). It measures cells individually and can count thousands of cells in few seconds. Besides

counting cells, flow cytometry can separate different cell types in a mixed sample by quantifying

the cells’ structural features. Compared to traditional microscopy, flow cytometry allows the

analysis of more cells in a short time, and applies in fields such as biomedical research and

clinical applications. In this thesis, nearby fibroblasts’ proliferation was measured with flow

cytometry.

The method requires cells to be in an alive or fixed single cell suspension. This project’s

experiments used a fixed cell suspension. Afterwards, the fixed cell suspension sample is passed

through a tube and mixed with the flow solution (Figure 2). The cells pass through a chamber in

a continuous flow where they are excited by a laser emitting fluorescent light that is in the flow

cell. Two signals are collected for analysis, which are the scattered light and the emitted

fluorescence signals. The flow cytometer has three major parameters for each cell passing

through the chamber for analysis. The first parameter is forward scatter intensity (FSC) that is

about proportional to the cell’s diameter. The side scatter intensity (SSC) is approximately

proportional to the amount of granular structure inside the cell and it is also called orthogonal

6

scatter. The last

parameter is the

fluorescence intensities

which are measured at

several wavelengths

simultaneously for each

cell. Usually the cells are

marked with fluorescent

antibodies and the

fluorescent intensities

are used to detect the

markers. The markers

can bind to surface

receptors or intracellular

components such as

DNA. For this project, propidium iodide (PI), a nucleic acid dye, was used to stain the DNA of

fibroblasts.

2.2. FACSCalibur and CellQuest

The Beckman Coulter FACSCalibur is the flow cytometry system used for the experiments.

The system can detect six parameters, which are the forward scatter (FSC), side scatter (SSC),

three fluorescent emissions in green (FL1), yellow-orange (FL2) and red (FL3, FL4), and a smaller

diode laser emits red light at 635nm for fluorescent compound above 650nm (Figure 3). There

are a large amount of fluorogenic dyes that covalently couples to antibodies, or for intracellular

staining cellular constituents. For this thesis, cell cycle analysis was observed with PI to stain

Figure 2. Flow cytometer fluidics. The flow solution tank is filled

with sheath fluid or 1x dublecco’s phosphate buffered saline. The

solution passes through a tube and mixes with the sample, purple

dots, that are pulled up from a test tube. Then the mixture of flow

solution and sample enter the flow cell for analysis and afterwards

directed to the waste tank. The sample can be a cells or latex beads

in suspension.

7

fibroblasts’ DNA. PI is excited with 488nm wavelength light and is detected with above 570nm

wavelength (FL2 and FL3 parameters).

Figure 3. Flow cytometer optics where there are two

lasers and six parameter detectors. The wavelengths of

each parameter are indicated by color (FL1, FL2, FL3,

FL4).

FACSCalibur can analyze cells in suspension at a rate of several hundred cells/sec with a cell

concentration of 105-106 cells/mL. The data files created from the flow cytometry are Flow

Cytometry Standard (FCS) files. The files are saved directly to a PowerPC Macintosh computer’s

hard disk where immediate data collection can be visualized and data analysis can be performed

with CellQuestTM. Since PI is used to stain the cells’ DNA in this project, CellQuestTM can be used

to visualize cells undergoing different phases of the cell cycle.

8

2.3. Cell Cycle Analysis

In order to visualize cells’ DNA content with flow cytometry, a fluorescent dye such as PI

needs to bind onto permeabilized single cells’ DNA stoichiometrically (Nunez, 2001). When cells

pass through the flow cytometer the emitted fluorescent signal provides the electronic pulse

with a height proportional to the total fluorescence emission from the cell where the

fluorescence data represent measurement of cellular DNA content.

Along with measuring cellular DNA content, flow cytometry can distribute cells in various

phases of the cell cycle (Givan, 2001). The cell cycle phases occur in the cell’s nucleus and

include G0/G1, S, and G2/M phases (Lodish et al., 2008). G0 phases represent cells that are not

dividing. G1 phase is the stage where cells grow and cellular contents duplicate except the

chromosomes or those recovering from cell division. The S phase is known as the synthesis

phase where DNA or 46 chromosomes are duplicated in a cell. In the G2 phase, the cell will

check and repair the duplicated chromosomes for mistakes before entering into M or mitosis

phase. Therefore, cells in S, G2 and M has twice the amount of normal DNA because cells in S

phase are creating DNA, G2 phase completed DNA synthesis while those M phase finished

chromosome condensation and organization, but before cytokinesis. On the other hand, cells in

G0/G1 phases have one set of chromosomes.

Using CellQuestTM plots are created using data collected from flow cytometry where a

certain amount of particles or cells collected from the flow cytometer generates a SSC versus

FSC scatter plot (Figure 4). Then using this plot the densest region is selected to produce two

histogram plots in the intensity PI staining detects, which are at FL2 and FL3 parameter. Graphs

in the FL2 are linear scale and log for FL3 where both are set in 423 volts during data collection.

The FL2 and FL3 plots are DNA histogram graphs that reveal cells in different cell cycle phases.

From the DNA histograms, G0/G1 phases are the first peak closest to the vertex, which contains

9

one set of DNA. G2/M phases are the second peak because cells in this phase have two times

the amount of DNA in the cell. Therefore, cells with greater cellular content will be farther away

from the plot’s vertex. On the other hand, cells that are synthesizing DNA, S phase, will have

greater mass than cells in G0/G1 phases, but not as great as those in G2/M phases and will be in

between the two phases. Figure 4 also shows and labels cell cycle phases with manual makers

from CellQuestTM tool box. However, hand selecting marker regions does not provide an

accurate representation of the cell cycle regions. For example, if the FL2 and FL3 plots are

compared there are differences in percent of cells in each cell cycle phase because plots in the

linear and the log scale are marked manually. Also, the G0/G1 peak is cut off in the two

histogram plots. Therefore, another approach is used to analyze flow cytometry data with a

written MATLAB program.

10

Figure 4. Example of cell cycle analysis data using CellQuestTM. Cells used are fibroblasts stained

with PI stain and data collected for 10 000 events with the flow cytometer. The selected region

in the scatter plot is used to create the histogram graphs. The DNA histogram plots are for FL2

and FL3 parameters where former is in linear scale and the latter in log for the two intensities.

Counts on the y-axis represent the number of counted cells. Markers are manually selected and

they indicate cell cycle phases (M1=G0/G1; M2=S; M3=G2/M). The histogram statistics show

statistics for the selected region from the scatter plot and from the markers for FL2 and FL3

parameters. Sample shown is for one sample where fibroblasts were cultured in 10% fetal

bovine serum media.

11

2.4. Flow Cytometry Data Analysis with MATLAB

Instead of using CellQuestTM to analyze collected flow cytometry data, the FCS files were

converted to a Microsoft Office Excel Comma Separated Values File with FCSExract program

created by Earl F. Glynn from Stowers Institute for Medical Research (2006). The FCSEXtract

program converts data into a Microsoft Office Comma Separated Values Files and extracts data

from all of the flow cytometer’s parameters. Afterwards, using MATLAB version R2009a, a

custom-written program (peakreflectmethod2.m) was executed to analyze extracted flow

cytometry data with peak reflect method. Detailed information about the program is in

Appendix A.

Peak reflect method is the simplest method for analyzing DNA histogram for cell cycle

analysis (Givan, 2001). The shape of G0/G1 peak is assumed to be symmetrically distributed

around the mode. Therefore, the percentage of cells in G0/G1 phases is the width of the peak

from the left side from the mode is symmetrical to the right side. The same procedure is applied

to the G2/M peak. And the difference of the two regions gives the percentage of cells in S phase.

The written program processes the Excel data file for FL2 parameters in linear scale because

a linear scale DNA histogram provides a clearer representation for the cell cycle phases than log

scale. Peakreflectmethod2.m needs to call upon a peakdet.m function to debug. The peakdet.m

is a program written and released to public domain by Eli Billauer (2008). It searches for the

local minima and maxima in a noisy signal. The signal in the project is the FL2 parameter DNA

histogram data set at 423 volts and 10 000 events were collected for every sample. Then

peakreflectmethod2.m bins the FL2 data points at a seven bin size where the bin size is

adjustable. Afterwards, the program plots two figures with all the data from FL2 parameter in a

bar plot including the local maximum and minimum points. Next, the experimenter counts from

left to right to select four points with a drag box on the first figure (Figure 5a). The first point is

12

the closest local minimum to the starting point of G0/G1 phases, while the second point is the

closest local maximum that represents the peak of G0/G1 phases. The third point is the local

maximum for the second peak associating to G2/M phase. Finally, the last point is the local

minimum for termination of G2/M phases. After the experimenter selects the points on the first

figure, the ‘Filtered (FL2)’ button is selected on the second figure to reveal the selected regions

in blue, green, and red (Figure 5b). The values not selected by the experimenter were filtered

out with a rectangular window. In addition, the percent of cells from each cell cycle phases are

calculated and displayed using peak reflect method. The program also writes the percent of cells

for each cell cycle phase in a user titled Excel spread sheet and verifies the sum of the percents

from each phase is 100% on MATLAB’s command window.

Compared to CellQuestTM (Figure 4), peakreflectmethod2.m (Figure 5) provides a more

accurate and controlled representation for the percentage of cells in each cell cycle phase.

Unlike CellQuestTM, peakreflectmethod2.m uses the local maximums and minimums of the FL2

histogram plot to locate the different cell cycle phases creating a more uniform way to select

these phases. On the other hand, manual makers from CellQuestTM create a less accurate

representation because the experimenter has to hand select regions of interest, which can vary

when reanalyzing the same sample.

(a)

13

(b)

Figure 5. MATLAB program (peakreflectmehod2.m) used to analyze data from flow cytometry.

Sample shows 10 000 fibroblasts or events from FL2 parameter set at 423 volts where the cells

were cultured in 10% fetal bovine serum media. (a) reveals figures seen when program is

debugged. The experimenter selects two local minima (green star) for the start of G0/G1 phase

and end of G2/M phases. Then two local maxima (red star) are selected for G0/G1 and G2/M

peak. Then select ‘Filtered (FL2)’ button. (b) displays figures after ‘Filtered (FL2)’ button

selection where the second figure shows the regions the experimenter chose from the four drop

boxes. The percents of cells from the cell cycle using peak reflect method is on the right to the

second figure. The sum of all percents is displayed on the MATLAB command window to be

100% and the program writes the values for each cell cycle in an Excel spread sheet.

If the experimenter selects incorrectly and clicks on ‘Filtered (FL2)’ a prompt will appear

advising he/she to reselect values with the drag box from Figure 5a. When the ‘Raw (FL2)’

button is selected on the second figure the plot always reverts back to the plot from the first

figure. Peakreflectmethod2.m was verified with known functions such as a Gaussian curve and

fibroblasts in 10% fetal bovine serum media and 0.5% fetal bovine serum media (Figure 6). From

14

Figure 6a shows a Gaussian curve, the experimenter selects the local maximum on the curve and

presses ‘Filtered (FL2)’ where the program calculates the area of the selection and multiplies the

value by two to reflect it then normalizes the value. The figure to the right of Figure 6a displays

the region the experimenter selected. Peakreflectmethod2.m was also verified with flow

cytometry data using PI staining for cell cycle analysis. Figure 6b shows green fluorescent

protein fibroblasts (RDFS) cultured in 10% fetal bovine serum media and 0.5% fetal bovine

serum media that were fixed then stained with PI staining prior to analysis. The collected data

were analyzed with peakreflectmethod2.m where the cells are cultured in 0.5% fetal bovine

serum media has less cells entering into the S, G2/M phases and more in the G0/G1 phases

because cells were serum starved. On the other hand, cells cultured in 10% fetal bovine serum

was the opposite from cells in lower amount of media because they have sufficient nutrients to

grow. In this thesis, cells were cultured in 0.5% fetal bovine serum media to serum starve the

cells, so if there were chemical factors released from needle manipulation it was not caused by

nutrients from the amount of fetal bovine serum in the media.

(a)

15

(b)

Figure 6. Peakreflectmethod2.m verification using known functions such as Gaussian curve (a)

and RDFS in fetal bovine serum media at 10% and 0.5% for 10 000 events from FL2 parameter

set at 423 volts (b).

16

Chapter 3. Mechanically Stimulated Cellular Collagen Gels

The following is the methodology for mechanically stimulating a cellular collagen gel where

it is separated into five parts:

1) Sample preparation

2) Fixing samples

3) Flow cytometry for PI analysis

4) Collagen gel image analysis with polarized light imaging

5) Dead staining cellular collagen gels with Ethidium Homodimer

The cells used were rat dermal green fluorescent protein fibroblasts (RDFS) from passage 10

to 25. It is hypothesized that mechanically stimulating cells within a collagen gel via acupuncture

needle rotation will produce chemical factors that affect proliferation of RDFS in the gel or

nearby with an in vitro assay. Also, a polarization light microscopy (PLM) system was used to

capture collagen fiber alignment and the cellular gels were mechanically stimulated with a

motor that controls the number of revolutions the acupuncture needle (Carbo CT-1 Singles,

Gauge 5, 0.25mm diameter) rotates at one direction.

3.1. Sample Preparation

RDFS were used in every experiment where six conditions were done in triplicate. Glass-

bottom or MatTek dishes (MatTek Corporation, Part No. P35G-0-20-C) were used and all cells

were initially seeded in 10 % fetal bovine serum media (FBS, Atlanta Biologicals, Cat. No.

S11550) prior to serum starving at 0.5% FBS media. The media is made from Dulbecco’s

Modified Eagle’s Medium (DMEM, Sigma, Cat. No. D5546) supplemented with 2% penicillin-

streptomycin (Sigma, Cat. No. P4458), 2% L-glutamine 200mM (Sigma, Cat. No. G7513), and

10%/0.5% fetal bovine serum. Nearby cells were ones seeded on the bottom of MatTek dishes

with two polydimethylsiloxane (PDMS) rings (total thickness ~4.55mm) in the well to suspend a

17

type I collagen gel (Elastin Products Co., Cat. No. C857) with or without cells. 12-well plates and

MatTek dishes were placed in an incubator at 37°C and 5% CO2 for cell survival. The six

conditions were the following:

F = cells + PDMS

F+C = cells + PDMS + collagen gel without cells

0rev= cells + PDMS + collagen gel with cells

1, 2, 2.5rev = cells + PDMS + collagen gel with cells + acupuncture needle at 1, 2, and 2.5

revolutions

The cell ratio in the cellular collagen gel and in the well is 10:1, and flow cytometry was used to

observe cell cycle analysis as an indicator for cells nearby were affected by a mechanically

stimulated collagen gel. For the experiment, the cell concentration was one million cells/mL in

the collagen gel with cells to 100 000 cells/mL in each well. Propidium iodide (PI), a nucleic acid

dye, was used to stain RDFS’ DNA for analysis.

Collagen gel solutions at 2.0mg/mL from a 3.75mg/mL stock solution were made for

placement into hydrophilic porous polyethylene (PPE) rings with 5/8” outer diameter and ½”

inner diameter. In each ring, 0.70mL of collagen solution was placed inside. Three gels were

acellular while the rest were cellular. The PPE rings were held in place in a 12-well plate with a

circular PDMS ring (7/8” outer, 5/8” inner, 3mm thickness, Figure 7a). The collagen gels were

placed into a 37°C 5% CO2 incubator for complete fibril formation in four hours. Then the PDMS

circular rings were removed from the collagen gels with and without cells, and they were placed

in 10% FBS media for forty eight hours for cells to compact in the gel. Afterwards, the collagen

gels were washed with 0.5% FBS media prior to placement with nearby cells for needle

manipulation.

18

For nearby cells, two PDMS rings of (a) 1 ” outer, 5/8” inner (~3mm thickness) and

(b) 1 ” outer, 9/16” inner (<1.55mm thickness) were placed into MatTek dishes. Cells were

seeded in the MatTek dishes at 10 000 cells/mL in 10% FBS media where in twenty-four hours,

media was changed to 0.5% FBS media for serum starving.

After the cellular/acellular collagen gels compacted in 10% FBS media for 48 hours, they

were washed with 0.5% FBS media and placed into MatTek dishes with cells seeded on the

MatTek dish’s bottom for motor needle manipulation from zero to 2.5 revolutions with the PLM

system (Figure 7b, 7c). Prior to needle insertion, a circular sheet of PDMS with holes ( 1 ½ “

outer, 3/16” holes) and a square piece of polarizer (1 ½” by 1 ½”) were placed on top of a

MatTek dish where the former was to stabilize the acupuncture needle and the later to visualize

collagen fiber alignment during needle rotation shown in Figure 7b. The PDMS and polarizer

replace the MatTek dish’s plastic cover. Twenty-four hours after needle manipulation, the

needles were removed from the collagen gel where the gels were stained with dead staining

prior to fixing in 10% formalin. On the other hand, nearby cells are fixed with 70% ethanol for at

least one day for flow cytometry analysis.

19

(a) (b) (c)

Figure 7. Sample preparation images. (a) shows PPE rings held in place with PDMS in a 12-well

plate. Collagen gel solution was placed in each well. (b) displays a setup image where RDFS are

seeded on the bottom of the MatTek dish and cellular/acellular collagen gels suspended on top.

PLM system for capturing collagen fiber alignment and motorized needle manipulation (c).

3.2. Fixing Samples

The procedure for fixing nearby cells with 70% ethanol requires cells to be washed with 1x

dublecco’s phosphate buffered saline (DPBS, MP Biomedicals, Cat. No. 1860454). Then the cells

were trypsinized with 1x trypsin EDTA (Sigma, Cat. No. T4299) and neutralized with 0.5% FBS

media. Afterwards, RDFs from the bottom of the MatTek dish were counted with a

hemocytometer and centrifuged at 700 x g, 2 min, 25°C. Then they were aspirated and the cells

were re-suspended in 1x DPBS before centrifuging again at the same settings. Lastly, the

supernatant was aspirated and cells re-suspended in 1x DPBS and 2% FBS before placement into

20

a 15mL centrifuge tube with 3mL of 70% ethanol for fixation. The tubes were then placed in to a

4°C fridge for at least 24 hours prior to flow cytometry.

When samples were ready for cell cycle analysis with flow cytometry, they were removed

from the 4°C fridge and centrifuged at 200 x g, 10 min, 4°C. Propidium iodide (PI) was prepared

by making a 3μM solution of PI (1mg/mL) by making a 1:500 dilution with Tris staining buffer

where 0.25-0.50mL volume was needed for every sample. PI is a nucleic acid dye that binds into

the DNA of permeabilized cells. For the thesis, PI is used to observe cell cycle analysis of RDFs on

the MatTek dish.

3.3. Flow Cytometry using PI Analysis

In flow cytometry, data are obtained with dot and histogram plots where regions of interest

were boxed in the dot plots for data analysis. Data from CellQuest was extracted with

FACSExtract (Glynn , 2006) and data were re-plotted and the percentage of cells in each cell

cycle phase were calculated using peak reflect method with a written MATLAB program. Only

those cellular collagen gels that show collagen fiber alignment were analyzed with the written

MATLAB program, peakreflectmethod2.m. The ones with fiber alignment were verified with

another written MATLAB program called intensity_generator_testing.m.

The peak reflect method is the simplest method to analyze a DNA histogram where the

shape of the G0/G1 and G2/M peaks are assumed to be symmetrically distributed around the

mode (Gavin, 2001). Also, the region between the two peaks is the S phase. For more detail

about data analysis using flow cytometry refer to Chapter 2.

21

3.4. Collagen Gel Image Analysis with Polarized Light Imaging

Besides using flow cytometry for data

collection, polarization light microscopy (PLM)

was used on the cellular collagen gels to

visualize and to capture collagen fiber

alignment images in real time during

acupuncture needling. The PLM system (Figure

8) is a dissection stereomicroscope (Carl Zeiss

Microimaging, Thornwood, NY) and a USB

camera (Matrix Vision, GmbH, Oppenweiler,

Germany) that is physically inverted and

clamped to a benchtop for holding a motor

stand and MatTek dish (Julias et al., 2008).

The collagen gels with cells were placed

between two polarizers that were placed at

90° apart where the least amount of light

passes through. The brightest region occurs

when the collagen fibers orient at 45° to the

filter optical axis to indicate alignment. Cellular collagen gels were needled at various

revolutions with a motor to control needle rotation and the images were captured at 6 frames

per second with needle rotation at 0.3 revolutions per second. Only the collagen gels with RDFS

that show collagen fiber alignment were analyzed, and the fiber alignment were verified by a

MATLAB program.

Figure 8. Polarized light microscopy (PLM)

system schematic. The system is used to

observe and capture collagen fiber alignment

during acupuncture motor needling (Figure

taken from Julias et al., 2008).

22

With the PLM system (Figure 8), prior to motor needle rotation the image was darkest

because two pieces of polarizers were at 90° to each other once the needle rotates more light

from the camera passes though the polarizers and collagen fiber alignment becomes visible

where the fiber alignment was clover shape. Also, as the acupuncture needle rotates the clover

shape increases in size or intensity with the largest intensity area was the brightest image. Since

cellular collagen gel alignment was captured in real time, these images were analyzed with

MATLAB R2009a for fiber alignment by graphing the pixel intensity area versus the number of

images. Only those images with collagen fiber alignment were used for data analysis. The

written program is called intensity_generator_testing.m and it allows the experimenter to select

the region where collagen fiber alignment occurs. Then the program converts the original

images to binary images. Afterwards, it thresholds and calculates each image’s pixel intensity

area where collagen fiber alignment begins to when needle rotation ends. When

intensity_generator_testing.m debugs the experimenter has to input the image file name, the

image frame where needle rotation starts, and the image frame where needle rotation ends

(Figure 9a). The program calls upon pix2data.m, a program from MATLAB Central’s open file

exchange, to convert pixel position to axes data point. Also, the experimenter may choose to

save the pixel intensity areas points into a Microsoft Excel file with file_update_testing.m (Figure

9b). For additional information about the programs, they are in Appendix B.

23

(a)

24

(b)

Figure 9. MATLAB program used to plot the pixel intensity area versus the number of image

frames along with a sample image of displayed figures after ‘Select and Plot’ selection (a). (b) is

used for saving the pixel area into a Microsoft Excel file.

3.5. Dead Staining Cellular Collagen Gels with Ethidium Homodimer

Besides observing and capturing collagen fiber alignment during acupuncture needle

rotation with the PLM system, Live and Dead Viability/Cytotoxicity Kit (Invitrogen, Biosciences,

Dublin, Cat. No. L-3224) was used to observe live and dead cells in needled cellular collagen gels.

Only the Ethidium Homodimer was used in the assay to stain the dead cells in cellular collagen

gels because used cells were GFP FIB-positive and demonstrated green fluorescence when alive.

Ethidium Homodimer stains the nucleic acid of permeablized cell membrane or dead cells

red. In the viability assay, a 20μL 2mM stock solution of Ethidium Homodimer were added into

1x DPBS. Afterwards, the solution was vortexed and cellular collagen gels were removed from

the MatTek dish and placed into a 12-well plate. Then the solution was placed into the 12-well

plate, wrapped in aluminum foil, and incubated at 5% CO2 and 37°C for 45 minutes. After

removing the 12-well plate from the incubator, the cellular collagen gels were washed with 1x

DPBS and fixed with 10% formalin. The cellular collagen gels were observed with fluorescein

25

isothiocyanate (FITC) and tetramethyl rhodamine isothiocyanate (TRITC) optics with an Olympus

IX81 fluorescent microscope.

26

Chapter 4. Results

This thesis investigates whether mechanically stimulating cellular collagen gels at different

revolutions would release chemical factors affecting nearby cells. Rat dermal green fluorescent

protein fibroblasts (RDFS) were used and nearby cells were analyzed with flow cytometry. Those

collagen gels revealing collagen fiber alignment at 1, 2, and 2.5 revolutions with the polarized

light microscopy (PLM) system were kept and those nearby cells were used for flow cytometry

analysis (Figure 10). Specifically, nearby cells were fixed in ethanol and stained with propidium

iodide (PI) before analysis. Afterwards, a written MATLAB program was used to analyze

percentage of these cells’ in difference cell cycle phases.

1 revolution 2 revolutions 2.5 revolutions

Figure 10. PLM images of cellular collagen gel alignment at 1, 2, and 2.5 revolutions. As needle

revolution increases, the collagen fiber alignment increases. The cellular collagen gels that show

fiber alignment were cultured for twenty-four hours, and nearby cells were fixed and stained

with PI for flow cytometry analysis.

Peakreflectmethod2.m was used to analyze nearby cells and the percentage of cells in

each cell cycle phase were saved in by the program into a Microsoft Office Excel file where these

values were plotted (Figure 11). Figure 11 shows average percent of cells for six conditions in

G0/G1 phases and S/G2/M phases. The experimental controls were fibroblasts (F, n=20) and

27

fibroblasts + an acellular collagen gel (F+C, n=20) where F+C condition reveal there was a slight

increase in cells at the S/G2/M phases. For the cellular collagen gels, there was +2% difference

in the percentage of cells proliferating from 0 (n=19) to 1 (n=14) to 2 (n=11) revolutions. At 2.5

revolutions (n=7), a slight increase in cells entering the S/G2/M phases.

(a)

28

(b)

Figure 11. Plot of the percent of cells versus six conditions. (a) plots the percent of cells in the

average G0/G1 phases while (b) for the cells in average S/G2/M phases in every condition. The

error bars show the standard error of the mean. The sum of the cells’ percentages for each

condition is 100%. The graphs reveal as the number for needle rotation increased, the

percentage of cells lies on the range for the 0 revolution condition.

Besides analyzing nearby cells with the flow cytometer, needle manipulated cellular

collagen gels were analyzed after needle manipulation for twenty-four hours with dead staining

and fixing the gels in 10% formalin (Figure 12). The cellular collagen gels were then observed

with an Olympus IX81 fluorescent microscope at tetramethyl rhodamine isothiocyanate (TRITC)

29

optics for dead cells and fluorescein isothiocyanate (FITC) optics for live RDFS. Figure 12 reveal

less RDFS die at 0 revolution, but once needle manipulation occurs cells die around the needle.

(a) (b)

(c) (d)

Figure 12. Cellular collagen gels stained with Ethidium Homodimer for dead staining and fixed in

10% formalin with acupuncture needle removed. Stained cells were labeled red (TRITC optics)

and live RDFS were labeled green (FITC optics). Images were taken at 4x magnification for

revolutions at (a) 0, (b) 1, (c) 2, and (d) 2.5 with image scale at 500μm.

30

Chapter 5. Discussion

Skin under mechanical loading is subjected to tensile, shear, and compressive forces (Wang

& Thampatty, 2006). Any kind of mechanical loading changes living tissue’s structure,

composition, and function. Similarly, in acupuncture, manipulating the acupuncture needle

provides the mechanical load. The needle is placed at specific points on the body and rotated

causing collagen in the connective tissue to wind and gather around the needle. Then within

minutes after needle rotation, cells within the connective tissue send a cellular response to this

mechanical load (Langevin et al, 2006). The mechanical loading in the connective tissue also

subjects the cells in this tissue such as fibroblasts to tension, shear, and compression. Since cells

in the connective tissue are in a different environment after mechanical loading, they will react

with different cellular responses. Research reveals cell shape and cytoskeletal remodeling are

indicative of mechanotransduction responses in the cell’s environment that are associated with

cellular responses such as gene transcription (Langevin et al., 2007; Lundon, 2007). This project

hypothesizes besides immediate changes to cells under mechanical loading from an

acupuncture needle, there are chemical factors released to nearby cells in acupuncture. The

thesis investigates with an in vitro assay whether mechanically stimulating a collagen gel with

fibroblasts at different revolutions would release chemical factors to nearby cells using cell

proliferation as an indicator.

Referring to Figure 11, when needle rotation increased from 0 to 2.5 revolutions, there were

small fluctuations at 70% and 30% of cells proliferating at G0/G1 and S/G2/M phases.

Comparing the controls, F and F+C, show F+C condition has 1.5% increase in cells at the S/G2/M

cell cycle phases because cellular and acellular collagen gels were allowed for cellular

compaction in 10% fetal bovine serum (FBS) media for forty eight hours prior to needle

31

manipulation and culture in 0.5% FBS media. Some of the nutrient rich media remained on the

acellular collagen gel even though it had been washed with 0.5% FBS media.

To analyze data, a 2-way analysis of variance (ANOVA) on the experimental data was

calculated comparing samples in each condition for selected experimental days (fixed effect) to

all samples in each condition for all experimental days (random effect). The 2-way ANOVA

showed significance at p<0.05, so a Fisher’s least significant difference test was applied to find

the significances and differences of all pairwise comparisons between conditions. A significance

level of p<0.05 was used and results show there was some significance between acellular and

cellular collagen gels, but none among cellular collagen gels mechanically stimulated at different

revolutions.

Although statistics reveal cell proliferation at a distance was not affected by acupuncture

needling, there were changes in the mechanically stimulated cellular collagen gels (Figure 12).

Fibroblasts perished around the acupuncture needle and as the amount of needle rotation

increased, more cells perished around the needle from tension, shear, and compression caused

by a rotating acupuncture needle. As such, a potential reason for no affect in cell proliferation

on nearby cells from needle manipulated cellular collagen gels is there was not sufficient

amount of chemical factors released by the cellular collagen gels to nearby cells because of cell

death. Langevin et al. (2006, 2007) show cells spread and they send cellular responses to a

mechanical load, so a cellular response such as chemical factors must be sent by fibroblasts in

the gel after needle rotation. However, the signal was not strong enough to induce cell

proliferation because more fibroblasts perish as needle rotation increased.

32

Chapter 6. Summary and Recommendations

We did not detect significant differences in cell proliferation following mechanical

stimulation of cellular collagen gels via acupuncture rotation. However, when observing the

mechanically stimulated cellular collagen gels, cell death occurs around the acupuncture needle

(Figure 12). It is possible that there were no effects in cell proliferation because when a cellular

collagen gel was needle manipulated some chemical factors were released into the nearby cells,

but as more cells perish in the gel with increasing needle rotation less chemical factors were

produced to cause significant changes in cell proliferation on nearby cells. Therefore, future

experiments would investigate the cell death around the point of needle manipulation. Figure

13 displays preliminary images of cellular collagen gels at 0 to 2.5 revolutions with dead staining

after twenty-four hours of needle manipulation. In addition, future studies should observe

different chemical factors released by fibroblasts to understand changes to these cells in a

collagen gel and those at a distance. Some factors that are interesting to study are matrix

metalloproteinase 2 (MMP-2) and integrin α2β1. MMP-2 is a protein that breaks down the

extracellular matrix and it is found to be reduced under mechanical stress and increased when

stress is released (Le et al., 2002). On the other hand, integrins are receptors responsible for

cell-cell adhesion and cell-extracellular matrix attachment. Integrins such as integrin α2β1 is

suggested to be the main integrin receptor for collagen type I and attachment of cells to

collagen (Taubenberger et al., 2007).

33

(b) (b)

(c) (d)

Figure 13. Dead staining with Ethidium Homodimer on live cellular collagen gels at (a) 0, (b) 1, (c)

2, and (d) 2.5 revolutions after twenty-four hours of needle manipulation with needle in the gel.

Red shows dead cells with TRITC optics and green displays RDFS with FITC optics. Cell death

occurred at needle manipulation site and images were at 4x magnification with yellow scale bar

at 500μm.

Furthermore, another cell type such as mesenchymal stem cells (MSCs) could be used to

replace cells in the gel and nearby. It is of interest because the subcutaneous tissue has different

cells other than fibroblasts such as adipose cells, and macrophages where recent research

reveals MSCs can be derived from adipose tissue. Also, MSCs are multipotent mesenchymal

34

stromal cells that can be isolated from almost every kind of connective tissue and from bone

marrow (Uccelli et al., 2008). Some preliminary data observed the condition where cellular gels

were rat bone marrow MSCs and nearby cells were RDFS compared with cellular gels and nearby

cells were RDFS (Figure 14). Using cellular MSCs gels reveal fewer cells were proliferating

compared with cellular RDFS gels.

(a)

35

(b)

Figure 14. Plot of percent of cells versus the condition where the cellular gels were RDFS or

MSCs with nearby cells were RDFS. The RDFS were from a rat’s dermis and MSCs were from rat

bone marrow. Cells were cultured in 0.5% FBS media or 1.0% FBS MSC media depending if the

cellular gel was RDFS or MSCs. The graphs show the percent of cells that are nearby and the

error bars are the stand error of the mean. (F, n=3; MSC, n=3)

36

References: Billauer, E. (2008)., peakdet: Peak detection using MATLAB,

http://billauer.co.il/peakdet.html Buettner, H. M., Shreiber, D. I., Langevin, H. M., (2005)., Acupuncture tissue

mechanisms, Tissue engineering, 10(2), 81-84. Dahl, K. N., Ribeiro, A. J. S., Lammerding, J., (2008)., Nuclear shape, mechanics, and

mechanotransduction, Circulation Research, 102, 1307-1318. Givan, A. L., (2001)., Flow cytometry first principles, 2nd Ed., Wiley-Liss. Glynn, E. F., (2006)., FCSExtract Utility for Flow Cytometry Standard (FCS) data,

Stowers Institute for Medical Research, http://research.stowers-institute.org/efg/ScientificSoftware/Utility/FCSExtract/index.htm

Julias, M., Edgar, L. T., Buettner, H. M., Shreiber, D. I., (2008)., Collagen content and stiffness affect the biomechanical response of collagen gels to acupuncture in vitro, Proceedings of the ASME 2008 Summer Bioengineering Conference, 1-2.

Julias, M., Edgar, L. T., Buettner, H. M., Shreiber, D. I., (2008)., An in vitro assay of collagen fiber alignment by acupuncture needle rotation, Biomedical engineering online, 1-12.

Julias, M., Edgar, L. T., Buettner, H. M., Shreiber, D. I., (2009)., Emulating the anatomy of acupuncture points with in vitro models, Proceedings of the ASME 2009 Summer Bioengineering Conference, 1-2.

Langevin, H. M., Bouffard, N. A., Badger, G. J., Iatridis, J. C., Howe, A. K., (2005)., Dynamic fibroblast cytoskeletal response to subcutaneous tissue stretch ex vivo and in vivo, Am. J. Physiol. Cell Physiol., 288, 747-756.

Langevin, H. M., Bouffard, N. A., Badger, G. J., Churchill, D. L., Howe, A. K., (2006)., Subcutaneous tissue fibroblast cytoskeletal remodeling induced by acupuncture: Evidence for a mechanotransduction-based mechanism, J. Cellular Physiology, 207, 767-774.

Langevin, H. M., Bouffard, N. A., Churchill, D. L., Badger, G. J., (2007)., Connective tissue fibroblast response to acupuncture: Dose-dependent effect of bidirectional needle rotation, J. Alternative and Complementary Medicine, 13(3), 355-360.

Langevin, H. M., Churchill, D. L., Wu, J., Badger, G. J., Yandow, J. A., Fox, J. R., Krag, M. H., (2002), Evidence of connective tissue involvement in acupuncture, FASEB Journal.

Langevin, H. M., Cornbrooks, Taatjes, D. J., (2004)., Fibroblasts from a body-wide cellular network, Histochem Cell Biol, 122, 7-15.

Langevin, H. M., Storch, K. N., Snapp, R. R., Bouffard, N. A., Badger, G. J., Howe, A. K., Taatjes, D. J., (2010)., Tissue stretch induces nuclear remodeling in connective tissue fibroblasts, Histochem Cell Biol, 133, 405-415.

Langevin, H. M., Yandow, J. A., (2002)., Relationship of acupuncture points and meridians to connective tissue planes, The Anatomical Record, 269, 257-265.

Le, J., Rattner, A., Chepda, T., Frey, J., Chamson, A., (2002)., Production of matrix metalloproteinase 2 in fibroblast reaction to mechanical stress in a collagen gel, Arch Dermatol Res, 294, 405-410.

Lodish, H., Berk, A., Kaiser, C. A., Krieger, M., Scott, M. P., Bretscher, A., Ploegh, H., (2008)., Molecular Cell Biology, 6th Ed.

Lundon, K., (2007)., Chapter 2 The effect of mechanical load on soft connective tissues In Hammer, W. I., Functional soft-tissue examination and treatment by manual methods, 3rd Ed. (pg. 15-30). Massachusetts: Jones and Barrlett Publishers.

37

MATLAB Central, An open exchange for the MATLAB and Simulink user community, http://www.mathworks.com/matlabcentral/ Nunez, R., (2001)., Flow cytometry for research scientists principles and applications,

Horizon Press. Taubenberger, A., Cisneros, D. A., Friedrichs, J., Puech, P-H., Muller, D. J., Franz, C. M.,

(2007)., Revealing early steps of α2β1 integrin-mediated adhesion to collagen type I by using single-cell force spectroscopy, Molecular Biology of the Cell, 18, 1634-1644.

Uccelli, A., Moretta, L. Pistoia, V., (2008)., Mesenchymal stem cells in health and disease, Nature, 8, 726-736.

Wang, J. H. C., Thampatty, B. P., (2006)., An introductory review of cell mechanobiology, Biomechan Model Mechanobiol, 5, 1-16.

38

Appendices:

Appendix A

Nearby green fluorescent protein fibroblasts were fixed in 70% ethanol and prepared for

cell cycle analysis with propidium iodide using the flow cytometer. MATLAB R2009a was used to

write a program to calculate the percentage of cells in each cell cycle with peak reflect method.

Below are two programs used for data analysis. The peakdet.m is a function open to the public

domain and is written by Eli Billauer detects peaks in a vector (maxima and minima). The second

program, peakreflectmethod2.m, written by the experimenter runs the data (vector) from flow

cytometer through peakdet.m then calculates the percentage of cells in phases of the cell cycle

with peak reflection method. The user selects response with graphical user interfaces, and

percent of cells from G0/G1, S, and G2/M phases are calculated and saved in a user specified

Microsoft Excel file. All data from the flow cytometer are converted into a Microsoft Office Excel

Comma Separated Values file from Flow Cytometry Standard files prior to analysis with MATLAB.

The following are the MATLAB files used for the thesis:

Peakdet.m function [maxtab, mintab]=peakdet(v, delta, x) %PEAKDET Detect peaks in a vector % [MAXTAB, MINTAB] = PEAKDET(V, DELTA) finds the local % maxima and minima ("peaks") in the vector V. % MAXTAB and MINTAB consists of two columns. Column 1 % contains indices in V, and column 2 the found values. % % With [MAXTAB, MINTAB] = PEAKDET(V, DELTA, X) the indices % in MAXTAB and MINTAB are replaced with the corresponding % X-values. % % A point is considered a maximum peak if it has the maximal % value, and was preceded (to the left) by a value lower by % DELTA. % Eli Billauer, 3.4.05 (Explicitly not copyrighted). % This function is released to the public domain; Any use is allowed. maxtab = []; mintab = []; v = v(:); % Just in case this wasn't a proper vector

39

if nargin < 3 x = (1:length(v))'; else x = x(:); if length(v)~= length(x) error('Input vectors v and x must have same length'); end end if (length(delta(:)))>1 error('Input argument DELTA must be a scalar'); end if delta <= 0 error('Input argument DELTA must be positive'); end mn = Inf; mx = -Inf; mnpos = NaN; mxpos = NaN; lookformax = 1; for i=1:length(v) this = v(i); if this > mx, mx = this; mxpos = x(i); end if this < mn, mn = this; mnpos = x(i); end if lookformax if this < mx-delta maxtab = [maxtab ; mxpos mx]; mn = this; mnpos = x(i); lookformax = 0; end else if this > mn+delta mintab = [mintab ; mnpos mn]; mx = this; mxpos = x(i); lookformax = 1; end end end

40

Peakreflectmethod2.m function peakreflectmethod2(fl2) % Ka Po Chu June 15, 2010 edited again on June 30, 2010 % peakreflectmethod2.m On Figure 1, click on the Raw (FL2) for raw data plot with local minimums marked in green. Then % click on each of the popup menus to select the start/stop points in the cell cycle. Figure 2 click on filter button % to plot the selected data points (Filtered (FL2). User has to select new points % everytime prior to evaluation.Also, plot shows regions for cellcycle % phases (G0/G1;S;G2/M)in three colors (blue;green;red). close all; clear; clc; data=xlsread('fl2D2_8-18-10_C2_A0-A6.xls'); %opens excel file for raw FL2 data; testing fl2.xls fl2=data(:,6); %selecting column data(:,1) or sections (5000:10000); need to change for every evaluation P_1=[]; %saves the points selected by the user (mintab(n)) P_2=[]; P_3=[]; P_4=[]; P_5=[]; P_6=[]; P_7=[]; P_8=[]; P_9=[]; P_10=[]; P_11=[]; P_12=[]; P_13=[]; P_14=[]; P_15=[]; P_1m=[]; %saves the points selected by the user (maxtab(n)) P_2m=[]; P_3m=[]; P_4m=[]; P_5m=[]; P_6m=[]; P_7m=[]; P_8m=[]; P_9m=[]; P_10m=[]; P_11m=[]; P_12m=[]; P_13m=[]; P_14m=[]; P_15m=[]; P_1my=[]; %saves the points selected by the user (maxtab(n)) in y-axis P_2my=[]; P_3my=[]; P_4my=[]; P_5my=[]; P_6my=[];

41

P_7my=[]; P_8my=[]; P_9my=[]; P_10my=[]; P_11my=[]; P_12my=[]; P_13my=[]; P_14my=[]; P_15my=[]; % Create and then hide the GUI as it is being constructed. f = figure('Visible','off','Position',[600,500,600,285]); % Construct the components. hraw = uicontrol('Style','pushbutton','String','Raw (FL2)',... 'Position',[315,220,90,25],... 'Callback',{@rawbutton_Callback}); hword = uicontrol('Style','text','String','Please select cell cycle start/stop points',... 'Position',[340,180,250,15]); htext = uicontrol('Style','text','String','1) Start G0/G1',... 'Position',[360,140,110,15]); hpopup = uicontrol('Style','popupmenu',... 'String',{'Point 1','Point 2','Point 3','Point 4','Point 5','Point 6','Point 7', 'Point 8','Point 9','Point 10','Point 11','Point 12','Point 13','Point 14','Point 15'},... 'Position',[350,100,100,25],... 'Callback',{@popup_menu_Callback}); htext2 = uicontrol('Style','text','String','2) Maximum G0/G1',... 'Position',[360,60,110,15]); hpopup2 = uicontrol('Style','popupmenu',... 'String',{'Point 1','Point 2','Point 3','Point 4','Point 5','Point 6','Point 7','Point 8','Point 9','Point 10','Point 11','Point 12','Point 13','Point 14','Point 15'},... 'Position',[350,20,100,25],... 'Callback',{@popup_menu_Callback2}); htext3 = uicontrol('Style','text','String','3) Maximum G2/M',... 'Position',[470,140,110,15]); hpopup3 = uicontrol('Style','popupmenu',... 'String',{'Point 1','Point 2','Point 3','Point 4','Point 5','Point 6','Point 7','Point 8','Point 9','Point 10','Point 11','Point 12','Point 13','Point 14','Point 15'},... 'Position',[480,100,100,25],... 'Callback',{@popup_menu_Callback3}); htext4 = uicontrol('Style','text','String','4) Stop G2/M',... 'Position',[470,60,110,15]); hpopup4 = uicontrol('Style','popupmenu',... 'String',{'Point 1','Point 2','Point 3','Point 4','Point 5','Point 6','Point 7','Point 8','Point 9','Point 10','Point 11','Point 12','Point 13','Point 14','Point 15'},... 'Position',[480,20,100,25],... 'Callback',{@popup_menu_Callback4}); ha = axes('Units','Pixels','Position',[50,60,200,185]); align([hraw,htext,hpopup,htext,hpopup2,htext2],'Center','None'); f2 = figure('Visible','off','Position',[360,500,450,285]);

42

hraw = uicontrol('Style','pushbutton','String','Raw (FL2)',... 'Position',[315,220,90,25],... 'Callback',{@rawbutton_Callback}); hfilt = uicontrol('Style','pushbutton','String','Filtered (FL2)',... 'Position',[315,180,90,25],... 'Callback',{@filtbutton_Callback}); align([hraw,hfilt],'Center','None'); % Create the data to plot. %fl2=[]; %FL2 values collected from the FACSExtract maximum=max(fl2); %finds the maximum value from the FL2 values x=0:7:(fix(maximum/10)*10)+10; [n,bin]=histc(fl2,x); %counts the number of values in vector fl2 that are between the edges vector element x. n is the length or edges vector that has there count. The elements in fl2 cannot be complex. % Initialize the GUI. % Change units to normalized so components resize % automatically. set([f,ha,hraw,htext,hpopup,htext2,hpopup2,htext3,hpopup3,htext4,hpopup4],... 'Units','normalized'); %Create a plot in the axes. current_data = n; plot(n, 'k'); hold on bar(n); %without filtering xlabel('FL-2'); ylabel('Counts'); title('Without filtering'); [maxtab, mintab] = peakdet(n, 3); hold on; plot(mintab(:,1), mintab(:,2), 'g*'); plot(maxtab(:,1), maxtab(:,2), 'r*'); hold off % current_data = peaks_data; % surf(current_data); % Assign the GUI a name to appear in the window title. set(f,'Name','Select Cell Cycle Phases') % Move the GUI to the center of the screen. movegui(f,'center') % Make the GUI visible. set(f,'Visible','on'); set(f2,'Name','Cell Cycle Phases') % Move the GUI to the center of the screen. movegui(f2,'center') % Make the GUI visible. set(f2,'Visible','on'); % Callbacks for simple_gui. These callbacks automatically % have access to component handles and initialized data % because they are nested at a lower level.

43

% Pop-up menu callback. Read the pop-up menu Value property % to determine which item is currently displayed and make it % the current data. function popup_menu_Callback(source,eventdata) % Determine the selected data set. str = get(source, 'String'); val = get(source,'Value'); % Set current data to the selected data set. switch str{val}; % User selects a point on raw data plot (local minimum) case 'Point 1' P1 = mintab(1,1); P_1=[P_1 P1]; case 'Point 2' P2 = mintab(2,1); P_2=[P_2 P2]; case 'Point 3' P3 = mintab(3,1); P_3=[P_3 P3]; case 'Point 4' P4 = mintab(4,1); P_4=[P_4 P4]; case 'Point 5' P5 = mintab(5,1); P_5=[P_5 P5]; case 'Point 6' P6 = mintab(6,1); P_6=[P_6 P6]; case 'Point 7' P7 = mintab(7,1); P_7=[P_7 P7]; case 'Point 8' P8 = mintab(8,1); P_8=[P_8 P8]; case 'Point 9' P9 = mintab(9,1); P_9=[P_9 P9]; case 'Point 10' P10 = mintab(10,1); P_10=[P_10 P10]; case 'Point 11' P11 = mintab(11,1); P_11=[P_11 P11]; case 'Point 12' P12 = mintab(12,1); P_12=[P_12 P12]; case 'Point 13' P13 = mintab(13,1); P_13=[P_13 P13]; case 'Point 14' P14 = mintab(14,1); P_14=[P_14 P14]; case 'Point 15' P15 = mintab(15,1); P_15=[P_15 P15]; end

44

end function popup_menu_Callback2(source2,eventdata2) % Determine the selected data set. str2 = get(source2, 'String'); val2 = get(source2,'Value'); % Set current data to the selected data set. switch str2{val2}; % User selects a point on raw data plot (local minimum) case 'Point 1' P1m = maxtab(1,1); P_1m=[P_1m P1m]; P_1my = maxtab(1,2); case 'Point 2' P2m = maxtab(2,1); P_2m=[P_2m P2m]; P_1my = maxtab(2,2); case 'Point 3' P3m = maxtab(3,1); P_3m=[P_3m P3m]; P_3my = maxtab(3,2); case 'Point 4' P4m = maxtab(4,1); P_4m=[P_4m P4m]; P_4my = maxtab(4,2); case 'Point 5' P5m = maxtab(5,1); P_5m=[P_5m P5m]; P_5my = maxtab(5,2); case 'Point 6' P6m = maxtab(6,1); P_6m=[P_6m P6m]; P_6my = maxtab(6,2); case 'Point 7' P7m = maxtab(7,1); P_7m=[P_7m P7m]; P_7my = maxtab(8,2); case 'Point 8' P8m = maxtab(8,1); P_8m=[P_8m P8m]; P_8my = maxtab(8,2); case 'Point 9' P9m = maxtab(9,1); P_9m=[P_9m P9m]; P_9my = maxtab(9,2); case 'Point 10' P10m = maxtab(10,1); P_10m=[P_10m P10m]; P_10my = maxtab(10,2); case 'Point 11' P11m = maxtab(11,1); P_11m=[P_11m P11m]; P_11my = maxtab(11,2); case 'Point 12' P12m = maxtab(12,1); P_12m=[P_12m P12m]; P_12my = maxtab(12,2);

45

case 'Point 13' P13m = maxtab(13,1); P_13m=[P_13m P13m]; P_13my = maxtab(13,2); case 'Point 14' P14m = maxtab(14,1); P_14m=[P_14m P14m]; P_14my = maxtab(14,2); case 'Point 15' P15m = maxtab(15,1); P_15m=[P_15m P15m]; P_15my = maxtab(15,2); end end function popup_menu_Callback3(source3,eventdata3) % Determine the selected data set. str3 = get(source3, 'String'); val3 = get(source3,'Value'); % Set current data to the selected data set. switch str3{val3}; % User selects a point on raw data plot (local minimum) case 'Point 1' P1m = maxtab(1,1); P_1m=[P_1m P1m]; P_1my = maxtab(1,2); case 'Point 2' P2m = maxtab(2,1); P_2m=[P_2m P2m]; P_2my = maxtab(2,2); case 'Point 3' P3m = maxtab(3,1); P_3m=[P_3m P3m]; P_3my = maxtab(3,2); case 'Point 4' P4m = maxtab(4,1); P_4m=[P_4m P4m]; P_4my = maxtab(4,2); case 'Point 5' P5m = maxtab(5,1); P_5m=[P_5m P5m]; P_5my = maxtab(5,2); case 'Point 6' P6m = maxtab(6,1); P_6m=[P_6m P6m]; P_6my = maxtab(6,2); case 'Point 7' P7m = maxtab(7,1); P_7m=[P_7m P7m]; P_7my = maxtab(7,2); case 'Point 8' P8m = maxtab(8,1); P_8m=[P_8m P8m]; P_8my = maxtab(8,2); case 'Point 9'

46

P9m = maxtab(9,1); P_9m=[P_9m P9m]; P_9my = maxtab(9,2); case 'Point 10' P10m = maxtab(10,1); P_10m=[P_10m P10m]; P_10my = maxtab(10,2); case 'Point 11' P11m = maxtab(11,1); P_11m=[P_11m P11m]; P_11my = maxtab(11,2); case 'Point 12' P12m = maxtab(12,1); P_12m=[P_12m P12m]; P_12my = maxtab(12,2); case 'Point 13' P13m = maxtab(13,1); P_13m=[P_13m P13m]; P_13my = maxtab(13,2); case 'Point 14' P14m = maxtab(14,1); P_14m=[P_14m P14m]; P_14my = maxtab(14,2); case 'Point 15' P15m = maxtab(15,1); P_15m=[P_15m P15m]; P_15my = maxtab(15,2); end end function popup_menu_Callback4(source4,eventdata4) % Determine the selected data set. str4 = get(source4, 'String'); val4 = get(source4,'Value'); % Set current data to the selected data set. switch str4{val4}; % User selects a point on raw data plot (local minimum) case 'Point 1' P1 = mintab(1,1); P_1=[P_1 P1]; case 'Point 2' P2 = mintab(2,1); P_2=[P_2 P2]; case 'Point 3' P3 = mintab(3,1); P_3=[P_3 P3]; case 'Point 4' P4 = mintab(4,1); P_4=[P_4 P4]; case 'Point 5' P5 = mintab(5,1); P_5=[P_5 P5]; case 'Point 6' P6 = mintab(6,1); P_6=[P_6 P6];

47

case 'Point 7' P7 = mintab(7,1); P_7=[P_7 P7]; case 'Point 8' P8 = mintab(8,1); P_8=[P_8 P8]; case 'Point 9' P9 = mintab(9,1); P_9=[P_9 P9]; case 'Point 10' P10 = mintab(10,1); P_10=[P_10 P10]; case 'Point 11' P11 = mintab(11,1); P_11=[P_11 P11]; case 'Point 12' P12 = mintab(12,1); P_12=[P_12 P12]; case 'Point 13' P13 = mintab(13,1); P_13=[P_13 P13]; case 'Point 14' P14 = mintab(14,1); P_14=[P_14 P14]; case 'Point 15' P15 = mintab(15,1); P_15=[P_15 P15]; end end % Push button callbacks. Each callback plots current_data in % the specified plot type. function rawbutton_Callback(source,eventdata) % Display raw data plot of the currently selected data. plot(n, 'k'); hold on bar(n); %without filtering xlabel('FL-2'); ylabel('Counts'); title('Without filtering'); [maxtab, mintab] = peakdet(n, 3); %peakdet function to find the local minimum and maximums hold on; plot(mintab(:,1), mintab(:,2), 'g*'); plot(maxtab(:,1), maxtab(:,2), 'r*'); hold off end set([f2,ha,hfilt,htext,hpopup,htext2,hpopup2,htext3,hpopup3,htext4,hpopup4],... 'Units','normalized'); function filtbutton_Callback(source,source2,source3,source4,eventdata,eventdata2,eventdata3,eventdata4)

48

% Display filtered plot of the currently selected data from the popup % menus. P=[P_1 P_2 P_3 P_4 P_5 P_6 P_7 P_8 P_9 P_10 P_11 P_12 P_13 P_14 P_15 P_1m P_2m P_3m P_4m P_5m P_6m P_7m P_8m P_9m P_10m P_11m P_12m P_13m P_14m P_15m] %points selected in ascending order P=sort(P,'ascend') Pmy=[P_1my P_2my P_3my P_4my P_5my P_6my P_7my P_8my P_9my P_10my P_11my P_12my P_13my P_14my P_15my] if length(P) > 4 || length(P) < 4 P_1=[]; %(mintab(n)) P_2=[]; P_3=[]; P_4=[]; P_5=[]; P_6=[]; P_7=[]; P_8=[]; P_9=[]; P_10=[]; P_11=[]; P_12=[]; P_13=[]; P_14=[]; P_15=[]; P_1m=[]; %(maxtab(n)) P_2m=[]; P_3m=[]; P_4m=[]; P_5m=[]; P_6m=[]; P_7m=[]; P_8m=[]; P_9m=[]; P_10m=[]; P_11m=[]; P_12m=[]; P_13m=[]; P_14m=[]; P_15m=[]; P_1my=[]; %saves the points selected by the user (maxtab(n)) in y-axis P_2my=[]; P_3my=[]; P_4my=[]; P_5my=[]; P_6my=[]; P_7my=[]; P_8my=[]; P_9my=[]; P_10my=[];

49

P_11my=[]; P_12my=[]; P_13my=[]; P_14my=[]; P_15my=[]; msgbox('Please select again') else window=[zeros(P(1,1),1);ones(P(1,4)-P(1,1),1);zeros(length(n)-P(1,4), 1)]; p=window.*n; %filtering with a rectangular window r=P(1,1)+P(1,2)-P(1,1); %remaining length w2=[zeros(P(1,1),1);ones(P(1,2)-P(1,1),1);zeros(length(n)-r,1)]; % a=length(w2) %for testing program % b=length(n) % c=source % d=source2 % P_1 % P_2 % P_3 % P_4 % P_5 p2=w2.*n; %bar(p2); %xlabel('FL-2'); ylabel('Counts'); title('Filtered'); %hold on r2=P(1,2)+P(1,3)-P(1,2); %remaining length w3=[zeros(P(1,2),1);ones(P(1,3)-P(1,2),1);zeros(length(n)-r2,1)]; p3=w3.*n; %bar(p3, 'g'); r3=P(1,3)+P(1,4)-P(1,3); %remaining length w4=[zeros(P(1,3),1);ones(P(1,4)-P(1,3),1);zeros(length(n)-r3,1)]; p4=w4.*n; %bar(p4, 'r'); %hold off %normalizing data z=sum(p); norm=p./z; % all data norm2=p2./z; %G0/G1 phase norm3=p3./z; %S phase norm4=p4./z; %G2/M phase bar(norm2.*100); %normalized data G0/G1 phase

50

hold on bar(norm3.*100, 'g'); %normalized data S phase bar(norm4.*100, 'r'); %normalized data G2/M phase xlabel('FL-2'); ylabel('Normalized % Counts'); title('Filtered and Normalized %'); hold off %Cell percentage for each cell cycle phase G0G1p=sum(norm2).*100 %for troubleshooting Sp=sum(norm3).*100 G2Mp=sum(norm4).*100 z G0G1=((sum(norm2)-(Pmy(1,1)/(2*z))).*2).*100 %normalized data subtracted by normalied maximum divided by 2 then times 2 (for peak reflect) times 100 for percent form G2M=((sum(norm4)-(Pmy(1,2)/(2*z))).*2).*100 S=100-(G0G1+G2M) total=G0G1+S+G2M M=[G0G1 S G2M] %writing data into excel file xlswrite('C2A0-A6revT1D2_10000_8-21-10.xls',{'G0/G1','S','G2/M'},'C2-2_A0-A6','A1') xlswrite('C2A0-A6revT1D2_10000_8-21-10.xls',M,'C2-2_A0-A6','A29') %changes with sample; need to change manually G0G1=num2str(G0G1); S=num2str(S); G2M=num2str(G2M); %verify sum of the cell cycle phase totals to 100% msgbox(G0G1,'G0/G1 Phase'); msgbox(S,'S Phase'); msgbox(G2M,'G2/M Phase'); P_1=[]; %clears selected points (mintab(n)) P_2=[]; P_3=[]; P_4=[]; P_5=[]; P_6=[]; P_7=[]; P_8=[]; P_9=[]; P_10=[]; P_11=[]; P_12=[]; P_13=[]; P_14=[]; P_15=[];

51

P_1m=[]; %(maxtab(n)) P_2m=[]; P_3m=[]; P_4m=[]; P_5m=[]; P_6m=[]; P_7m=[]; P_8m=[]; P_9m=[]; P_10m=[]; P_11m=[]; P_12m=[]; P_13m=[]; P_14m=[]; P_15m=[]; P_1my=[]; %saves the points selected by the user (maxtab(n)) in y-axis P_2my=[]; P_3my=[]; P_4my=[]; P_5my=[]; P_6my=[]; P_7my=[]; P_8my=[]; P_9my=[]; P_10my=[]; P_11my=[]; P_12my=[]; P_13my=[]; P_14my=[]; P_15my=[]; end end end

52

Appendix B

In order to confirm collagen fiber alignment after mechanically stimulating cellular

collagen gels, intensity_generator_testing.m was written to visualize fiber alignment with a pixel

intensity area versus the number of frames plot. As collagen fiber alignment increases pixel

intensity area also increases. The program has the user input the file name, and the frames

where alignment starts and end. Then the user selects the region where fiber alignment occurs

and converts each image collected from polarized light microscopy system into binary images

prior to thresholding and calculating each image’s pixel intensity area from the beginning of

fiber alignment to when the end of needle rotation. Intensity_generator_testing.m plots four

figures were figure 1 are images of the start and end frame images, figure 2 the end frame

image where the user selects the fiber alignment region, figure 3 shows the frames from start to

the end as a movie, and figure 4 is the plot of pixel intensity area versus the number of frames.

The program calls upon pix2data.m, a program from MATLAB Central’s open file exchange, for

converting pixel position to axes data point. Also, file_update_testing.m is a program written to

save the pixel intensity area points from intensity_generator_testing.m.

intensity_generator_testing.m

function varargout = intensitygenerator_testing(varargin) % Ka Po Chu % October 27, 2010 Program designed to analyze images and plot the pixel % area. % INTENSITYGENERATOR_TESTING M-file for intensitygenerator_testing.fig % INTENSITYGENERATOR_TESTING, by itself, creates a new INTENSITYGENERATOR_TESTING or raises the existing % singleton*. % % H = INTENSITYGENERATOR_TESTING returns the handle to a new INTENSITYGENERATOR_TESTING or the handle to % the existing singleton*. % % INTENSITYGENERATOR_TESTING('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in INTENSITYGENERATOR_TESTING.M with the given input arguments.

53

% % INTENSITYGENERATOR_TESTING('Property','Value',...) creates a new INTENSITYGENERATOR_TESTING or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before intensitygenerator_testing_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to intensitygenerator_testing_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 intensitygenerator_testing % Last Modified by GUIDE v2.5 03-Nov-2010 18:06:29 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @intensitygenerator_testing_OpeningFcn, ... 'gui_OutputFcn', @intensitygenerator_testing_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 counting=[]; %for Excel files excelarea=[]; % --- Executes just before intensitygenerator_testing is made visible. function intensitygenerator_testing_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 intensitygenerator_testing (see VARARGIN)

54

% Choose default command line output for intensitygenerator_testing handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes intensitygenerator_testing wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = intensitygenerator_testing_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; function filename_inputText_Callback(hObject, eventdata, handles) % hObject handle to filename_inputText (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 filename_inputText as text % str2double(get(hObject,'String')) returns contents of filename_inputText as a double %filename=[image_select, '.bmp']; %image file name filename = [get(hObject,'String'), '.bmp']; %checks to see if input is empty. if so, default input1_editText to zero if (isempty(filename)) set(hObject,'String',' ') end guidata(hObject, handles); % --- Executes during object creation, after setting all properties. function filename_inputText_CreateFcn(hObject, eventdata, handles) % hObject handle to filename_inputText (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.

55

% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function start_inputText2_Callback(hObject, eventdata, handles) % hObject handle to start_inputText2 (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 start_inputText2 as text % str2double(get(hObject,'String')) returns contents of start_inputText2 as a double %store the contents of input1_editText as a string. if the string %is not a number then input will be empty filename = get(handles.filename_inputText,'String'); start_i = str2num(get(hObject,'String')); %checks to see if input is empty. if so, default input1_editText to zero if (isempty(start_i)) set(hObject,'String','0') end % image_start=num2str(start_i); % H_start=[image_start, filename]; % I=imread(H_start); % [M N]=size(I); %provides a matrix for image size guidata(hObject, handles); % --- Executes during object creation, after setting all properties. function start_inputText2_CreateFcn(hObject, eventdata, handles) % hObject handle to start_inputText2 (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

56

function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (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 edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double filename = get(handles.filename_inputText,'String'); last_i = str2num(get(hObject,'String')); %checks to see if input is empty. if so, default input1_editText to zero if (isempty(last_i)) set(hObject,'String','0') end % image_last=num2str(last_i); % H_last=[image_last, filename]; % I_last=imread(H_last); guidata(hObject, handles); % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (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 plot_pushbutton. function plot_pushbutton_Callback(hObject, eventdata, handles) % hObject handle to plot_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc; filename = [get(handles.filename_inputText,'String'), '.bmp']; start_i = get(handles.start_inputText2,'String'); last_i = get(handles.edit3,'String'); m_area=[]; %for saving data mcrop_area=[]; %for saving data from for loop excelarea=[]; image_start=num2str(start_i); image_last=num2str(last_i);

57

H_start=[image_start, filename]; H_last=[image_last, filename]; I=imread(H_start); I_last=imread(H_last); [M N]=size(I); %provides a matrix for image size figure(1) %displays image of the orininal image subplot(2,2,1) imshow(I); title('Original (start)'); subplot(2,2,2) level = graythresh(I); bw = im2bw(I,level); bw = bwareaopen(bw, 50); %removes background noise imshow(bw) title('Graythresh start image'); %figure(4) %displays image with calculated largest pixel area in the image (to filter out noise) subplot(2,2,3) cc=bwconncomp(bw); imagedata = regionprops(cc, 'basic'); %basic is used, so calculations can be done on area, centroid, and bounding box image_areas = [imagedata.Area]; [max_area, idx] = max(image_areas); image1 = false(size(bw)); image1(cc.PixelIdxList{idx}) = true; imshow(image1); title('Graythresh and max area of start image'); subplot(2,2,4) level_last = graythresh(I_last); bw_last = im2bw(I_last,level_last); bw_last = bwareaopen(bw_last, 50); %removes background noise imshow(bw_last) title('Graythresh last image'); figure imshow(bw_last);%%%Shows the input image%%%% waitforbuttonpress; %%%%%%Press left click on the image%%%% ss = size(bw_last); point1 = get(gcf,'CurrentPoint') ; rect = [point1(1,1) point1(1,2) 159 M]; %user can change the region of interest box size %Coordinates of rectangle% [r2] = dragrect(rect); %%%Drag the rectangle while keeping leftclick pressed and leave the click when region to be selected is decided%% [dataX, dataY] = pix2data(r2(1,1),r2(1,2)); ggr = ss(1,1) - dataY ; dataY = ggr+0.5; dataX=dataX+0.5; %Top left hand side X coordinate of the image% dataYY =dataY-r2(1,4); %Top left hand side Y coordinate of the image%

58

I2 = imcrop(bw_last,[dataX dataYY 159 M]);%159 M]); %150 150]); %335 219]);%Final Cropped image% %I2 = imcrop(bw_last,[r2(1,1) r2(1,2) 150 150]); %figure(3) %imshow(I2); close(figure) figure(2) cc_last=bwconncomp(I2); imagedata_last = regionprops(cc_last, 'basic'); %basic is used, so calculations can be done on area, centroid, and bounding box image_areas_last = [imagedata_last.Area]; [max_area_last, idx_last] = max(image_areas_last); image_last = false(size(I2)); image_last(cc_last.PixelIdxList{idx_last}) = true; m_area=[m_area max_area_last]; [M_new N_new]=size(I2); %imshow(image_last); z1=zeros(M,dataX); z2=zeros(M,N-(dataX+160)); f=[z1,image_last,z2]; imshow(f); start_is=str2num(start_i); %converting start and last frame from string to number value last_is=str2num(last_i); %for creating images for k=start_is:last_is convert=num2str(k); %converting back values from num2str H_i=[convert,filename]; I_i=imread(H_i); level_i = graythresh(I_i); bw_i = im2bw(I_i,level_i); bw_i = bwareaopen(bw_i, 50); %removes background noise crop_i = imcrop(bw_i,[dataX dataYY 159 M]); %159 M]); %150 150]); %335 219]);%Final Cropped image% cc_next=bwconncomp(crop_i); imagedata_crop = regionprops(cc_next, 'basic'); %basic is used, so calculations can be done on area, centroid, and bounding box image_areas_crop = [imagedata_crop.Area]; [max_area_crop, idx_last] = max(image_areas_crop); image_crop = false(size(I2)); image_crop(cc_next.PixelIdxList{idx_last}) = true; mcrop_area=[mcrop_area max_area_crop]; [M_crop N_crop]=size(crop_i); figure(3) %imshow(image_crop); z3=zeros(M,dataX); z4=zeros(M,N-(dataX+160)); f2=[z3,image_crop,z4];

59

imshow(f2); end % plotting the pixel area versus image frame where labeling starting image % as one figure(4) plot(mcrop_area'); xlabel('Image frame'); ylabel('Pixel area'); title([num2str(filename)]) M=mcrop_area'; %writing onto an excel file xlswrite('abc.xls',{'max area'},'pixels','A1') xlswrite('abc.xls',M,'pixels','A2') %for saving into an excel file guidata(hObject, handles); %updates the handles % --- Executes on button press in clear_pushbutton. function clear_pushbutton_Callback(hObject, eventdata, handles) % hObject handle to clear_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(figure(1)) close(figure(2)) close(figure(3)) close(figure(4)) guidata(hObject, handles);

60

pix2data.m function [dataX, dataY] = pix2data( ax, pixelX, pixelY ) %PIX2DATA Translate a Figure Pixel position into an Axes data point % If no Axes given, it defaults to GCA. % [X, Y] = PIX2DATA( AXES, x, y ) % [X, Y] = PIX2DATA( AXES, [x y] ) % [X, Y] = PIX2DATA( x, y ) % [X, y] = PIX2DATA( [x y] ) % % For scalar or vector X and Y, output will have X and Y in columns % POINT = PIX2DATA( AXES, x, y ) % POINT = PIX2DATA( AXES, [x y] ) % POINT = PIX2DATA( x, y ) % POINT = PIX2DATA( [x y] ) % % See Also: DATA2PIX % Chuck Packard, The Mathworks, Inc. % 25 March 95 if nargin == 0 error( 'Need AXES and X,Y position.' ) end %See if there is a GCA, don't create one if isempty( get(0,'children') ) error( 'No Figure windows.' ); end if isempty( get( gcf, 'children' ) ) error( 'No Axes in current Figure.' ); end if nargin == 1 if size( ax, 2 ) ~= 2 error( 'When defaulting to GCA, first argument should be [X Y].' ) end pixelY = ax(:,2); pixelX = ax(:,1); ax = gca; elseif nargin == 2 if length(ax) == 1 & size(pixelX,2) == 2 pixelY = pixelX(:,2); pixelX(:,2) = []; else pixelY = pixelX; pixelX = ax; ax = gca; end end %Check data, make X and Y column vectors xSize = size(pixelX); ySize = size(pixelY); if any( ySize ~= xSize )

61

error( 'Size of X and Y data not consistent.' ); end %Get position of Axes in pixels origAxesUnits = get(ax,'units'); set( ax, 'units', 'pixels' ) axPos = fix(get(ax,'position')); set( ax, 'units', origAxesUnits ) %Find extent of Axes in data xlimits = get(ax,'xlim'); ylimits = get(ax,'ylim'); dataWidth = xlimits(2) - xlimits(1); dataHeight = ylimits(2) - ylimits(1); %Find normalized position of points and determine pixel position % as offset from lower left of Axes. X = xlimits(1) + (((pixelX - axPos(1)) ./ axPos(3)) .* dataWidth); Y = ylimits(1) + (((pixelY - axPos(2)) ./ axPos(4)) .* dataHeight); if nargout < 2 if min(ySize) ~= 1 %What would it mean to concatenate two matrices for this function? dataX = X; elseif ySize(1) == 1 & ySize(2) > 1 %Need to transpose data so it looks nice in column format dataX = [X' Y']; else dataX = [X Y]; end else dataX = X; dataY = Y; end

62

file_update_testing.m function varargout = file_update_testing(varargin) % Ka Po Chu % FILE_UPDATE_TESTING M-file for file_update_testing.fig % FILE_UPDATE_TESTING, by itself, creates a new FILE_UPDATE_TESTING or raises the existing % singleton*. % % H = FILE_UPDATE_TESTING returns the handle to a new FILE_UPDATE_TESTING or the handle to % the existing singleton*. % % FILE_UPDATE_TESTING('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in FILE_UPDATE_TESTING.M with the given input arguments. % % FILE_UPDATE_TESTING('Property','Value',...) creates a new FILE_UPDATE_TESTING or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before file_update_testing_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to file_update_testing_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 file_update_testing % Last Modified by GUIDE v2.5 02-Nov-2010 15:57:53 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @file_update_testing_OpeningFcn, ... 'gui_OutputFcn', @file_update_testing_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

63

gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before file_update_testing is made visible. function file_update_testing_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 file_update_testing (see VARARGIN) % Choose default command line output for file_update_testing handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes file_update_testing wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = file_update_testing_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; function excelfile_edit2_Callback(hObject, eventdata, handles) % hObject handle to excelfile_edit2 (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 excelfile_edit2 as text % str2double(get(hObject,'String')) returns contents of excelfile_edit2 as a double excelfile = [get(hObject,'String'), '.xls']; %checks to see if input is empty. if so, default input1_editText to zero if (isempty(excelfile)) set(hObject,'String',' ') end

64

guidata(hObject, handles); % --- Executes during object creation, after setting all properties. function excelfile_edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to excelfile_edit2 (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 update_pushbutton1. function update_pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to update_pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc; abcdata = xlsread('abc.xls','pixels'); data = [get(handles.excelfile_edit2,'String'), '.xls']; xlswrite(data,abcdata,'Pixel Area','A'); %for saving into an excel file 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) clc; abcdata = xlsread('abc.xls','pixels'); data = [get(handles.excelfile_edit2,'String'), '.xls']; %data2 = get(handles.excelfile_edit2,'String'); d = xlsread(data); [Md,Nd]=size(data) data d2=xlsread('k.xls','Pixel Area'); %Change file name for saving data [Q,R]=size(d2) alpha=['A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z']; a=alpha(1,R+1); %['A',[num2str(N+1)]] xlswrite(data,abcdata,'Pixel Area',a); %for saving into an excel file guidata(hObject, handles);