https://github.com/emkcosta/KillifishAutomaticFeederPaper
Tip revision: 451bc5d78cd266a00b53612585d201d404f73920 authored by Emma on 24 October 2022, 20:33:32 UTC
Delete SuppFig2 directory
Delete SuppFig2 directory
Tip revision: 451bc5d
Fig3_AMfix_221013_JC.R
# Growth rate for AL vs DR
library(ggplot2)
set.seed(1234)
###################################################################
# Functions
###################################################################
# dataset, xaxis, yaxis, colorgroup
# "global" variables
gcol = c(AL = "#0072B5", DR = "#EF932F", OE = "#010101")
pd <- position_jitter(width = 0.1)
# define boxplot function
boxit <- function(df, xa, ya, color, filename, xlabel, ylabel) {
# getting pval
pval = wilcox.test(df[,ya] ~ df[,xa])
# real plot, fixed extra point with "outlier.shape = NA" argument
p = ggplot(df, aes_string(x = xa, y = ya, color = color)) +
geom_boxplot(width=0.5, outlier.shape = NA) +
geom_point(position = pd) +
theme_bw() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank() , text=element_text(size=16,family="Helvetica", colour = "#010101"), legend.position ="none", axis.text.x = element_text(colour = "#010101"), axis.text.y = element_text(colour = "#010101")) +
ggtitle(sprintf("p-value = %06f", pval$p.value)) +
ylab(ylabel)+ xlab(xlabel) +
scale_color_manual(values=gcol)
print(p)
# filename
saveout = paste("/Users/jingxun/Dropbox/KillifishFeederPaper_AndrewMcKay/Revision/Code/GitHub/Fig3/Output/", filename, sep = "")
ggsave(saveout, p)
}
# define getstat function
getstats <- function(dataset, cond1, cond2, stat1) {
x1 = dim(dataset[dataset$FeedingScheme == cond1, ])[1]
print(paste("Number", cond1, ":", x1 ))
y1 = dim(dataset[dataset$FeedingScheme == cond2, ])[1]
print(paste("Number", cond2, ":", y1 ))
x2 = mean(dataset[dataset$FeedingScheme == cond1, c(stat1)])
print(paste("Mean", cond1, ":", x2 ))
y2 = mean(dataset[dataset$FeedingScheme == cond2, c(stat1)])
print(paste("Mean", cond2, ":", y2 ))
x3 = median(dataset[dataset$FeedingScheme == cond1, c(stat1)])
print(paste("Median", cond1, ":", x3 ))
y3 = median(dataset[dataset$FeedingScheme == cond2, c(stat1)])
print(paste("Median", cond2, ":", y3 ))
}
###################################################################
# Load growth rate data for DR vs AL
###################################################################
setwd('/Users/jingxun/Dropbox/KillifishFeederPaper_AndrewMcKay/Revision/Code/GitHub/Fig3/Input/')
data = read.table("fig3growthrate_DR.csv", sep = ',', header = TRUE)
data$FeedingScheme = as.factor(data$FeedingScheme)
data$FeedingScheme = factor(data$FeedingScheme, levels = c("AL", "DR"))
# split out males and females
dfm = data[data$Sex == "m", ]
dff = data[data$Sex == "f",]
# select only fish that were observed (1 = observed)
dfm_1 = dfm[dfm$Observed == 1, ]
dff_1 = dff[dff$Observed == 1, ]
# select only fish with lifespan shorter than 120 days (4 months)
dfm_120 = dfm_1[dfm_1$Lifespan_days <= 120, ]
dff_120 = dff_1[dff_1$Lifespan_days <= 120, ]
###################################################################
# Plot all fish growth rates first DR vs AL
###################################################################
getstats(data, "AL", "DR", "GrowthRate")
boxit(data, "FeedingScheme", "GrowthRate", "FeedingScheme", "all_fishsizes_DR.pdf", "Feeding Scheme", "Growth Rate (cm/week)")
###################################################################
# Female fish only DR vs AL
###################################################################
getstats(dff_120, "AL", "DR", "GrowthRate")
boxit(dff_120, "FeedingScheme", "GrowthRate", "FeedingScheme", "female_fishsizes_DR.pdf", "Feeding Scheme", "Growth Rate (cm/week)")
###################################################################
# Male fish only DR vs AL
###################################################################
getstats(dfm_120, "AL", "DR", "GrowthRate")
boxit(dfm_120, "FeedingScheme", "GrowthRate", "FeedingScheme", "male_fishsizes_DR.pdf", "Feeding Scheme", "Growth Rate (cm/week)")
###################################################################
# Growth Rate for OE vs AL
###################################################################
data_OE = read.table("fig3growthrate_OE.csv", sep = ',', header = TRUE, stringsAsFactors = FALSE)
data_OE = data[data$FeedingScheme != "manual",]
data_OE$FeedingScheme[data_OE$FeedingScheme == "2hr"] = "AL"
data_OE$FeedingScheme[data_OE$FeedingScheme == "1hr"] = "OE"
data_OE$FeedingScheme = as.factor(data_OE$FeedingScheme)
# split out males and females
dfm_OE = data_OE[data_OE$Sex == "male", ]
dff_OE = data_OE[data_OE$Sex == "female",]
# select only fish that were observed (1 = observed)
dfm_1_OE = dfm_OE[dfm_OE$Observed == 1, ]
dff_1_OE = dff_OE[dff_OE$Observed == 1, ]
# select only fish with lifespan shorter than 120 days (4 months)
dfm_120_OE = dfm_1_OE[dfm_1_OE$Lifespan_days <= 120, ]
dff_120_OE = dff_1_OE[dff_1_OE$Lifespan_days <= 120, ]
###################################################################
# Plot all fish growth rates first OE vs AL
###################################################################
#Getting stats
getstats(data_OE, "AL", "OE", "GrowthRate")
boxit(data_OE, "FeedingScheme", "GrowthRate", "FeedingScheme", "all_fishsizes_OE.pdf", "Feeding Scheme", "Growth Rate (cm/week)")
###################################################################
# Female fish only
###################################################################
getstats(dff_120_OE, "AL", "OE", "GrowthRate")
boxit(dff_120_OE, "FeedingScheme", "GrowthRate", "FeedingScheme", "female_fishsizes_OE.pdf", "Feeding Scheme", "Growth Rate (cm/week)")
###################################################################
# Male fish only
###################################################################
getstats(dfm_120_OE, "AL", "OE", "GrowthRate")
boxit(dfm_120_OE, "FeedingScheme", "GrowthRate", "FeedingScheme", "male_fishsizes_OE.pdf", "Feeding Scheme", "Growth Rate (cm/week)")
######################################################################
######################################################################
# Load fertility
######################################################################
df = read.table("fig3_DRfertility.csv", sep = ',', header = TRUE,stringsAsFactors = FALSE)
# set date uncrossed to factor, then order levels
df$Uncrossed = as.factor(df$Uncrossed)
# swap "7times" for "AL" to match with other data (and color scheme)
df$FeedingScheme[df$FeedingScheme == "7times"] = "AL"
######################################################################
# LiveEmbryos first, DR vs AL
######################################################################
#Getting stats
df[df$Crossed == "6/29/20", c("Pair", "FeedingScheme")]
getstats(df, "AL", "DR", "LiveEmbryosHarvestedDay0")
boxit(df, "FeedingScheme", "LiveEmbryosHarvestedDay0", "FeedingScheme", "DRfertilityLiveEmbryos.pdf", "Feeding Scheme", "Fertility (Fertilized Embryos per mating)")
######################################################################
# Total Embryos, DR vs AL
######################################################################
getstats(df, "AL", "DR", "TotalEmbryosHarvested")
boxit(df, "FeedingScheme", "TotalEmbryosHarvested", "FeedingScheme", "DRfertilityTotalEmbryos.pdf", "Feeding Scheme", "Fertility (Total Embryos per mating)")
######################################################################
# Load fertility data and plot
######################################################################
df = read.table("fig3_OEfertility.csv", sep = ',', header = TRUE, stringsAsFactors = FALSE)
# subset to automatic feeding only
df = df[df$FeedingScheme != "manual", ]
df$FeedingScheme[df$FeedingScheme == "7times/AL"] = "AL"
df$FeedingScheme[df$FeedingScheme == "12times/OF"] = "OE"
######################################################################
# Fertilized embryos first
######################################################################
df[df$Crossed == "7/22/19", c("Pair", "FeedingScheme")]
getstats(df, "AL", "OE", "LiveEmbryosHarvestedDay0")
boxit(df, "FeedingScheme", "LiveEmbryosHarvestedDay0", "FeedingScheme", "fertilityOE_LiveEmbryos.pdf", "Feeding Scheme", "Fertility (Fertilized Embryos per mating)")
######################################################################
# Total embryos
######################################################################
getstats(df, "AL", "OE", "TotalEmbryosHarvested")
boxit(df, "FeedingScheme", "TotalEmbryosHarvested", "FeedingScheme", "fertilityOE_TotalEmbryos.pdf", "Feeding Scheme", "Fertility (Total Embryos per mating)")