################################################################### # R Source code for Onthophagus spp and Tribolium expression analysis # # Feel free to use/adapt this code. If you do, # consider citing the companion paper: # # Zattara, EE, Busey, HA, Linz, DM, Tomoyasu, Y, Moczek, AP. 2016 # Neofunctionalization of embryonic head patterning genes # facilitates the positioning of novel traits on the dorsal # head of adult beetles # Proceedings of the Royal Society of London B: Biological Sciences # ################################################################### #BEGIN CODE ##### GENERATING FIGURE S4 #Read data tables tcas <- read.csv("tcas_qPCR_stages.csv") otau <- read.csv("otau_rnaseq_stages.csv") osag <- read.csv("osag_rnaseq_stages.csv") #Order stages to use as factor for plots tcas$stage <- factor(tcas$stage, levels(tcas$stage)[c(2,3,4,1)]) otau$stage <- factor(otau$stage, levels(otau$stage)[c(2,4,3,1)]) osag$stage <- factor(osag$stage, levels(osag$stage)[c(3,2,7,8,4,5,6,1)]) #Boxplots of developmental qPCR and RNAseq expression data par(mfrow=c(3,3)) #Tribolium castaneum barcenter <-barplot(tcas$tc.six3, col="blue", names.arg=levels(tcas$stage),ylim=c(0,4), ylab="SEL", main="Tc-six3") segments(barcenter,tcas$tc.six3-tcas$tc.six3.sem, barcenter,tcas$tc.six3+tcas$tc.six3.sem, lwd=2) arrows(barcenter,tcas$tc.six3-tcas$tc.six3.sem, barcenter,tcas$tc.six3+tcas$tc.six3.sem, lwd=1.5, angle=90, code=3,length=0.05) barcenter <-barplot(tcas$tc.otd1, col="darkred", names.arg=levels(tcas$stage),ylim=c(0,5), ylab="SEL", main="Tc-otd1") segments(barcenter,tcas$tc.otd1-tcas$tc.otd1.sem, barcenter,tcas$tc.otd1+tcas$tc.otd1.sem, lwd=2) arrows(barcenter,tcas$tc.otd1-tcas$tc.otd1.sem, barcenter,tcas$tc.otd1+tcas$tc.otd1.sem, lwd=1.5, angle=90, code=3,length=0.05) barcenter <-barplot(tcas$tc.otd2, col="red", names.arg=levels(tcas$stage),ylim=c(0,1.5), ylab="SEL", main="Tc-otd2") segments(barcenter,tcas$tc.otd2-tcas$tc.otd2.sem, barcenter,tcas$tc.otd2+tcas$tc.otd2.sem, lwd=2) arrows(barcenter,tcas$tc.otd2-tcas$tc.otd2.sem, barcenter,tcas$tc.otd2+tcas$tc.otd2.sem, lwd=1.5, angle=90, code=3,length=0.05) #Onthophagus taurus plot(ot.six3~stage, data=otau, col="blue", ylab="FPKM", xlab="", main="Ot-six3", frame.plot=FALSE) plot(ot.otd1~stage, data=otau, col="darkred", ylab="FPKM", xlab="", main="Ot-otd1", frame.plot=FALSE) plot(ot.otd2~stage, data=otau, col="red", ylab="FPKM", xlab="", main="Ot-otd2", frame.plot=FALSE) #Onthophagus sagittarius plot(os.six3~stage, data=osag, col="blue", ylab="FPKM", xlab="", main="Os-six3", frame.plot=FALSE) plot(os.otd1~stage, data=osag, col="darkred", ylab="FPKM", xlab="", main="Os-otd1", frame.plot=FALSE) ##### GENERATING FIGURE S8 #Read tissue specific data tables tcasts <- read.csv("tcas_qpcr_tissues.csv") tcasts$tissue <- factor(tcasts$tissue, levels(tcasts$tissue)[c(3,4,5,1,2)]) otauts <- read.csv("otau_rnaseq_tissues.csv") otauts$tissue <- factor(otauts$tissue, levels(otauts$tissue)[c(1,2,4,3)]) #Boxplots of tissue-specific qPCR and RNAseq expression data par(mfrow=c(2,3)) par(mar=(c(7,5,1,1))) #Tribolium castaneum plot(expression~tissue, data=tcasts[tcasts$target=="six3",], col="blue", main="Tc-six3",frame.plot=FALSE, las=2, xlab="", ylab="Expression relative to whole pupae") plot(expression~tissue, data=tcasts[tcasts$target=="otd1",], col="darkred", main="Tc-otd1",frame.plot=FALSE, las=2, xlab="", ylab="Expression relative to whole pupae") plot(expression~tissue, data=tcasts[tcasts$target=="otd2",], col="red", main="Tc-otd2",frame.plot=FALSE, las=2, xlab="", ylab="Expression relative to whole pupae") #Onthophagus taurus plot(FPKM~tissue, data=otauts[otauts$target=="Ot-six3",], col="blue", main="Ot-six3",frame.plot=FALSE, ylab="Relative expression level (FPKM)") plot(FPKM~tissue, data=otauts[otauts$target=="Ot-otd1",], col="darkred", main="Ot-otd1",frame.plot=FALSE, ylab="Relative expression level (FPKM)") plot(FPKM~tissue, data=otauts[otauts$target=="Ot-otd2",], col="red", main="Ot-otd2",frame.plot=FALSE, ylab="Relative expression level (FPKM)")