# Fly Fitness Matrix

Gould, AL; Zhang, V; Lamberti, L; Jones, EW; Obadia, B; Gavryushkin, A; Carlso, JM; Beerenwinkel, N; Ludington, WB

# Setup ```r id=ef95918d-5552-4baf-9c7a-b2702f6db4ad install.packages("popbio") library(popbio) ``` [FlyFitnessRawData.csv][nextjournal#file#f9b85c95-ee07-49ca-8638-850f31462794] [DevelopmentData.csv][nextjournal#file#f4c56edb-857d-42af-a2ba-689b40724af1] ## Raw Data Procesing ```r id=54949bb7-f009-4d98-927b-924e7ce63db0 # iterate through treatments for(m in 1:length(uniq)){ trt<-subset(fitdat, treat == uniq[m]) # iterate through vials for(n in 1:length(uniq1)){ vial<-subset(trt, vial == uniq1[n]) fecund<-vector("numeric", 39) surv<-vector("numeric", 39) # select development time within treatment to use for (i in 1:100){ trt2<-subset(devdat, treatment == uniq1[n]) uniq2<-unique(unlist(trt2$replicate)) r<-sample(uniq2, 1, replace=TRUE) rep<-subset(trt2, replicate==r) dev<-rep$development fecund<-vial$fecundity_adj f_add<-rep(0,dev+6) fecundity<-c(f_add, fecund) time<-seq(0, length(fecundity)-1, by=1) surv<-vial$survival s_add<-rep(1,dev+5) survival<-c(s_add, surv) #create matrix of all zeros fitM<-matrix(0, nrow=length(fecundity), length(fecundity), byrow=T) #populate matirx with fecundity and survival values for (k in 1:length(fecundity)){ fitM[1,k]<-fecundity[k] for (l in 1:length(survival)){ fitM[l+1,l] <- survival[l] } } #calculate dominant eigenvalue fit<-lambda(fitM) #store results in vector fit_rep[i]<-fit } fit_vial[n]<-mean(fit_rep) } #store results in dataframe d[,m]<-fit_vial } d ``` [FlyFitness.csv][nextjournal#file#5c7ede94-8d04-4e86-8a8b-abdc62708c09] ```r id=cdb5e046-973b-4861-9298-01627ee8960a check <- read.csv([reference][nextjournal#reference#e5c45890-24f1-4cbe-91f1-95313e386ba9]) ``` # Plot Fly Fitness ```r id=89ffb3f3-f3f8-4658-9145-4a096385ea8f # PLOT FLY FITNESS (from fitness dataframe above (d) modified in Excel) mydata<-read.csv([reference][nextjournal#reference#1f180a8f-d67b-409c-b781-5d67d826946d], header=TRUE, sep=",") data<-subset(mydata, treat != "33") sterr <- function(x) { sd(x)/sqrt(length(x)) } stderr<-aggregate(fitness, by=list(treat), FUN="sterr") meanFit<-aggregate(fitness, by=list(treat), FUN="mean") spacing<-c(0.92, 1.08, 0.85, 1, 1.15, 1.62, 1.59, 2.28, 1.75, 2.19, 2.05, 1.95, 2.11, 1.71, 1.87, 2.78, 2.94, 3.02, 3.1, 3.2, 3.28, 2.66, 3.375, 2.56, 3.55, 3.9, 3.99, 4.08, 4.17, 4.33, 5, 0) points<-c(1:32) points<-as.character(points) par(mar=c(5,5,2,2)) plot(spacing, meanFit$x, ylim=c(1.15, 1.25), ylab="Fitness", xlab="Number of species", pch=21, cex=3.5, cex.axis=1.4, cex.lab=1.6) text(spacing, meanFit$x, labels=points) arrows(spacing,meanFit$x-stderr$x,spacing,meanFit$x+stderr$x, code=3, length=0.02, angle = 90) ``` ![__out-0][nextjournal#output#89ffb3f3-f3f8-4658-9145-4a096385ea8f#__out-0] # Fitness Matrix with Variable Development time per vial ```r id=9d9cb887-1dbd-46c4-ba37-5acefb75908b # FITNESS MATRIX WITH VARIABLE DEVELOPMENT TIME PER VIAL (100x) fitdat<-read.csv([reference][nextjournal#reference#ffeeb225-bb4d-4f4f-a985-6bd384f377b8], header=TRUE, sep=",") devdat<-read.csv([reference][nextjournal#reference#ac369d69-f1a7-4c2d-9094-22d977f401bb], header=TRUE, sep=",") uniq <- unique(unlist(fitdat$treat)) uniq1 <- unique(unlist(fitdat$vial)) fit_rep<-vector("numeric", 100) fit_vial<-vector("numeric", 5) d<-matrix(0, nrow=5, length(uniq), byrow=F) d<-as.data.frame(d) ``` [nextjournal#file#f9b85c95-ee07-49ca-8638-850f31462794]: [nextjournal#file#f4c56edb-857d-42af-a2ba-689b40724af1]: [nextjournal#file#5c7ede94-8d04-4e86-8a8b-abdc62708c09]: [nextjournal#reference#e5c45890-24f1-4cbe-91f1-95313e386ba9]: <#nextjournal#reference#e5c45890-24f1-4cbe-91f1-95313e386ba9> [nextjournal#reference#1f180a8f-d67b-409c-b781-5d67d826946d]: <#nextjournal#reference#1f180a8f-d67b-409c-b781-5d67d826946d> [nextjournal#output#89ffb3f3-f3f8-4658-9145-4a096385ea8f#__out-0]: [nextjournal#reference#ffeeb225-bb4d-4f4f-a985-6bd384f377b8]: <#nextjournal#reference#ffeeb225-bb4d-4f4f-a985-6bd384f377b8> [nextjournal#reference#ac369d69-f1a7-4c2d-9094-22d977f401bb]: <#nextjournal#reference#ac369d69-f1a7-4c2d-9094-22d977f401bb>
This notebook was exported from https://nextjournal.com/a/Kj59UboXG6Q6DuoUEYrJj?change-id=CPSGcS1pC83LtWuDPTujc7 ```edn nextjournal-metadata {:article {:settings {:numbered? false, :sidebar? true, :authors? true, :subtitle? false}, :nodes {"1f180a8f-d67b-409c-b781-5d67d826946d" {:id "1f180a8f-d67b-409c-b781-5d67d826946d", :kind "reference", :link [:output "5c7ede94-8d04-4e86-8a8b-abdc62708c09" "FlyFitness.csv"]}, "54949bb7-f009-4d98-927b-924e7ce63db0" {:collapsed? true, :compute-ref #uuid "f7c93ee0-d78a-11e8-9ccc-f9d758563541", :exec-duration 52297, :id "54949bb7-f009-4d98-927b-924e7ce63db0", :kind "code", :output-log-lines {}, :runtime [:runtime "66b028e7-89ba-4013-bf79-4711e5f617d0"]}, "5c7ede94-8d04-4e86-8a8b-abdc62708c09" {:id "5c7ede94-8d04-4e86-8a8b-abdc62708c09", :kind "file"}, "66b028e7-89ba-4013-bf79-4711e5f617d0" {:environment [:environment {:article/nextjournal.id #uuid "5b45e6f7-fe51-488a-b89b-1c8f74dfb387", :change/nextjournal.id #uuid "5b751e08-cc0f-4e29-8944-bd8f3056cdc6", :node/id "e8cb826f-2c7d-4cdd-b45b-0ad4282c5394"}], :id "66b028e7-89ba-4013-bf79-4711e5f617d0", :kind "runtime", :language "r", :type :nextjournal}, "89ffb3f3-f3f8-4658-9145-4a096385ea8f" {:compute-ref #uuid "888fdbd0-d78d-11e8-9ccc-f9d758563541", :exec-duration 57, :id "89ffb3f3-f3f8-4658-9145-4a096385ea8f", :kind "code", :output-log-lines {}, :runtime [:runtime "66b028e7-89ba-4013-bf79-4711e5f617d0"], :stdout-collapsed? true}, "9d9cb887-1dbd-46c4-ba37-5acefb75908b" {:compute-ref #uuid "a3660130-d78a-11e8-9ccc-f9d758563541", :exec-duration 1203, :id "9d9cb887-1dbd-46c4-ba37-5acefb75908b", :kind "code", :output-log-lines {}, :runtime [:runtime "66b028e7-89ba-4013-bf79-4711e5f617d0"]}, "ac369d69-f1a7-4c2d-9094-22d977f401bb" {:id "ac369d69-f1a7-4c2d-9094-22d977f401bb", :kind "reference", :link [:output "f4c56edb-857d-42af-a2ba-689b40724af1" "DevelopmentData.csv"]}, "cdb5e046-973b-4861-9298-01627ee8960a" {:compute-ref #uuid "40b09360-d78b-11e8-9ccc-f9d758563541", :exec-duration 819, :id "cdb5e046-973b-4861-9298-01627ee8960a", :kind "code", :output-log-lines {}, :runtime [:runtime "66b028e7-89ba-4013-bf79-4711e5f617d0"]}, "e5c45890-24f1-4cbe-91f1-95313e386ba9" {:id "e5c45890-24f1-4cbe-91f1-95313e386ba9", :kind "reference", :link [:output "5c7ede94-8d04-4e86-8a8b-abdc62708c09" "FlyFitness.csv"]}, "ef95918d-5552-4baf-9c7a-b2702f6db4ad" {:compute-ref #uuid "a0a90410-d78a-11e8-9ccc-f9d758563541", :exec-duration 4592, :id "ef95918d-5552-4baf-9c7a-b2702f6db4ad", :kind "code", :output-log-lines {:stdout 22}, :runtime [:runtime "66b028e7-89ba-4013-bf79-4711e5f617d0"]}, "f4c56edb-857d-42af-a2ba-689b40724af1" {:id "f4c56edb-857d-42af-a2ba-689b40724af1", :kind "file"}, "f9b85c95-ee07-49ca-8638-850f31462794" {:id "f9b85c95-ee07-49ca-8638-850f31462794", :kind "file"}, "ffeeb225-bb4d-4f4f-a985-6bd384f377b8" {:id "ffeeb225-bb4d-4f4f-a985-6bd384f377b8", :kind "reference", :link [:output "f9b85c95-ee07-49ca-8638-850f31462794" "FlyFitnessRawData.csv"]}}, :nextjournal/id #uuid "029d50b9-b913-4fa7-a515-2adcfacb67f0", :article/change {:nextjournal/id #uuid "5c3675fb-7fdf-44a9-a089-23635919b35c"}}} ```