Seed Dispersal Lab Report

Methods

##Study site and focal species
#We conducted this experiment in the atrium of Loyola's Institute of Environmental Sustainability. Our experiment was designed to test different seed dispersal mechanisms based on different shaped seeds, and an experimental factor. Our seed species were origami creations created using 8.5" by 8.5" paper. The species that we created were a fox, butterfly, and dog. We referred to youtube and origami websites as a tutorital on how to create these origami shapes. 

##Lab Data Collection Protocol
#We made 15 'seeds' of each species for a total of 45. We marked 20% of each species with an "X" because we had an 80% seed surviorship. The experimental factor we chose was wind. The wind was created by using a fan that was placed on the second floor, while we did our drop from the third floor. We placed all 45 seeds inside of a cardboard recycling bin. Before the drop we marked a spot on the atrium floor with masking tape to have a point where we can refer to for degree and distance measurements. Our without the experimental factor were conducted from the second floor, where we would we dump the recycling bin full of seeds over the ledge and allow them to fly down. When a seed landed on a small square or a line we didn't count that seed because it didn't fall within a germination zone. Once the seeds fell, we would pick up the seeds outside of the germination zone and the ones marked with an X. We measured the remaining seeds distance from the point, as well as their relative angle. This was repeated 6 times. For the experimental factor, we set up a fan on the second floor then we went to drop the seeds off of the third floor above the fan. We then disgarded any seeds that fell outside of the germination zone and that were marked with an X. Again, we measured distance and degrees & repeated this 6 times as well. 

##Statistical Analysis
#We analyzed our data using the programming language and software R. The packages we installed in order to do the analysis was plyr and ggplot2. I used ddply to create a summary of each of the Seed Types, the Season, Experimental Factor and Distance. This provided me with mean distances for each seed type, for each season with each factor. Using ggplot, I created a boxplot of experimental factor and distance which gave me a visual representation whether distance was further with or without wind. The next graph I created was a two factor bar graph that allowed me to include the different seed types. This showed me differences between seeds and their distances, with or without the wind. I then ran a histogram and qqplots of mean distance to assess the normality of my data. My data points were not all along the best fine line so I did a log 10 transformation to make the points closer to the line. I ran and plotted an ANOVA so I could get a summary and pvalue. I ran a second ANOVA to check interactions with the experimental factor. My interactions were not significant so I dropped them. Lastly, I created a map of the atrium that showed where each indivdual seed dropped based on its angle and distance. To do so I had to convert degrees into radians and use sin and cosine. 

Graphs

#file.choose()
sd <- read.csv("C:\\Users\\Gabriela Krochmal\\Desktop\\ConBio_R\\Seed Dispersal Data.csv") #naming data

library(plyr) #required package for analysis
library(ggplot2) #required package for analysis
library(viridisLite) #optional package for pretty graphs
#Using ddply to summarize seed type, season, experimental factor and mean of distance data
seed <- ddply(sd, c("SeedType", "Season", "Factor"), summarise, meanDistance=mean(Distance))
#creating ddply for ggplots

graph1 <- ddply(sd, c("SeedType", "Season", "Factor"), summarise,
                 dataRep  = sum(!is.na(Distance)),
                 dataMean = mean(Distance, na.rm=T), 
                 dataSD   = sd(Distance, na.rm=T),
                 dataSE   = dataSD / sqrt(dataRep)) 
boxplotsd <- ggplot(data = sd, aes(x = Factor, y = Distance))

boxplotsd + 
  theme_classic() +
  geom_boxplot()
Bar Graph 1: Distance and Experimental Factor

Bar Graph 1: Distance and Experimental Factor

boxplot2 <- ggplot(data = sd, aes(x = Factor, y = Distance, fill = SeedType))

boxplot2 + 
  theme_classic() +
  geom_boxplot()
Bar Graph 2: Experimental Factor and Distance with Seed Types

Bar Graph 2: Experimental Factor and Distance with Seed Types

bar_2v <- ddply(sd, c("Factor", "SeedType"), summarise,
                dataRep  = sum(!is.na(Distance)),
                dataMean = mean(Distance, na.rm=T), 
                dataSD   = sd(Distance, na.rm=T),
                dataSE   = dataSD / sqrt(dataRep))

#loading the graphing data for x and y axis
bar_2 <- ggplot(data = bar_2v, aes(x = Factor, y = dataMean, fill = SeedType))

#setting error bar limits
limits <- aes(ymax = dataMean + dataSD, ymin = dataMean - dataSD) 

dodge <- position_dodge(width = 0.9) # Dodge overlapping objects side-to-side

#running my graph
bar_2 + 
  theme_classic() +                   
  geom_bar(stat="identity", position = dodge, colour = "black") +         
  geom_errorbar(limits, width = 0.2, position = dodge) +
  scale_fill_brewer(palette="Greens") # Limits
Bar Graph 3: Experimental Factor and Distance Mean with Seed Types

Bar Graph 3: Experimental Factor and Distance Mean with Seed Types

#Assessing my data normality

#histogram of distance
hist(seed$meanDistance)
Histogram of Seed Type and Mean Distance

Histogram of Seed Type and Mean Distance

qqnorm(seed$meanDistance) #qqplots
qqline(seed$meanDistance)
QQ Plots of Seed Type and Mean Distanc

QQ Plots of Seed Type and Mean Distanc

qqnorm(log10(seed$meanDistance)) #qqplots of transformed data
qqline(log10(seed$meanDistance))
QQ Plots of Seed Type and Mean Distanc

QQ Plots of Seed Type and Mean Distanc

#Running an ANOVA

anova <- aov(log10(meanDistance)~ SeedType, data=seed)

plot(anova)

summary(anova)
##             Df Sum Sq Mean Sq F value Pr(>F)
## SeedType     2 0.0218 0.01090   0.542  0.588
## Residuals   27 0.5436 0.02013
anova2 <- aov(log10(meanDistance)~ SeedType * Factor, data=seed)
plot(anova2)

summary(anova2) #checking interactions
##                 Df Sum Sq  Mean Sq F value Pr(>F)
## SeedType         2 0.0218 0.010903   0.532  0.594
## Factor           1 0.0084 0.008427   0.411  0.527
## SeedType:Factor  2 0.0434 0.021701   1.059  0.362
## Residuals       24 0.4918 0.020490
#creating my map
#file.choose()
dispersalmap <- read.csv("C:\\Users\\Gabriela Krochmal\\Desktop\\ConBio_R\\Seed Dispersal Data.csv")

summary(dispersalmap)
##      Factor        SeedType     Distance          Angle       
##  No wind:83   Butterfly:59   Min.   :  1.00   Min.   :  4.00  
##  Wind   :99   Dog      :56   1st Qu.: 34.25   1st Qu.: 50.25  
##               Fox      :67   Median : 80.00   Median :127.00  
##                              Mean   : 92.09   Mean   :128.59  
##                              3rd Qu.:134.00   3rd Qu.:190.50  
##                              Max.   :324.00   Max.   :350.00  
##      Season    
##  Min.   :1.00  
##  1st Qu.:2.00  
##  Median :3.00  
##  Mean   :3.06  
##  3rd Qu.:4.00  
##  Max.   :5.00
#X coordinate
dispersalmap$cartX <- dispersalmap$Distance * sin(dispersalmap$Angle)

#y coordinate
dispersalmap$cartY <- dispersalmap$Distance * cos(dispersalmap$Angle)

SeedMap <- ggplot(dispersalmap, aes(x=cartX, y=cartY))

SeedMap +
  geom_point() +
  geom_text(aes(label=SeedType), hjust=-0.5, vjust=-0.5)
Map of Seed Dispersal in IES Atrium

Map of Seed Dispersal in IES Atrium

Results

#A significant positive relationship exists between seed type and mean distance (pvalue=0.588). The seed type Fox had the largest distance mean without the experimental factor, followed by butterfly, then dog. The seed type Dog had the largest distance with the experimental factor(wind), followed by Fox then Butterfly.