############################# #LATENCY DURATION IN YAKUBA# ############################# latencydurationdensity_yakuba<-read.csv("/Users/danielmatute/Dropbox/latencydurationdensity_yakuba.csv") attach(latencydurationdensity_yakuba) names(latencydurationdensity_yakuba) freqhetf<-factor(freqhet) totalfliesf<-factor(totalflies) latencydensitylm<-lm(latency~ freqhetf* totalfliesf) summary(latencydensitylm) anova(latencydensitylm) > anova(latencydensitylm) Analysis of Variance Table Response: latency Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 8905 989.50 13.1871 < 2.2e-16 *** totalfliesf 9 27016 3001.79 40.0051 < 2.2e-16 *** freqhetf:totalfliesf 81 33402 412.37 5.4956 < 2.2e-16 *** Residuals 1400 105049 75.04 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 durationdensitylm<-lm(duration~ freqhetf* totalfliesf) summary(durationdensitylm) anova(durationdensitylm) > anova(durationdensitylm) Analysis of Variance Table Response: duration Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 16426 1825.2 21.1841 < 2.2e-16 *** totalfliesf 9 48584 5398.2 62.6558 < 2.2e-16 *** freqhetf:totalfliesf 81 63665 786.0 9.1227 < 2.2e-16 *** Residuals 1400 120619 86.2 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 cor.test(latency, freqhet, method="spearman") > cor.test(latency, freqhet, method="spearman") Spearmans rank correlation rho data: latency and freqhet S = 470987068, p-value = 2.329e-10 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.1626893 Warning message: In cor.test.default(latency, freqhet, method = "spearman") : Cannot compute exact p-values with ties cor.test(duration, freqhet, method="spearman") Spearmans rank correlation rho data: duration and freqhet S = 627716131, p-value = 6.738e-06 alternative hypothesis: true rho is not equal to 0 sample estimates: rho -0.1159403 Warning message: In cor.test.default(duration, freqhet, method = "spearman") : Cannot compute exact p-values with ties ############################### #LATENCY DURATION IN SIMULANS# ############################### latencydurationdensity_simulans<-read.csv("~/Dropbox/simulans_duration_latency_lm.csv") attach(latencydurationdensity_simulans) names(latencydurationdensity_simulans) freqhetf<-factor(freqhet_sim) totalfliesf<-factor(totalflies_sim) latencydensitylm<-lm(latency_simulans ~ freqhetf* totalfliesf) summary(latencydensitylm) anova(latencydensitylm) > anova(latencydensitylm) Analysis of Variance Table Response: latency Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 16736 1859.5 17.2378 < 2.2e-16 *** totalfliesf 9 47060 5228.9 48.4716 < 2.2e-16 *** freqhetf:totalfliesf 81 20152 248.8 2.3063 1.635e-09 *** Residuals 1400 151026 107.9 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 latencydurationdensity_simulans<-read.csv("/Users/danielmatute/Dropbox/simulans_duration_latency_lm.csv") attach(latencydurationdensity_simulans) names(latencydurationdensity_simulans) freqhetf<-factor(freqhet_sim) totalfliesf<-factor(totalflies_sim) durationdensitylm<-lm(duration_simulans ~ freqhetf* totalfliesf) summary(durationdensitylm) anova(durationdensitylm) > anova(durationdensitylm) Analysis of Variance Table Response: duration Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 11653 1294.8 13.1294 < 2.2e-16 *** totalfliesf 9 83465 9273.9 94.0395 < 2.2e-16 *** freqhetf:totalfliesf 81 41726 515.1 5.2237 < 2.2e-16 *** Residuals 1400 138064 98.6 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 cor.test(latency_simulans, freqhet, method="spearman") > cor.test(latency, freqhet, method="spearman") Spearmans rank correlation rho data: latency_simulans and freqhet S = 416666685, p-value < 2.2e-16 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.2592589 Warning message: In cor.test.default(latency, freqhet, method = "spearman") : Cannot compute exact p-values with ties cor.test(duration_simulans, freqhet, method="spearman") > cor.test(duration, freqhet, method="spearman") Spearmans rank correlation rho data: duration_simulans and freqhet S = 661929455, p-value = 5.398e-12 alternative hypothesis: true rho is not equal to 0 sample estimates: rho -0.176764 Warning message: In cor.test.default(duration, freqhet, method = "spearman") : Cannot compute exact p-values with ties ############################################### # Heterospecific mating frequency in yakuba # ############################################### hybridproductiondensity<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2013/Noisy_Neighbors/Noisy Neighbors Dec/raw_data/hybridsfromhetmatingsdensity_yakuba.csv") attach(hybridproductiondensity) names(hybridproductiondensity) #THis data is a non-normal as it can get hybridproductiondensityFriedman<-read.csv("/Users/danielmatute/Dropbox/hybridprogenyaverageFriedman.csv") attach(hybridproductiondensityFriedman) names(hybridproductiondensityFriedman) friedman.test(averagehybrid, freqhet, totalflies) Friedman rank sum test data: averagehybrid, freqhet and totalflies Friedman chi-squared = 38.806, df = 9, p-value = 1.249e-05 friedman.test.with.post.hoc(averagehybrid~ freqhet| totalflies, hybridproductiondensityFriedman) > friedman.test.with.post.hoc(averagehybrid~ freqhet| totalflies, hybridproductiondensityFriedman) $Friedman.Test Asymptotic General Independence Test data: averagehybrid by freqhet (10, 20, 30, 40, 50, 60, 70, 80, 90, 99) stratified by totalflies maxT = 3.6957, p-value = 0.00832 $PostHoc.Test 20 - 10 1.000000000 30 - 10 1.000000000 40 - 10 1.000000000 50 - 10 1.000000000 60 - 10 0.998657370 70 - 10 0.986666977 80 - 10 0.007994064 90 - 10 0.066385218 99 - 10 0.162759489 30 - 20 1.000000000 40 - 20 1.000000000 50 - 20 1.000000000 60 - 20 0.998651388 70 - 20 0.986662857 80 - 20 0.008328965 90 - 20 0.066260834 99 - 20 0.162036254 40 - 30 1.000000000 50 - 30 1.000000000 60 - 30 0.998658371 70 - 30 0.986631543 80 - 30 0.008263949 90 - 30 0.065733335 99 - 30 0.162003504 50 - 40 1.000000000 60 - 40 0.998653450 70 - 40 0.986656372 80 - 40 0.008220957 90 - 40 0.065585398 99 - 40 0.161980481 60 - 50 0.998654155 70 - 50 0.986626526 80 - 50 0.008107400 90 - 50 0.065944084 99 - 50 0.162589126 70 - 60 0.999999795 80 - 60 0.105236811 90 - 60 0.404773346 99 - 60 0.646183093 80 - 70 0.209403993 90 - 70 0.606395964 99 - 70 0.823630843 90 - 80 0.999811543 99 - 80 0.994035695 99 - 90 0.999998970 ############################################### # Heterospecific mating frequency in simulans # ############################################### hybridproductiondensity<-read.csv("/Users/danielmatute/Dropbox/hybridsfromhetmatingsdensity_simulans.csv") attach(hybridproductiondensity) names(hybridproductiondensity) #THis data is a non-normal as it can get hybridproductiondensityFriedman<-read.csv("/Users/danielmatute/Dropbox/mean_hetfre_sim.csv") attach(hybridproductiondensityFriedman) names(hybridproductiondensityFriedman) friedman.test(mean_hetfrequency_simulans, freqhet, totalflies) Friedman rank sum test data: mean_hetfrequency_simulans, freqhet and totalflies Friedman chi-squared = 40.9903, df = 9, p-value = 5.022e-06 friedman.test.with.post.hoc(mean_hetfrequency_simulans ~ freqhet| totalflies, hybridproductiondensityFriedman) > friedman.test.with.post.hoc(mean_hetfrequency_simulans ~ freqhet| totalflies, hybridproductiondensityFriedman) $Friedman.Test Asymptotic General Independence Test data: mean_hetfrequency_simulans by freqhet (10, 20, 30, 40, 50, 60, 70, 80, 90, 99) stratified by totalflies maxT = 4.2344, p-value = 0.0008988 $PostHoc.Test 20 - 10 1.0000000000 30 - 10 1.0000000000 40 - 10 1.0000000000 50 - 10 1.0000000000 60 - 10 1.0000000000 70 - 10 1.0000000000 80 - 10 0.7843385501 90 - 10 0.1961101747 99 - 10 0.0010741195 30 - 20 1.0000000000 40 - 20 1.0000000000 50 - 20 1.0000000000 60 - 20 1.0000000000 70 - 20 1.0000000000 80 - 20 0.7842179728 90 - 20 0.1962206389 99 - 20 0.0010094108 40 - 30 1.0000000000 50 - 30 1.0000000000 60 - 30 1.0000000000 70 - 30 1.0000000000 80 - 30 0.7846401218 90 - 30 0.1963002352 99 - 30 0.0009896610 50 - 40 1.0000000000 60 - 40 1.0000000000 70 - 40 1.0000000000 80 - 40 0.7842130591 90 - 40 0.1960381928 99 - 40 0.0008933688 60 - 50 1.0000000000 70 - 50 1.0000000000 80 - 50 0.7841028707 90 - 50 0.1959755685 99 - 50 0.0008795458 70 - 60 1.0000000000 80 - 60 0.7841228290 90 - 60 0.1957585348 99 - 60 0.0009393713 80 - 70 0.7841723208 90 - 70 0.1961346918 99 - 70 0.0008094450 90 - 80 0.9956514783 99 - 80 0.2608220732 99 - 90 0.8545068434 ######################################## #LATENCY DURATION/LATENCY IN SANTOMEA# ######################################## latencydurationdensitysan<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/durationdensitymatrixsan.csv") attach(latencydurationdensitysan) names(latencydurationdensitysan) freqhetf<-factor(freqhet) totalfliesf<-factor(totalflies) names(latencydurationdensitysan) latencydensitysanlm<-lm(latencysantomeafemales ~ freqhetf* totalfliesf) summary(latencydensitysanlm) anova(latencydensitysanlm) > anova(latencydensitysanlm) Analysis of Variance Table Response: latencysantomeafemales Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 282 31.319 0.3911 0.9399 totalfliesf 9 675 75.016 0.9367 0.4918 freqhetf:totalfliesf 81 5984 73.875 0.9225 0.6718 Residuals 1480 117700 79.527 durationdensitysanlm<-lm(durationsanfemales ~ freqhetf* totalfliesf) summary(durationdensitysanlm) anova(durationdensitysanlm) > anova(durationdensitysanlm) Analysis of Variance Table Response: durationsanfemales Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 275 30.519 0.4659 0.89795 totalfliesf 9 1083 120.290 1.8363 0.05767 . freqhetf:totalfliesf 81 4636 57.239 0.8738 0.77922 Residuals 1400 91709 65.506 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 cor.test(freqhet ,latencysantomeafemales, method="spearman") Spearmans rank correlation rho data: freqhet and latencysantomeafemales S = 570540606, p-value = 0.5801 alternative hypothesis: true rho is not equal to 0 sample estimates: rho -0.01429486 Warning message: In cor.test.default(freqhet, latencysantomeafemales, method = "spearman") : Cannot compute exact p-values with ties cor.test(durationsanfemales, freqhet, method="spearman") > cor.test(durationsanfemales, freqhet, method="spearman") Spearmans rank correlation rho data: durationsanfemales and freqhet S = 545531441, p-value = 0.243 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.0301659 Warning message: In cor.test.default(durationsanfemales, freqhet, method = "spearman") : Cannot compute exact p-values with ties ################################################## # Heterospecific mating frequency in Santomea # ################################################## NO NEED. NO HETEROSPECIFIC MATINGS WERE OBSERVED ######################################## #LATENCY DURATION/LATENCY IN SECHELLIA# ######################################## latencydurationdensitysech<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/duration_density_sech.csv") attach(latencydurationdensitysech) names(latencydurationdensitysech) freqhetf<-factor(freqhet) totalfliesf<-factor(totalflies) latencydensitysech_lm<-lm(latencyssech_females ~ freqhetf* totalfliesf) summary(latencydensitysech_lm) anova(latencydensitysech_lm) > anova(latencydensitysech_lm) Analysis of Variance Table Response: latencyssech_females Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 273 30.333 0.3759 0.9469 totalfliesf 9 486 54.040 0.6697 0.7370 freqhetf:totalfliesf 81 5513 68.056 0.8434 0.8362 Residuals 1400 112970 80.693 durationdensitysech_lm<-lm(durationsech_females ~ freqhetf* totalfliesf) anova(durationdensitysech_lm) > anova(durationdensitysech_lm) Analysis of Variance Table Response: durationsech_females Df Sum Sq Mean Sq F value Pr(>F) freqhetf 9 321 35.634 0.4881 0.88342 totalfliesf 9 1080 119.979 1.6433 0.09807 . freqhetf:totalfliesf 81 5021 61.982 0.8489 0.82644 Residuals 1400 102214 73.010 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 cor.test(freqhet , latencyssech_females, method="spearman") Spearmans rank correlation rho data: freqhet and latencyssech_females S = 567684389, p-value = 0.7213 alternative hypothesis: true rho is not equal to 0 sample estimates: rho -0.00921714 Warning message: In cor.test.default(freqhet, latencyssech_females, method = "spearman") : Cannot compute exact p-values with ties cor.test(freqhet , durationsech_females, method="spearman") Spearmans rank correlation rho data: freqhet and durationsech_females S = 545040131, p-value = 0.2296 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.03103934 Warning message: In cor.test.default(freqhet, durationsech_females, method = "spearman") : Cannot compute exact p-values with ties ################################################## # Heterospecific mating frequency in Sechellia # ################################################## NO NEED. NO HETEROSPECIFIC MATINGS WERE OBSERVED ############################################ ############################################ ############################################ ### ### ### FIGURES 1 and 3 ### ### ### ############################################ ############################################ ############################################ ################################## # FIGURE 1 # ################################## pdf(file="density_Figure1.pdf", height=8, width=12) latencydurationdensity_both<-read.csv("~/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/latencyduration_average_both.csv") attach(latencydurationdensity_both) names(latencydurationdensity_both) par(mar=c(4,7,3,1)) par(mfrow=c(2,2)) plot(latency_average_yak ~freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCL (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="A. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, bg="blue", col="black") lmlatencyfreqhet<-lm(latency_average_yak ~freqhet) abline(lmlatencyfreqhet, lty=1,lwd=3) plot(duration_average_yak ~freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="B. Copulation duration", cex.main=2.5, ylim=c(0,80), pch=21, bg="blue", col="black") lmdurationfreqhet <-lm(duration_average_yak ~freqhet) abline(lmdurationfreqhet, lty=1,lwd=3) plot(latency_average_yak ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCL (min)",,cex.lab=2, cex=1.6, cex.axis=1.5, main="C. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, bg="blue", col="black") lmlatencytotalflies<-lm(latency_average_yak ~ totalflies) abline(lmlatencytotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$yak_latency_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) plot(duration_average_yak ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="D. Copulation duration", cex.main=2.5, ylim=c(0,80), pch=21, bg="blue", col="black") lmdurationtotalflies <-lm(duration_average_yak ~ totalflies) abline(lmdurationtotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$yak_duration_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) dev.off() #Copulation latency - Conspecific: CLC #Copulation duration - Conspecific: CDC ################################## # FIGURE 3 # ################################## #simulans@ pdf(file="denisty_Figure3.pdf", height=8, width=12) latencydurationdensity_both<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/latencyduration_average_both.csv") attach(latencydurationdensity_both) names(latencydurationdensity_both) #freqhetf<-factor(freqhet) #totalfliesf<-factor(totalflies) conspecific_controls<-read.csv("/Users/danielmatute/Dropbox/conspecific_latency_duration_mean.csv") names(conspecific_controls) par(mar=c(4,7,3,1)) par(mfrow=c(2,2)) plot(latency_average_sim ~ freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCL (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="A. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="red") lmlatencyfreqhet<-lm(latency_simulans_average ~ freqhet) abline(lmlatencyfreqhet, lty=1,lwd=3) plot(duration_simulans_average ~ freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="B. Copulation duration", cex.main=2.5, ylim=c(0,80), pch=21, col="black", bg="red") lmdurationfreqhet <-lm(duration_average_sim ~ freqhet) abline(lmdurationfreqhet, lty=1,lwd=3) plot(latency_simulans_average ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCL (min)",,cex.lab=2, cex=1.6, cex.axis=1.5, main="C. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="red") lmlatencytotalflies<-lm(latency_simulans_average ~ totalflies) abline(lmlatencytotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$sim_latency_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) plot(duration_simulans_average ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="D. Copulation duration", cex.main=2.5, ylim=c(0,80), pch=21, col="black", bg="red") lmdurationtotalflies <-lm(duration_simulans_average ~ totalflies) abline(lmdurationtotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$sim_duration_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) dev.off() #Copulation latency - Conspecific: CLC #Copulation duration - Conspecific: CDC cor.test(latency_simulans_average, freqhet_sim, method="spearman") cor.test(duration_simulans_average, freqhet_sim, method="spearman") cor.test(latency_simulans_average, totalflies_sim, method="spearman") cor.test(duration_simulans_average, totalflies_sim, method="spearman") ####################### # PARTIAL CORRELATIONS# ####################### pcor.test <- function(x,y,z,use="mat",method="p",na.rm=T){ # The partial correlation coefficient between x and y given z # # pcor.test is free and comes with ABSOLUTELY NO WARRANTY. # # x and y should be vectors # # z can be either a vector or a matrix # # use: There are two methods to calculate the partial correlation coefficient. # One is by using variance-covariance matrix ("mat") and the other is by using recursive formula ("rec"). # Default is "mat". # # method: There are three ways to calculate the correlation coefficient, # which are Pearson's ("p"), Spearman's ("s"), and Kendall's ("k") methods. # The last two methods which are Spearman's and Kendall's coefficient are based on the non-parametric analysis. # Default is "p". # # na.rm: If na.rm is T, then all the missing samples are deleted from the whole dataset, which is (x,y,z). # If not, the missing samples will be removed just when the correlation coefficient is calculated. # However, the number of samples for the p-value is the number of samples after removing # all the missing samples from the whole dataset. # Default is "T". x <- c(x) y <- c(y) z <- as.data.frame(z) if(use == "mat"){ p.use <- "Var-Cov matrix" pcor = pcor.mat(x,y,z,method=method,na.rm=na.rm) }else if(use == "rec"){ p.use <- "Recursive formula" pcor = pcor.rec(x,y,z,method=method,na.rm=na.rm) }else{ stop("\'use\' should be either \"rec\" or \"mat\"!\n") } # print the method if(gregexpr("p",method)[[1]][1] == 1){ p.method <- "Pearson" }else if(gregexpr("s",method)[[1]][1] == 1){ p.method <- "Spearman" }else if(gregexpr("k",method)[[1]][1] == 1){ p.method <- "Kendall" }else{ stop("\'method\' should be \"pearson\" or \"spearman\" or \"kendall\"!\n") } # sample number n <- dim(na.omit(data.frame(x,y,z)))[1] # given variables' number gn <- dim(z)[2] # p-value if(p.method == "Kendall"){ statistic <- pcor/sqrt(2*(2*(n-gn)+5)/(9*(n-gn)*(n-1-gn))) p.value <- 2*pnorm(-abs(statistic)) }else{ statistic <- pcor*sqrt((n-2-gn)/(1-pcor^2)) p.value <- 2*pnorm(-abs(statistic)) } data.frame(estimate=pcor,p.value=p.value,statistic=statistic,n=n,gn=gn,Method=p.method,Use=p.use) } # By using var-cov matrix pcor.mat <- function(x,y,z,method="p",na.rm=T){ x <- c(x) y <- c(y) z <- as.data.frame(z) if(dim(z)[2] == 0){ stop("There should be given data\n") } data <- data.frame(x,y,z) if(na.rm == T){ data = na.omit(data) } xdata <- na.omit(data.frame(data[,c(1,2)])) Sxx <- cov(xdata,xdata,m=method) xzdata <- na.omit(data) xdata <- data.frame(xzdata[,c(1,2)]) zdata <- data.frame(xzdata[,-c(1,2)]) Sxz <- cov(xdata,zdata,m=method) zdata <- na.omit(data.frame(data[,-c(1,2)])) Szz <- cov(zdata,zdata,m=method) # is Szz positive definite? zz.ev <- eigen(Szz)$values if(min(zz.ev)[1]<0){ stop("\'Szz\' is not positive definite!\n") } # partial correlation Sxx.z <- Sxx - Sxz %*% solve(Szz) %*% t(Sxz) rxx.z <- cov2cor(Sxx.z)[1,2] rxx.z } # By using recursive formula pcor.rec <- function(x,y,z,method="p",na.rm=T){ # x <- c(x) y <- c(y) z <- as.data.frame(z) if(dim(z)[2] == 0){ stop("There should be given data\n") } data <- data.frame(x,y,z) if(na.rm == T){ data = na.omit(data) } # recursive formula if(dim(z)[2] == 1){ tdata <- na.omit(data.frame(data[,1],data[,2])) rxy <- cor(tdata[,1],tdata[,2],m=method) tdata <- na.omit(data.frame(data[,1],data[,-c(1,2)])) rxz <- cor(tdata[,1],tdata[,2],m=method) tdata <- na.omit(data.frame(data[,2],data[,-c(1,2)])) ryz <- cor(tdata[,1],tdata[,2],m=method) rxy.z <- (rxy - rxz*ryz)/( sqrt(1-rxz^2)*sqrt(1-ryz^2) ) return(rxy.z) }else{ x <- c(data[,1]) y <- c(data[,2]) z0 <- c(data[,3]) zc <- as.data.frame(data[,-c(1,2,3)]) rxy.zc <- pcor.rec(x,y,zc,method=method,na.rm=na.rm) rxz0.zc <- pcor.rec(x,z0,zc,method=method,na.rm=na.rm) ryz0.zc <- pcor.rec(y,z0,zc,method=method,na.rm=na.rm) rxy.z <- (rxy.zc - rxz0.zc*ryz0.zc)/( sqrt(1-rxz0.zc^2)*sqrt(1-ryz0.zc^2) ) return(rxy.z) } } ############################## #####PARTIAL CORRELATIONS#### ############################## #YAKUBA# latencydurationdensity_yakuba<-read.csv("/Users/danielmatute/Dropbox/latencydurationdensity_yakuba.csv") attach(latencydurationdensity_yakuba) pcor.test(latency, freqhet, totalflies, method="spearman") > pcor.test(latency, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 0.1645023 1.098897e-10 6.452679 1500 1 Spearman Var-Cov matrix pcor.test(latency, totalflies, freqhet, method="spearman") > pcor.test(latency, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 0.1500567 4.296713e-09 5.872346 1500 1 Spearman Var-Cov matrix pcor.test(duration, freqhet, totalflies, method="spearman") > pcor.test(duration, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 -0.1212865 2.271824e-06 -4.727606 1500 1 Spearman Var-Cov matrix pcor.test(duration, totalflies, freqhet, method="spearman") > pcor.test(duration, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 -0.2956174 4.929593e-33 -11.97287 1500 1 Spearman Var-Cov matrix #SANTOMEA# latencydurationdensitysan<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/durationdensitymatrixsan.csv") attach(latencydurationdensitysan) names(latencydurationdensitysan) pcor.test(latencysantomeafemales, freqhet, totalflies, method="spearman") > pcor.test(latencysantomeafemales, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 -0.01429861 0.5800681 -0.5532853 1500 1 Spearman Var-Cov matrix pcor.test(latencysantomeafemales, totalflies, freqhet, method="spearman") > pcor.test(latencysantomeafemales, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 0.02289524 0.3755777 0.8860739 1500 1 Spearman Var-Cov matrix pcor.test(durationsanfemales, freqhet, totalflies, method="spearman") > pcor.test(durationsanfemales, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 0.03018123 0.2426952 1.168277 1500 1 Spearman Var-Cov matrix pcor.test(durationsanfemales, totalflies, freqhet, method="spearman") > pcor.test(durationsanfemales, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 -0.03188415 0.2171061 -1.23426 1500 1 Spearman Var-Cov matrix #SIMULANS# latencydurationdensity_simulans<-read.csv("/Users/danielmatute/Dropbox/simulans_duration_latency_lm.csv") attach(latencydurationdensity_simulans) names(latencydurationdensity_simulans) pcor.test(latency_simulans, freqhet, totalflies, method="spearman") > pcor.test(latencysantomeafemales, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 0.2750599 1.766886e-28 11.06934 1500 1 Spearman Var-Cov matrix pcor.test(latency_simulans, totalflies, freqhet, method="spearman") > pcor.test(latencysantomeafemales, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 0.3458797 3.733121e-46 14.26277 1500 1 Spearman Var-Cov matrix pcor.test(duration_simulans, freqhet, totalflies, method="spearman") > pcor.test(durationsanfemales, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 -0.1885877 1.086114e-13 -7.429983 1500 1 Spearman Var-Cov matrix pcor.test(duration_simulans, totalflies, freqhet, method="spearman") > pcor.test(durationsanfemales, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 -0.3060611 1.610096e-35 -12.43875 1500 1 Spearman Var-Cov matrix #SECHELLIA# latencydurationdensitysech<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/duration_density_sech.csv") attach(latencydurationdensitysech) names(latencydurationdensitysech) pcor.test(latencyssech_females, freqhet, totalflies, method="spearman") > pcor.test(latencyssech_females, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 -0.009219331 0.7213006 -0.3567211 1500 1 Spearman Var-Cov matrix pcor.test(latencyssech_females, totalflies, freqhet, method="spearman") > pcor.test(latencyssech_females, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 0.02180275 0.3987964 0.8437728 1500 1 Spearman Var-Cov matrix pcor.test(durationsech_females, freqhet, totalflies, method="spearman") > pcor.test(durationsech_females, freqhet, totalflies, method="spearman") estimate p.value statistic n gn Method Use 1 0.03105051 0.22938 1.201957 1500 1 Spearman Var-Cov matrix pcor.test(durationsech_females, totalflies, freqhet, method="spearman") > pcor.test(durationsech_females, totalflies, freqhet, method="spearman") estimate p.value statistic n gn Method Use 1 -0.02683379 0.2989898 -1.038602 1500 1 Spearman Var-Cov matrix ########################################################## ########################################################## # Multiple regressions: Copulation latency and duration ## ########################################################## ########################################################## #simulans# latencydurationdensity_simulans<-read.csv("~/Dropbox/simulans_duration_latency_lm.csv") attach(latencydurationdensity_simulans) names(latencydurationdensity_simulans) > durationdensitylm<-lm(duration_simulans ~ freqhet* totalflies) summary(durationdensitylm) > summary(durationdensitylm) Call: lm(formula = duration_simulans ~ freqhet_sim * totalflies_sim) Residuals: Min 1Q Median 3Q Max -31.890 -10.012 -2.541 11.493 32.581 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 4.118e+01 1.515e+00 27.189 < 2e-16 *** freqhet_sim -1.149e-01 2.447e-02 -4.694 2.92e-06 *** totalflies_sim -9.777e-03 2.441e-03 -4.005 6.50e-05 *** freqhet_sim:totalflies_sim 8.009e-05 3.944e-05 2.030 0.0425 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 12.53 on 1496 degrees of freedom Multiple R-squared: 0.04227, Adjusted R-squared: 0.04035 F-statistic: 22.01 on 3 and 1496 DF, p-value: 6.019e-14 > latencydensitylm<-lm(latency_simulans ~ freqhet_sim* totalflies_sim) summary(latencydensitylm) > latencydensitylm<-lm(latency_simulans ~ freqhet_sim* totalflies_sim) > summary(latencydensitylm) Call: lm(formula = latency_simulans ~ freqhet_sim * totalflies_sim) Residuals: Min 1Q Median 3Q Max -21.045 -6.932 -1.018 6.590 38.195 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 2.756e+01 1.108e+00 24.868 < 2e-16 *** freqhet_sim 4.798e-02 1.791e-02 2.680 0.00745 ** totalflies_sim -1.002e-02 1.786e-03 -5.608 2.43e-08 *** freqhet_sim:totalflies_sim 6.790e-05 2.886e-05 2.353 0.01875 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 9.171 on 1496 degrees of freedom Multiple R-squared: 0.1019, Adjusted R-squared: 0.1001 F-statistic: 56.56 on 3 and 1496 DF, p-value: < 2.2e-16 #yakuba# latencydurationdensity_yakuba<-read.csv("/Users/danielmatute/Dropbox/latencydurationdensity_yakuba.csv") attach(latencydurationdensity_yakuba) names(latencydurationdensity_yakuba) latencydensitylm<-lm(latency~ freqhet* totalflies) summary(latencydensitylm) anova(latencydensitylm) > summary(latencydensitylm) Call: lm(formula = latency ~ freqhet * totalflies) Residuals: Min 1Q Median 3Q Max -22.540 -8.573 -1.262 8.115 41.065 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 2.099e+01 1.261e+00 16.639 < 2e-16 *** freqhet 4.692e-02 2.038e-02 2.302 0.02145 * totalflies 6.100e-03 2.033e-03 3.001 0.00274 ** freqhet:totalflies 2.444e-05 3.285e-05 0.744 0.45687 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 10.44 on 1496 degrees of freedom Multiple R-squared: 0.06524, Adjusted R-squared: 0.06336 F-statistic: 34.8 on 3 and 1496 DF, p-value: < 2.2e-16 durationdensitylm<-lm(duration~ freqhet* totalflies) summary(durationdensitylm) > summary(durationdensitylm) Call: lm(formula = duration ~ freqhet * totalflies) Residuals: Min 1Q Median 3Q Max -30.823 -8.585 -1.976 9.396 83.787 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 4.541e+01 1.472e+00 30.847 < 2e-16 *** freqhet -1.301e-01 2.379e-02 -5.469 5.3e-08 *** totalflies -2.046e-02 2.372e-03 -8.625 < 2e-16 *** freqhet:totalflies 1.326e-04 3.833e-05 3.458 0.000558 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 12.18 on 1496 degrees of freedom Multiple R-squared: 0.1094, Adjusted R-squared: 0.1077 F-statistic: 61.28 on 3 and 1496 DF, p-value: < 2.2e-16 anova(durationdensitylm) > anova(durationdensitylm) Analysis of Variance Table Response: duration Df Sum Sq Mean Sq F value Pr(>F) freqhet 1 4000 4000.3 26.956 2.368e-07 *** totalflies 1 21508 21508.1 144.931 < 2.2e-16 *** freqhet:totalflies 1 1775 1775.1 11.961 0.0005585 *** Residuals 1496 222010 148.4 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 #santomea# latencydurationdensitysan<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/durationdensitymatrixsan.csv") attach(latencydurationdensitysan) names(latencydurationdensitysan) latencydensitysanlm<-lm(latencysantomeafemales ~ freqhet* totalflies) summary(latencydensitysanlm) anova(latencydensitysanlm) > summary(latencydensitysanlm) Call: lm(formula = latencysantomeafemales ~ freqhet * totalflies) Residuals: Min 1Q Median 3Q Max -30.003 -5.793 0.020 6.141 33.101 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.875e+01 1.077e+00 17.404 <2e-16 *** freqhet 9.376e-04 1.741e-02 0.054 0.957 totalflies 1.392e-03 1.736e-03 0.802 0.423 freqhet:totalflies -1.030e-05 2.806e-05 -0.367 0.714 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 8.916 on 1496 degrees of freedom Multiple R-squared: 0.00103, Adjusted R-squared: -0.0009734 F-statistic: 0.5141 on 3 and 1496 DF, p-value: 0.6726 durationdensitysanlm<-lm(durationsanfemales ~ freqhet* totalflies) summary(durationdensitysanlm) anova(durationdensitysanlm) > summary(durationdensitysanlm) Call: lm(formula = durationsanfemales ~ freqhet * totalflies) Residuals: Min 1Q Median 3Q Max -24.3703 -5.6493 0.0065 5.4669 28.5303 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 4.662e+01 9.751e-01 47.808 <2e-16 *** freqhet 2.068e-02 1.576e-02 1.312 0.190 totalflies 2.867e-04 1.572e-03 0.182 0.855 freqhet:totalflies -2.595e-05 2.539e-05 -1.022 0.307 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 8.07 on 1496 degrees of freedom Multiple R-squared: 0.002851, Adjusted R-squared: 0.0008509 F-statistic: 1.426 on 3 and 1496 DF, p-value: 0.2336 #sechellia# latencydurationdensitysan<-read.csv("/Users/danielmatute/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/durationdensitymatrixsan.csv") attach(latencydurationdensitysan) names(latencydurationdensitysan) latencydensitysech_lm<-lm(latencyssech_females_mean ~ freqhet* totalflies) summary(latencydensitysech_lm) > summary(latencydensitysech_lm) Call: lm(formula = latencyssech_females_mean ~ freqhet * totalflies) Residuals: Min 1Q Median 3Q Max -8.3106 -1.8852 -0.2775 1.9642 7.7931 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 4.358e+01 1.283e+00 33.979 <2e-16 *** freqhet 2.353e-02 2.072e-02 1.135 0.259 totalflies 2.246e-03 2.067e-03 1.086 0.280 freqhet:totalflies -4.346e-05 3.340e-05 -1.301 0.196 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.741 on 96 degrees of freedom (1400 observations deleted due to missingness) Multiple R-squared: 0.01756, Adjusted R-squared: -0.01314 F-statistic: 0.572 on 3 and 96 DF, p-value: 0.6348 durationdensitysech_lm<-lm(durationsech_females ~ freqhet* totalflies) summary(durationdensitysech_lm) > summary(durationdensitysech_lm) Call: lm(formula = durationsech_females ~ freqhet * totalflies) Residuals: Min 1Q Median 3Q Max -21.5802 -4.2904 0.1571 4.2129 20.8826 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.536e+01 7.961e-01 19.299 <2e-16 *** freqhet 8.564e-04 1.286e-02 0.067 0.947 totalflies -5.268e-04 1.283e-03 -0.411 0.681 freqhet:totalflies -6.264e-06 2.073e-05 -0.302 0.763 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 6.589 on 1496 degrees of freedom Multiple R-squared: 0.001629, Adjusted R-squared: -0.000373 F-statistic: 0.8137 on 3 and 1496 DF, p-value: 0.4863 library(multcomp) library(aod) library(pgirmess) binary_hybrids_density<-read.csv("~/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/Het_matings_binomial_sim_yak.csv") attach(binary_hybrids_density) names(binary_hybrids_density) progeny_binary_factor<-factor(progeny_binary) cross_factor<-factor(cross) hybrids_logit <- glm(hetmatings_yakuba ~ freqhet* totalflies, family = "binomial") summary(glht(hybrids_logit, linfct=mcp(freqhet ="Tukey"))) summary(hybrids_logit) Call: glm(formula = hetmatings_yakuba ~ freqhet * totalflies, family = "binomial") Deviance Residuals: Min 1Q Median 3Q Max -0.81061 -0.29499 -0.15135 -0.06289 2.88746 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.134e+01 9.443e-01 -12.006 < 2e-16 *** freqhet 8.204e-02 1.067e-02 7.690 1.47e-14 *** totalflies 6.621e-03 1.113e-03 5.950 2.67e-09 *** freqhet:totalflies -4.394e-05 1.274e-05 -3.449 0.000563 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 3352.5 on 9999 degrees of freedom Residual deviance: 2679.4 on 9996 degrees of freedom AIC: 2687.4 Number of Fisher Scoring iterations: 8 wald.test(b = coef(hybrids_logit), Sigma = vcov(hybrids_logit), Terms = 2:4) > wald.test(b = coef(hybrids_logit), Sigma = vcov(hybrids_logit), Terms = 2:4) Wald test: ---------- Chi-squared test: X2 = 384.9, df = 3, P(> X2) = 0.0 summary(hybrids_logit) > summary(hybrids_logit) Call: glm(formula = hetmatings_yakuba ~ freqhet * totalflies, family = "binomial") Deviance Residuals: Min 1Q Median 3Q Max -0.81061 -0.29499 -0.15135 -0.06289 2.88746 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.134e+01 9.443e-01 -12.006 < 2e-16 *** freqhet 8.204e-02 1.067e-02 7.690 1.47e-14 *** totalflies 6.621e-03 1.113e-03 5.950 2.67e-09 *** freqhet:totalflies -4.394e-05 1.274e-05 -3.449 0.000563 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 3352.5 on 9999 degrees of freedom Residual deviance: 2679.4 on 9996 degrees of freedom AIC: 2687.4 Number of Fisher Scoring iterations: 8 > wald.test(b = coef(hybrids_logit), Sigma = vcov(hybrids_logit), Terms = 2:4) Wald test: ---------- Chi-squared test: X2 = 384.9, df = 3, P(> X2) = 0.0 > wald.test(b = coef(hybrids_logit), Sigma = vcov(hybrids_logit), Terms = 2:2) Wald test: ---------- Chi-squared test: X2 = 59.1, df = 1, P(> X2) = 1.5e-14 > wald.test(b = coef(hybrids_logit), Sigma = vcov(hybrids_logit), Terms = 3:3) Wald test: ---------- Chi-squared test: X2 = 35.4, df = 1, P(> X2) = 2.7e-09 > wald.test(b = coef(hybrids_logit), Sigma = vcov(hybrids_logit), Terms = 4:4) Wald test: ---------- Chi-squared test: X2 = 11.9, df = 1, P(> X2) = 0.00056 binary_hybrids_density<-read.csv("~/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/Het_matings_binomial_sim_yak.csv") attach(binary_hybrids_density) names(binary_hybrids_density) hybrids_logit_simulans <- glm(hetmatings_simulans ~ freqhet* totalflies, family = "binomial") > summary(hybrids_logit_simulans) Call: glm(formula = hetmatings_simulans ~ freqhet * totalflies, family = "binomial") Deviance Residuals: Min 1Q Median 3Q Max -0.7605 -0.3130 -0.1662 -0.0760 2.8681 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -9.903e+00 8.207e-01 -12.066 < 2e-16 *** freqhet 6.947e-02 9.396e-03 7.394 1.43e-13 *** totalflies 4.821e-03 1.011e-03 4.767 1.87e-06 *** freqhet:totalflies -2.918e-05 1.173e-05 -2.487 0.0129 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 3275.8 on 9999 degrees of freedom Residual deviance: 2685.2 on 9996 degrees of freedom AIC: 2693.2 Number of Fisher Scoring iterations: 8 > wald.test(b = coef(hybrids_logit_simulans), Sigma = vcov(hybrids_logit_simulans), Terms = 2:4) Wald test: ---------- Chi-squared test: X2 = 361.1, df = 3, P(> X2) = 0.0 > > > > wald.test(b = coef(hybrids_logit_simulans), Sigma = vcov(hybrids_logit_simulans), Terms = 2:2) Wald test: ---------- Chi-squared test: X2 = 54.7, df = 1, P(> X2) = 1.4e-13 > wald.test(b = coef(hybrids_logit_simulans), Sigma = vcov(hybrids_logit_simulans), Terms = 3:3) Wald test: ---------- Chi-squared test: X2 = 22.7, df = 1, P(> X2) = 1.9e-06 > wald.test(b = coef(hybrids_logit_simulans), Sigma = vcov(hybrids_logit_simulans), Terms = 4:4) Wald test: ---------- Chi-squared test: X2 = 6.2, df = 1, P(> X2) = 0.013 > ################################### ################################### ### FIGURES 2 and 4: Contour maps ### ################################### ################################### library(akima) average_calculations<-read.csv("~/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/akima_plots.csv") attach(average_calculations) names(average_calculations) pdf(file="density_yakuba_fig2.pdf",height=6,width=7) average_calculations<-read.csv("~/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/akima_plots.csv") attach(average_calculations) names(average_calculations) colors <- grey.colors(30, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL) fld_yakuba <- interp(total, Propo_het, het_yak) filled.contour(fld_yakuba,col=colors, main="Proportion of hybridizing females, D. yakuba", xlab="Population size", ylab="Proportion of heterospecific males (D. santomea)", key.title = title(main="Prop"), nlevels=25,plot.axes = { axis(1, seq(100, 1000, by = 100)) axis(2, seq(10, 100, by = 10)) }) dev.off() pdf(file="density_simulans_fig4.pdf",height=6,width=7) average_calculations<-read.csv("~/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/akima_plots.csv") attach(average_calculations) names(average_calculations) colors <- grey.colors(30, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL) fld_simulans <- interp(total, Propo_het, het_sim) filled.contour(fld_simulans,col=colors, main="Proportion of hybridizing females, D. simulans", xlab="Population size", ylab="Proportion of heterospecific males (D. sechellia)", key.title = title(main="Prop"), nlevels=25,plot.axes = { axis(1, seq(100, 1000, by = 100)) axis(2, seq(10, 100, by = 10)) }) dev.off() ################################################## # SUPPLEMENTARY FIGURE 1 # ################################################# pdf(file="SUP_FIGURE1.pdf", height=8, width=12) latencydurationdensity_santomea_average<-read.csv("/Users/danielmatute/Dropbox/santomeasechellia_latdur_averages.csv") attach(latencydurationdensity_santomea_average) names(latencydurationdensity_santomea_average) par(mar=c(4,7,3,1)) par(mfrow=c(2,2)) plot(latencysantomeafemales_mean ~freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCL (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="A. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="yellow") lmlatencyfreqhet<-lm(latencysantomeafemales_mean ~freqhet) abline(lmlatencyfreqhet, lty=1,lwd=3) plot(durationsanfemales_mean ~freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="B. Copulation duration", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="yellow") lmdurationfreqhet <-lm(durationsanfemales_mean ~freqhet) abline(lmdurationfreqhet, lty=1,lwd=3) plot(latencysantomeafemales_mean ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCL (min)",,cex.lab=2, cex=1.6, cex.axis=1.5, main="C. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="yellow") lmlatencytotalflies<-lm(latencysantomeafemales_mean ~ totalflies) abline(lmlatencytotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$san_latency_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) plot(durationsanfemales_mean ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="D. Copulation duration", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="yellow") lmdurationtotalflies <-lm(durationsanfemales_mean ~ totalflies) abline(lmdurationtotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$san_duration_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) dev.off() #Copulation latency - Conspecific: CLC #Copulation duration - Conspecific: CDC ################################################## # SUPPLEMENTARY FIGURE 2 # ################################################# library(akima) average_calculations<-read.csv("~/Dropbox/Manuscripts 2014/Density_Matute/Raw_data_density_Matute/akima_plots.csv") attach(average_calculations) names(average_calculations) colors <- grey.colors(30, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL) fld_simulans <- interp(total, Propo_het, het_sim) filled.contour(fld_simulans,col=colors, main="Proportion of hybridizing females, D. simulans", xlab="Population size", ylab="Proportion of heterospecific males (D. sechellia)", key.title = title(main="Prop"), nlevels=25,plot.axes = { axis(1, seq(100, 1000, by = 100)) axis(2, seq(10, 100, by = 10)) }) fld_yakuba <- interp(total, Propo_het, het_yak) filled.contour(fld_yakuba,col=colors, main="Proportion of hybridizing females, D. yakuba", xlab="Population size", ylab="Proportion of heterospecific males (D. santomea)", key.title = title(main="Prop"), nlevels=25,plot.axes = { axis(1, seq(100, 1000, by = 100)) axis(2, seq(10, 100, by = 10)) }) pdf(file="SUP_FIGURE2.pdf", height=8, width=12) latencydurationdensity_sechellia<-read.csv("/Users/danielmatute/Dropbox/santomeasechellia_latdur_averages.csv") attach(latencydurationdensity_sechellia) names(latencydurationdensity_sechellia) par(mar=c(4,7,3,1)) par(mfrow=c(2,2)) plot(latencysech_females_mean ~freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCL (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="A. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="green") lmlatencyfreqhet<-lm(latencysech_females_mean ~freqhet) abline(lmlatencyfreqhet, lty=1,lwd=3) plot(durationsech_females_mean ~freqhet, type="p", xlab="Relative density of heterospecifics (%)", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="B. Copulation duration", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="green") lmdurationfreqhet <-lm(durationsech_females_mean ~freqhet) abline(lmdurationfreqhet, lty=1,lwd=3) plot(latencysech_females_mean ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCL (min)",,cex.lab=2, cex=1.6, cex.axis=1.5, main="C. Copulation latency", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="green") lmlatencytotalflies<-lm(latencysech_females_mean ~ totalflies) abline(lmlatencytotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$sech_latency_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) plot(durationsech_females_mean ~ totalflies, type="p", xlab="Number of males in the vial", ylab="CCD (min)",cex.lab=2, cex=1.6, cex.axis=1.5, main="D. Copulation duration", cex.main=2.5, ylim=c(0,60), pch=21, col="black", bg="green") lmdurationtotalflies <-lm(durationsech_females_mean ~ totalflies) abline(lmdurationtotalflies, lty=1,lwd=3) abline(lm(conspecific_controls$sech_duration_con_mean ~ conspecific_controls$totalflies), lwd=3, lty=2) dev.off() #Copulation latency - Conspecific: CLC #Copulation duration - Conspecific: CDC lmconspecifics_data<-read.csv("/Users/danielmatute/Dropbox/conspecific_cop_latency.csv") attach(lmconspecifics_data) names(lmconspecifics_data) > sech_latency_lm<-lm(sech_latency_con ~ totalflies) > summary(sech_latency_lm) Call: lm(formula = sech_latency_con ~ totalflies) Residuals: Min 1Q Median 3Q Max -8.5446 -2.3521 -0.1037 1.9547 27.5090 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.833e+01 7.440e-01 24.641 <2e-16 *** totalflies 9.093e-04 1.199e-03 0.758 0.449 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 4.218 on 148 degrees of freedom Multiple R-squared: 0.00387, Adjusted R-squared: -0.002861 F-statistic: 0.575 on 1 and 148 DF, p-value: 0.4495 > > sech_duration_lm<-lm(sech_duration_con ~ totalflies) > summary(sech_duration_lm) Call: lm(formula = sech_duration_con ~ totalflies) Residuals: Min 1Q Median 3Q Max -24.5596 -2.5277 0.3789 3.1618 11.8907 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 42.545009 0.917501 46.371 <2e-16 *** totalflies -0.001776 0.001479 -1.201 0.232 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 5.202 on 148 degrees of freedom Multiple R-squared: 0.00965, Adjusted R-squared: 0.002959 F-statistic: 1.442 on 1 and 148 DF, p-value: 0.2317 > san_latency_lm<-lm(san_latency_con ~ totalflies) > summary(san_latency_lm) Call: lm(formula = san_latency_con ~ totalflies) Residuals: Min 1Q Median 3Q Max -9.7308 -2.7712 -0.3031 2.0963 25.4917 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.961e+01 7.738e-01 25.343 <2e-16 *** totalflies 4.746e-04 1.247e-03 0.381 0.704 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 4.387 on 148 degrees of freedom Multiple R-squared: 0.0009775, Adjusted R-squared: -0.005773 F-statistic: 0.1448 on 1 and 148 DF, p-value: 0.7041 > > san_duration_lm<-lm(san_duration_con ~ totalflies) > summary(san_duration_lm) Call: lm(formula = san_duration_con ~ totalflies) Residuals: Min 1Q Median 3Q Max -23.4105 -2.2384 0.5194 2.8672 13.0307 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 41.9480444 0.9517780 44.073 <2e-16 *** totalflies -0.0004875 0.0015339 -0.318 0.751 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 5.396 on 148 degrees of freedom Multiple R-squared: 0.0006819, Adjusted R-squared: -0.00607 F-statistic: 0.101 on 1 and 148 DF, p-value: 0.7511 > sim_latency_lm<-lm(sim_latency_con ~ totalflies) > summary(sim_latency_lm) > > sim_duration_lm<-lm(sim_duration_con ~ totalflies) > summary(sim_duration_lm) Call: lm(formula = sim_duration_con ~ totalflies) Residuals: Min 1Q Median 3Q Max -25.873 -2.330 0.492 3.336 18.235 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 41.464267 1.089869 38.045 <2e-16 *** totalflies -0.001289 0.001756 -0.734 0.464 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 6.179 on 148 degrees of freedom Multiple R-squared: 0.003628, Adjusted R-squared: -0.003104 F-statistic: 0.5389 on 1 and 148 DF, p-value: 0.464 > yak_consp_lm<-lm(yak_latency_con~ totalflies) > summary(yak_consp_lm) Call: lm(formula = yak_latency_con ~ totalflies) Residuals: Min 1Q Median 3Q Max -16.1264 -1.9036 0.0638 1.9765 28.7339 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 19.1464889 0.9245489 20.709 <2e-16 *** totalflies -0.0008009 0.0014900 -0.537 0.592 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 5.242 on 148 degrees of freedom Multiple R-squared: 0.001948, Adjusted R-squared: -0.004795 F-statistic: 0.2889 on 1 and 148 DF, p-value: 0.5917 > > yak_duration_lm<-lm(yak_duration_con ~ totalflies) > summary(yak_duration_lm) Call: lm(formula = yak_duration_con ~ totalflies) Residuals: Min 1Q Median 3Q Max -35.492 -1.383 1.590 4.233 14.943 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 4.045e+01 1.400e+00 28.898 <2e-16 *** totalflies 3.257e-04 2.256e-03 0.144 0.885 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 7.935 on 148 degrees of freedom Multiple R-squared: 0.0001409, Adjusted R-squared: -0.006615 F-statistic: 0.02085 on 1 and 148 DF, p-value: 0.8854